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的学习:半加器的实现的主要内容,如果未能解决你的问题,请参考以下文章