用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
边际替代率对消费者决策的影响分析
保健食品怎么吃?什么时候吃最有效?注意事项全解析!

东莞一日游攻略:八大景点美食全攻略
房产证损坏怎么办?补办流程及注意事项全攻略
房产证上的署名方式及法律后果
个人养老金账户的定义是什么?
资阳安岳石窟讲解员周春:“石刻不言,我代其语;历史无声,我为其歌”
你家猫咪真的听得出你的脚步声吗?
新疆博尔塔拉:自然与文化的完美融合
疫苗接种是否能够结束疫情?
产品经理如何收集需求
家用配什么台式电脑?推荐配置及选购指南
鲁班:工匠之祖的传奇故事与智慧启示
违规停车遭罚单?别慌!手把手教你正确处理流程
首航高科曾辉煌市值250亿,黄氏家族套现24亿,终致退市
天眼查询个人信息准确性如何验证
菲律宾前总统言论引争议:900菲军真能击败40000志愿军吗?
如何申请美国留学全奖的条件和流程
跨境电商的物流解决方案:如何选择高效、经济的物流方式?
HTML网页如何让别人在局域网访问
Ubuntu安装 GeoServer 并设置自启、远程访问
二阶导数揭秘:曲线拐点和函数凹凸性
双耳节拍让ADHD大脑专注
双耳节拍与视唱练耳频率哪一种更适合睡眠?
成人弱视斜视手术是否有可能复发
紫外線燈選購及使用指南|5招有效防止細菌滋生
巨大芽孢杆菌的应用研究进展
沟通与理解,让爱情更长久
孕妇食用大蒜的注意事项
10种好看的玛瑙搭配方法 玛瑙和什么搭配好看