FPGA的学习:半加器的实现

Posted 石小舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA的学习:半加器的实现相关的知识,希望对你有一定的参考价值。

首先来看系统框图和时序图。

半加器有两个输出信号,一个求和信号,一个进位信号。

了解了时序之后,开始编写程序实现半加器的功能。

`timescale  1ns/1ns

module  half_adder
(
    input   wire    in1 ,   //加数1
    input   wire    in2 ,   //加数2
    
    output  wire    sum ,   //两个数的加和
    output  wire    cout    //加和后的进位
);

//实现功能

assign  {cout, sum} = in1 + in2;

endmodule   

接下来进行仿真。

`timescale  1ns/1ns

module  tb_half_adder();

//wire  define
wire            sum;
wire            cout;

//reg   define
reg             in1;
reg             in2;

//初始化输入信号
initial
    begin
        in1 <=  1'b0;
        in2 <=  1'b0;
    end

//in1:产生输入随机数,模拟加数1的输入情况
always #10 in1 <= {$random} % 2;    

//in2:产生输入随机数,模拟加数2的输入情况
always #10 in2 <= {$random} % 2;

initial begin
    $timeformat(-9, 0, "ns", 6);
    $monitor("@time %t: in1=%b in2=%b sum=%b cout=%b", $time, in1, in2, sum, cout);
end

half_adder  half_adder_inst
(
    .in1    (in1    ),  //input         in1
    .in2    (in2    ),  //input         in2

    .sum    (sum    ),  //output        sum
    .cout   (cout   )   //output        cout
);

endmodule

以上是关于FPGA的学习:半加器的实现的主要内容,如果未能解决你的问题,请参考以下文章

FPGA学习-7:较为复杂的组合电路 上

FPGA设计入门

FPGA代码一位半加器入门-第2篇

备战秋招[一]

1.半加器

简单数字电路1-全加器-半加器