手把手課堂:擴展PowerPC的復數運算指令集
復數乘法的定義是,兩復數相乘,二者各有一個(gè)實(shí)值和一個(gè)虛值。
本文引用地址:http://dyxdggzs.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) 分三級執行乘法運算。這樣,便可在這種多周期的實(shí)現中僅使用兩個(gè)乘法器和兩個(gè)加法器,從而節省硬件資源。圖2所示為復數乘法FCM的框圖(草圖形式)。
如cmplxmul.vhd中的VHDL代碼所示,我們在三個(gè)時(shí)鐘周期中完成復數乘法運算。我們在文件cmplxmul.vhd中實(shí)現了用來(lái)完成此復數乘法運算的FCM。文件fcmcmul.vhd提供了FCM/APU接口的封裝,用來(lái)將FCM連接到APU。如我們將在分步指南(請見(jiàn)側條)中所示,當使用UDI法時(shí),您可以用此封裝用作為模板,將自己的FCM連接到APU(“加載存儲指令”法需要不同的互連方式)。
我們用Xilinx EDK/XPS 10.1.02通過(guò)使用Xilinx ISE® 10.1.02來(lái)綜合了我們的設計。我們用ModelSim 6.3d SE對設計進(jìn)行了仿真和測試。
通過(guò)增加專(zhuān)用于硬件加速和協(xié)處理的用戶(hù)定義指令,Xilinx Virtex-5 FXT器件中所含PowerPC處理器的APU讓嵌入式軟件工程師能夠以非常高效的方式加速其系統。以本文所述示例設計為起點(diǎn),您就會(huì )發(fā)現掌控 APU 易如反掌,讓您無(wú)需使用專(zhuān)用工具就能大大提高自家設計的性能。
評論