当前位置:首页 > FPGA > 正文内容

半加器

浩雨4年前 (2022-08-14)FPGA7766

半加器:两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。即两个一位二进制数的加法运算电路。

半加器 模块框图:

image.png

sum:结果位

count:进位


半加器 真值表:

image.png

半加器 波形图:

image.png


代码部分:

选择器代码:在Src文件夹中新建 half_adder.v文件

module half_adder
(
    input   wire  in_1 ,
    input   wire  in_2 ,
    output  wire  sum  ,
    output  wire  count
);
assign {count,sum} = in_1 + in_2;
endmodule

仿真文件代码:在Sim文件夹中新建 tb_half_adder.v 文件

`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 %t: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),
    .in_2 (in_2),
    .sum  (sum) ,
    .count(count)
);
endmodule

结果:

打印的日志和真值表中相对应

X79{TM5P80I~(9QLPR8QJHW.png

波形也正常

U88X4FC%)B{@2Y}KCEE~T`0.png

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:http://myfpga.cn/index.php/post/257.html

分享给朋友:

“半加器” 的相关文章

基础实验十三,DS18B20温度传感器

基础实验十三,DS18B20温度传感器

//==========================================================================// Author     : ChanRa1n// Description: Training for Intel FPGA/...

全加器(层次化设计)

全加器(层次化设计)

该篇博客根据上一篇半加器的设计,再结合层次化的设计思想来实现一个全加器!层次化设计理论部分:数字电路中根据模块层次的不同有两种基本的结构设计方法:自底向上的设计方法 和 自顶向下的设计方法自底向上(Bottom-Up)        自底向上的设计是一种传统的设计方法,对设计进行逐次划分的过程是从存...

CDC跨时钟域信号处理

CDC跨时钟域信号处理

保证时序电路的时序要求:建立时间:在有效的时钟沿到来之前,输入端的输入信号需要保持稳定不变的最小时间保持时间:在有效的时钟沿到来之后,输入端的输入信号需要保持稳定不变的最小时间CDC问题1:亚稳态亚稳态原因:亚稳态解决方法:对于单信号来说,使用 Double FF来进行信号同步CDC问题2:数据收敛...

单比特和多比特的信号处理

单比特和多比特的信号处理

信号跨时钟域传输时,两个时钟的上升沿相位差没有固定关系,所以采样时钟很容易出现建立保持时间违例而采到亚稳态。使用两级同步器处理:两级同步器能降低亚稳态发生的概率,只是使信号变为稳态再往下传输,保证安全但并不保证正确。如上图,A信号建立保持时间,导致B为亚稳态,但是由于有F3的存在,使其有足够的时间恢...