用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
白粥配蒸蛋:急性肠胃炎患者的营养调理首选
伤筋动骨100天,康复训练助你远离后遗症
揭秘“思诺思”:娱乐圈风波背后的安眠药真相
继汪小菲、张兰爆料再上热搜的思诺思是什么药?
揭秘“思诺思”:娱乐圈风波背后的安眠药真相
人工智能:锂电池技术创新“新风口”
六大隐患、六项措施:建筑工地消防安全指南
户口被注销怎么办?派出所申请恢复,半年可完成
户口注销有规定时限,未及时办理将影响家属权益
冬季装修后有害物质检测攻略
甲醛和VOCs,装修污染的两大“元凶”
新房除甲醛,光触媒+通风才是王道!
从预防到理赔:一文读懂交通事故赔偿风险管理
研究证实:冷冻保存不减东北酸菜营养价值
黑龙江推冬季旅游:赏冰雕、滑雪、品千年酸菜
东北酸菜保存有讲究:从传统坛储到现代冷冻技术
竹节虫:伪装大师的断肢再生与惊人食量
华师团队研究发现蟑螂可开发多种药物,具医疗价值
白糖是战略物资?除了吃,还能用来制作火箭推进剂?
二战时期德国的军事工业发展历程
从马斯克到扎克伯格:揭秘顶级成功者的时间管理术
春兰、蕙兰、建兰:如何栽培不同品种的兰花?
澳龙受阻,东南亚三国对华龙虾出口激增
守护山野精灵:中国兰花保护行动
元旦养兰指南:春兰、蕙兰、建兰怎么挑?
宋梅兰花收藏热,你心动了吗?
揭秘兰花抗病性:这些品种更耐茎腐病
沙棘对肝病到底有多大的好处?
过敏性紫癜进入高发期,专家详解症状预防与治疗
《请回答1988》:豆瓣9分神剧,你看了吗?