用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
激情杀人:情感失控下的悲剧
阿富汗塔利班:外来运动还是本土传统?
如何制定基金投资策略?基金投资策略的实施需要注意什么?
《鳗游记》系列之古代饮食中的鳗鱼(中):烹饪技法,华彩多样
甘文玲医生:营养干预对儿童多动症的作用
八部金刚功的功效与作用
深圳顶级学府盘点:哪些高中值得你为梦想拼搏?
巴萨为佩德里量身打造体能计划,肌肉样本远送美国实验室检测
企业培训新选择:弟子规在现代企业管理中的应用
椎体成形术的简介及康复指导
德布勒森之战:德军装甲营击败苏军集团军,45辆虎王坦克多恐怖?
猫与老鼠的关系:自然界中的经典对决与生态平衡的重要性
Netflix再放大招,当美女军情师遇上叛逃高级AI
写给孩子的书信:品书信之美,塑少年品格
隧道二衬混凝土拆模要求,是那本规范明确的
三本经典决策类书籍推荐
高中生面临的压力有哪些?该如何处理?
如何合法有效地打开保险箱:方法与注意事项详解
2024年东北大学录取分数线是多少?全国各省最低分是498
李煜的《虞美人》:一位亡国之君的千古绝唱
从帝国发展角度,分析奥匈帝国为何能在短期跻身世界强国之列
甘文玲医生:营养干预对儿童多动症的作用
古代女童未及成熟为何在十三四岁早嫁?缘由令人叹息
租车合同:妥善处理与潜在问题解析
如何学习八字命数?
羊汤、生炒面、饸饹面、熏肉...临汾也“藏”着太多美食了!
真三国无双:全秘武解锁攻略详解
酷安上很多小软件都是开发者一个人完成的吗
粤菜瑰宝:东江盐焗鸡
买二手车有必要找第三方检测吗?