在手里的一個CASE,客戶要求采用FPGA設(shè)計數(shù)據(jù)采集電路然后通過千兆網(wǎng)把數(shù)據(jù)傳入計算機進行處理和顯控。數(shù)據(jù)傳輸率為400Mb/s,設(shè)計順利完成后測試發(fā)現(xiàn)數(shù)據(jù)傳入計算機,對實時數(shù)據(jù)進行計算處理耗費了大量的CPU資源,導(dǎo)致計算機顯控響應(yīng)較慢,CPU占用率高,如果計算機長期超負(fù)荷工作,可能會導(dǎo)致整個系統(tǒng)的穩(wěn)定性下降,于是客戶希望把原來設(shè)計在計算機端的一部分比較耗費CPU資源的算法移到下位機(電路板)上完成。
初步分析需要在下位機實現(xiàn)的算法后,發(fā)現(xiàn)算法中用到了大量的定點乘法,如果不改變電路,直接在FPGA里實現(xiàn),速度不一定能上得來,而且可能會導(dǎo)致整個FPGA系統(tǒng)的系統(tǒng)速度下降,于是提出在電路板里加入一個DSP最小系統(tǒng)來完成算法的實現(xiàn)。最后定下來在電路中加入ADI公司ADSP-BF533這一款DSP,理由如下:一是ADSP-BF533芯片尺寸較小,方便集成在電路板中,不會占用太大的PCB空間;二是ADSP-BF533的系統(tǒng)時鐘可以跑到600M,定點乘法的速度比較快;三是ADSP-BF533的外部通信接口比較豐富,與FPGA通信比較方便,比如PPI,RS232,SPI及同步串行接口等。設(shè)計框圖如下:
要想FPGA和DSP同步協(xié)調(diào)工作,必須考慮如下兩個問題,一是主從關(guān)系,二是兩者之間的通信接口。經(jīng)分析,數(shù)據(jù)是由FPGA采集得到,一次需要計算機的數(shù)據(jù)量為8KB,經(jīng)過DSP對8K運算后,得到16字節(jié)的運算結(jié)果。顯然,數(shù)據(jù)運算的發(fā)起者為FPGA,DSP只是一個運算單元,所以DSP應(yīng)該為從設(shè)備。在硬件電路設(shè)計方面,DSP的復(fù)位引腳由FPGA控制,上電后到FPGA完成初始化,DSP處于復(fù)位狀態(tài);FPGA完成初始化并穩(wěn)定工作后,釋放DSP的復(fù)位信號,DSP加載程序開始工作。另一方面,DSP的系統(tǒng)時鐘輸入也于FPGA的IO提供,這樣在電路上可以減少一個晶振電路的設(shè)計,降低了生產(chǎn)成本,也節(jié)省了PCB空間。
通信接口方面,考慮到傳入DSP的速度量比較大,DSP輸出到FPGA的數(shù)據(jù)量比較小的特點,8K的數(shù)據(jù)傳入DSP采用PPI接口,其通信速度最高可達132Mbytes/s;DSP運算后的16字節(jié)的運算結(jié)果通過DSP的同步串口傳入FPGA,通信速度可達125Mbit/s;運算需要用到的參數(shù)通過RS232接口傳入DSP。硬件實物如下:
測試結(jié)果表明,系統(tǒng)的硬件設(shè)計達到了預(yù)期要求。
|