FPGA VIVADO仿真详解 TEST BENCH

1 篇文章 0 订阅
1 篇文章 0 订阅

待测试工程—流水灯

建立新工程的方法不再赘述,这里只针对TEST BENCH文件的建立进行描述。测试工程如下,功能是控制流水灯闪烁

`timescale 1ns / 1ps  //时延单位为1ns,时延精度为1ps

module test_top(
        input clk,//时钟
        input rst_n,//复位
        output reg[1:0] cnt1, //这里输出cnt1只是为了仿真更加直观
        output reg led  //led输出
    );

always @(posedge clk)
begin
    if(!rst_n) begin
        led <= 1'b0;
				cnt1<= 2'b00;
    end
    else begin
        if(cnt1 == 2'd3) begin
	        led<=!led;
					cnt1<=2'd0;
        end
				else begin
					led<=led;
					cnt1<=cnt1+1'b1;
			  end
    end
end
endmodule

创建TEST BENCH文件

1.点击PROJECT MANAGER目录下的Add Sources;

                                     

2.在Add Sources弹窗界面选择第三条—Add or create simulation sources后,点击Next

3.该界面常用选项有Add Files和Create File。其中Add Files是添加本地已存在的Test Bench文件,Create File是创建新的Test Bench.这里我们点击Create File.

 

4.在新弹出的Create Source File窗口需要手动输入文件名在File name这一栏,命名习惯一般为tb_前缀+待测试Module名,如tb_test_top,tb表示这是test bench文件,要测试的模块是 test_top.该窗口还有两个下拉菜单,File type是选择文件对应的语言,这里选择Verilog。File location是选择文件生成的位置,一般默认为E:\VIVADO_PRO\test_soft\test_soft\test_soft.srcs\sim_1\new。选择好后点击OK。

 

5.回到Add Sources界面点击Finsh后弹出下图窗口。

   在Define Module界面点击OK再点击Yes完成文件创建

 

编写仿真代码

回到Vivado主界面,在Sources窗口下的Simulation Source→sim_1菜单下找到创建好的Test Bench文件,开始编写仿真程序。

                             

代码如下

`timescale 1ns / 1ps//时延单位为1ns,时延精度为1ps

module tb_test_top( );

reg sys_clk;//时钟
reg rst_n;//复位
wire led1;//Led
wire [1:0]cnt1;//Led闪烁计数

//产生激励:仿真文件中一般使用initial或者always产生激励
initial begin
	sys_clk = 1'b0;
	rst_n = 1'b0;
	#200
	rst_n = 1'b1;
end

// #10意思是延迟10ns,这里产生一个周期20ns的时钟(50MHz)
always #10 sys_clk = !sys_clk;//生成时钟,

//例化待测模块
test_top test_top_1(
    .clk(sys_clk),
    .rst_n(rst_n),
    .cnt1(cnt1),
    .led(led1)  
);
endmodule

仿真设置

仿真时间

常用的仿真设置为设置仿真运行时间,如下图右键点击SIMULATION,在弹出的菜单选择Simulation Settings

 

在弹出的窗口选择Simulation,然后输入想要仿真的时间即可

        

检查TOP文件

在开始仿真前,需要检查TOP文件是否设置正确,如下图所示,如果三角符号在没有在Test Bench文件前,说明需要修改TOP文件

 

方法是右键点击Test Bench文件,选择Set as Top

                     

正确设置后的效果如下

 

运行仿真

设置都完成后,选择Flow→Run Simulation→Run Behavioral Simulation即可开始仿真

 

仿真运行完成后,通过上面的功能按钮调整波形显示后,即可清楚的看到时序图了,效果如下

 

  • 8
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vivado可以自动生成testbench,可以通过以下步骤实现: 1. 打开Vivado,创建一个新的工程。 2. 在工程中添加需要测试的模块。 3. 在工程中右键单击需要测试的模块,选择“Create Testbench”。 4. 在弹出的对话框中,选择“Create a new simulation source”。 5. 在下一个对话框中,选择“VHDL Testbench”或“Verilog Testbench”,然后点击“Next”。 6. 在下一个对话框中,输入testbench的名称和存储路径,然后点击“Finish”。 7. Vivado将自动生成testbench文件,包括模块实例化、信号初始化、仿真时钟等。 8. 可以根据需要修改testbench文件,然后运行仿真。 注意:自动生成的testbench可能不完全符合需求,需要根据实际情况进行修改。 ### 回答2: Vivado是一种权威的电路设计软件,被广泛应用于FPGA芯片的设计和开发。在Vivado中,testbench(测试台)是一个用于测试硬件设计的必要组件,用于验证各种信号和操作的正确性。通常情况下,testbench的编写是由设计工程师独立完成的,但是在一些情况下,Vivado也可以自动生成testbench,虽然具有一定的实用性,但是需要设计工程师对自动生成的代码进行深入的分析和调整。 Vivado可以自动生成testbench的基本步骤如下: 1. 在Vivado中打开所需的设计项目,然后打开综合视图。 2. 在综合视图中单击“Simulation”选项,然后选择“Run Simulation”选项,这将启动仿真运行。 3. 在对话框中选择“Auto Create Simulation Sources”选项,然后点击“OK”按钮。 4. Vivado会自动生成一个testbench文件,其中包含了各种预定义的模块、信号和激励。 5. 然后,设计工程师需要将通信信号连接到被测设计的输入和输出端口,以使仿真模型能够正常工作。 需要注意的是,自动生成的testbench可能无法完全符合设计工程师的要求,需要对生成的代码进行微调和调整,以适应具体的测试环境和测试需求。此外,在自动生成testbench的过程中,需要尽可能提供准确和完整的输入/输出信息,以确保仿真模型的正确性和可靠性。 综上所述,Vivado可以自动生成testbench,这是一个相对方便的功能,但是需要设计工程师在生成后对代码进行仔细地分析和调整,以确保测试结果的准确性和可靠性。 ### 回答3: Vivado是一个Xilinx公司开发的综合设计环境。它可以帮助设计者设计和验证数字电路。设计者可以在Vivado中创建设计项目、综合、布线等。同时,Vivado还支持自动生成testbench的功能,这极大地方便了设计者的验证工作。 自动生成testbenchVivado提供的一项非常实用的功能。testbench是用于验证设计是否正常工作的仿真程序,它是一个测试框架,用来刺激设计并检查它的响应。 Vivado中的自动生成testbench功能可以帮助设计者快速生成可用于仿真验证的testbench模块,从而加速设计的验证工作。具体操作方法如下: 1. 首先,我们需要创建一个新的Vivado项目,并添加设计文件。 2. 然后,在Vivado中右键点击设计文件,选择“Create Simulation Sources” -> “Create Simulation Sources Wizard”。 3. 在“Create Simulation Sources Wizard”窗口中,可以选择要自动生成的testbench类型。Vivado支持多种类型的testbench,比如嵌入式测试(embedded test)、时序仿真测试(timing simulation test)等。 4. 在选择testbench类型后,Vivado会自动为我们生成testbench模块。这个模块包含了一些仿真所需的声明、信号初始化、时钟周期等内容。设计者可以使用这个模块进行仿真测试。 5. 最后,我们需要将仿真模型与自动生成的testbench连接在一起,即将testbench模块中的输入连到仿真模型的输出,将仿真模型的输入连到testbench模块的输出。 自动生成testbenchVivado的一个非常实用的功能,可以帮助设计者快速生成可用于仿真验证的testbench模块。如果你是一位数字电路设计的初学者,或者正在进行一项大规模的设计工作,那么自动生成testbench功能一定会帮助你更快、更准确地完成验证工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值