用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
惠城,一个让人发胖的地方
重庆驾驶证换证全攻略:线上办理更便捷
重庆驾驶证换证攻略:线上+线下办理全指南
小球节奏弹跳,Blender刚体物体系统教学
暧暧远人村|杭州富阳东梓关村:“富春山居图”照进现实 千年古村写下诗意新篇
羊毛疔:从传播途径到预防指南
老挝签证攻略:轻松搞定你的东南亚之旅!
万象塔銮节倒计时:签证攻略大揭秘!
除了红肠,哈尔滨还有啥必吃?
一人食年夜饭:北京八宝饭 vs 上海腌笃鲜
男子一人年夜饭感动全网:三代人隔世情
一人食年夜饭创意菜谱大揭秘!
成都年夜饭小套餐,一人食也能有仪式感!
《海鸥食堂》教你如何在年夜饭中找到治愈力量
论退休后养老金应该统一的公平性与合理性
上海交警权威解析:驾驶证换证全攻略
驾驶证到期前90天,别错过网上换证!
为什么甲状腺素一定要在早餐之前吃?
五星级酒店入住政策:法律要点全解析
左手戴玉右手戴金:传统佩戴习俗的文化内涵与现代演绎
车载充电器使用全攻略:从选购到使用注意事项
宋代的茶是绿茶还是黄茶,又或是普洱茶?一文了解宋代的茶
喝绿茶有什么好处和功效和作用
抑郁症会让你生病吗?[+提示和常见问题解答]
孩子抑郁有迹可循吗?这7种表现可能预示“不对劲儿”
北京本地人的私藏宝藏景点大揭秘!
故宫和天坛:北京必打卡的两大网红景点
揭秘VPN加密:AES算法如何保护你的数据?
冰雪世界里的甜蜜:哈尔滨冰雪节必打卡的马迭尔冰棍
哈尔滨冰雪节必打卡:马迭尔冰棍