若对你有帮助,记得点赞、关注我哦!
博客总领目录请看这篇,不看后悔
软件工程专业大学四年学什么_大学近代史学分是多少-CSDN博客https://blog.csdn.net/qq_41587612/article/details/104362661B站同名up猪,欢迎关注我的账号鸽子不二的个人空间-鸽子不二个人主页-哔哩哔哩视频哔哩哔哩鸽子不二的个人空间,提供鸽子不二分享的视频、音频、文章、动态、收藏等内容,关注鸽子不二账号,第一时间了解UP主动态。https://space.bilibili.com/204913846
1. 实验题目
一位全加器的设计与仿真
2. 实验目的
设计一个一位全加器模型并编写测试程序进行仿真测试。
3. 实验要求
设计模块名称 fulladd,输入端口 a,b,c_in。输出端口 sum,c_out。编写的测试程序要保证测试充分。
利用公式:
• sum = a⊕b⊕c_in
• c_out =ab + (a⊕b) c_in
4. 程序代码
VerilogHDL代码:
module full_adder(a,b,c_in,c_out,sum);
input a,b,c_in;
output c_out,sum;
wire sum,c_out;
assign {c_out,sum}=a+b+c_in;
endmodule
Test bench仿真代码:
`timescale 1ns/1ns
module full_adder_tb;
reg a,b,c_in;
wire c_out,sum;
integer i,j;
parameter delay=100;
full_adder U1(a,b,c_in,c_out,sum);
initial
begin
a=0;b=0;c_in=0;
for(i=0;i<2;i=i+1)
for(j=0;j<2;j=j+1)
begin
a=i;b=j;c_in=0;
#delay;
end
for(i=0;i<2;i=i+1)
for(j=0;j<2;j=j+1)
begin
a=i;b=j;c_in=1;
#delay;
end
end
endmodule
5. 运行结果
全加器包含两个半加器和一个或门,半加器的端口a和b分别是两位相加的二进制输入信号,C是进位输出信号,构成的全加器中,A、B、C分别是该一位全加器的三个二进制输入端,Ci是进位端,Si是相加和输出信号的和,下面是波形图所对应的真值表:
信号输入端 | 信号输出端 | |||
Ai | Bi | Ci | Si | Ci |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |