半加器
yummy
阅读:1334
2022-04-01 20:48:56
评论:0
加法器是数字电路中经常用到的一种基本器件,主要用于两个数或者多个数的加和,加法器又分为半加器和全加器。
半加器电路是指对两个输入数据位相加,输出一个结果位和进位。没有进位输入的加法器电路,是实现两个一位二进制数加法运算电路。
全加器是在半加器基础上的升级版,除了加数和被加数之外还要加上上一位传来的进位信号。
实验使用两个key作为加数和被加数,LED1作为结果位,LED2作为进位来实现。
实验框图
波形图
代码实现
// Filename﹕ half_adder.v
// Author﹕YMY
// Description﹕半加器模块
// Calledby﹕/
// RevisionHistory﹕22-04-01
// Revision1.0
// Email﹕
// Company﹕
// Copyright(c) YMY, All right reserved
module half_adder(
input wire in_1 , //输入信号1
input wire in_2 , //输入信号2
output wire sum , //结果位
output wire count //进位
);
assign {count,sum} = in_1 + in_2 ; //高位赋值给进位放,低位赋值给结果位
endmodule
测试代码
// Filename﹕ tb_half_adder.v
// Author﹕YMY
// Description﹕半加器测试模块
// Calledby﹕/
// RevisionHistory﹕22-04-01
// Revision1.0
// Email﹕
// Company﹕
// Copyright(c) YMY, All right reserved
`timescale 1ns/1ns
module tb_half_adder();
reg in_1 ;
reg in_2 ;
wire sum ;
wire count ;
//初始化输入信号
initial begin
in_1 <= 1'b0 ;
in_2 <= 1'b0 ;
end
//产生随机数
always #10 in_1 = {$random}%2;
always #10 in_2 = {$random}%2;
initial begin
//设置时间格式的系统函数
$timeformat(-9,0,"ns",6);
//检测打印函数
$monitor("@time in_1=%b in_2=%b sum=%b count=%b",$time,in_1,in_2,sum,count);
end
half_adder half_adder_inst
(
. in_1 (in_1 ), //输入信号1
. in_2 (in_2 ), //输入信号2
. sum (sum ), //结果位
. count (count) //进位
);
endmodule
仿真波形
本文 zblog模板 原创,转载保留链接!网址:http://xn--zqqs03dbu6a.cn/?id=16
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。