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

乘法器的基本概念

1/4平方乘法器

脈沖-寬度-高度調(diào)制乘法器

變跨導(dǎo)乘法器
基于IP核的乘法器設(shè)計

基于CMOS工藝下的Gillbert單元乘法器的研究

使用verilogHDL實現(xiàn)乘法器

乘法器原理_乘法器的作用

采用Gillbert單元如何實現(xiàn)CMOS模擬乘法器的應(yīng)用設(shè)計

評論