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


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