一种CPU和FPGA的快速交换数据方法
2016-09-15陈庆旭朱明浩余华武
陈庆旭,朱明浩,余华武
(1.南京国电南自自动化有限公司,南京 211153;2.南京依维柯汽车有限公司)
一种CPU和FPGA的快速交换数据方法
陈庆旭1,朱明浩2,余华武1
(1.南京国电南自自动化有限公司,南京 211153;2.南京依维柯汽车有限公司)
为了提高CPU读写FPGA的速度,提出了一种基于Burst方式的CPU和FPGA快速交换数据的方法。CPU在完成第一次读写之后,FPGA会记录该地址,并使双口RAM的地址自动递增,不需要CPU再给出地址,这样CPU可以操作多个连续地址中双口RAM的数据。经过测试,该方法可以大大提高CPU和FPGA进行数据交换的速度。
CPU;FPGA;Burst;快速数据交换
引 言
随着可编程逻辑控制器(Field Programmable Gate Array,FPGA)的应用日渐广泛,很多系统采用了中央处理器(Central Processing Unit,CPU)+FPGA的架构方式。由于FPGA可以并行运算,所以大量的运算工作可由FPGA完成,CPU从FPGA中直接读取计算结果,这种方式可以减少CPU的运算时间,降低了对CPU的要求。
目前,FPGA一般通过双口RAM和CPU进行交互,通过双口随机存取存储器(Random Access Memory,RAM)的缓冲解决FPGA和CPU的速度和并行性等问题。在CPU和FPGA之间有大量的数据需要进行交互的场合,这种方式CPU读写数据过程需要占用大量的时间,如何提高CPU读写FPGA的效率已经成为很多应用中的一个瓶颈问题。在数据量较大的电力系统滤波、图像处理等应用场合,CPU读取数据的时间是无法忽略的,甚至会造成系统的响应时间无法满足要求。
尽管目前可以采用PCI-E、SRIO等方式实现CPU和FPGA之间的快速数据交换,但是这些方式对CPU和FPGA具有较高的要求,在某些成本比较敏感的场合是无法使用的。
本文提出了一种不需要增加额外成本,采用Burst方式对FPGA进行读写的方法。……
