第 4 章
基于 FPGA 的调试和验证
在 FPGA 开发板上调试和测试设计
对算法而言,终极测试是看它能否在硬件上按指定方式运行。借助 MATLAB 和 Simulink,您可以使用多种方法在 FPGA 开发板上测试算法实现。
- 您可以将受测设计 (DUT) 编程到开发板上,并以您的 MATLAB 或 Simulink 会话作为其测试平台来运行测试,从而对硬件原型施加一系列激励,同时以交互方式可视化结果。
- 为了快速调试和测试您的 DUT,您可以在感兴趣的内部信号上插入探针,在硬件原型测试期间采集信号,然后检索信号以在 MATLAB 中进行查看和分析。
- 利用 IP 核的 AXI4 可访问寄存器的读/写访问权限,您可以在 MATLAB 中交互式控制编程到 FPGA 板上的 IP 核。
这些方法提供不同级别的交互性和可见性,以满足您的各种测试和验证需求。
使用 FPGA 在环进行基于硬件的验证
通过 FPGA 在环 (FIL) 测试,您可以在 MATLAB 或 Simulink 中对硬件实现和黄金参考模型进行背靠背测试。
在 FIL 中,您可以将 DUT 编程到 AMD、Intel 或 Microchip 的开发板上,并应用测试平台,就像在 HDL 协同仿真中一样。MATLAB 或 Simulink 测试平台在主机上执行,与开发板之间相互传递信号。与 HDL 协同仿真相比,FIL 支持测试中的硬件加速。
该工具能够自动化设置和执行 FIL 测试的所有步骤,包括使用 AMD Vivado、Intel Quartus® 或 Microchip Libero® SoC 编译 DUT;对开发板进行编程;以及通过 JTAG、以太网或 PCI-Express 建立通信。
工具支持 AMD、Intel、Microchip 和其他公司提供的 50 多种开发板,您还可以扩展 FIL 以使用自定义开发板。
使用 FPGA 数据采集功能来采集信号
FPGA 在环测试的两个特点决定了它的高效使用存在一定前提:
- 由于要在主机和开发板之间进行通信,DUT 只能以较低的时钟速率运行。
- DUT 的所有输入必须来自 MATLAB 或 Simulink,因此不能使用其他开发板输入。
如果您希望快速运行测试,或是不想局限于来自主机的输入,不妨使用 FPGA 数据采集工具。
借助 FPGA 数据采集工具,您可以生成 IP 核来探测 FPGA 实现中指定的内部信号,并将它们保存到本地内存中。然后,您可以将信号导入 MATLAB 或 Simulink 中进行查看和分析。
如果您使用 HDL Coder 来生成 RTL,您可以在 Simulink 模型中添加测试点以指定应检索模型的哪些信号,无论这些信号处于模型层次结构中的什么位置。
借助 FPGA 数据采集工具,您可以定义触发条件并指定保留的数据采样数,以便调试硬件实现。您可以在逻辑分析仪窗口中查看信号,并使用其中的游标和其他工具来测量和计算信号。
在寄存器和 DDR 内存中读取和写入
很多时候,您需要对 FPGA 开发板上的 AXI4 可访问寄存器或内存进行读/写访问,例如在测试已使用可编程逻辑实现的新 IP 核时。
为此,工程师通常需要为 Arm® 处理器核编写 C 代码,这种代码纯粹只是用来访问 AXI4 寄存器以测试 IP 核。这种 C 代码对测试来说不可或缺,但从根本上说是一次性代码。
MATLAB AXI Master 功能支持您通过 MATLAB 会话对寄存器或 DDR 内存进行读取或写入,从而支持您扩展 MATLAB 分析脚本以用于测试,无需再编写纯用于测试的嵌入式 C 代码。
判断题:
您可以使用 FPGA 数据采集工具定义触发条件并指定保留的数据采样数,以便调试硬件实现。
正确!
了解有关 FPGA 数据采集的更多信息。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)