Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

LVDS ADC to DDR ram

I am trying to take data from an 8 channel ADC that happens to have an LVDS output. I used the ALTLVDS function to make this data into a readable memory mapped interface. I am not sure that is exactly what I want. I have data flying out of this ADC at 10MHz x 8 channels and I want to directly store it to DDR memory since the data I am going to collect is around 1MB. I was thinking of using a streaming interface and the SGDMDA, but I don't know how to convert a memory mapped output to streaming, or if that is even possible. Do I have to write my own VHDL? There must be a million people that want to do this same exact thing. Does anyone have some examples I could reference?

Thanks,

Andrew

16 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    This is what i have done as i understood. I have connected the Descriptor read/write to Descript_mem as well as the onchip_mem (main ram). m_write is connected only to the onchip_mem. I have also attached a JPEG image. if u can check once more, i will be greatful.

    Regards
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    You don't have to connect the descriptor masters to both memories, you just need to connect them to your descriptor memory.

    You don't need to connect the CPU instruction master to the descriptor memory, the data master is enough. That memory will not contain any executable code for the CPU.

    When you write the software, don't forget to put the descriptor structures in the correct memory! If you use static allocation or malloc calls, they will end up in the main RAM instead.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanx a lot.

    I got it now. will be troubling u again very soon :P

    Thanx again.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hey omaranwar,

    I have had some luck with this whole process. Still working through a few bugs and funny things that happen, but I can give you some guidance. One thing we figured out that was important is to use the Dual Clock Ram with Back pressure. There are two types of dual clock ram, use the one that is just called on chip ram, and check the box for dual clock. You can send me a private message and I can help u out a bit.

    -Andrew
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hey Andrew,

    I have sent you a private message, can you please respond.

    Omar
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi

    I am stuck on ALTLVDS Megafunction. I am tring to pass a HSTC Pin input (which is the clock from ADC connected at HSTC true LVDS pin) to the ALTLVDS as a reference to internal PLL of the megafunction. it genrates this error in fitter.

    "Error: Can't place Left/Right or Top/Bottom PLL "LVDS:ins3|altlvds_rx:altlvds_rx_component|LVDS_lvds_rx:auto_generated|pll" -- I/O pin HSTCC_RX_p[0] (port type INCLK of the PLL) is assigned to a location which is not connected to port type INCLK of any PLL on the device"

    What i have found out so far is that I need a dedicated pins for the reference of PLL. How do transfer the data coming from a TRUE LVDS pin to a dedicated pin? or is there some other way to bypass this?

    Regards

    Omar