下载 - Xilinx
下载 - Xilinx
下载 - Xilinx
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
编程人员参考。 [1]<br />
使用 Verilog 的“.”运算符,通过<br />
引用 BFM 实例,在测试程序中调用 API<br />
的函数和任务。图 4 就是这种函数调用<br />
的例子。完整的代码包含在与本文配套<br />
的项目包中,并提供 shell 脚本,用于编<br />
译实例并运行 ISim 查看波形。请阅读项<br />
目包中的 README.txt 文件了解如何使<br />
用该脚本。运行该脚本即可打开 ISim 主<br />
窗口。加载 ISim 中的“axi_waveforms.<br />
wcfg”文件,仿真系统 15 微秒,即可查<br />
看 AXI 总线各通道上的信号。<br />
测试程序首先对 Block RAM 发起<br />
256 个 32 位字符组成的写突发,然后读<br />
回数据。通过搜索上升时钟沿(在写地<br />
址 通 道,s_axi_awready 和 s_axi_<br />
awvalid 信号同时处于高电平),我们<br />
可以看到用于描述突发流向的信息被发<br />
送给 Block RAM 控制器。主机通过断言<br />
s_axi_wlast 信号为突发的最后一个字<br />
符做上标签。跟随写突发,从模块——<br />
即这里的 Block RAM 控制器——会通过<br />
写响应通道(图 5)发出事务处理成功<br />
的信号。<br />
可针对读突发检查相同的结构。描<br />
述突发的信息通过读地址通道发送,实<br />
际数据通过读数据通道发送。与写突发<br />
不同,这里没有单独的读取响应通道。<br />
但从模块会对读传输中的每一个字断言<br />
读响应信号 s_axi_rresp,以说明目前<br />
的读取是否成功。<br />
当然,对这个使用现成组件的小型<br />
实例系统来说,所有的总线事务处理都<br />
是成功的。不过在开发 RTL 模块时,需<br />
要判断 RTL 模块是否符合 AXI 标准。<br />
BFM 提供协议检查功能,用于确保连接<br />
的 RTL 模块行为的正确性。例如,主机<br />
BFM 会检查连接的 RTL 模块是否在复<br />
位后为输出端口应用正确的复位值。在<br />
ISim 的控制台可以检查这一行为。总线<br />
控制模块的协议检查 API 还能提供更多<br />
功能。AXIBFM 产品说明书 [1] 对此也有<br />
深入介绍。<br />
强大的工具<br />
赛 灵 思 和 Cadence 已 经 为 Zynq-7000<br />
All Programmable SoC 设计人员提供了<br />
一种极为强大的片上系统验证工具——<br />
AXI4BFM。通过在方便的功能 API 之上<br />
编写测试程序,我们可以在设计之初和<br />
回归测试中验证 RTL 模块。<br />
Missing Link Electronics 采用预先<br />
验证的 IP,在专家提供的应用支持下,<br />
开发针对嵌入式系统的解决方案,可将<br />
市 售 FPGA 器 件 与 开 源 软 件 相 结 合。<br />
Missing Link Electronics 是赛灵思联盟<br />
计划的认证成员,也是 Zynq-7000 系列<br />
All Programmable SoC 的早期使用合作<br />
伙伴。<br />
参考资料:<br />
1. 赛灵思,DS824 AXI BFM 2.1 版本,2012<br />
年 4 月 24 日<br />
2. ARM,IHI0022D AMBA AXI 和 ACE 协议<br />
规范,2011 年<br />
3. 赛灵思,LogiCORRE AXI 互联 IP(1.01.a<br />
版本),2010 年 12 月 14 日<br />
专 家 园 地<br />
2012 年冬季刊 赛灵思中国通讯 46 期 21