**
FPGA学习记录(一)vivado简单仿真全加器
**
1.先写一个全加器
`timescale 1ns / 1ps
// 时间单位 / 时间精度
module full_adder(
input IN1,
input IN2,
input IN3,
output cout,
output sum
);
assign{cout,sum}=IN1+IN2+IN3;
endmodule
**
2.在Sources下的Simulation Sources新建一个 .v 文件,文件名为 tb_full_adder, tb表示仿真文件
**
**
3.仿真文件内容.
**
`timescale 1ns / 1ps
module tb_full_adder();
//模拟仿真,所以没有输入输出端口
reg in1;
reg in2;
reg in3;
wire cout;
wire sum;
//例化,有点像C语言 实例化一个类
full_adder fd1(
.IN1(in1),
.IN2(in2),
.IN3(in3),
.cout(cout),
.sum(sum)
);
initial //激励关键字,只执行一次(always则是一直激励),通常用来赋初值
begin //只有在begin-end之间的代码是串行执行
#100 in1<=0;in2<=0;in3<=0; //#100指的是100秒后
#100 in1<=0;in2<=0;in3<=1; //使用非阻塞赋值
#100 in1<=0;in2<=1;in3<=0; //阻塞赋值和非阻塞赋值不要在一个module里出现
#100 in1<=0;in2<=1;in3<=1;
#100 in1<=1;in2<=0;in3<=0;
#100 in1<=1;in2<=0;in3<=1;
#100 in1<=1;in2<=1;in3<=0;
#100 in1<=1;in2<=1;in3<=1;
#100 $finish;
end
endmodule
**
4.开始仿真
**
左键单击Run Simulation->Run Behavioral Simulation, 等待片刻,在写代码的文件旁边会新建仿真结果(第一次运行时差点没找到)
**
5.仿真结果
**
符合全加器逻辑