名称:串行进位和并行进位加法器Verilog代码Vivado仿真(文末获取)
软件:Vivado
语言:Verilog
代码功能:
回顾1位全加器的设计,自学串行进位和并行进位加法器。在此基础之上设计串行进位和并行进位的32位加法器,使用 Verilog实现该设计,并写出相应的 testbench对其进行测试。请观察并定量分析不同种加法器的计算延时情况。(参考资料:课本5.2.1章:加法器)
要求提交实验报告,包括1.两种加法器的 verilog代码2.测试数据及输出结果3.计算延时的分析与讨论
串行加法器
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. 时序仿真图
6. 延时分析
并行加法器
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. 时序仿真图
6. 延时分析
可见并行的延迟小于串行
部分代码展示:
//将4个加法器并联组成16位并行加法器 module adder_16(adder_A, adder_B, CIN, COUT, S); input [15:0] adder_A;//输入A input [15:0] adder_B;//输入B input CIN;//输入进位 output COUT;//输出进位 output [15:0] S;//输出和 //定义中间进位 wire CIN_1; wire CIN_2; wire CIN_3; wire COUT_signal; wire [15:0] S_signal; assign COUT = COUT_signal;//输出进位 assign S = S_signal;//输出和 //调用4位加法器 adder_4bit i1_adder_4bit ( .A(adder_A[3:0]), .B(adder_B[3:0]), .CIN(CIN), .COUT(CIN_1), .S(S_signal[3:0]) ); //调用4位加法器 adder_4bit i2_adder_4bit ( .A(adder_A[7:4]), .B(adder_B[7:4]), .CIN(CIN_1), .COUT(CIN_2), .S(S_signal[7:4]) ); //调用4位加法器 adder_4bit i3_adder_4bit ( .A(adder_A[11:8]), .B(adder_B[11:8]), .CIN(CIN_2), .COUT(CIN_3), .S(S_signal[11:8]) ); //调用4位加法器 adder_4bit i4_adder_4bit ( .A(adder_A[15:12]), .B(adder_B[15:12]), .CIN(CIN_3), .COUT(COUT_signal), .S(S_signal[15:12]) ); endmodule
源代码
扫描文章末尾的公众号二维码