設(shè)計(jì)4位CLA加法器電路,并仿真測(cè)試
使用Quartus+modelsim完成本次設(shè)計(jì)
分析
對(duì)于超前進(jìn)位加法器 (CLA)加法器,它不同于普通加法器。如果對(duì)于兩個(gè)1024位的數(shù)字進(jìn)行相加,那么普通的串行加法器因?yàn)橹挥兴愠?span id="n5n3t3z" class="katex--inline"> C x C_{x} Cx?才能繼續(xù)計(jì)算 C x + 1 C_{x+1} Cx+1?,這會(huì)導(dǎo)致整體的效率非常低。如果使用超前進(jìn)位加法器,那么所有的 C x C_{x} Cx?會(huì)同時(shí)計(jì)算得到,每級(jí)進(jìn)位由附加的組合電路產(chǎn)生,高位的運(yùn)算不需要等待低位運(yùn)算完成,大大加快了整體的運(yùn)行速度。對(duì)于每一個(gè)進(jìn)位 C x C_{x} Cx?的計(jì)算方法如圖提示可以輕松得到。
題目中也給出了端口定義,及輸入a[3:0],b[3:0],c0;輸出s[3:0],c4
代碼實(shí)現(xiàn)
//4bit CLA
module CLA4(
input [3:0] a,
input [3:0] b,
input c0,
output [3:0] s,
output c4
);
wire [4:0] g,p,c;
assign c[0] = c0;
assign p = a^b;
assign g = a&b;
assign c[1] = g[0]|(p[0]&c[0]);
assign c[2] = g[1]|(p[1]&(g[0]|(p[0]&c[0])));
assign c[3] = g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));
assign c[4] = g[3]|(p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));
assign s = p[3:0]^c[3:0];
assign c4 = c[4];
endmodule
Testbench
編寫testbench對(duì)CLA4進(jìn)行驗(yàn)證,選取部分值進(jìn)行測(cè)試。
`timescale 1 ns/ 1 ns
module CLA4_vlg_tst();
// constants
// general purpose registers
// test vector input registers
reg [3:0] a;
reg [3:0] b;
reg c0;
// wires
wire c4;
wire [3:0] s;
// assign statements (if any)
CLA4 i1 (
// port map - connection between master ports and signals/registers
.a(a),
.b(b),
.c0(c0),
.c4(c4),
.s(s)
);
initial
begin
a = 4'b1111;
b = 4'b1111;
c0 = 1'b0;
#10 a = 4'b1010;
#10 c0 = 1'b1;
#10 b = 4'b0100;
#10 b = 4'b0101;
#10 b = 4'b0110;
#10 b = 4'b0111;
#50 $stop;
end
initial
$monitor($time,": a+b+cin=%b+%b+%b=%b%b",a,b,c0,c4,s);
endmodule
結(jié)果
對(duì)代碼進(jìn)行編譯,查看RTL Viewer,觀察電路結(jié)構(gòu)如下圖所示,通過(guò)對(duì)比,與題目中的提示相同
在modelsim中觀察波形以及monitor輸出如下圖所示,結(jié)果顯示
a
+
b
+
c
0
=
{
c
4
,
s
}
a+b+c0=\{c4,s\}
a+b+c0={c4,s},及實(shí)現(xiàn)了目標(biāo)功能文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-441027.html
下圖位monitor輸出結(jié)果,均為2進(jìn)制表示最右邊結(jié)果為
{
c
4
,
s
}
\{c4,s\}
{c4,s},及進(jìn)位加4bit結(jié)果文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-441027.html
到了這里,關(guān)于Verilog設(shè)計(jì)4位CLA加法器電路,并仿真測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!