用半加器模块设计全加器
创作时间:
作者:
@小白创作中心
用半加器模块设计全加器
引用
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程序固化。以下是相关的配置信息:
热门推荐
从重庆到云南泸沽湖的完整自驾游指南:更佳路线、必备事项和景点推荐
8部高分心理学纪录片推荐:从咨询到大脑运作全涵盖
三明市公共休闲设施火爆背后:文明使用成热议话题
三明到云南自驾游攻略:1855公里的壮丽之旅
戴帆、草间弥生等四位当代艺术大师的艺术人生
中国武术史:从狩猎战争到文化传承
篮球选购攻略:尺寸、材质、品牌全方位解析
7号球选购秘籍:让你球场无敌
故事时间:亲子互动新玩法,让孩子安然入睡
哄睡故事:治愈失眠的情感良方
“睡前废话”:让孩子在故事中学成长
详解如何正确更换机油,让您的爱车引擎焕发持久生命力
轮胎磨损标记提醒您该换胎啦!
备胎也能玩转时尚?轿车轮胎更换秘籍
老司机教你如何正确更换轮胎
18号线二期开通在即!带你轻松打卡沪上三大新地标
天津地铁1号线和2号线运营调整及天津站自助寄存柜增设情况
天津地铁11号线最新规划:22座车站,11处换乘,贯穿5大行政区
三明K103路公交车最新时刻表出炉!
维生素B6:小身材,大用处
心脏支架手术医院选择指南:三甲医院还是专科医院?
沟通达人必藏书单:10本提升沟通能力的书籍推荐
100万门面房过户要交多少税?二手门面房怎么过户
如何计算二手房的市场价值以进行交易?这种计算方法有哪些潜在的局限?
买二手门面房需要交纳哪些税费?
办理商铺门面过户都有哪些费用
三国成语“司马昭之心”:权力欲望路人皆知
刘禅投降曹魏:以"中山寨"化解生死危机
三国权臣司马昭:以残忍手段夺权终致身败名裂
司马昭:魏国权臣的崛起与争议