Zynq 7000 自定义ip 的仿真

本文基于《Zynq 7000 自定义IP实验》和《AXI4 协议分析》,探讨自定义AXI4 IP的仿真测试。通过创建testbench.v进行仿真,使用axi_write和axi_read任务进行读写操作,并提供了测试代码。仿真过程旨在排除设计中的bug,确保开发质量。文中还分享了实际测试的波形图。
摘要由CSDN通过智能技术生成

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

下载链接总失效, 把testbench.v直接放这里了。
本文主要介绍仿真程序的设计。在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 协议分析一文。我是根据分析后写出来的,也做了多次反复的测试,开始波形不出来的。

 

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

 

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值