MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

开发板环境:vivado 2017.1 ,开发板型号xc7z020clg400-1,这个工程主要是用ILA观测PS端AXI总线的波形

链接:https://pan.baidu.com/s/1hQMOID1uDXC7h4t_VM8Ysg 密码:scom

Step1  已经新建好的vivado工程

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step2  新建一个Block Design

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

点击OK

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step3   添加ZYNQ核并配置

这个工程我主要配置了DDR,当然不同的开发板的配置也不同(这里力求工程简单所以配置比较少)

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

DDR配置如下图

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step4  调用gpio核并设置

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

双击调用的gpio核,将输出的管脚设置为3也就是引出三个gpio管脚,然后点击OK

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

设置完成后如下图所示

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

点击这个Run Connection Automation进行自动连线

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线


在弹出的对话框中勾选全部,然后点击OK

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

自动连线完成后如下图所示

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

右击这个FIXED_IO这个管脚选择Make_External将这个管脚引出

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

同样在DDR上面右击选择Make_External将DDR管脚引出

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

FIXED_IO和DDR管脚都引出后如下图所示

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

删除这个自动引出的gpio管脚,然后点击这个+号展开这个gpio

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

在展开的这个gpio_io_o上右击选择Make External引出这个管脚

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

管脚引出后如下图所示

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step4   调用ILA核

点击添加IP核,在搜索栏中输入ila,然后选择第一个ILA双击

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

这个是调出的ILA核

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

双击ILA核弹出属性设置对话框,我们测量的是axi总线所以这个Monitor Type选择axi,再将这个

采集的位宽Sample Data Depth设置为4096其它的都默认保持不变,然后点击OK

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

将这个要测量的axi_gpio的总线连到ILA上,并且这个要测量的总线的时钟和这个ILA的时钟必须是同一个时钟

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线


Step5  进行综合并生成顶层文件

进行综合

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

生成顶层文件

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线


Step6   分配fpga管脚生成bit文件

分配管脚

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

生成bit文件

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线


Step7   导出硬件配置和打开SDK

导出硬件配置

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

打开SDK

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step8   生成fsbl

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step9   新建一个hello_world工程

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

新建一个ila_test.c文件并对输出的三个gpio管脚进行操作

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step 10  进行debug将PS程序下载到开发板

右击hello_world-->Debug As-->Debug Configurations

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

在弹出的对话框中双击这个Xilinx C/C++ application(GDB)

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

再在这个Target Setup 选项卡选择Reset Entire System

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

点击这个STDIO Connection选项卡勾选Connect STDIO to Console、选择自己开发板所连接的uart端口、

以及设置波特率为115200,然后点击这个Apply

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

最后点击这个Debug

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

再在弹出的对话框中点击Yes

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

这个是debug调试窗口

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

Step 11  在vivado中进行调试

切到vivado点击Open Target-->Auto Connect

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

打开后如下图所示

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

点击这个Add Probes设置axi总线的触发条件

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

设置这个WVALID为1

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

点击这个Run按钮

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

此时ILA处于等待状态

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

在SDK中这个debug调试窗口中点击Run

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线

可以看到axi总线写入的值是5

MYIR-ZYNQ7000系列-zturn教程(15):在PS中使用ILA观测AXI总线