ZYNQ学习之路——时序仿真

本文转载自:亦梦云烟的博客

在编写ZYNQ的FPGA逻辑代码过程中,往往需要对时序进行分析。时序信号的分析一般通常有软件仿真和在线仿真两种,本文介绍这两种方法的具体使用方法。

一. Vivado软件时序仿真
建立时序仿真的步骤:

1. 建立工程后,添加源文件,本文以一个非常简单的模块——生成1Hz方波,进行说明。

module clock_1Hz(
clock, //input system clock,30MHz
clk //output 10Hz clock, 10Hz
);

input wire clock;
output reg clk;

reg [24:0]cnt;

always @(posedge clock)
begin
cnt <= cnt + 1'b1;
if(cnt > 15000000)
begin
cnt <= 0;
clk <= ~clk;
end
end

endmodule

再点击Add sources选择第三个添加仿真文件。

点击Create File创建仿真文件,命名为clock_1Hz_sim.v

编写仿真测试程序:
`define clk_peirod 10
module clock_1Hz_sim();
reg clk;
wire clk_10Hz;

clock_1Hz clock_1Hz_0(
.clock(clk),
.clk(clk_10Hz)
);

initial clk = 1;

initial
begin
#(`clk_peirod*100);
$stop;
end

always #(`clk_peirod/2) clk = ~clk;

endmodule

2.器件库编译,在vivado菜单的Tools->Compile Simulation Libraries...,仿真工具选择ModelSim,其他默认即可,等待编译结束。

设置仿真工具,点击菜单Flow->Settings->Simulation,选择ModelSim Simulator进行仿真,仿真文件设置为clock_1Hz_sim。

点击仿真工具进行仿真,SIMULATION->Run Simulation->Run behavioral Simulation。

启动ModelSim后,软件可能报错,如下所示:

出现这种情况是因为软件没有找到源文件,手动将源文件加入到编译路径的work中,点击compile,选择源文件,加入到work目录中。

在信号上点击Add wave,可以将信号添加到仿真波形中。

点击Run all,再点击stop,可以查看波形。

二. vivado在线逻辑分析仪的使用
Vidado开发环境将逻辑分析仪嵌入在软件中,不需要额外使用ChipScope软件。在Vivado中进行硬件在线调试的步骤如下:

1. 在vivado工程共,添加ILA(集成逻辑分析仪)核。之后搜索ILA,添加第一个IP核即可。

2. 新建ILA时弹出ILA配置界面,这里需要配置采集信号的时钟深度,信号宽度,保持默认即可。

3. 在原理图中进行连线,clk信号必须要连接到时钟上,展开SLOT_0_AXI,连接需要观察的信号到这些端口上,软件会自动例化代码。

4. 综合编译后生成bit流文件,下载到电路板中,其中Debug probes file中会多添加ltx文件。

5. 打开逻辑分析仪窗口: 点击菜单Window->Debug Probes

6. 软件界面中将会出现逻辑分析仪窗口,如下所示:

7. 点击逻辑分析仪窗口右上角的float图标可以让该窗口独立出来,达到最大化视图的效果。

8. 在Trigger Setup窗口点击+号图标,添加信号触发的条件,点击运行可观察到波形。

注:

1. ILA的时钟输入必须比采集的信号频率至少大两倍,否则无法触发。

2. 如果ILA的时钟输入时PS产生的,在下载完FPGA后debug probes界面不会有任何显示,只有当PS 部分的程序启动之后才会执行ILA。

最新文章

最新文章