作者:貓叔
FPGA中乘法器是很稀缺的資源,但也是我們做算法必不可少的資源。7系列及之前的FPGA都是25x18的DSP,UltraScale中是27x18,我們可以通過調IP Core的方式或者原語的方式來進行乘法操作。在里面可以設置有符號還是無符號數(shù)乘法。


當然,我們也可以直接使用*符合來進行乘法,對于無符號的乘法
reg [7:0] ubyte_a; reg [7:0] ubyte_b; (* use_dsp48="yes" *) output reg[15:0] u_res; always @ ( posedge clk ) begin if(rst) u_res <= 'b0; else u_res <= ubyte_a * ubyte_b; end
有符號乘法可以在Verilog中使用signed來標注。
reg signed [7:0] byte_a;
reg signed [7:0] byte_b;
(* use_dsp48="yes" *)
reg signed [15:0] res;
always @ ( posedge clk ) begin
if(rst)
res <= 'b0;
else
res <= byte_a * byte_b;
end
當然我們也要理解有符號數(shù)乘法的原理,其實就是擴位乘法,把高位都補充為符號位。
有符號數(shù)乘法:
reg [7:0] ubyte_a;
reg [7:0] ubyte_b;
(* use_dsp48="yes" *)
reg [15:0] res_manul;
always @ ( posedge clk ) begin
if(rst)
res_manul <= 'b0;
else
res_manul <= {{8{byte_a[7]}},ubyte_a} * {{8{ubyte_b[7]}},ubyte_b};
end
關于乘法輸出的位寬,我們知道,兩個8bits的無符號數(shù)乘法,結果的位寬是16bits,但對于兩個8bits有符號數(shù)的乘法,只要兩個數(shù)不同時為-128,即二進制0b1000_0000,那么輸出結果的高兩位都是符號位,我們只需要取低15bits即可。因此,如果我們可以保證兩個輸入的乘數(shù)不會同時為有符號數(shù)所能表示的負數(shù)最小值,那么乘法結果的高兩位都是符號位,只取其中一位即可。
編輯:hfy
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
dsp
+關注
關注
561文章
8276瀏覽量
368306 -
FPGA
+關注
關注
1664文章
22504瀏覽量
639327 -
乘法器
+關注
關注
9文章
221瀏覽量
38945
發(fā)布評論請先 登錄
相關推薦
熱點推薦
CDCF5801A:時鐘乘法器的卓越之選
CDCF5801A:時鐘乘法器的卓越之選 在電子工程師的日常設計工作中,時鐘信號的處理至關重要,而時鐘乘法器則是實現(xiàn)精確時鐘信號的關鍵組件。今天,我們就來深入探討德州儀器(Texas
低成本模擬乘法器AD633:特性、應用與設計指南
低成本模擬乘法器AD633:特性、應用與設計指南 在電子工程師的日常設計工作中,模擬乘法器是一個常用的基礎器件。今天,我們就來深入探討一下ADI公司的低成本模擬乘法器AD633,從它的
深入剖析AD632:高性能四象限乘法器/除法器
深入剖析AD632:高性能四象限乘法器/除法器 在電子工程師的日常設計中,高性能的模擬信號處理芯片是不可或缺的工具。今天,我們就來詳細探討一下Analog Devices公司的AD632——一款內部
AD532:高性能單芯片乘法器/除法器的卓越之選
AD532:高性能單芯片乘法器/除法器的卓越之選 在電子設計領域,乘法器和除法器是實現(xiàn)復雜運算和信號處理的關鍵組件。而AD532作為一款預微調的單芯片
使用Xilinx 7系列FPGA的四位乘法器設計
(Shinshu University)研究團隊的最新設計中,一個專為 Xilinx 7 系列 FPGA 量身打造的 4 位乘法器使用了僅 11 個 LUT + 2 個 CARRY4 塊,關鍵路徑延遲達到 2.75 ns。這是一
E203在基于wallace樹+booth編碼的乘法器優(yōu)化后的跑分結果
優(yōu)化思路
E203為了實現(xiàn)低功耗的要求,乘法器為基于booth編碼和移位加法器結合的思路,優(yōu)點是只需要一個加法器,而且該加法器還和除法器復用
發(fā)表于 10-27 07:54
E203V2長周期乘法器核心booth算法解讀
。
E203V2多周期運算單元中乘法器booth編碼具體如下:
進行乘法運算時所調用的加法器的兩個操作數(shù)具體如下:
這里把乘法器的操作數(shù)
發(fā)表于 10-24 09:33
Verilog實現(xiàn)使用Booth編碼和Wallace樹的定點補碼乘法器原理
結果只需要一個周期,大大提升了乘法器性能。
1.Booth編碼
將乘數(shù)看作從最低位開始的一串二進制數(shù)字。Booth算法的基本思路是:對于具有連續(xù)0和1的組,需要產生的部分積較少。對于乘數(shù)中每個0
發(fā)表于 10-23 08:01
改進wallance樹乘法器優(yōu)化方法
周期復用加法器的部分積加和算法,我們采用了改進的wallance樹結構進行部分積的快速壓縮,實現(xiàn)了單周期的乘法計算。
經過時序分析,我們的單周期乘法器時鐘頻率可以提高至140Hz,對比
發(fā)表于 10-23 06:37
關于E203內核高性能乘法器優(yōu)化(一)
一、簡介
對于cpu各類測試程序,設計一個高性能的硬件乘法器模塊無疑是提分最快的法案,本文將從乘法算法開始,到rtl設計進行詳細的解釋說明,并附帶一部分源碼。
二、乘法算法
乘法器
發(fā)表于 10-23 06:09
蜂鳥乘法器設計分享
蜂鳥的乘法器主體設計在ALU模塊的子單元MDV模塊中,MDV模塊包括乘除法器邏輯設計,它只包含運算控制,但并不包含具體運算,它們都需要將部分積或者部分余數(shù)傳入數(shù)據(jù)通路(dpath模塊)中
發(fā)表于 10-22 08:21
改進型乘法器結構設計
的高32位??刂菩盘柨刂撇糠址e產生和部分積壓縮對操作數(shù)和部分積的處理,從而完成乘法器的乘法運算。
譯碼模塊對乘法指令進行譯碼,基4 Booth編碼接收控制信號對被乘數(shù)和乘數(shù)進行符號擴展并產生18個
發(fā)表于 10-22 07:51
蜂鳥E203乘法器改進
蜂鳥E203為了節(jié)約資源,乘法運算采用循環(huán)移位方式計算最終結果,這樣的乘法器需要經過較多時鐘周期來處理數(shù)據(jù),導致處理數(shù)據(jù)效率較低。為了提高計算效率,這里分享一種基于流水線思想的乘法器,即采用多個
發(fā)表于 10-22 07:28
蜂鳥E203內核乘法器的優(yōu)化
乘法器的優(yōu)化實現(xiàn)一般從兩個方面入手。第一是減少生成的部分積數(shù)量,另外就是減少部分積累加的延時。
在開源的E203源碼中,32*32乘法器是利用radix-4 booth編碼產生部分積,每個周期做一次
發(fā)表于 10-22 06:11
優(yōu)化boot4乘法器方法
優(yōu)化電路設計:在電路設計中,可以采用更快速的邏輯單元和存儲器元件,優(yōu)化關鍵路徑和信號傳輸路線,從而降低延遲,縮短乘法器的運算周期。
固定位寬:Boot4乘法器可以處理不同位寬的數(shù)據(jù),但是處理不同位寬
發(fā)表于 10-21 12:13
FPGA中乘法器的原理分析
評論