在做項(xiàng)目的過(guò)程中,經(jīng)常遇到乘法計(jì)算,乘法器的設(shè)計(jì)就尤為重要。乘法器決定了最終電路功能能否實(shí)現(xiàn),資源使用量多少以及時(shí)序性能優(yōu)劣等。
乘法計(jì)算中,通常會(huì)使用 “*” 或者設(shè)計(jì)乘法器實(shí)現(xiàn)。
設(shè)計(jì)乘法器時(shí),通常使用加法樹(shù)乘法器,實(shí)現(xiàn)流程圖如下:
如a[3:0]與b[3:0]乘法器設(shè)計(jì),與分布式算法類(lèi)似,a*b乘法計(jì)算設(shè)計(jì)如下:a*b[0]<<0 + a*b[1]<<1 + a*b[2]<<2 + a*b[3]<<3,通過(guò)移位和加法運(yùn)算實(shí)現(xiàn)最終功能。結(jié)構(gòu)框圖如上。
設(shè)計(jì)中,上述邏輯存在大量組合邏輯,延時(shí)大,當(dāng)時(shí)序要求不高的情況下,可以使用,當(dāng)時(shí)序要求很高時(shí),此電路會(huì)產(chǎn)生時(shí)序違規(guī)。要想提高電路時(shí)序性能,需要在x、y、z三處選一處、兩處或者三處加入觸發(fā)器流水邏輯,提高電路時(shí)序性能,但其結(jié)果會(huì)使輸出延遲幾個(gè)時(shí)鐘周期,設(shè)計(jì)時(shí)應(yīng)該考慮這一情況。
當(dāng)使用 “*” 做乘法運(yùn)算時(shí),一般綜合工具都會(huì)直接調(diào)用FPGA片上集成的硬核乘法器,而不再使用邏輯單元搭建乘法器。設(shè)計(jì)結(jié)構(gòu)圖如下:
為利用FPGA片上乘法器實(shí)現(xiàn)最終乘法。為了提高時(shí)序性能,可在w處加入寄存器流水線。
上述設(shè)計(jì)速度明顯優(yōu)于第一種設(shè)計(jì),但會(huì)消耗大量的片上硬核乘法器。
上述兩種設(shè)計(jì)各有其優(yōu)勢(shì),在使用中請(qǐng)根據(jù)實(shí)際設(shè)計(jì)電路采用合理的方案。
在前述文章中,設(shè)計(jì)FFT和IFFT,乘法設(shè)計(jì)采用第二種方案,提高電路速度。如果采用第一種方案,將會(huì)增加流水線程度,增大FFT以及IFFT的計(jì)算周期。
而在簡(jiǎn)單和低速的乘法計(jì)算中使用第一種方案是一種比較良好的選擇。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603421 -
乘法器
+關(guān)注
關(guān)注
8文章
205瀏覽量
37061
原文標(biāo)題:淺談乘法器的用法
文章出處:【微信號(hào):ALIFPGA,微信公眾號(hào):FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論