手把手課堂:擴展PowerPC的復數運算指令集
復數乘法的定義是,兩復數相乘,二者各有一個實值和一個虛值。
本文引用地址:http://www.104case.com/article/119297.htm(a_R + j a_I, where j*j = -1):
(a_R + j a_I) * (b_R + j b_I) =
(a_R * b_R - a_I * b_I) + j (a_I * b_R + a_
R * b_I)
為提高效率,復數乘法硬件模塊(cmplxmul) 分三級執行乘法運算。這樣,便可在這種多周期的實現中僅使用兩個乘法器和兩個加法器,從而節省硬件資源。圖2所示為復數乘法FCM的框圖(草圖形式)。
如cmplxmul.vhd中的VHDL代碼所示,我們在三個時鐘周期中完成復數乘法運算。我們在文件cmplxmul.vhd中實現了用來完成此復數乘法運算的FCM。文件fcmcmul.vhd提供了FCM/APU接口的封裝,用來將FCM連接到APU。如我們將在分步指南(請見側條)中所示,當使用UDI法時,您可以用此封裝用作為模板,將自己的FCM連接到APU(“加載存儲指令”法需要不同的互連方式)。
我們用Xilinx EDK/XPS 10.1.02通過使用Xilinx ISE® 10.1.02來綜合了我們的設計。我們用ModelSim 6.3d SE對設計進行了仿真和測試。
通過增加專用于硬件加速和協處理的用戶定義指令,Xilinx Virtex-5 FXT器件中所含PowerPC處理器的APU讓嵌入式軟件工程師能夠以非常高效的方式加速其系統。以本文所述示例設計為起點,您就會發現掌控 APU 易如反掌,讓您無需使用專用工具就能大大提高自家設計的性能。
評論