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