双端口 RAM 在高速数据采集中的应用利用传统方法设计的高速数据采集系统由于集成度低、电路复杂,高速运行电路干扰大,电路可靠性低,难以满足高速数据采集工作的要求。应用 FPGA 可以把数据采集电路中的数据缓存、控制时序逻辑、地址译码、总线接口等电路全部集成进一片芯片中,高集成性增强了系统的稳定性,为高速数据采集提供了理想的解决方案。下面以一个高速数据采集系统为例介绍双端口 RAM 的应用。该系统要求实现对频率为 5MHz 的信号进行采样,系统的计算处理需要对信号进行波形分析,信号采样时间为 25 μs。根据设计要求,为保证采样波形不失真, A/ D采样频率用 80MHz ,采样精度为 8位数据宽度。计算得出存储容量需要 2K 字节。其系统结构框图如图 3所示,图 4给出了具体电路连接图。根据设计要求,双端口 RAM 的 LPM_WIDTH 参数设置为 8, LPM_WIDTHA D 参数设置为 11(211=2048) ,使用读写使能端及读写时钟。 ADCLK 、 WRCLK 和地址发生器的计数频率为 80MHz 。 A/D转换值对双端口 RAM 的写时序为顺序写方式,每完成一次 A/D转换, 存储一次数据,地址加 1指向下一单元,因此写地址发生器(RAM_CONTROL) 采用递增计数器实现,计数频率与 ADCLK 、 WRCLK 一致以保证数据写入时序的正确性。写操作时序由地址和时钟发生器、 A/D转换时钟和双端口 RAM 的写时钟产生。停止采样时 AD_STOP 有效,写地址发生器停止计数,同时停止对 RAM 的写操作。将地址发生器的计数值接至 DSP 总线可以获取采样的首尾指针。地址发生器单元一般用(VHDL) 语言编程实现,然后生成符号文件 RAM_CONTROL 在上层文件调用。其部分 VHDL 语言程序如下: 对双端口 RAM 的读操作采用存储器映像方式,其读出端口接 DSP 的外扩 RA M 总线, DSP 可随机读取双端口 RAM 的任一单元数据,以方便波形分析。由于 LPM_RAM_DP 模块的读端数据总线 q不具有三态特性,因此调用三态缓冲器 74244 ,通过其将输出数据连接到 DSP 数据总线上。在高速数据采集电路中,数据缓存也可以用 FIFO 或单端口 RAM 实现。用 FIF O 进行数据缓存,由于其已经把地址发生部分集成在模块单元内,因此省去了一部分程序编写,但是 DSP 却不能任意地访问 FIFO 的存储单元,只能是顺序写入/读出数据,这样设计,系统的灵活性就大大降低。如果 DSP 的分析计算需要特定单元的数据,则系统的效率和速度会因为无效数据的读取而降低。使用单端口 RAM 进行数据缓存同样存在一些问题。由 RAM 侧看, DSP 和A/D转换器是挂在一条总线上的,当从 RAM 向 DSP 传输数据的时候,A/D转换器就不能有数据传到该总线上,否则会产生总线冲突,引起芯片损坏。解决这个问题就需要增加电路。应用双端口 RAM 就不存在这个问题,而且使系统结构划分更明确, 符合模块化设计思想。结语综上所述,利用 FPGA 芯片的高速工作特性,以及其内部集成嵌入式阵列和大规模逻辑阵列的特点,设计存储器,三态缓存器、地址发生器、以及复杂的时序逻辑电路等,应用于高速数据采集电路中可以使电路大大简化,性能提高。同时由于 FPG
双口RAM应用实例 来自淘豆网m.daumloan.com转载请标明出处.