500MHz数据流高速存储的设计与实现
发布时间:2008/5/28 0:00:00 访问次数:519
引言
在高速数据采集系统中,有两个关键的技术问题:一是信号的高速a/d变换,主要涉及到采用高速的a/d转换器对模拟信号进行变换,所选择的a/d、时钟质量以及pcb的设计等都对其有重要影响;另一个就是变换后的数据的高速缓存和提取,这个问题主要是解决如何在不同的应用场合选择合适的数据高速存储方案,来实现相对高的性价比。实际上,这两个问题是密切相关的。
随着近年来半导体集成电路技术的不断发展,ns、atmel等公司都开发出了采样速度在1gs/s以上的adc,如ns公司的adc08d1000和atmel公司的at84ad001,它们都可以实现2gs/s采样率的拼合,转换后的数据经过内部降速后都是500mhz。可见,实现500mhz数据流的高速缓存设计对1gs/s和2gs/s以及更高速的数据采集系统是十分有用的。
高速缓存的方案
通常构成高速缓存的方案有三种:
1. fifo(先进先出)方式:其特点是它有两个数据端口,数据从一端输入,从另一端输出,且先进的数据先流出。fifo只有数据线而没有地址线,可以同时进行一端的写操作和另一端的读操作,数据在其中顺序移动,因而能够达到很高的传输速度和效率。其缺点是只能进行顺序读写,而且大容量的fifo比较昂贵,只适合小存储深度的场合。
2. 双口ram方式:其特点是在同一个芯片里的同一个存储单元具有相同的两套寻址机构和输入输出机构,可以通过两个端口对芯片中的任何一个地址做非同步的读和写操作。双口ram也能达到很高的传输速度,并且具有随机存取的优点,但缺点是大容量的高速双口ram很难得且价格昂贵。
3 .高速sram切换方式:高速sram只有一套数据、地址和控制总线,可通过三态缓冲门分别接到a/d转换器和dsp上。当a/d采样时,sram由三态门切换到a/d转换器一侧,以使采样数据写入其中。当a/d采样结束后,sram再由三态门切换到dsp一侧以便dsp进行读写。该存储方案最大的特点是sram可随机存取,不足之处在于切换控制电路比较复杂 。
高速缓存的实现
综合考虑上述三种高速缓存方案的性能、价格和实现的方便性,并结合自身的系统设计,笔者选用第一 种方案(即fifo方式)来构成a/d采 样高速缓存。考虑到整个采集系统的要求和结构,系统将fifo设置在fpga内部,触发、缓存控制时序以及系统的其他控制也都设计在fpga内部。这就使整个系统成本低廉、便于实现。
高速数据采集系统中的高速缓存电路 主要由四部分组成:lvds转ttl模块、存储降速模块、内部fifo以及高速缓存控制。由于一般高速a/d转换后 的数据流都是lvds输出,因此在送入fpga缓存前需要将数据流转换成ttl电平。另外,几乎所有低成本fpga的内部ram都不能工作在500mhz这么高的频率上,所以在数据存入fifo之前必须对数据流进行降速处理。
本文将介绍采用xilinx公司的低端产品spartan-3a进行高速缓存电路的设计。采用xilinx公司spartan-3a进行设计有几个方面的优势:第一,采用lvds输出的a/d需要在接收端放置100ω的端接电阻,而spar tan-3a器件内部具有端接电阻,这就可以避免布板时放置短接电阻带来的困难。第二,pcb设计时,差分布线经常会遇到连线有交叉的情况,这时通常要添加过孔才能布线。而spartan-3a器件的差分对引脚的正负在pcb布板时可以进行交换,然后在fpga内部设计时再设置相应的反相,从而给pcb设计带来方便。第三,spartan-3a器件的i/o引脚可以进行时延设置,这样可以方便地设置高速数据线,从而降低了数据线走等长线的要求。下面将针对这几点对整个数据采集的存储设计进行说明。
基本结构
采用spartan-3a器件中的ip核ibufds可以很容易地实现lvds-ttl接收模块。
根据所用的器件速度的不同,spartan-3a器件内部的块ram的最高速度可达280mhz到320mhz,显然这个速度的高速数据流是不能直接进入fifo进行缓存的。spartan-3a器件提供了免费的iddr模块,可以方便地对输入的高速数据流进行降速处理,使数据流满足fpga内部ram的工作频率的要求。
正如前面所提到的,对于差分对引脚正负互换了的数据,需要在fpga内部进行反相。
之所以把反相放到降速模块之后,是因为iddr所在的iob模块内部不含有可反相的输入。实现反相的方法很简单,只需要把要反相的信号与1相异或就可以了。
结合前面三点,下面给出了一个八位数据从接收到反相的硬件描述。这里设置了一个用来做反相的数组,从该数组就可以看出第二和第六对差分对是交换过顺序的。
parameter [7:0] swap_mask----------------- = 3'b00100010;
genvar i;
generate
for (i = 0; i <
引言
在高速数据采集系统中,有两个关键的技术问题:一是信号的高速a/d变换,主要涉及到采用高速的a/d转换器对模拟信号进行变换,所选择的a/d、时钟质量以及pcb的设计等都对其有重要影响;另一个就是变换后的数据的高速缓存和提取,这个问题主要是解决如何在不同的应用场合选择合适的数据高速存储方案,来实现相对高的性价比。实际上,这两个问题是密切相关的。
随着近年来半导体集成电路技术的不断发展,ns、atmel等公司都开发出了采样速度在1gs/s以上的adc,如ns公司的adc08d1000和atmel公司的at84ad001,它们都可以实现2gs/s采样率的拼合,转换后的数据经过内部降速后都是500mhz。可见,实现500mhz数据流的高速缓存设计对1gs/s和2gs/s以及更高速的数据采集系统是十分有用的。
高速缓存的方案
通常构成高速缓存的方案有三种:
1. fifo(先进先出)方式:其特点是它有两个数据端口,数据从一端输入,从另一端输出,且先进的数据先流出。fifo只有数据线而没有地址线,可以同时进行一端的写操作和另一端的读操作,数据在其中顺序移动,因而能够达到很高的传输速度和效率。其缺点是只能进行顺序读写,而且大容量的fifo比较昂贵,只适合小存储深度的场合。
2. 双口ram方式:其特点是在同一个芯片里的同一个存储单元具有相同的两套寻址机构和输入输出机构,可以通过两个端口对芯片中的任何一个地址做非同步的读和写操作。双口ram也能达到很高的传输速度,并且具有随机存取的优点,但缺点是大容量的高速双口ram很难得且价格昂贵。
3 .高速sram切换方式:高速sram只有一套数据、地址和控制总线,可通过三态缓冲门分别接到a/d转换器和dsp上。当a/d采样时,sram由三态门切换到a/d转换器一侧,以使采样数据写入其中。当a/d采样结束后,sram再由三态门切换到dsp一侧以便dsp进行读写。该存储方案最大的特点是sram可随机存取,不足之处在于切换控制电路比较复杂 。
高速缓存的实现
综合考虑上述三种高速缓存方案的性能、价格和实现的方便性,并结合自身的系统设计,笔者选用第一 种方案(即fifo方式)来构成a/d采 样高速缓存。考虑到整个采集系统的要求和结构,系统将fifo设置在fpga内部,触发、缓存控制时序以及系统的其他控制也都设计在fpga内部。这就使整个系统成本低廉、便于实现。
高速数据采集系统中的高速缓存电路 主要由四部分组成:lvds转ttl模块、存储降速模块、内部fifo以及高速缓存控制。由于一般高速a/d转换后 的数据流都是lvds输出,因此在送入fpga缓存前需要将数据流转换成ttl电平。另外,几乎所有低成本fpga的内部ram都不能工作在500mhz这么高的频率上,所以在数据存入fifo之前必须对数据流进行降速处理。
本文将介绍采用xilinx公司的低端产品spartan-3a进行高速缓存电路的设计。采用xilinx公司spartan-3a进行设计有几个方面的优势:第一,采用lvds输出的a/d需要在接收端放置100ω的端接电阻,而spar tan-3a器件内部具有端接电阻,这就可以避免布板时放置短接电阻带来的困难。第二,pcb设计时,差分布线经常会遇到连线有交叉的情况,这时通常要添加过孔才能布线。而spartan-3a器件的差分对引脚的正负在pcb布板时可以进行交换,然后在fpga内部设计时再设置相应的反相,从而给pcb设计带来方便。第三,spartan-3a器件的i/o引脚可以进行时延设置,这样可以方便地设置高速数据线,从而降低了数据线走等长线的要求。下面将针对这几点对整个数据采集的存储设计进行说明。
基本结构
采用spartan-3a器件中的ip核ibufds可以很容易地实现lvds-ttl接收模块。
根据所用的器件速度的不同,spartan-3a器件内部的块ram的最高速度可达280mhz到320mhz,显然这个速度的高速数据流是不能直接进入fifo进行缓存的。spartan-3a器件提供了免费的iddr模块,可以方便地对输入的高速数据流进行降速处理,使数据流满足fpga内部ram的工作频率的要求。
正如前面所提到的,对于差分对引脚正负互换了的数据,需要在fpga内部进行反相。
之所以把反相放到降速模块之后,是因为iddr所在的iob模块内部不含有可反相的输入。实现反相的方法很简单,只需要把要反相的信号与1相异或就可以了。
结合前面三点,下面给出了一个八位数据从接收到反相的硬件描述。这里设置了一个用来做反相的数组,从该数组就可以看出第二和第六对差分对是交换过顺序的。
parameter [7:0] swap_mask----------------- = 3'b00100010;
genvar i;
generate
for (i = 0; i <