在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Verilog硬件描述語言練習(xí)加法器設(shè)計(jì)

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2022-10-26 08:58 ? 次閱讀

從今天開始新的一章-Circuits,包括基本邏輯電路、時(shí)序電路、組合電路等。

今天更新整個(gè)算術(shù)電路-加法器一小節(jié)題目,包括半加器,全加器等各種加法器。

半加器和全加器的區(qū)別

半加器

半加器是由一個(gè)異或門和一個(gè)與門連接而成的組合邏輯電路。半加器電路有兩個(gè)輸入:A 和 B,它們將兩個(gè)輸入數(shù)字相加并產(chǎn)生一個(gè)進(jìn)位和一個(gè)和。

poYBAGNYhoiAAEdfAABe64Ig858591.jpg


異或門的輸出是兩個(gè)數(shù)的和,而與門的輸出是進(jìn)位。進(jìn)位加法不會(huì)轉(zhuǎn)發(fā),因?yàn)闆]有邏輯門來處理它。因此,這被稱為半加器電路。

邏輯表達(dá)式:

Sum=AXORB
Carry=AANDB

真值表:

pYYBAGNYhpuASa5cAACZFReVYzU488.jpg

全加器

全加器是由兩個(gè)異或門、兩個(gè)與門和一個(gè)或門組成的電路。全加器是將三個(gè)輸入相加并產(chǎn)生兩個(gè)輸出的加法器,前兩個(gè)輸入是 A 和 B,第三個(gè)輸入是進(jìn)位C-IN 的輸入。輸出進(jìn)位指定為 C-OUT,正常輸出指定為 S,即 SUM。

poYBAGNYhq-AUqvRAACA6KkBHdo524.jpg

異或門得到的方程是二進(jìn)制數(shù)字的和。而AND門得到的輸出是加法得到的進(jìn)位。

真值表:

poYBAGNYhr6AKE_SAADK4RzPR3E259.jpg

邏輯表達(dá)式:

SUM=(AXORB)XORCin=(A⊕B)⊕Cin
CARRY-OUT=AANDBORCin(AXORB)=A.B+Cin(A⊕B)

半加器和全加器的區(qū)別:

姓名 參數(shù) 半加器 全加器
1 描述 半加法器是一個(gè)組合邏輯電路,將兩個(gè) 1 位數(shù)字相加。半加器產(chǎn)生兩個(gè)輸入的和。 全加器是一種組合邏輯電路,它對(duì)三個(gè)一位二進(jìn)制數(shù)執(zhí)行加法運(yùn)算。全加器產(chǎn)生三個(gè)輸入和進(jìn)位值的總和。
2 上一次進(jìn)位 不使用前一個(gè)進(jìn)位。 使用前一個(gè)進(jìn)位。
3 輸入 在半加器中,有兩個(gè)輸入位(A,B)。 在全加器中,有三個(gè)輸入位(A、B、C-in)。
4 輸出 輸出是兩位和 和Carry 。 輸出是 2 位的和和 3 位輸入的Carry。
5 用作 半加器電路不能以與全加器電路相同的方式使用。 可以使用全加器電路代替半加器電路。
6 特征 它簡(jiǎn)單易行 全加器的設(shè)計(jì)并不像半加器那么簡(jiǎn)單。
7 邏輯表達(dá)式 半加器的邏輯表達(dá)式為: S=a⊕b ; C=a*b。 全加器的邏輯表達(dá)式為:S=a⊕b⊕Cin;Cout=(ab)+(Cin(a⊕b))。
8 邏輯門 由一個(gè)異或門和一個(gè)與門組成。 由兩個(gè)異或門、兩個(gè) AND 門和一個(gè) OR 門組成。
9 應(yīng)用 用于計(jì)算器,計(jì)算機(jī),數(shù)字測(cè)量設(shè)備等。 用于多位加法,數(shù)字處理器等。

下面開始我們的題目,對(duì)于加法器有個(gè)更深刻的認(rèn)識(shí)~

Problem 65-Hadd

題目說明

創(chuàng)建一個(gè)半加法器。半加器將兩位相加(沒有進(jìn)位)并產(chǎn)生和和進(jìn)位(sum and carry-out)。

模塊端口聲明

moduletop_module(
inputa,b,
outputcout,sum);

題目解析

根據(jù)半加器的邏輯表達(dá)式處理即可。

moduletop_module(
inputlogica,b,
outputlogiccout,sum
);
assigncout=a&b;
assignsum=a^b;
endmodule

pYYBAGNYhtOAS1UGAACM_82lcWs549.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

pYYBAGNYhuKAReJSAAB9M3Y3C70956.jpg

注意圖中無參考波形。

這一題就結(jié)束了。

Problem 66-Fadd

題目說明

創(chuàng)建一個(gè)全加器。全加器將三位相加(包括進(jìn)位)并產(chǎn)生和和進(jìn)位。

模塊端口聲明

moduletop_module(
inputa,b,cin,
outputcout,sum);

題目解析

根據(jù)全加器的邏輯表達(dá)式處理即可。

簡(jiǎn)單解答

moduletop_module(
inputlogica,b,cin,
outputlogiccout,sum);

assignsum=a^b^cin;
assigncout=a&b|cin&(a^b);
endmodule

pYYBAGNYhv-AEByDAACRJ8ms-Iw358.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

poYBAGNYhweANqhTAAFOpwYKImA254.jpg

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

Problem 67-Adder3

題目說明

現(xiàn)在已經(jīng)知道如何構(gòu)建一個(gè)全加器,例化 3 個(gè)實(shí)例來創(chuàng)建一個(gè) 3 位二進(jìn)制波紋進(jìn)位加法器(ripple-carry adder)。加法器將兩個(gè) 3 位數(shù)字和一個(gè)進(jìn)位相加產(chǎn)生一個(gè) 3 位和和進(jìn)位。為了鼓勵(lì)例化全加器,還要輸出紋波進(jìn)位加法器中每個(gè)全加器的進(jìn)位。cout[2] 是最后一個(gè)全加器的最終進(jìn)位,也是通常看到的進(jìn)位。

模塊端口聲明

moduletop_module(
input[2:0]a,b,
inputcin,
output[2:0]cout,
output[2:0]sum);

題目解析

例化正常的全加器,然后處理好進(jìn)位關(guān)系即可,這種波紋進(jìn)位加法器的特點(diǎn)需要理解,最后注意我們要把上一題寫的全加器附在后面。

moduletop_module(
inputlogic[2:0]a,b,
inputlogiccin,
outputlogic[2:0]cout,
outputlogic[2:0]sum
);

full_adderf_adder_u1(.a(a[0]),
.b(b[0]),
.cin(cin),
.cout(cout[0]),
.sum(sum[0])
);

full_adderf_adder_u2(.a(a[1]),
.b(b[1]),
.cin(cout[0]),
.cout(cout[1]),
.sum(sum[1])
);

full_adderf_adder_u3(.a(a[2]),
.b(b[2]),
.cin(cout[1]),
.cout(cout[2]),
.sum(sum[2])
);


endmodule
modulefull_adder(inputlogica,
inputlogicb,
inputlogiccin,
outputlogiccout,
outputlogicsum
);
assignsum=a^b^cin;
assigncout=a&b|cin&(a^b);
endmodule

poYBAGNYhymAO9BtAAEEoBxRh9o316.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

poYBAGNYhzGADo9rAAExg6fGaQo788.jpg

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

Problem 68-Exams/m2014 q4j

題目說明

實(shí)現(xiàn)下面電路:

poYBAGNYh0eAfofwAACDS5ogSXs013.jpg

FA代表全加器。

模塊端口聲明

moduletop_module(
input[3:0]x,
input[3:0]y,
output[4:0]sum);

題目解析

這一題和上一題類似,看懂圖片即可,將X[0]+Y[0]結(jié)果作為SUM[0],進(jìn)位輸入到下一級(jí),以此類推。

moduletop_module(
inputlogic[3:0]x,
inputlogic[3:0]y,
outputlogic[4:0]sum
);

wirelogic[3:0]cout;
full_adderf_adder_u1(.a(x[0]),
.b(y[0]),
.cin(1'd0),
.cout(cout[0]),
.sum(sum[0])
);

full_adderf_adder_u2(.a(x[1]),
.b(y[1]),
.cin(cout[0]),
.cout(cout[1]),
.sum(sum[1])
);

full_adderf_adder_u3(.a(x[2]),
.b(y[2]),
.cin(cout[1]),
.cout(cout[2]),
.sum(sum[2])
);

full_adderf_adder_u4(.a(x[3]),
.b(y[3]),
.cin(cout[2]),
.cout(cout[3]),
.sum(sum[3])
);

assignsum[4]=cout[3];
endmodule

modulefull_adder(inputa,inputb,inputcin,outputcout,outputsum);
assignsum=a^b^cin;
assigncout=a&b|cin&(a^b);
endmodule

poYBAGNYh2OAfmbXAAENMStxyQ4727.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

poYBAGNYh2uAIngVAACGcQxQnGk340.jpg

注意圖中無波形。

這一題就結(jié)束了。

Problem 69-Exams/ece241 2014 q1c

題目說明

假設(shè)有兩個(gè) 2 進(jìn)制 8bit 有符號(hào)數(shù)-a[7:0] 和 b[7:0]。這些數(shù)字相加產(chǎn)生 s[7:0]。還要計(jì)算是否發(fā)生了(有符號(hào)的)溢出。

模塊端口聲明

moduletop_module(
input[7:0]a,
input[7:0]b,
output[7:0]s,
outputoverflow
);

題目解析

當(dāng)兩個(gè)正數(shù)相加產(chǎn)生負(fù)結(jié)果或兩個(gè)負(fù)數(shù)相加產(chǎn)生正結(jié)果時(shí),會(huì)發(fā)生有符號(hào)溢出。有幾種檢測(cè)溢出的方法:可以通過比較輸入和輸出數(shù)的符號(hào)來計(jì)算,或者從位 n 和 n-1 的進(jìn)位推導(dǎo)出。簡(jiǎn)單說就是一是正正相加,產(chǎn)生正溢出;另一種情況是負(fù)負(fù)相減,產(chǎn)生負(fù)溢出。所以在代碼中需要分別考慮這兩種情況,將這兩種情況取或判斷溢出。

moduletop_module(
inputlogic[7:0]a,
inputlogic[7:0]b,
outputlogic[7:0]s,
outputlogicoverflow
);

assigns=a+b;
assignoverflow=a[7]&b[7]&~s[7]|~a[7]&~b[7]&s[7];

endmodule

poYBAGNYh4aAQr_7AACkjRKVwbU954.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

poYBAGNYh42APoH4AAFqBamcqaE437.jpg

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

Problem 70-Adder100

題目說明

題目要求我們創(chuàng)建一個(gè)100bit的二進(jìn)制的加法器,該電路共包含兩個(gè)100bit的輸入和一個(gè)cin, 輸出產(chǎn)生sum和cout。

模塊端口聲明

moduletop_module(
input[99:0]a,b,
inputcin,
outputcout,
output[99:0]sum);

題目解析

沒什么難度,就是位數(shù)多一點(diǎn),其他沒區(qū)別。

moduletop_module(
inputlogic[99:0]a,b,
inputlogiccin,
outputlogiccout,
outputlogic[99:0]sum
);

assign{cout,sum}=a+b+cin;
endmodule

poYBAGNYh5-AeLIjAACZ9Zs_s8A170.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

poYBAGNYh7CARngWAACLNGWH0Sk932.jpg

注意圖中無波形。

這一題就結(jié)束了。

Problem 71-Bcdadd4

題目說明

題目給我們提供了一個(gè)BCD加法器名字為bcd_fadd, 輸入為兩個(gè)4bitBCD碼,一個(gè)cin,產(chǎn)生輸出為sum和cout。

modulebcd_fadd{
input[3:0]a,
input[3:0]b,
inputcin,
outputcout,
output[3:0]sum);

且題目也說明需要我們例化4次bcd_fadd來得到一個(gè)16-bit的BCD加法器(共16bit), 同樣產(chǎn)生sum和cout。

模塊端口聲明

moduletop_module(
input[15:0]a,b,
inputcin,
outputcout,
output[15:0]sum);

題目解析

這個(gè)題目難度不大,主要考察例化語法,但是我們需要看下BCD加法器結(jié)構(gòu)。

moduletop_module(
inputlogic[15:0]a,b,
inputlogiccin,
outputlogiccout,
outputlogic[15:0]sum);

wirelogic[2:0]cout_temp;

bcd_faddu1_bcd_fadd(
.a(a[3:0]),
.b(b[3:0]),
.cin(cin),
.cout(cout_temp[0]),
.sum(sum[3:0])
);
bcd_faddu2_bcd_fadd(
.a(a[7:4]),
.b(b[7:4]),
.cin(cout_temp[0]),
.cout(cout_temp[1]),
.sum(sum[7:4])
);
bcd_faddu3_bcd_fadd(
.a(a[11:8]),
.b(b[11:8]),
.cin(cout_temp[1]),
.cout(cout_temp[2]),
.sum(sum[11:8])
);
bcd_faddu4_bcd_fadd(
.a(a[15:12]),
.b(b[15:12]),
.cin(cout_temp[2]),
.cout(cout),
.sum(sum[15:12])
);


endmodule

poYBAGNYh8eAaDMaAAEJ-xuQ_gU870.jpg

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

poYBAGNYh9qAEe22AAF_t3wutT8682.jpg

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會(huì)對(duì)比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會(huì)變紅。

這一題就結(jié)束了。

總結(jié)

今天的幾道題就結(jié)束了,整體比較簡(jiǎn)單,沒有復(fù)雜的代碼,沒有復(fù)雜的設(shè)計(jì)思路,主要在于加法器的設(shè)計(jì)。

最后我這邊做題的代碼也是個(gè)人理解使用,有錯(cuò)誤歡迎大家批評(píng)指正,祝大家學(xué)習(xí)愉快~






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110190
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47416
  • 加法器
    +關(guān)注

    關(guān)注

    6

    文章

    183

    瀏覽量

    30164

原文標(biāo)題:HDLBits: 在線學(xué)習(xí) SystemVerilog(十二)-Problem 65-71(加法器)

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    加法器

    請(qǐng)問下大家,,進(jìn)位選擇加法器和進(jìn)位跳躍加法器的區(qū)別是啥啊?我用Verilog實(shí)現(xiàn)16位他們的加法器有什么樣的不同啊?還請(qǐng)知道的大神告訴我一下。。
    發(fā)表于 10-20 20:23

    什么是加法器加法器的原理是什么 ?

    什么是加法器加法器的原理是什么 反相加法器等效原理圖解析
    發(fā)表于 03-11 06:30

    Verilog硬件描述語言描述.

    本書簡(jiǎn)要介紹了Verilog硬件描述語言的基礎(chǔ)知識(shí),包括語言的基本內(nèi)容和基本結(jié)構(gòu) ,以及利用該語言在各種層次上對(duì)數(shù)字系統(tǒng)的建模方法
    發(fā)表于 03-27 23:44 ?101次下載

    加法器,加法器是什么意思

    加法器,加法器是什么意思 加法器 :  加法器是為了實(shí)現(xiàn)加法的。  即是產(chǎn)生數(shù)的和的裝置。加數(shù)和被加數(shù)為輸入,和數(shù)與
    發(fā)表于 03-08 16:48 ?5581次閱讀

    verilog硬件描述語言課程講義

    verilog硬件描述語言課程講義
    發(fā)表于 05-21 15:01 ?33次下載
    <b class='flag-5'>verilog</b><b class='flag-5'>硬件</b><b class='flag-5'>描述語言</b>課程講義

    Verilog硬件描述語言參考手冊(cè)

    Verilog硬件描述語言參考手冊(cè),Verilog語法內(nèi)容介紹
    發(fā)表于 11-12 17:20 ?0次下載

    Verilog HDL硬件描述語言

    Verilog HDL硬件描述語言 有需要的下來看看
    發(fā)表于 12-29 15:31 ?0次下載

    Verilog硬件描述語言

    VHDL語言編程學(xué)習(xí)Verilog硬件描述語言
    發(fā)表于 09-01 15:27 ?0次下載

    Verilog HDL硬件描述語言

    Verilog HDL硬件描述語言,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-11 11:20 ?11次下載

    基于Verilog硬件描述語言的IEEE標(biāo)準(zhǔn)硬件描述語言資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于Verilog硬件描述語言的IEEE標(biāo)準(zhǔn)硬件描述語言資料合集免費(fèi)下載:1995、2001、2005;Syst
    發(fā)表于 06-18 08:00 ?10次下載

    加法器是如何實(shí)現(xiàn)的

     verilog實(shí)現(xiàn)加法器,從底層的門級(jí)電路級(jí)到行為級(jí),本文對(duì)其做出了相應(yīng)的闡述。
    發(fā)表于 02-18 14:53 ?6286次閱讀
    <b class='flag-5'>加法器</b>是如何實(shí)現(xiàn)的

    加法器設(shè)計(jì)代碼參考

    介紹各種加法器Verilog代碼和testbench。
    發(fā)表于 05-31 09:23 ?19次下載

    使用Verilog/SystemVerilog硬件描述語言練習(xí)數(shù)字硬件設(shè)計(jì)

    HDLBits 是一組小型電路設(shè)計(jì)習(xí)題集,使用 Verilog/SystemVerilog 硬件描述語言 (HDL) 練習(xí)數(shù)字硬件設(shè)計(jì)~
    的頭像 發(fā)表于 08-31 09:06 ?1737次閱讀

    加法器的原理及采用加法器的原因

    有關(guān)加法器的知識(shí),加法器是用來做什么的,故名思義,加法器是為了實(shí)現(xiàn)加法的,它是一種產(chǎn)生數(shù)的和的裝置,那么加法器的工作原理是什么,為什么要采用
    的頭像 發(fā)表于 06-09 18:04 ?5227次閱讀

    串行加法器和并行加法器的區(qū)別?

    串行加法器和并行加法器是兩種基本的數(shù)字電路設(shè)計(jì),用于執(zhí)行二進(jìn)制數(shù)的加法運(yùn)算。它們?cè)谠O(shè)計(jì)哲學(xué)、性能特點(diǎn)以及應(yīng)用場(chǎng)景上有著明顯的區(qū)別。
    的頭像 發(fā)表于 05-23 15:06 ?2808次閱讀
    主站蜘蛛池模板: 在线a网| 亚洲男人天堂2021| 在线观看一级片| 99久久99久久精品免费看子伦| 成人看片在线观看| aaaa大片| 天天操夜夜爱| 黄.www| 亚洲一区三区| 九九热精品视频在线播放| 爱看精品福利视频观看| 福利久久| 正在播放亚洲一区| 97色噜噜| 日本一区二区视频在线观看| 日本免费在线视频| 夜色福利久久久久久777777| 天堂成人网| 男女免费网站| 国产美女动态免费视频| 午夜免费观看| 国产最好的精华液网站| 久久人人青草97香蕉| 不卡免费在线视频| 色偷偷视频| 黄色大片日本| 午色影院| 成人综合网站| 男女午夜剧场| 日韩欧美色| 国产精品igao在线观看樱花日本| 五月天婷亚洲| 成人看的午夜免费毛片| 亚洲免费视频网址| 午夜三级国产精品理论三级| 欧美大香a蕉免费| 最近高清免费观看视频大全 | 日本一区二区三区在线 视频观看免费| 高清视频 一区二区三区四区| 免费网站看黄| 四虎最新紧急入口|