如果要使用FPGA和一些外部组件实现ADC,则使用xps_delttasigma_adc。
如果您使用的是LTC2171-14,则无法使用此内核并且必须设计自定义接口。
我在接口LTC217x器件方面有相当多的经验,并建议如下:
如果可以,请使用Spartan-6
使用Spartan-6的ISERDES块。
阅读XAPP1064。
如果在16位模式下使用ADC,解码逻辑会变得容易一些,因为您可以使用FR(帧时钟)输出按照XAPP1064为bitlip状态机供电,并寻找8'b11110000模式。
这不是什么大不了的事。
您不需要MicroBlaze与ADC通信,只需要一个SPI控制器来设置寄存器和ISERDES。
无论如何,MicroBlaze可能无法在全倾斜状态下跟上这个ADC。
通常,您将反序列化的数据运行到某种数字滤波器,FFT核心,高速存储器等。
如果您遇到Spartan-3并且必须在结构中进行反序列化(请参阅XAPP485),那么请注意,您将受限于相当慢的采样率。
如果这比更改为Spartan-6更容易,您可以考虑使用外部反序列化器。
如果您对这些部分有任何其他疑问,请与我们联系。
有一些关于我通过博客分散的所有麻烦的信息 - 也许是搜索“ADC”。
以下是我所做的总结:
为ADC设计了双层板,将其连接到Spartan-3A板上的低速连接器。
来自FPGA的时钟ADC。
在高于约10 MHz的采样率下,这是非常不可靠的。
将其连接到Spartan-3E板上的更高速连接器。
来自振荡器模块的时钟ADC,在板上死机。
这非常不可靠。
我没有尝试过各种各样的振荡器模块,但它肯定不能在48 MHz下工作。
使用四层PCB重新设计的ADC板。
将其连接到Spartan-6板(Digilent Atlys)上的高速,阻抗控制,走线长度均衡连接器。
来自板载振荡器的时钟ADC(SMA连接器更智能)。
这很棒!
无论如何,这是一个不错的ADC。
以上来自于谷歌翻译
以下为原文
xps_delttasigma_adc is used if you want to implement an ADC using the FPGA and a couple of external components. If you're using the LTC2171-14, you can't use this core and must design a custom interface.
I have a fair bit of experience with interfacing the LTC217x parts and would suggest the following:
- Use a Spartan-6 if you can
- Use Spartan-6's ISERDES blocks. Read XAPP1064.
- If you use the ADC in 16-bit mode, the decoding logic becomes a bit easier because you can use the FR (frame clock) output to power the bitslip state machine as per XAPP1064 and look for a 8'b11110000 pattern. This is not a big deal though.
You don't need MicroBlaze to talk to the ADC, just an SPI controller to set up the registers and the ISERDES stuff. MicroBlaze probably won't be able to keep up with this ADC at full-tilt anyway. Generally you'd run the deserialised data into some sort of digital filter, an FFT core, high speed memory, etc.
If you're stuck with a Spartan-3 and have to do deserialisation in the fabric (see XAPP485), then be aware that you will be limited to fairly slow sample rates. You might consider using an external deserialiser if this is easier than changing to a Spartan-6.
Let me know if you have any other questions about these parts. There's a bit of information about all the hassles I had with it scattered through my blog - perhaps search for 'ADC'. Here's a summary of what I did:
- Designed two layer board for the ADC, connected it to low speed connector on a Spartan-3A board. Clocked ADC from FPGA.
- This was very unreliable at sample rates above about 10 MHz.
- Connected it to a higher speed connector on a Spartan-3E board. Clocked ADC from an oscillator module, dead-bugged on board.
- This was pretty unreliable. I didn't have a large range of oscillator modules to try, but it most certainly did not work at 48 MHz.
- Redesigned ADC board using a four layer PCB. Connected it to high speed, impedance controlled, trace length equalised connector on Spartan-6 board (Digilent Atlys). Clocked ADC from on-board oscillator (an SMA connector would have been smarter).
- This works great!
It's a nice ADC, anyway.
如果要使用FPGA和一些外部组件实现ADC,则使用xps_delttasigma_adc。
如果您使用的是LTC2171-14,则无法使用此内核并且必须设计自定义接口。
我在接口LTC217x器件方面有相当多的经验,并建议如下:
如果可以,请使用Spartan-6
使用Spartan-6的ISERDES块。
阅读XAPP1064。
如果在16位模式下使用ADC,解码逻辑会变得容易一些,因为您可以使用FR(帧时钟)输出按照XAPP1064为bitlip状态机供电,并寻找8'b11110000模式。
这不是什么大不了的事。
您不需要MicroBlaze与ADC通信,只需要一个SPI控制器来设置寄存器和ISERDES。
无论如何,MicroBlaze可能无法在全倾斜状态下跟上这个ADC。
通常,您将反序列化的数据运行到某种数字滤波器,FFT核心,高速存储器等。
如果您遇到Spartan-3并且必须在结构中进行反序列化(请参阅XAPP485),那么请注意,您将受限于相当慢的采样率。
如果这比更改为Spartan-6更容易,您可以考虑使用外部反序列化器。
如果您对这些部分有任何其他疑问,请与我们联系。
有一些关于我通过博客分散的所有麻烦的信息 - 也许是搜索“ADC”。
以下是我所做的总结:
为ADC设计了双层板,将其连接到Spartan-3A板上的低速连接器。
来自FPGA的时钟ADC。
在高于约10 MHz的采样率下,这是非常不可靠的。
将其连接到Spartan-3E板上的更高速连接器。
来自振荡器模块的时钟ADC,在板上死机。
这非常不可靠。
我没有尝试过各种各样的振荡器模块,但它肯定不能在48 MHz下工作。
使用四层PCB重新设计的ADC板。
将其连接到Spartan-6板(Digilent Atlys)上的高速,阻抗控制,走线长度均衡连接器。
来自板载振荡器的时钟ADC(SMA连接器更智能)。
这很棒!
无论如何,这是一个不错的ADC。
以上来自于谷歌翻译
以下为原文
xps_delttasigma_adc is used if you want to implement an ADC using the FPGA and a couple of external components. If you're using the LTC2171-14, you can't use this core and must design a custom interface.
I have a fair bit of experience with interfacing the LTC217x parts and would suggest the following:
- Use a Spartan-6 if you can
- Use Spartan-6's ISERDES blocks. Read XAPP1064.
- If you use the ADC in 16-bit mode, the decoding logic becomes a bit easier because you can use the FR (frame clock) output to power the bitslip state machine as per XAPP1064 and look for a 8'b11110000 pattern. This is not a big deal though.
You don't need MicroBlaze to talk to the ADC, just an SPI controller to set up the registers and the ISERDES stuff. MicroBlaze probably won't be able to keep up with this ADC at full-tilt anyway. Generally you'd run the deserialised data into some sort of digital filter, an FFT core, high speed memory, etc.
If you're stuck with a Spartan-3 and have to do deserialisation in the fabric (see XAPP485), then be aware that you will be limited to fairly slow sample rates. You might consider using an external deserialiser if this is easier than changing to a Spartan-6.
Let me know if you have any other questions about these parts. There's a bit of information about all the hassles I had with it scattered through my blog - perhaps search for 'ADC'. Here's a summary of what I did:
- Designed two layer board for the ADC, connected it to low speed connector on a Spartan-3A board. Clocked ADC from FPGA.
- This was very unreliable at sample rates above about 10 MHz.
- Connected it to a higher speed connector on a Spartan-3E board. Clocked ADC from an oscillator module, dead-bugged on board.
- This was pretty unreliable. I didn't have a large range of oscillator modules to try, but it most certainly did not work at 48 MHz.
- Redesigned ADC board using a four layer PCB. Connected it to high speed, impedance controlled, trace length equalised connector on Spartan-6 board (Digilent Atlys). Clocked ADC from on-board oscillator (an SMA connector would have been smarter).
- This works great!
It's a nice ADC, anyway.
举报