五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Verilog實(shí)現(xiàn)加法器樹(shù)乘法器以及三目運(yùn)算符“?”的使用(通俗易懂,一目了然)

2020-08-05 19:15 作者:小土豆逗土豆  | 我要投稿

這篇文章主要介紹了一種典型電路設(shè)計(jì)——加法器樹(shù)乘法器,以及三目運(yùn)算符“?”的用法

一、加法器樹(shù)乘法器

? 加法器樹(shù)乘法器設(shè)計(jì)思想是“先移位,后相加”, 并且加法運(yùn)算采用加法器樹(shù)的形式。

? 以4位加法器樹(shù)乘法器為例,下圖為運(yùn)算過(guò)程:

運(yùn)算過(guò)程

下面是用Verilog語(yǔ)言實(shí)現(xiàn)一個(gè)4位加法器樹(shù)乘法器:

/=======4位加法器樹(shù)乘法器================

module mul_addtree (mul_a, mul_b, mul_out);

? input [3:0] mul_a, mul_b;? //被乘數(shù)mul_a,乘數(shù)mul_b;

? output [3:0] mul_out;

??

? wire [7:0] mul_out;

? wire [7:0] stored0, stored1, stored2, stored3;

? wire [7:0] add01, add23;

??

? assign stored3 = mul_b[3]?{1'b0,mul_a,3'b0}:8'b0; //乘數(shù)的第四位與被乘數(shù)相乘,結(jié)果左移三位;

? assign stored2 = mul_b[2]?{2'b0,mul_a,2'b0}:8'b0; //乘數(shù)的第三位與被乘數(shù)相乘,左移兩位;

? assign stored1 = mul_b[1]?{3'b0,mul_a,1'b0}:8'b0; //乘數(shù)的第二位與被乘數(shù)相乘,左移以為;

? assign stored0 = mul_b[0]?{4'b0,mul_a,}:8'b0;? ? ?//乘數(shù)的最低位與被乘數(shù)相乘,不移位;

? assign add01 = stored1 + stored0;

? assign add23 = stored3 + stored2;

? assign mul_out = add01 + add23;

endmodule

///////////////////////////////////////////////////

測(cè)試代碼如下:

module mult_addtree_tb;

? reg [3:0] mult_a;

? reg [3:0] mult_b;

? wire [7:0] mult_out;

??

? mul_addtree U1(.mul_a(mult_a), .mul_b(mult_b), .mul_out(mult_out));

? initial begin

? mult_a = 0;

? mult_b = 0;

? repeat(9)?

? ? ?begin

? #20 mult_a = mult_a + 1;

? mult_b = mult_b + 1;

? ? ?end

? end?

endmodule

///////////////////////////////////////

仿真結(jié)果:

仿真時(shí)序圖

在上面程序中有一個(gè)語(yǔ)句 assign stored3 = mul_b[3]?{1'b0,mul_a,3'b0}:8'b0 ,下面就介紹一下這個(gè)語(yǔ)句中出現(xiàn)的三目運(yùn)算符?

二、三目運(yùn)算符(ternary operator)

  1. 語(yǔ)法格式:

    <condition> ? <if true> : <if falase>

  2. ton[23] ? clkdivider-1 :clkdivider/2-1

    轉(zhuǎn)化為 if state (不正確的語(yǔ)法,但是能很好的解釋意思)

    if ton[23] is 1, counter = clkdivider-1;

    else counter = clkdivider/2-1

    (很好理解吧!)

    那么程序中?assign stored3 = mul_b[3]?{1'b0,mul_a,3'b0}:8'b0 描述的是:如果乘數(shù)的第三位mul_b[3]為“1”,stored ={1'b0,mul_a,3'b0};如果mul_b[3]=0,那么stored= 8'b0

另外,當(dāng)?表示狀態(tài)時(shí),等效于高阻態(tài):Z

////////////////////////////////////////////////喜歡請(qǐng)三連///////////////////////////////////


Verilog實(shí)現(xiàn)加法器樹(shù)乘法器以及三目運(yùn)算符“?”的使用(通俗易懂,一目了然)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宣威市| 兴城市| 玛多县| 崇阳县| 保定市| 关岭| 南木林县| 锦屏县| 和平县| 邵阳县| 资溪县| 浑源县| 亚东县| 长葛市| 沈阳市| 霍林郭勒市| 苍南县| 永兴县| 奉化市| 长岭县| 泽普县| 红安县| 永和县| 隆子县| 连云港市| 同江市| 辽阳市| 洛扎县| 兴化市| 吉水县| 泗阳县| 东阳市| 河北区| 洛宁县| 尖扎县| 宁德市| 北辰区| 鲁山县| 贡觉县| 屏南县| 台北县|