Zynq 7000 自定义ip 的仿真

来源:互联网 发布:淘宝百度百科 编辑:程序博客网 时间:2024/06/06 13:23

本文是《zynq 7000 自定义ip实验》一文的继续,也是《AXI4 协议分析》一文的基础上写出来的,如果没看这2文,可以根据你的需要去看看。设计axi4 ip 是个复杂的工作,在正式测试前做仿真测试可以排除很多bug,保证产品开发高效高质量。


本文的工程和代码下载地址是:

链接:https://pan.baidu.com/s/1o7Hd7WA 密码:cu8i


本文主要介绍仿真程序的设计。在ip设计工程的Simulation sources中,添加或新建一个测试文件testbench.v,然后仿真操作就好了。


关于仿真的操作请看另文: Vivado 下的仿真入门


程序设计中用了2个task 或者函数,

axi_write(addr,data) 写入函数,

axi_read(addr,data) 读取函数,本来不需要data 的, 但你修改一下,可以用于比较读取值和预计值。

程序中注释了比较这一部分。

除了这2个task 外,主流程就是对这2个task 的调用,这与实际情况比较一致。

我这里是写一个,然后读取一个。地址01, 00, 02 其实都是操作reg0。 依次写读为 02, 01,02,04,08, 我们看到led 的相应变化,说明控制有效。

后面写读的地址是 04,08,0c, 也就是验证对reg1,reg2,reg3操作, 结果也是有效的。

对于实际情况,你可以修改程序的读写内容和时间点,仿真测试你设计的ip。我是免费提供这个代码, 你也就保留我程序设计的名字。


至于怎么设计这个仿真程序,请看Axi4 协议分析一文。我是根据分析后写出来的,也做了多次反复的测试,开始波形不出来的。


这个图是写入部分的仿真。读取被收取了。



这个集中于读取部分,打开了读取的仿真组信号。



这个是ila 实测的写入部分波形。



这个是ila 实测的读取部分波形。


阅读全文
0 0