用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
CSDN
1.
https://m.blog.csdn.net/2301_80417284/article/details/140063478
半加器模块设计
半加器是最基本的加法器模块,用于完成两个一位二进制数的加法运算。其Verilog实现代码如下:
module half_adder(A,B,Cout,Sum);
input A;
input B;
output Cout;
output Sum;
assign {Cout,Sum} = A + B;
endmodule
全加器模块设计
全加器是在半加器的基础上发展而来的,用于完成三个一位二进制数的加法运算。其Verilog实现代码如下:
module full_adder(A,B,Cin,Sum,Cout);
input A;
input B;
input Cin;
output Sum;
output Cout;
wire h0_Cout;
wire h1_Cout;
wire h0_Sum;
half_adder half_adder_inst0(
.A(A),
.B(B),
.Cout(h0_Cout),
.Sum(h0_Sum)
);
half_adder half_adder_inst1(
.A(h0_Sum),
.B(Cin),
.Cout(h1_Cout),
.Sum(Sum)
);
assign Cout = (h0_Cout | h1_Cout) ;
endmodule
仿真测试
为了验证全加器模块的功能正确性,可以编写相应的仿真测试代码。以下是全加器的测试代码示例:
`timescale 1ns/1ns
module full_adder_tb;
reg A;
reg B;
reg Cin;
wire Sum;
wire Cout;
full_adder full_adder_inst(
.A(A),
.B(B),
.Cin(Cin),
.Sum(Sum),
.Cout(Cout)
);
initial begin
A <= 1'd0;
B <= 1'd0;
Cin <= 1'd0;
#2000;
$stop;
end
always #10 A = {$random}%2;
always #10 B = {$random}%2;
always #10 Cin = {$random}%2;
endmodule
仿真结果如下图所示:
引脚绑定与MCS程序固化
在实际硬件实现中,需要进行引脚绑定和MCS程序固化。以下是相关的配置信息:
热门推荐
紧急呼叫器如何保障安全响应?
直角梯形:解析几何中的特殊图形
生酸枣仁和炒酸枣仁的区别
详尽教程:解决Windows 11搜索框无法输入及切换中文输入法难题
集装箱的标准尺寸(国际集装箱的标准尺寸)
宝宝有足内八怎么办?专业医生详解成因、危害与治疗方案
如何成功申请畜牧养殖专利,详细流程图解析?
火车票提前几天退票不收手续费?提前15天,手续费全免!
2800篇GEE论文揭秘:全球遥感分析格局和未来趋势
史记·冯唐列传
年金险是什么?年金险退的是现金价值吗?
大学可以提前毕业吗?满足什么条件?最快几年?利弊有哪些
Torque Clustering:新型AI算法引领无监督学习范式转变
为什么说温哥华自然环境好?
今年暑假,爸妈花10多万把我送进“1v1托管班”
四川省域经济副中心蓄势而起 重庆如何见“机”而行
员工离职保密协议有效期及商业秘密法律特征详解
怎么给程序员定 KPI ?原则和最佳KPI
尤鹏:华为云盘古大模型已覆盖30多行业 在400多场景落地
西方女性主义文化发展简史
溢价94% 供销大集拟15.11亿元收购商业资产
出行更方便!顺义这一交通项目——首都机场捷运线最新进展来了
急性鼻窦炎和急性鼻炎的区别与治疗
甘草泻心汤:谁不能喝?
腹膜后淋巴结怎样治疗
青椒炒皮蛋:家常美味的独特魅力
国产发动机与合资发动机技术对比:差距在哪里?
山姆中国将迎来一位新总裁!沃尔玛中国回应
Windows 10系统文件夹图标显示异常解决方案
常见海鱼品种汞及DHA含量、附烹饪方法