17.08.2013 Views

下载 - Xilinx

下载 - Xilinx

下载 - Xilinx

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!