用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
利雅得之战倒计时:张志磊冲刺训练,目标击败阿吉特·卡巴耶尔
遥感数据处理和应用系统:天空之眼,守护地球家园
守护偏头痛患者:家属的支持与应对建议
健身为什么要练胸?4个练胸要点,附:一组练胸动作
股票的量比指标能说明什么?这个指标如何辅助投资决策?
Rust编程语言的特点及其适合做什么
中国第一辆汽车,用了666个零件,一句广告语亮出最大特点
跨境电商中的关键词策略:精准与长尾关键词的优化应用
学区房政策巨变下的家长抉择
安全评估简介,了解其重要性和基本流程
3D打印枪支犯罪分析
逼近24000套!上海楼市整体升温
重磅|肠道菌群:开启癌症防治的全新“钥匙”
变速箱油检查全攻略:两种检查方法及注意事项详解
面试「自我介绍」怎么说?把握8大重点,有效提升成功率
减掉脸部脂肪最快的运动
汪小菲和大S家的那些事,平台没必要太上头
想坐不能坐的“尾骨痛”到底是咋回事?
菠萝蜜的功效与作用、禁忌和食用方法
《封神演义》中的天界力量:十二金仙的奥秘排名
蓝莓的多样吃法与健康营养价值,让你享受美味生活乐趣
荷兰郁金香泡沫破灭之谜
月嫂要做些什么工作内容和职责
我国各地区适宜栽培的中药材种类分布
河北美食文化探秘:地方特色美食一览
三菱翼神二手的车况怎样?如何评估三菱翼神二手车的价值?
怎么通过数据分析提升精细化管理水平
情人节拉动“浪漫消费”市场 务实与创新并行
为什么有的孩子没朋友?这份社交指南请收好
【银发族旅游团推荐】掌握7个旅游规划细节,帮长辈制造难忘回忆