Verilog设计4位CLA加法器电路,并仿真测试

这篇具有很好参考价值的文章主要介绍了Verilog设计4位CLA加法器电路,并仿真测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设计4位CLA加法器电路,并仿真测试

使用Quartus+modelsim完成本次设计

Verilog设计4位CLA加法器电路,并仿真测试

分析

对于超前进位加法器 (CLA)加法器,它不同于普通加法器。如果对于两个1024位的数字进行相加,那么普通的串行加法器因为只有算出 C x C_{x} Cx才能继续计算 C x + 1 C_{x+1} Cx+1,这会导致整体的效率非常低。如果使用超前进位加法器,那么所有的 C x C_{x} Cx会同时计算得到,每级进位由附加的组合电路产生,高位的运算不需要等待低位运算完成,大大加快了整体的运行速度。对于每一个进位 C x C_{x} Cx的计算方法如图提示可以轻松得到。

题目中也给出了端口定义,及输入a[3:0],b[3:0],c0;输出s[3:0],c4

代码实现

//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对CLA4进行验证,选取部分值进行测试。

`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

结果

对代码进行编译,查看RTL Viewer,观察电路结构如下图所示,通过对比,与题目中的提示相同
Verilog设计4位CLA加法器电路,并仿真测试

在modelsim中观察波形以及monitor输出如下图所示,结果显示 a + b + c 0 = { c 4 , s } a+b+c0=\{c4,s\} a+b+c0={c4,s},及实现了目标功能
Verilog设计4位CLA加法器电路,并仿真测试

下图位monitor输出结果,均为2进制表示最右边结果为 { c 4 , s } \{c4,s\} {c4,s},及进位加4bit结果
Verilog设计4位CLA加法器电路,并仿真测试文章来源地址https://www.toymoban.com/news/detail-441027.html

到了这里,关于Verilog设计4位CLA加法器电路,并仿真测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • verilog手撕代码2——各种加法器介绍——真值表、表达式、电路图

    2023.4.25 两个数直接相加,无进位,真值表如下 两个数和进位一起相加,根据真值表画出卡诺图,对表达式进行化简 用两个半加器来组成一个全加器 原理 : N bit的加法器由N个1 bit的全加器组成 。从低位开始,逐位相加, 每一bit需要等待前面计算出来得到进位,才能进行下一

    2024年02月01日
    浏览(35)
  • FPGA实验一:层次法设计组合电路(加法器)

    目录 一、实验目的 二、实验要求 三、实验代码 四、实验结果及分析

    2024年02月12日
    浏览(30)
  • Verilog数字系统设计——带进位的8位加法器

    试分别使用门级原语和always 语句设计带进位的8位加法器,要求编制测试模块对实现的逻辑功能进行完整的测试; 使用门级原语设计时注意先在草稿上做出该加法器的门级设计; 如有余力可以进一步使用门级原语设计出带超前进位链的8位加法器(期末有加分); 实验提交

    2024年02月15日
    浏览(33)
  • Verilog 加法器/减法器

    目录 1位加法器 8位加法器 8位补码加减法器  32位补码加减法器       

    2024年02月11日
    浏览(30)
  • 加法器电路

    图3 图三中,由虚短知: V- = V+ = 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 + (V2 – V-)/R2 = (V- –Vout)/R3 ……b 代入a式,b式变为V1/R1 + V2/R2 = Vout/R3 如果取R1=R2=R3,则上式变为-Vout=V1+V2,这就是传说中的加法器了。 图4 请看图四。因为

    2024年02月14日
    浏览(22)
  • 运算放大电路(三)-加法器

    加法器 由虚短知: V- = V+ = 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 + (V2 – V-)/R2 = (Vout – V-)/R3 ……b 代入a式,b式变为 V1/R1 + V2/R2 = Vout/R3 如果取 R1=R2=R3 则上式变为 Vout=V1+V2 这就是传说中的加法器了。 因为虚断,运放同向端没

    2024年02月04日
    浏览(39)
  • Verilog实现超前进位加法器

    在CPU等对性能要求较高的电路中,一般都会采用超前进位加法器,因为超前进位加法器的延时相对来说比较小。下面讲述超前进位加法器的原理: 我们知道,一个三输入,二输出的全加器,其逻辑关系为 S = A ⊕ B ⊕ C i n S=Aoplus Boplus C_{in} S = A ⊕ B ⊕ C in ​ C o u t = ( A B ) ∣

    2023年04月08日
    浏览(26)
  • VHDL语言基础-组合逻辑电路-加法器

    目录 加法器的设计: 半加器: 全加器: 加法器的模块化: 四位串行进位全加器的设计: 四位并行进位全加器: 串行进位与并行进位加法器性能比较: 8位加法器的实现: 在数字系统中,常需要进行加、减、乘、除等运算,而乘、除和减法运算均可变换为加法运算,故加法

    2024年02月04日
    浏览(35)
  • 【verilog】6位二进制数加法器

    1:掌握无符号二进制数加法器的设计方法。 2:掌握使用Modelsim对verilog程序进行仿真和验证的方法。 二进制加法器由全加器构成,全加器功能和电路图如下图所示。 全加器对两个1位二进制数和1位来自低位的进位做加法运算,产生1位和和1位向更高位的进位。图中(a)是全加

    2024年02月06日
    浏览(31)
  • 【FPGA】Verilog:BCD 加法器的实现 | BCD 运算 | Single-level 16 bit 超前进位加法器 | 2-level 16-bit 超前进位加法器

    0x00 BCD 运算 在 BCD 中,使用4位值作为操作数,但由于只表示 0 到 9 的数字,因此只使用 0000 到 1001 的二进制数,而不使用 1010 到 1111 的二进制数(don\\\'t care)。 因此,不能使用常规的 2\\\'complement 运算来计算,需要额外的处理:如果 4 位二进制数的运算结果在 1010 到 1111 的范围

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包