通过FPGA搭建A/D数据高速缓存机制,A/D数据经过FPGA的片上缓存,写入DDR A/D数据区,作为高速缓存,DDR其他空间作为ARM控制系统的运行程序,与A/D转换器进行数据交互。数据存储结构图如图3所示。
图3 数据存储结构图
对于设定的10位100 Msps的A/D转换器,数据在片上缓存按16位读取,片上缓存到DDR按64位读取,配置DDR控制时钟为533 MHz,可计算得存储速度约为采样速率的40倍,这将大大地保证采样数据的有效存储,而且保证了DDR有足够的时间与控制系统进行数据交互。
2.3数据处理
ARM CortexA9核的运算能力,基本能满足日常的各种数据处理需求,在搭建的平台上有两种可选的数据处理方案。
第一种方案是在Linux系统下的数据处理。Xilinx提供了MicroZed上精简的Linux系统,由于添加了A/D转换器外设,仍然需要对系统的内核和设备树作一些修改,Xilinx SDK上提供了相关的工具,在Xilinx wiki和Xilinx github上也提供了完备的教程与资源,使得Linux系统的搭建相对比较轻松。系统搭建完成后,可在Linux下进行算法的编写或移植。
第二种方案是在Zynq7000上进行数据处理。注意有别于在其他ARM上进行数据处理的方案,因为Zynq7000是FPGA内嵌ARM的架构,所有数据的处理可以是FPGA和ARM部分共同完成的。Xilinx提供的SDK工具支持C++对ARM编程,使得算法的移植比较简捷。Xilinx还提供了高层次综合工具(HLS),可以使用C和C++对FPGA进行IP核编写与封装