用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
阳陵泉穴:缓解肩颈痛的特效穴位
广西凭祥首例停车欠费案宣判:车主被判支付976元停车费
智慧停车的安全隐患与防护之道
深圳车主必看:电子停车缴费全攻略
宝宝胀气?这9招按摩绝技秒变小天使!
宝宝胀气怎么办?这些实用方法帮你轻松应对
新手妈妈必备:科学缓解宝宝肠胀气指南
皮肤痒的主要原因是什么
1980年黄金价格的波动与影响,1980年黄金价格波动的影响分析
委中穴拔罐:缓解腰背痛的新姿势
委中穴:你的私人健康小助手
3月云南旅游攻略自由行,超详细自由行攻略,助你开启梦幻之旅!
眼角长痣,别大意!可能是眼睑肿瘤的预兆
“急急如律令”被翻译成“quickly quickly biu biu biu”
100个中国成语的英文版,果断收藏!
影视剧中的神级翻译:让人一见倾心、感动良久
2024年食用甘蔗的消费提示
发红的甘蔗能吃吗?实验结果告诉你
全国城市节约用水周:家庭节水小妙招大揭秘!
绿色建筑:节水黑科技大揭秘!
全国城市节约用水周:这些节水小妙招你get了吗?
节水从我做起:家庭节水实用指南
宋江的“忠义”在现代职场还吃香吗?
健康饮食指南:基本原则与实用技巧
揭秘西方文化中恶魔形象的山羊头之谜
恶魔形象进化史:魔鬼到底长什么样?揭开撒旦可怕外表的历史起源
复旦医生提醒:这些节省习惯竟是致癌元凶!
复旦大学提醒:这些节省习惯可能致癌!
省钱买打折果蔬竟致癌?你还在这样做吗?
中国古代与越南的关系到底怎么样呢?