基于FPGA的多項式運算器設計
將設計下載到芯片XC2VP30,并用Chipscope進行片內邏輯分析,外部時鐘和采樣時鐘都是100 MHz,得到電路的輸入/輸出曲線(見圖2)。圖2中虛線是輸入變量x,實線是輸出變量y。縱坐標的數值顯示的是Y=y×28的值,即顯示時沒有考慮小數點。本文引用地址:http://www.104case.com/article/190462.htm
從圖2中可以看到,輸出有大約3~4個時鐘的延時,對比CPU執行1條指令就需要3~4個時鐘,運算效率已經很高,而且這里使用的邏輯資源很少。
4 實驗結果分析
多項式擬合函數會有誤差。這里只分析運算器相對多項式的誤差。因為數據位寬有限,會出現截斷誤差。設計實例采用8位小數位,最大表示誤差是±2-9。由于常數也有數據截斷,實際運算誤差會更大。
減小誤差的惟一辦法是增加數據的位數。在本例中將數據上傳電腦并測算,最大誤差在x=π/2處,絕對值是0.0063,相對值是0.63%。對于一些特殊的輸入如x=0或x=0.5等,運算沒有誤差。
5 結語
通信系統的仿真與硬件實現涉及到很多復雜的函數,直接實現會造成資源浪費,而且實現難度比較大。采用FPGA實現多項式運算,實現起來比較簡單,為之后實現復雜函數提供了基礎,大大提高了運算速度和實現效率,在通信系統的硬件實現上有很廣闊的應用前景。
評論