1位二進(jìn)制數(shù)全加器
1位二進(jìn)制數(shù)全加器是一個(gè)具有三個(gè)輸入端和兩個(gè)輸出端的,能對(duì)被加數(shù)、加數(shù)以及來(lái)自低位的進(jìn)位相加得到“全加和”與“全加進(jìn)位”。
它的真值表如下:
Ai | Bi | Ci-1 | Ci | Si |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
它的邏輯表達(dá)式如下:
Ci = AiBi + Ci-1 ( Ai ^ Bi )
Si = Ai ^ Bi ^ Ci
Verilog HDL實(shí)現(xiàn)
module exp1_fulladder (
input d1,
input d0,
input q1,
output out,
output q
);
//按照邏輯表達(dá)式輸出即可
assign out = d1 ^ d0 ^ q1;
assign q = (d1&d0)||(q1&&(d1^d0));
endmodule
原理圖實(shí)現(xiàn)
仿真
從仿真的結(jié)果來(lái)看,Ci與Si的結(jié)果與真值表相符合。
上板驗(yàn)證
我使用的板子是實(shí)驗(yàn)室的DE2-115開發(fā)板,開發(fā)板上面有撥動(dòng)開關(guān)與LED,可以使用三個(gè)撥動(dòng)開關(guān)來(lái)表示1位全加器的輸入,兩個(gè)LED表示兩個(gè)輸出的高低電平。
以下是板子的撥動(dòng)開關(guān)與LED的引腳:
在Quartus里面,配置引腳,將三個(gè)輸入口與三個(gè)Switch開關(guān)相連,兩個(gè)輸出口與LED引腳相連:
將板子接上電源,打開開關(guān),將USB線連接板子與電腦,點(diǎn)擊燒錄,得到以下現(xiàn)象:
上板的現(xiàn)象也是與真值表相符合的。
擴(kuò)展:4位全加器
前面制作了1位全加器,接下來(lái)可以使用四個(gè)1位全加器,做一個(gè)4位全加器。
將1位全加器的q與q1首尾相連,開頭的輸入進(jìn)位接地,最后一個(gè)全加器的輸出的進(jìn)位表示是否溢出。按照上圖連接,將實(shí)現(xiàn)4位全加器,并判斷是否溢出。
使用VerilogHDL語(yǔ)言實(shí)現(xiàn)4位全加器的話,原理與上面一樣。
代碼如下:
module exp1_fulladder_4bits(
input [3:0] d1,
input [3:0] d0,
output [3:0] out,
output q
);
wire q1;
assign q1 = 1'b0;
wire [2:0] _q;
exp1_fulladder u_exp1_fulladder(
.d1 (d1[0]),
.d0 (d0[0]),
.q1 (q1),
.out (out[0]),
.q (_q[0])
);
exp1_fulladder u_exp1_fulladder_2(
.d1 (d1[1]),
.d0 (d0[1]),
.q1 (_q[0]),
.out (out[1]),
.q (_q[1])
);
exp1_fulladder u_exp1_fulladder_3(
.d1 (d1[2]),
.d0 (d0[2]),
.q1 (_q[1]),
.out (out[2]),
.q (_q[2])
);
exp1_fulladder u_exp1_fulladder_4(
.d1 (d1[3]),
.d0 (d0[3]),
.q1 (_q[2]),
.out (out[3]),
.q (q)
);
endmodule
這一部分筆者使用的是小腳丫Max10-02SCM系列的芯片做的,引腳分布與上面的板子不一樣。但都是控制8位輸入(兩個(gè)4位二進(jìn)制數(shù))高低電平,然后使用LED表示全加器輸出。
四位全加器的實(shí)驗(yàn)現(xiàn)象如下:
當(dāng)輸入的數(shù)分別為0001與0010,結(jié)果為0011,沒有溢出,只有最低為兩個(gè)燈亮:
當(dāng)輸入的數(shù)分別為1001與1100,結(jié)果為0101,有溢出,溢出燈亮,第一位與第三位亮:
實(shí)驗(yàn)總結(jié)
本次實(shí)驗(yàn)使用FPGA制作了全加器,并從1位全加器擴(kuò)展到了4位。復(fù)習(xí)了前面學(xué)習(xí)的數(shù)電知識(shí),以及更進(jìn)一步地練習(xí)了verilog語(yǔ)法與fpga的使用。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-723693.html
另外發(fā)現(xiàn),藍(lán)色LED與白色LED的工作功率似乎比紅,綠,黃三色的LED大。在接上限流電阻的時(shí)候白燈與藍(lán)燈會(huì)不亮。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-723693.html
到了這里,關(guān)于基于Verilog與器件圖的1位全加器實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!