我看csdn上关于vivado仿真的小实验很少,正好老师让我给师弟们讲讲这个软件,我就自己写一个吧。
用vivado实现一个四位全加器,并用自带的仿真软件仿真
1.创建工程,这一步提前在D盘上创建个文件用来放project
然后一直点NEXT,直到下图
这步是选按照型号选板子,咱只做仿真实验的话,就随便选一个就行。
最后点Finish,就算完成了。
2.创建编程文件 adder
先点 + ,然后在弹出的页面中选择中间的design source,然后Next
点击creat File ,在弹出的界面中,输入上文件名:adder,点击OK。
出现下图,算成功。然后点 finish。
然后Module name 是adder,点OK。
在Design Source区域出现adder.v,双击出现右边编程界面
`timescale 1ns / 1ps
module adder(
input [3:0]a,b,
input cin,
output cout,
output [3:0]sum
);
assign {cout,sum} = a + b + cin;
endmodule
然后程序打上去,点下面这个分析一下,没错就行。
3. 创建仿真文件tb_adder
也是点击 + ,创建 simulation source
然后点create file ,在name里输入tb_adder,点击OK,然后点击右下角的finish
然后在simulation source里打开
程序如下
module tb_adder();
reg [3:0]a,b;
reg cin;
wire cout;
wire [3:0]sum;
adder inst0(
.a(a),
.b(b),
.cin(cin),
.cout(cout),
.sum(sum)
);
initial
begin
a = 0;b = 0;cin = 0;
#100 a = 4'b0101;
#100 b = 4'b0101;
#100 b = 4'b1100;
#100 $stop;
end
initial $monitor($time,,,"a=%d,b=%d,sum=%d,cout=%d",a,b,sum,cout);
endmodule
然后点击下面这俩,进行仿真。
最后仿真结果如下图
在黄线处进位。
自己也多试试其他数值。