音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

列舉了三個(gè)本人經(jīng)常用的乘法器實(shí)現(xiàn)方法,為后來者以及同輩參考

作者:fairlead 欄目:IC設(shè)計(jì)
列舉了三個(gè)本人經(jīng)常用的乘法器實(shí)現(xiàn)方法,為后來者以及同輩參考
乘法器有很多種實(shí)現(xiàn)方法,這里列舉了三個(gè)本人經(jīng)常用的方法,為后來者以及同輩參考!
ASIC實(shí)現(xiàn)資源何其重要,所以盡可能的要用串行和復(fù)用的思想!

// ----------------------------------------------------------------------
// File NAME : multiply_unsigned_parallel.v
// Author : Fairlead
// Email : fairlead@163.com
// ----------------------------------------------------------------------
// Purpose : multiply with serial implementation
//           - 8 bit input
//           - 16 bit OUTPUT
//           - input range: 0~255
//           - OUTPUT range: 0~65025
// ----------------------------------------------------------------------

MODULE multiply_unsigned_parallel (
        clk_i,
        reset_n_i,

        x_i,           // Multiplier
        y_i,           // Multiplicand

        z_o);          // Computation result out

input                   clk_i;
input                   reset_n_i;
input   [7:0]           x_i;            // Multiplier
input   [7:0]           y_i;            // Multiplicand

OUTPUT  [15:0]          z_o;            // Computation result out
reg     [15:0]          z_o;            

wire    [9:0]           adder1_left;
wire    [9:0]           adder1_right;
wire    [9:0]           adder1;
wire    [11:0]          adder2_left;
wire    [11:0]          adder2_right;
wire    [11:0]          adder2;
wire    [13:0]          adder3_left;
wire    [13:0]          adder3_right;
wire    [13:0]          adder3;
wire    [15:0]          adder4_left;
wire    [15:0]          adder4_right;
wire    [15:0]          adder4;
wire    [11:0]          adder5;
wire    [15:0]          adder6;
wire    [15:0]          adder7;

// Adder1
assign adder1_left  = (y_i[0]) ? {2'd0,x_i}      : 0;
assign adder1_right = (y_i[1]) ? {1'd0,x_i,1'd0} : 0;
assign adder1 = adder1_left + adder1_right;             //10bit adder
// Adder2
assign adder2_left  = (y_i[2]) ? {2'd0,x_i,2'd0} : 0;
assign adder2_right = (y_i[3]) ? {1'd0,x_i,3'd0} : 0;
assign adder2 = adder2_left + adder2_right;             //12bit adder
// Adder3
assign adder3_left  = (y_i[4]) ? {2'd0,x_i,4'd0} : 0;
assign adder3_right = (y_i[5]) ? {1'd0,x_i,5'd0} : 0;
assign adder3 = adder3_left + adder3_right;             //14bit adder
// Adder4
assign adder4_left  = (y_i[6]) ? {2'd0,x_i,6'd0} : 0;
assign adder4_right = (y_i[7]) ? {1'd0,x_i,7'd0} : 0;
assign adder4 = adder4_left + adder4_right;             //16bit adder

// Adder5
assign adder5 = {2'd0,adder1} + adder2;                 //12bit adder
// Adder6
assign adder6 = {2'd0,adder3} + adder4;                 //16bit adder

// Adder7
assign adder7 = {4'd0,adder5} + adder6;                 //16bit adder

// OUTPUT generation(register out)
always @(posedge clk_i or negedge reset_n_i) begin
  if (!reset_n_i)
    z_o <= 0;
  else
    z_o <= adder7;
end

endMODULE

// ----------------------------------------------------------------------
// File NAME : multiply_unsigned_serial.v
// Author : Fairlead
// Email : fairlead@163.com
// ----------------------------------------------------------------------
// Purpose : multiply with serial implementation
//           - 8 bit input
//           - 16 bit OUTPUT
//           - input range: 0~255
//           - OUTPUT range: 0~65025
// ----------------------------------------------------------------------

MODULE multiply_unsigned_serial (
        clk_i,
        reset_n_i,

        start_i,       // Start demodulation (PULSE)
        x_i,           // Multiplier
        y_i,           // Multiplicand

        finish_o,      // Complete computation (PULSE)
        z_o);          // Computation result out

input                   clk_i;
input                   reset_n_i;
input      &nb
2樓: >>參與討論
liu1875
我不懂?dāng)?shù)字,
那位兄弟來評評,我加酷了,


支持原創(chuàng)

3樓: >>參與討論
rickyice
re
我以前設(shè)計(jì)過高速、低功耗booth wallace tree乘法器

4樓: >>參與討論
yakinlu
re
不錯(cuò),花了心思的,把位寬參數(shù)化就更好了。


* - 本貼最后修改時(shí)間:2006-3-23 17:17:31 修改者:yakinlu

5樓: >>參與討論
逗號
最好配上相應(yīng)文檔說明
有經(jīng)驗(yàn)的人看這段code會(huì)很清晰。但是對于初學(xué)者來說,最好配上相應(yīng)文檔,能夠?qū)υO(shè)計(jì)思路了解的更清晰。

6樓: >>參與討論
amormio124
直言
第一種比較常規(guī),但好像有點(diǎn)慢,而且大,
后面的完全不能實(shí)用,很少有人那樣寫乘法器
再者組合邏輯和時(shí)序邏輯寫在一起不好

booth encoding
wallace tree
sign bit reduction
是乘法器的基礎(chǔ),入門而已

7樓: >>參與討論
wwj663
re
最好能備注一下

8樓: >>參與討論
我是浪子
用dc跑一下
用dc跑一下,比較一下調(diào)用design ware的結(jié)果比較清楚!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教高低壓轉(zhuǎn)化電路
一個(gè)LED 的控制電路,請大家看看
大家覺得搞arm嵌入式程序有前途還是去搞FPGA好?
有那位知到深圳附近哪有小的IC封裝廠嗎?
請教關(guān)于hspice模型自動(dòng)選擇的問題????????????
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號