|
未经允许,请勿转载!
在手里的一个CASE,客户要求采用FPGA设计数据采集电路然后通过千兆网把数据传入计算机进行处理和显控。数据传输率为400Mb/s,设计顺利完成后测试发现数据传入计算机,对实时数据进行计算处理耗费了大量的CPU资源,导致计算机显控响应较慢,CPU占用率高,如果计算机长期超负荷工作,可能会导致整个系统的稳定性下降,于是客户希望把原来设计在计算机端的一部分比较耗费CPU资源的算法移到下位机(电路板)上完成。
初步分析需要在下位机实现的算法后,发现算法中用到了大量的定点乘法,如果不改变电路,直接在FPGA里实现,速度不一定能上得来,而且可能会导致整个FPGA系统的系统速度下降,于是提出在电路板里加入一个DSP最小系统来完成算法的实现。最后定下来在电路中加入ADI公司ADSP-BF533这一款DSP,理由如下:一是ADSP-BF533芯片尺寸较小,方便集成在电路板中,不会占用太大的PCB空间;二是ADSP-BF533的系统时钟可以跑到600M,定点乘法的速度比较快;三是ADSP-BF533的外部通信接口比较丰富,与FPGA通信比较方便,比如PPI,RS232,SPI及同步串行接口等。设计框图如下:
要想FPGA和DSP同步协调工作,必须考虑如下两个问题,一是主从关系,二是两者之间的通信接口。经分析,数据是由FPGA采集得到,一次需要计算机的数据量为8KB,经过DSP对8K运算后,得到16字节的运算结果。显然,数据运算的发起者为FPGA,DSP只是一个运算单元,所以DSP应该为从设备。在硬件电路设计方面,DSP的复位引脚由FPGA控制,上电后到FPGA完成初始化,DSP处于复位状态;FPGA完成初始化并稳定工作后,释放DSP的复位信号,DSP加载程序开始工作。另一方面,DSP的系统时钟输入也于FPGA的IO提供,这样在电路上可以减少一个晶振电路的设计,降低了生产成本,也节省了PCB空间。
通信接口方面,考虑到传入DSP的速度量比较大,DSP输出到FPGA的数据量比较小的特点,8K的数据传入DSP采用PPI接口,其通信速度最高可达132Mbytes/s;DSP运算后的16字节的运算结果通过DSP的同步串口传入FPGA,通信速度可达125Mbit/s;运算需要用到的参数通过RS232接口传入DSP。硬件实物如下:
测试结果表明,系统的硬件设计达到了预期要求。