228
Intel ® Quartus ® Prime Standard Edition 用户指南 调试工具 针对 Intel ® Quartus ® Prime 设计套件的更新:18.1 本翻译版本仅供参考,如果本翻译版本与其英文版本存在差异,则以英文版本为准。某些翻译版本尚未更新对应到最 新的英文版本,请参考 英文版本以获取最新信息。 在线版本 发送反馈 UG-20182 ID: 683552 版本: 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Intel Quartus Prime Standard Edition用户指南: 调试工具

Intel® Quartus® Prime StandardEdition用户指南

调试工具

针对 Intel® Quartus® Prime设计套件的更新:18.1

本翻译版本仅供参考,如果本翻译版本与其英文版本存在差异,则以英文版本为准。某些翻译版本尚未更新对应到最新的英文版本,请参考英文版本以获取最新信息。

在线版本

发送反馈 UG-20182

ID: 683552

版本: 2018.09.24

Page 2: Intel Quartus Prime Standard Edition用户指南: 调试工具

内容

1. 系统调试工具概述................................................................................................................. 81.1. 系统调试工具组合.....................................................................................................8

1.1.1. 系统调试工具比较.........................................................................................81.1.2. 对常用调试要求所建议的工具........................................................................... 91.1.3. 调试生态系统............................................................................................ 10

1.2. 用于监控 RTL节点的工具..........................................................................................111.2.1. 资源使用.................................................................................................. 111.2.2. 管脚使用.................................................................................................. 121.2.3. 可用性增强............................................................................................... 12

1.3. 激励使能工具(Stimulus-Capable Tools)......................................................................131.3.1. In-System Sources and Probes.................................................................. 141.3.2. In-System Memory Content Editor..............................................................141.3.3. 系统控制台(System Console).......................................................................14

1.4. Virtual JTAG Interface Intel FPGA IP ...................................................................... 151.5. 系统级调试架构......................................................................................................151.6. 系统调试工具概述修订历史........................................................................................15

2. 使用 System Console分析和调试设计.................................................................................. 172.1. System Console简介.............................................................................................172.2. System Console调试流程....................................................................................... 182.3. 与 System Console交互的 IP内核.............................................................................19

2.3.1. 通过调试代理程序提供的服务......................................................................... 192.4. 启动 System Console.............................................................................................20

2.4.1. 从 Nios II Command Shell启动 System Console............................................ 202.4.2. 启动独立的 System Console........................................................................ 202.4.3. 从 Platform Designer (Standard)启动 System Console.................................... 202.4.4. 从 Intel Quartus Prime启动 System Console................................................. 202.4.5. 自定义启动............................................................................................... 20

2.5. System Console GUI.............................................................................................212.5.1. System Explorer窗格................................................................................ 22

2.6. System Console命令.............................................................................................232.7. 在命令行模式下运行 System Console......................................................................... 252.8. System Console服务.............................................................................................25

2.8.1. 查找可用服务............................................................................................ 262.8.2. 打开和关闭服务..........................................................................................262.8.3. SLD Service............................................................................................ 272.8.4. In-System Sources and Probes服务............................................................ 282.8.5. 监控服务(Monitor Service).......................................................................... 292.8.6. 器件服务(Device Service)........................................................................... 312.8.7. 设计服务.................................................................................................. 322.8.8. 字节流服务(Bytestream Service)..................................................................332.8.9. JTAG Debug服务...................................................................................... 33

2.9. 使用工具包........................................................................................................... 342.9.1. 将 Dashboard脚本转换成 Toolkit API.............................................................342.9.2. 创建一个工具包描述文件...............................................................................35

内容

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

2

Page 3: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.3. 注册一个工具包..........................................................................................362.9.4. 启动一个工具包..........................................................................................362.9.5. 将工具包与 IP内核匹配................................................................................ 362.9.6. Toolkit API.............................................................................................. 36

2.10. ADC Toolkit....................................................................................................... 732.10.1. ADC Toolkit术语..................................................................................... 762.10.2. 设置参考信号的频率.................................................................................. 762.10.3. 调整信号生成器........................................................................................ 772.10.4. 运行信号质量测试..................................................................................... 782.10.5. 运行线性测试...........................................................................................792.10.6. ADC工具包数据视图................................................................................. 79

2.11. System Console示例和教程...................................................................................822.11.1. Nios II处理器示例...................................................................................82

2.12. 板载 Intel FPGA Download Cable II支持................................................................. 842.13. 系统验证流程中的MATLAB和 Simulink* ...................................................................84

2.13.1. 支持的MATLAB API命令........................................................................... 852.13.2. 高级流程(High Level Flow)........................................................................ 86

2.14. 不推荐使用的命令................................................................................................. 862.15. 使用 System Console分析和调试设计修订历史............................................................86

3. 调试收发器链路..................................................................................................................883.1. Channel Manager.................................................................................................88

3.1.1. 通道显示模式............................................................................................ 903.2. 收发器调试流程演练................................................................................................ 903.3. 修改设计以使能收发器调试........................................................................................90

3.3.1. 修改 Intel FPGA设计示例.............................................................................903.3.2. Stratix V调试系统配置...............................................................................933.3.3. 例化和参数化 Intel Arria 10调试 IP内核......................................................... 98

3.4. 将设计编程到 Intel FPGA中....................................................................................1003.5. 将设计加载到 Transceiver Toolkit中......................................................................... 1013.6. 链接硬件资源.......................................................................................................101

3.6.1. 将一个设计链接到一个器件.......................................................................... 1033.6.2. 将两个设计链接到两个器件.......................................................................... 1033.6.3. 将一个设计链接到两个器件.......................................................................... 1033.6.4. 链接设计和不同电路板上的器件.....................................................................1043.6.5. 验证硬件连接...........................................................................................104

3.7. 识别收发器通道....................................................................................................1053.7.1. 控制收发器通道........................................................................................ 105

3.8. 创建收发器链路....................................................................................................1053.9. 运行链路测试.......................................................................................................105

3.9.1. 运行 BER测试......................................................................................... 1063.9.2. 信号眼裕量测试(Signal Eye Margin Testing ( Stratix V only))...........................1063.9.3. 运行自定义流量测试(仅 Stratix V) ............................................................... 1083.9.4. 链路优化测试...........................................................................................108

3.10. 控制 PMA模拟设置..............................................................................................1093.10.1. Intel Arria 10和 Intel Cyclone 10 GX PMA设置......................................... 109

3.11. 用户界面设置参考............................................................................................... 1133.12. 解决常见错误.....................................................................................................116

内容

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

3

Page 4: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.13. 脚本编写 API参考...............................................................................................1163.13.1. Transceiver Toolkit命令..........................................................................1163.13.2. Data Pattern Generator命令................................................................... 1223.13.3. Data Pattern Checker命令......................................................................124

3.14. 调试收发器链路修订历史....................................................................................... 125

4. 使用 Signal Probe的快速设计调试..................................................................................... 1284.1. 使用 Signal Probe的设计流程................................................................................. 128

4.1.1. 执行一个完整的编译.................................................................................. 1284.1.2. 保留 Signal Probe管脚..............................................................................1284.1.3. 分配 Signal Probe源................................................................................ 1294.1.4. 在流水线路径与 Signal Probe管脚之间添加寄存器.............................................1294.1.5. 执行 Signal Probe编译..............................................................................1304.1.6. 分析 Signal Probe编译的结果..................................................................... 1304.1.7. 一个 Signal Probe编译所完成的操作 ............................................................ 1304.1.8. 了解 Signal Probe编译的结果..................................................................... 131

4.2. 脚本支持............................................................................................................ 1324.2.1. 生成一个 Signal Probe管脚........................................................................ 1334.2.2. 删除一个 Signal Probe管脚........................................................................ 1334.2.3. 使能一个 Signal Probe管脚........................................................................ 1334.2.4. 禁用一个 Signal Probe管脚........................................................................ 1334.2.5. 执行一个 Signal Probe编译........................................................................ 1334.2.6. 保留 Signal Probe管脚..............................................................................1344.2.7. 添加 Signal Probe源................................................................................ 1344.2.8. 分配 I/O标准.......................................................................................... 1344.2.9. 添加寄存器用于流水线(pipelining)................................................................ 1354.2.10. 完整编译后立即运行 Signal Probe ..............................................................1354.2.11. 手动运行 Signal Probe ............................................................................1354.2.12. 使能或禁用所有 Signal Probe布线.............................................................. 1354.2.13. 允许 Signal Probe修改 Fitting结果............................................................ 135

4.3. 使用 Signal Probe的快速设计调试修订历史.................................................................135

5. 使用 Signal Tap逻辑分析仪进行设计调试..............................................................................1375.1. Signal Tap逻辑分析仪..........................................................................................137

5.1.1. 硬件和软件要求........................................................................................ 1375.1.2. Signal Tap Logic Analyzer特性和优点 ........................................................1385.1.3. 向后兼容 Intel Quartus Prime软件的先前版本................................................ 139

5.2. Signal Tap Logic Analyzer任务流程概述..................................................................1395.2.1. 将 Signal Tap Logic Analyzer添加到您的设计中.............................................. 1405.2.2. 配置 Signal Tap Logic Analyzer..................................................................1405.2.3. 定义触发条件...........................................................................................1415.2.4. 编译设计................................................................................................ 1415.2.5. 对目标器件或者器件编程............................................................................. 1415.2.6. 运行 Signal Tap Logic Analyzer..................................................................1415.2.7. 查看,分析和使用采集的数据....................................................................... 142

5.3. 配置 Signal Tap Logic Analyzer..............................................................................1425.3.1. 分配一个采集时钟(Acquisition Clock)........................................................... 1425.3.2. 将信号添加到 Signal Tap文件中...................................................................143

内容

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

4

Page 5: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.3.3. 使用插件添加信号..................................................................................... 1455.3.4. 添加有限状态机状态编码寄存器(Adding Finite State Machine State Encoding

Registers)............................................................................................. 1465.3.5. 指定样本深度...........................................................................................1475.3.6. 采集数据到一个特定的 RAM类型...................................................................1475.3.7. 选择缓存采集模式..................................................................................... 1485.3.8. 指定流水线设置(Specifying Pipeline Settings)............................................... 1495.3.9. 过滤相关样本...........................................................................................1505.3.10. 管理多个 Signal Tap文件和配置................................................................. 156

5.4. 定义触发器......................................................................................................... 1575.4.1. 基本触发条件...........................................................................................1585.4.2. Comparison触发条件............................................................................... 1595.4.3. 高级触发条件...........................................................................................1615.4.4. Custom Trigger HDL对象......................................................................... 1635.4.5. 触发条件流程控制..................................................................................... 1665.4.6. 指定触发位置...........................................................................................1765.4.7. 上电触发器............................................................................................. 1775.4.8. 外部触发器(External Triggers)....................................................................178

5.5. 编译设计............................................................................................................ 1795.5.1. 使用 Intel Quartus Prime增量编译的更快速编译............................................. 1795.5.2. 防止需要重新编译的更改............................................................................. 1815.5.3. 验证是否需要重新编译工程.......................................................................... 1815.5.4. 通过快速重新编译进行增量式布线(Incremental Route with Rapid Recompile)....... 1815.5.5. 使用 Signal Tap Logic Analyzer的时序保留................................................... 1835.5.6. 性能和资源考量........................................................................................ 183

5.6. 对目标器件或者器件编程.........................................................................................1845.6.1. 确保.stp与.sof文件之间的设置兼容性............................................................184

5.7. 运行 Signal Tap Logic Analyzer..............................................................................1855.7.1. 运行时可重配置选项.................................................................................. 1855.7.2. Signal Tap状态消息................................................................................ 187

5.8. 查看,分析和使用采集的数据................................................................................... 1885.8.1. 使用分段缓存采集数据................................................................................1885.8.2. 不同采集模式之间的预填充写入行为的差异....................................................... 1895.8.3. 为比特码型创建助记符(Creating Mnemonics for Bit Patterns)........................... 1905.8.4. 使用插件的自动助记符................................................................................1915.8.5. 在设计中定位一个节点................................................................................1915.8.6. 保存采集的数据........................................................................................ 1925.8.7. 将采集的数据导出为其他文件格式.................................................................. 1925.8.8. 创建一个 Signal Tap列表文件......................................................................192

5.9. 其他功能............................................................................................................ 1925.9.1. 从设计实例创建 Signal Tap文件...................................................................1935.9.2. 使用 Signal Tap MATLAB MEX函数采集数据...................................................1955.9.3. 在实验室环境中使用 Signal Tap ...................................................................1965.9.4. 使用 Signal Tap Logic Analyzer进行远程调试.................................................1965.9.5. 在具备配置比特流安全性的器件中使用 Signal Tap Logic Analyzer ........................1975.9.6. 监控 Signal Tap Logic Analyzer使用的 FPGA资源...........................................197

5.10. 设计实例:使用 Signal Tap Logic Analyzers.............................................................1975.11. 自定义触发流程应用示例....................................................................................... 197

内容

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

5

Page 6: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.11.1. 设计示例 1:指定一个自定义触发位置........................................................... 1975.11.2. 设计示例 2:当在 triggercond2和 triggercond3之间 triggercond1出现十次时触发198

5.12. Signal Tap脚本支持...........................................................................................1995.12.1. Signal Tap命令行选项............................................................................1995.12.2. 从命令行采集数据................................................................................... 200

5.13. 使用 Signal Tap Logic Analyzer进行设计调试修订历史................................................200

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers). 2037.1. 关于 Intel Quartus Prime Logic Analyzer Interface................................................... 2037.2. 选择一个逻辑分析器.............................................................................................. 203

7.2.1. 所需组件................................................................................................ 2047.3. 使用 LAI的流程................................................................................................... 205

7.3.1. 定义 Logic Analyzer Interface的参数...........................................................2057.3.2. 将 LAI文件管脚映射到可用的 I/O管脚............................................................2067.3.3. 将内部信号映射到 LAI bank........................................................................ 2077.3.4. 编译 Intel Quartus Prime工程................................................................... 2077.3.5. 使用 LAI对 Intel支持的器件进行编程.............................................................208

7.4. 在运行期间控制活动 bank....................................................................................... 2087.4.1. 获取 Logic Analyzer上的数据..................................................................... 208

7.5. 使用 LAI及增量编译..............................................................................................2087.6. LAI核心参数.......................................................................................................2097.7. 使用外部逻辑分析器进行在系统调试修订历史(In-System Debugging Using External Logic

Analyzers Revision History)...............................................................................209

8. 存储器和常量的在系统修改(In-System Modification of Memory and Constants).................. 2118.1. 设置在系统可修改的存储器和常量..............................................................................2118.2. 运行 In-System Memory Content Editor..................................................................211

8.2.1. Instance Manager...................................................................................2128.2.2. 对 Hex Editor窗格中显示的数据进行编译........................................................2128.2.3. 导入和导出存储器文件................................................................................2128.2.4. 脚本支持................................................................................................ 2128.2.5. 使用 In-System Memory Content Editor对器件进行编程..................................2138.2.6. 示例:使用 In-System Memory Content Editor和 Signal Tap Logic Analyzer...... 213

8.3. 存储器和常量的在系统修改修订历史........................................................................... 213

9. 使用 In-System Sources and Probes进行设计调试............................................................2159.1. 硬件和软件要求....................................................................................................2179.2. 使用 In-System Sources and Probes Editor的设计流程...............................................217

9.2.1. 例化 In-System Sources and Probes IP Core............................................... 2189.2.2. In-System Sources and Probes IP Core参数............................................... 219

9.3. 编译设计............................................................................................................ 2199.4. 运行 In-System Sources and Probes IP Core........................................................... 219

9.4.1. In-System Sources and Probes Editor GUI................................................. 2209.4.2. 使用 JTAG链配置对器件编程 .......................................................................2209.4.3. Instance Manager...................................................................................2209.4.4. In-System Sources and Probes Editor窗格................................................. 221

9.5. In-System Sources and Probes Editor的 Tcl界面..................................................... 2229.6. 设计示例:动态 PLL重配置......................................................................................2249.7. 使用 In-System Sources and Probes进行设计调试修订历史.......................................... 226

内容

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

6

Page 8: Intel Quartus Prime Standard Edition用户指南: 调试工具

1. 系统调试工具概述

本章简要概述了 Intel® Quartus® Prime系统调试套件中提供的工具,并针对调试要求选择最佳工具的标准进行了讨论。

1.1. 系统调试工具组合

Intel Quartus Prime软件提供了一系列用于设计实时验证系统调试工具。

系统调试工具通过将设计中的信号布线(或“tapping”)到调试逻辑来提供可视性。Compiler在设计中包含调试逻辑,并生成编程文件,您可以将此编程文件下载到 FPGA或 CPLD中进行分析。

系统调试组合中的每个工具都使用存储器,逻辑和布线资源的组合来协助调试进程。由于不同的设计具有不同的约束和要求,因此您可以选择符合您设计特定要求的工具,例如可用备用管脚的数量或者物理器件中剩余的逻辑数或存储器资源。

1.1.1. 系统调试工具比较

表 1. 系统调试工具组合

工具 描述 典型使用

SystemConsole

• 提供实时在系统内调试功能。

• 允许您在没有处理器或其他软件的情况下读取和写入系统中的存储器映射(Memory Mapped)组件

• 通过 Tcl解释程序与设计中的硬件模块进行通信。• 允许您利用 Tcl脚本语言的所有功能。• 支持 JTAG和 TCP/IP连接。

您需要执行系统级调试。

例如,如果您有一个 Avalon® -MM slave或者Avalon -ST接口,那么您可以在传输级上调试设计。

TransceiverToolkit

• 使您能够通过组合指标测试和调整收发器链路信号质量。

• 物理介质附加层(PMA)的 Auto Sweeping设置可帮助您找到最佳参数值。

您需要在完成设计之前调试或优化电路板布局的信号完整性。

Signal TapLogic Analyzer

• 使用 FPGA资源• 对测试节点进行采样,并将信息输出到 Intel Quartus

Prime软件进行显示和分析。

您有备用的片上存储器,并且希望对硬件中运行的设计进行功能验证。

Signal Probe 以递增方式将内部信号布线到 I/O管脚,同时保留最后一次进行布局布线的设计结果。

您有备用 I/O管脚,并且想使用外部逻辑分析仪或示波器检查一小组控制管脚脚的操作。

Logic AnalyzerInterface (LAI)

• 将较大一组信号多路复用到较少数量的备用 I/O管脚。• 使您能够选择哪些信号通过 JTAG连接切换到 I/O管脚。

您有需要使用外部逻辑分析仪进行验证的有限片上存储器和大量内部数据总线。逻辑分析仪供应商(例如Tektronics*和 Agilent*)提供与此工具的集成,以提高可用性。

继续...

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 9: Intel Quartus Prime Standard Edition用户指南: 调试工具

工具 描述 典型使用

In-SystemSources andProbes

提供使用 JTAG接口将逻辑值驱动到内部节点和从内部节点采样逻辑值的简便方法。

您想使用带虚拟按钮的前面板对 FPGA进行原型设计。

In-SystemMemoryContent Editor

显示并允许您编辑片上存储器。 您想对未连接到 Nios® II处理器的片上存储器的内容进行查看和编辑。

当您不想在系统中有 Nios II调试内核时,您也可以使用此工具。

Virtual JTAGInterface

使您能够与 JTAG接口进行通信,以便开发自定义应用程序。

您想要与设计中的自定义信号进行通信。

1.1.2. 对常用调试要求所建议的工具

表 2. 常用调试要求的工具 (1)

要求 SignalProbe

逻辑分析仪接口(LAI)

SignalTap逻辑分析仪

描述

More Data Storage N/A X — 包含 LAI工具的外部逻辑分析仪使您能够存储比 Signal TapLogic Analyzer更多的采集数据,因为外部逻辑分析仪能够提供对更大缓冲器的访问。

Signal Probe工具不采集数据,也不存储数据。

Faster Debugging X X — 您可以将 LAI或者 Signal Probe工具同外部工具一起使用(例如:示波器和混合信号示波器(MSO))。此功能提供对时序模式的访问,允许您调试组合的数据流。

Minimal Effect onLogic Design

X X (2) X (2) Signal Probe工具以递增方式将节点布线到管脚,而不影响设计逻辑。

LAI将最少的逻辑添加到设计中,从而需要更少的器件资源。Signal Tap Logic Analyzer对设计的影响不大,因为 Compiler将调试逻辑视为单独的设计分区。

Short Compile andRecompile Time

X X (2) X (2) Signal Probe使用递增布线将信号附加到之前保留的管脚上。此特性使您能够在更改源信号选择时快速地重新编译。

Signal Tap Logic Analyzer和 LAI能够重新整修它们各自的设计分区以缩短重编译时间。

SophisticatedTriggeringCapability

N/A N/A X Signal Tap Logic Analyzer的触发功能可与商用逻辑分析仪相媲美。

Low I/O Usage — — X Signal Tap Logic Analyzer不需要额外的输出管脚。LAI和 Signal Probe都需要 I/O管脚约束(I/O pinassignments)。

Fast DataAcquisition

N/A — X Signal Tap Logic Analyzer能够在超过 200 MHz的速度上采集数据。

信号完整性问题限制了使用 LAI的外部逻辑分析仪的采集速度。

No JTAG ConnectionRequired

X — X Signal Probe和 Signal Tap不需要主机进行调试。包含 LAI的 FPGA设计需要一个活动的 JTAG连接到运行 IntelQuartus Prime软件的主机。

No ExternalEquipment Required

— — X Signal Tap Logic Analyzer仅需要一个从运行 Intel QuartusPrime软件或者独立的 Signal Tap Logic Analyzer的主机的 JTAG连接。

继续...

1. 系统调试工具概述

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

9

Page 10: Intel Quartus Prime Standard Edition用户指南: 调试工具

要求 SignalProbe

逻辑分析仪接口(LAI)

SignalTap逻辑分析仪

描述

Signal Probe和 LAI需要使用外部调试设备,例如:万用表、示波器或逻辑分析仪。

注释:1. • X代表对相关功能所建议的工具。

• —代表相关工具可用于此功能,但此工具可能无法提供最佳结果。

• N/A代表此功能不适用于所选工具。2. 当使用增量编译时有效。

1.1.3. 调试生态系统

Intel Quartus Prime软件使您能够串联使用调试工具来实践和分析测试中的逻辑并使收敛最大化。

系统调试工具中一个非常重要的区别是它们如何与设计进行交互。 Intel Quartus Prime软件中的所有调试工具都能够从设计节点读取信息,但只有一个子集允许您在运行时输入数据:

表 3. 系统调试工具的分类

调试工具 从设计读取数据 在设计中输入值 备注

Signal Tap Logic Analyzer, Yes No 针对探测寄存器传输级(RTL)网表中的信号进行优化的通用故障排除工具

Logic Analyzer Interface

Signal Probe

In-System Sources and Probes Yes Yes 这些工具能够:

• 从您定义的断点读取数据

• 在运行时期间将值输入到设计中Virtual JTAG Interface

System Console

Transceiver Toolkit

In-System Memory Content Editor

总之,这组片上调试工具构成了一个调试生态系统。这组工具可以对测试中的逻辑产生刺激因素,并从测试中的逻辑中获取响应,从而提供一个完整的解决方案。

图 1. 运行时上的调试生态系统

JTAG

FPGA

Quartus Prime Software Design Under Test

Virtual JTAG InterfaceTransceiver Toolkit

System ConsoleIn-System Sources and Probes

In-System Memory Content Editor

Signal TapLogic Analyzer Interface

Signal Probe

1. 系统调试工具概述

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

10

Page 11: Intel Quartus Prime Standard Edition用户指南: 调试工具

1.2. 用于监控 RTL节点的工具

Signal Tap Logic Analyzer,Signal Probe和 LAI工具对于以系统速度探测和调试 RTL信号非常有用。这些通用分析工具使您能够布线(tap)和分析 FPGA或者 CPLD中任何可布线的节点。

• 在设计有备用逻辑和存储器资源的情况下,Signal Tap Logic Analyzer可以对运行在实际硬件上的设计进行快速功能验证。

注意: CPLD不支持 Signal Tap Logic Analyzer,因为这些器件没有可用的存储器资源。

• 相反,如果逻辑和存储器资源紧张,并且您需要与外部逻辑分析仪相关的大样本深度(largesample depths),那么 LAI和 Signal Probe工具使用外部设备简化监控内部设计信号。

相关链接

• 使用 Signal Tap逻辑分析仪进行设计调试 (第 137页)

• 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External LogicAnalyzers) (第 203页)

1.2.1. 资源使用

这三种工具最重要的选择标准是实现设计后器件上的剩余资源和备用管脚数。

在设计规划过程的早期对调试选项进行评估,以确保支持电路板, Intel Quartus Prime工程和设计中的相应选项。提前规划可以减少调试时间,避免为了适应调试方法而进行临时变更。

图 2. 每个调试工具的资源使用情况

SignalProbe

Logic

Ana

lyzer

Inte

rface

Signal Tap

Logic

Memory

1.2.1.1. 开销逻辑(Overhead Logic)

任何需要 JTAG连接的调试工具都需要 SLD基础结构逻辑,以便与 JTAG接口进行通信,并在实例化的调试模块之间进行仲裁。开销逻辑使用大约 200个逻辑单元(LE),这是任何受支持的器件中可用资源的一小部分。设计中所有可用的调试模块一起共享开销逻辑。Signal Tap Logic Analyzer和 LAI都使用一个 JTAG连接。

1.2.1.1.1. For Signal Tap Logic Analyzer

Signal Tap Logic Analyzer需要逻辑以及存储器资源。所使用的逻辑资源的数量取决于所布线(tapped)的信号数量和触发逻辑的复杂性。但是,Signal Tap Logic Analyzer使用的逻辑资源的数量通常只占大多数设计的一小部分。

1. 系统调试工具概述

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

11

Page 12: Intel Quartus Prime Standard Edition用户指南: 调试工具

由 SLD仲裁逻辑和具有基本触发逻辑的单个节点组成的基线配置包含大约 300到 400个逻辑单元(LE)。添加到基线配置的每个附加节点都会增加大约 11个 LE。与逻辑资源相比,存储器资源是您设计需要考虑的更重要因素。存储器使用量可能很大,取决于如何配置 Signal Tap LogicAnalyzer实例来采集设计调试所需的数据和样本深度。对于 Signal Tap Logic Analyzer,还有一个额外的好处,就是不需要外部设备,因为所有的触发逻辑和存储都在芯片上。

1.2.1.1.2. For Signal Probe

Signal Probe的资源使用是最小的。因为 Signal Probe不需要 JTAG连接,逻辑和存储器资源不是必要的。 Signal Probe只要求资源将内部信号布线到调试测试点。

1.2.1.1.3. For Logic Analyzer Interface

除了 SLD基础逻辑之外,LAI还需要少量逻辑来实现被测信号之间的复用功能。由于芯片上没有存储数据样本,因此 LAI不使用存储器资源。

1.2.1.2. 资源评估

Signal Tap Logic Analyzer和 LAI的资源评估特性使您能够在使用设计对工具进行编译之前快速判断是否有足够的片上可用资源可用。

图 3. 资源评估程序(Resource Estimator)

1.2.2. 管脚使用

1.2.2.1. For Signal Tap Logic Analyzer

除了 JTAG测试管脚外,Signal Tap Logic Analyzer不使用其他管脚。所有数据都使用片上存储器进行缓存并通过 JTAG测试端口与 Signal Tap Logic Analyzer GUI进行通信。

1.2.2.2. For Signal Probe

Signal Probe特性的所用管脚数与布线(tapped)信号数之比是一比一。由于此特性可以快速消耗自由管脚,因此此特性的典型应用是将控制信号布线到备用管脚以进行调试。

1.2.2.3. For Logic Analyzer Interface

LAI可以将高达 256个信号映射到每个调试管脚,具体取决于可用的布线资源。JTAG端口控制映射到备用 I/O管脚的有效信号。利用这些特性,LAI非常适合将数据总线布线到一组测试管脚进行分析。

1.2.3. 可用性增强

Signal Tap Logic Analyzer,Signal Probe和 LAI工具可以添加到您现有的设计中,产生最小影响。使用节点查找器,您可以找到布线到调试模块的信号,而无需对 HDL文件进行任何更改。Signal Probe直接从适配后(post-fit)数据库中插入信号。Signal Tap Logic Analyzer和 LAI支持从预综合(pre-synthesis)和适配后(post-fit)网表中插入信号。

1. 系统调试工具概述

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

12

Page 13: Intel Quartus Prime Standard Edition用户指南: 调试工具

1.2.3.1. 增量式编译

这三个工具都能够使您快速查找和配置调试设置。除此之外, Intel Quartus Prime增量编译功能和 Intel Quartus Prime增量布线特性可实现编程文件的快速周转时间,从而提高产量并实现快速调试关闭。

LAI和 Signal Tap Logic Analyzer都支持增量式编译。使用增量式编译,您可以将一个 SignalTap Logic Analyzer实例或 LAI实例逐步加入到您的布局布线设计中。这样既可以保留现有设计的时序和区域优化,又可以在调试过程中需要进行任何更改时缩短整体编译时间。通过增量式编译,您可以节省高达 70%的编译时间。

1.2.3.2. 增量式布线

Signal Probe使用增量布线特性。增量布线特性仅运行编译的 Fitter阶段,除了新布线的节点外,不会对编译的设计有任何影响。通过使用 Signal Probe,可节省高达 90%的编译时间。

1.2.3.3. 通过脚本实现自动化

作为另一个产量增强,片上调试工具集中的所有工具都支持通过 quartus_stp Tcl package编写脚本。对于 Signal Tap Logic Analyzer和 LAI,编写脚本使用户能够在实验室中进行调试时实现用户定义的数据收集自动化。System Console包括用于编写脚本的一个完整 Tcl interpreter。

1.2.3.4. 远程调试

您可以通过 System Console使用 Intel Quartus Prime软件进行系统的远程调试。此特性使您能够通过现有的 TCP/IP连接对现场部署的设备进行调试。

• 关于通过 System Console设置 Nios II系统进行远程调试的信息,请参考 ApplicationNote 624。

• 关于设置 Intel FPGA SoC使用 Intel Quartus Prime SLD工具执行远程调试的信息,请参考 Application Note 693。

相关链接

• Application Note 624: Debugging with System Console over TCP/IP

• Application Note 693: Remote Debugging over TCP/IP for Intel FPGA SoC

1.3. 激励使能工具(Stimulus-Capable Tools)

In-System Memory Content Editor,In-System Sources and Probes和 Virtual JTAG接口使您能够将 JTAG接口用作通用通信端口。

虽然您可以使用所有这三种工具来获得相同的结果,但某个工具在某些应用中更易于使用:

• In-System Sources and Probes是切换控制信号的理想选择。

• In-System Memory Content Editor对于输入大量测试数据非常有用。

• 最后,Virtual JTAG接口非常适合想要开发定制 JTAG解决方案的高级用户。

System Console提供传输级上的系统级调试,例如通过 Avalon -MM slave或者 Avalon -ST接口。您可以通过 JTAG和 TCP/IP协议与芯片进行通信。System Console使用 Tcl interpreter与例化到设计中的硬件模块进行通信。

1. 系统调试工具概述

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

13

Page 14: Intel Quartus Prime Standard Edition用户指南: 调试工具

1.3.1. In-System Sources and Probes

In-System Sources and Probes使您能够通过访问 JTAG资源对设计进行读写。

将一个 Intel FPGA IP例化到您的 HDL代码中。此 Intel FPGA IP内核包含连接到设计中信号的源端口和探测端口,并提取 JTAG接口的传输详细信息。

此外,In-System Sources and Probes提供了一个 GUI,按实例显示源端口和探测端口,并能够读取探测端口和驱动器到源端口。这些功能使此工具非常适合在调试过程中翻转一组控制信号。

相关链接

使用 In-System Sources and Probes进行设计调试 (第 215页)

1.3.1.1. 按钮功能

在工程的开发阶段,您可以使用 In-System Sources and Probes GUI而不是按钮和 LED来对设计进行调试。此外,In-System Sources and Probes使用 Signal Tap逻辑分析程序支持用于读写的一组脚本命令。您还可以使用 Toolkit API构建自己的 Tk图形界面。此功能非常适合在设计的原型设计阶段构建虚拟前板。

相关链接

• Toolkit API (第 36页)

• Signal Tap脚本支持 (第 199页)

1.3.2. In-System Memory Content Editor

In-System Memory Content Editor使您能够通过 GUI界面或 Tcl脚本命令快速查看和修改存储器内容。In-System Memory Content Editor的工作原理是将单端口 RAM模块转换为双端口RAM模块。0一个端口连接到您的时钟域和数据信号,另一个端口连接到 JTAG时钟和数据信号以进行编辑或查看。

相关链接

存储器和常量的在系统修改(In-System Modification of Memory and Constants) (第 211页)

1.3.2.1. 生成测试向量

由于您可以轻松修改大量数据,因此 In-System Memory Content Editor一个有用的应用是生成设计的测试向量。例如,您可以例化一个空闲存储器模块,将输出端口连接到被测逻辑(使用与系统端测试中的逻辑相同的时钟),并为地址生成和存储器控制创建粘合逻辑。在运行时,您可以使用脚本或 In-System Memory Content Editor GUI修改存储器的内容,并在修改的 RAM模块中执行与被测逻辑同步的数据内容的突发传输。

1.3.3. 系统控制台(System Console)

System Console是一个从 Intel Quartus Prime软件运行的框架,对执行各种调试任务启动服务。System Console提供 Tcl脚本和一个 GUI来访问 Platform Designer (Standard)系统集成工具,执行设计的低级硬件调试,以及通过路径对模块进行识别,打开和关闭与一个 PlatformDesigner (Standard)模块的连接。您可以在系统级访问您的设计,以便将设计加载,卸载和传输到多个器件。此外,System Console支持用于构建图形界面的 Tk工具包。

1. 系统调试工具概述

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

14

Page 15: Intel Quartus Prime Standard Edition用户指南: 调试工具

相关链接

使用 System Console分析和调试设计 (第 17页)

1.3.3.1. 测试信号完整性

System Console还使您能够对用于控制如何生成测试模式,以及验证测试模式生成的数据的准确性的命令进行访问。您可以使用 System Console中的 JTAG调试命令来验证 JTAG链的功能和信号完整性。您可以测试时钟和复位信号。

1.3.3.2. 电路板启动和验证(Board Bring-Up and Verification)

您可以使用 System Console访问开发板上的可编程逻辑器件,执行电路板启动并执行验证。您还可以访问运行在 Nios II或者 Intel FPGA SoC处理器上的软件,以及访问产生或消耗字节流的模块。

1.3.3.3. 使用 Transceiver Toolkit测试链路信号完整性

Transceiver Toolkit从 System Console框架运行,使您能够运行收发器链路的自动测试,以调试和优化收发器设计。您可以使用 Transceiver Toolkit GUI设置收发器器件中的通道链路,并在运行时更改参数以测量信号完整性。对于所选器件,Transceiver Toolkit还可以运行和显示眼图轮廓测试。

1.4. Virtual JTAG Interface Intel FPGA IP

Virtual JTAG Interface Intel FPGA IP对操作 JTAG资源提供最精细的粒度级别。此 IntelFPGA IP使您能够通过显露所有 JTAG控制信号和配置 JTAG Instruction Registers (IRs)和JTAG Data Registers (DRs)来构建您自己的 JTAG扫描链。在运行时,通过 Tcl API或者System Console控制 IR/DR链。此功能适用于对 JTAG接口有深入了解并希望精确控制所用资源的数量和类型的用户。

相关链接

• Virtual JTAG (altera_virtual_jtag) IP Core User Guide

• Virtual JTAG Interface (VJI) Intel FPGA IPIn Intel Quartus Prime Help

1.5. 系统级调试架构

编译期间, Intel Quartus Prime生成 System-Level Debugging Hub,允许一个设计中有多个调试工具实例。

大多数 Intel FPGA片上调试工具使用 JTAG端口来控制和回读调试逻辑和被测信号的数据。System-Level Debugging Hub管理 JTAG资源的共享。

注意: 对于 System Console,将调试 IP内核显式地插入到设计中以使能调试。

System-Level Debugging Hub在工程的设计层次结构中显示为sld_hub:sld_hub_inst 。

1.6. 系统调试工具概述修订历史

本章节的修订历史如下:

1. 系统调试工具概述

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

15

Page 16: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 • Intel Quartus Prime Standard Edition User Guide中的初始版本。

2018.05.07 18.0.0 • 将 PR设计中的调试架构的信息从 Design Debugging with the Signal TapLogic Analyzer章节移到此处。

2017.05.08 17.0.0 • 将 Altera JTAG Interface和 Required Arbitration Logic主题合并成一个新的更新主题,主题名为 System-Level Debugging Infrastructure。

2015.11.02 15.1.0 将 Quartus II更改成 Intel Quartus Prime 。

2014年 6月 14.0.0 增添了 System Console支持 Tk toolkit的信息。

2013年 11月 13.1.0 Dita转换。添加 Remote Debugging over TCP/IP for Altera SoC ApplicationNote的链接。

2012年 6月 12.0.0 维护版本。

2011年 11月 10.0.2 维护版本。更改为新文档模板。

2010年 12月 10.0.1 维护版本。更改为新文档模板。

2010年 7月 10.0.0 首次发布

相关链接

文档存档关于 Intel Quartus Prime Handbook的早前版本,请搜索文档存档。

1. 系统调试工具概述

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

16

Page 17: Intel Quartus Prime Standard Edition用户指南: 调试工具

2. 使用 System Console分析和调试设计

2.1. System Console简介

System Console提供对设计的可视性,并使您能够在运行时对 FPGA执行系统级调试。SystemConsole对调试使能的 Platform Designer (Standard)实例化的 IP内核执行测试。各种调试服务提供对设计中单元的读写访问。您可以使用 System Console和构建在 System Console之上的工具执行以下任务:

• 通过最终设计和部分完整设计启动电路板(bring up boards)。

• 通过 Internet访问执行远程调试。

• 通过在系统中的多个器件上编写脚本来自动执行运行时验证。

• 使用 Transceiver Toolkit中的点击式(point-and-click)配置调整来测试串行链接。

• 使用 External Memory Interface Toolkit调试存储器接口。

• 将调试 IP集成到调试平台中。

• 使用 ADC Toolkit测试 Intel MAX® 10器件上的 ADC和模拟链的性能。

• 使用MATLAB*/Simulink执行系统验证。

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 18: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 4. 系统控制台工具(System Console Tools)(Tools)显示与 System Console交互的应用程序。System Console API支持访问在操作中的设计的服务。某些服务具有特定的硬件要求。

Tcl ConsoleTransceiver

Debug ToolkitADC Toolkit Bus Analyzer EMIF Toolkit Toolkit API

System Console Tcl(Command-Line Interface)

System Console GUI Interface

System Console

Ethernet Processor Master Bytestream Others

TCP/IP Nios II JTAG Master JTAG UART ISSP

Nios II withJTAG Debug

USB DebugMaster

Tools

API

HardwareRequirements

注意: 使用调试链路将主机连接到正在调试的目标。

相关链接

• Introduction to Intel Memory SolutionIn External Memory Interface Handbook Volume 1

• 调试收发器链路 (第 88页)

• Application Note 693: Remote Hardware Debugging over TCP/IP for Intel SoC

• Application Note 624: Debugging with System Console over TCP/IP

• White Paper 01208: Hardware in the Loop from the MATLAB/Simulink Environment

• System Console Online Training

2.2. System Console调试流程

如要使用 System Console调试设计,则必须执行如下步骤:

1. 将一个 IP Core添加到 Platform Designer (Standard)系统。

2. 生成 Platform Designer (Standard)系统。

3. 编译设计。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

18

Page 19: Intel Quartus Prime Standard Edition用户指南: 调试工具

4. 连接电路板并对 FPGA进行编程。

5. 启动 System Console。

6. 找到并打开 System Console服务。

7. 使用此服务执行调试操作。

8. 关闭此服务。

2.3. 与 System Console交互的 IP内核

System Console在主机上运行并通过调试代理程序与正在运行的设计进行通信。调试代理程序是嵌入在某些 IP内核中的软核逻辑(soft-logic),这些 IP内核使能与主机的调试通信。

使用 Platform Designer (Standard) IP Catalog例化调试 IP内核。某些 IP内核在默认情况下已使能用于调试,同时您可以通过参数编辑器中的选项来使能其他 IP内核的调试。某些调试代理程序有多种用途。

在设计中使用嵌入式调试的 IP内核时,可以使设计的大部分是可访问的。调试代理程序使您能够读取和写入存储器并从主机更改外设寄存器。

您可以根据需要打开和关闭与运行设计中的调试代理程序相关联的服务。System Console通过调试代理程序确定通信协议。通信协议决定用于命令和数据传输的最佳板级连接。

Programmable SRAM Object File (.sof)对 System Console提供通道通信信息。 当您的设计打开时,在 Intel Quartus Prime软件或者 Platform Designer (Standard)中打开 SystemConsole时,任何现有的.sof都会被自动找到并链接到被检测到的运行器件。在一个复杂的系统中,您可能需要手动链接设计和器件。

相关链接

WP-01170 System-Level Debugging and Monitoring of FPGA Designs

2.3.1. 通过调试代理程序提供的服务

通过将相应的调试代理程序添加到您的设计中,System Console服务可以使用调试代理程序的相关功能。

表 4. System Console的公共服务

服务 功能 调试代理程序提供的服务

master 访问与master接口连接的存储器映射的( Avalon -MM或者 AXI) slave。

• Nios II with debug• JTAG to Avalon Master Bridge• USB Debug Master

slave 允许主机访问单一 slave,而无需知道主机存储器映射中slave的位置。System Console主机可以访问的任何slave都可以提供此服务。

• Nios II with debug• JTAG to Avalon Master Bridge• USB Debug Master如果加载了一个 SRAM Object File (.sof),那么由调试master控制的 slave提供 slave服务。

processor • 启动,停止或步进处理器。

• 读写处理器寄存器。

Nios II with debug

JTAG UART JTAG UART是一个 Avalon -MM slave器件,可与System Console一起使用来发送和接收字节流。

JTAG UART

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

19

Page 20: Intel Quartus Prime Standard Edition用户指南: 调试工具

注意: IP Catalog中的以下 IP内核不支持 Intel Quartus Prime软件当前版本中的 VHDL仿真生成:

• JTAG Debug Link

• SLD Hub Controller System

• USB Debug Link

相关链接

• System Console示例和教程 (第 82页)

• System Console命令 (第 23页)

2.4. 启动 System Console

2.4.1. 从 Nios II Command Shell启动 System Console

1. 在Windows Start菜单上,点击 All Programs > Intel > Nios II EDS<version> > Nios II<version> > Command Shell。

2. 输入 system-console。

3. 输入-- help获得 System Console帮助。

4. 输入 system-console --project_dir=<project directory>,指向一个包含.qsf或者.sof文件的目录。

2.4.2. 启动独立的 System Console

您可以获得 System Console的独立版本,此版本作为 Intel网站上 Intel Quartus Primesoftware Programmer and Tools installer的一部分。

1. 去到 Download Center页面,点击 Additional Software选项卡。

2. 在Windows Start菜单上,点击 All Programs > Intel FPGA <version> >Programmer and Tools > System Console。

相关链接

Intel Download Center

2.4.3. 从 Platform Designer (Standard)启动 System Console

点击 Tools > System Console。

2.4.4. 从 Intel Quartus Prime启动 System Console

点击 Tools > System Debugging Tools > System Console。

2.4.5. 自定义启动

您可以自定义 System Console环境:

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

20

Page 21: Intel Quartus Prime Standard Edition用户指南: 调试工具

• 将命令添加到 system_console_rc配置文件,此文件位于:

— <$HOME>/system_console/system_console_rc.tcl

此位置中的文件是用户配置文件,仅影响主目录的所有者。

• 当从 Nios II命令壳运行 System Console时,使用命令行参数--rc_script=<path_to_script> 指定您自己的设计启动配置文件。

• 将 system_console_rc.tcl文件与自定义的 rc_script.tcl文件结合使用。在这种情况下,system_console_rc.tcl文件执行 System Console操作,rc_script.tcl文件执行调试操作。

启动时,System Console会自动运行这些文件中的 Tcl命令。首先运行system_console_rc.tcl文件中的命令,然后运行 rc_script.tcl文件中的命令。

2.5. System Console GUI

System Console GUI包含一个多窗格的主窗口,使您能够与当前在主机上运行的设计进行交互。

• System Explorer—显示设计中 System Console虚拟文件系统的层次结构,包括板级连接,器件,设计和脚本。

• Workspace—显示可用的工具包,包括:ADC Toolkit,Transceiver Toolkit,Toolkits,GDB Server Control Panel和 Bus Analyzer。点击 Tools菜单以启动应用程序。

• Tcl Console—一个使您能够使用 Tcl脚本(例如:源脚本),编写程序和使用 SystemConsole API与您的设计进行交互的窗口。

• Messages—显示与连接和调试操作相关的状态,警告和错误消息。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

21

Page 22: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 5. System Console GUI

2.5.1. System Explorer窗格

System Explorer窗格显示所有连接的调试 IP内核的虚拟文件系统,并包含以下信息:

• Devices文件夹—显示关于连接到 System Console的所有器件的信息。

• Scripts文件夹—存储脚本以便于执行。

• Connections文件夹—显示关于 System Console可见的板级连接的信息,例如: IntelFPGA Download Cable。可以进行多个连接。

• Designs文件夹—显示关于与 System Console连接的 Intel Quartus Prime设计的信息。每个设计代表一个加载的.sof文件。

Devices文件夹包含连接到 System Console的每个器件的子文件夹。每个器件子文件夹包含一个(link)文件夹,并且可能包含一个(files)文件夹。(link)文件夹显示 System Console能够访问的调试代理程序(和其他硬件)。(files)文件夹包含关于从 Intel Quartus Prime工程加载的设计文件的信息。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

22

Page 23: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 6. System Explorer窗格此图显示了 Device文件夹下的 EP4SGX230文件夹,此文件夹包含一个(link)文件夹。(link)文件夹包含一个 JTAG文件夹,描述了与此器件的活动调试连接,例如:JTAG,USB,Ethernet和通过 JTAG连接与 EP4SGX230器件连接的代理程序。

• 带有上下文菜单的文件夹显示一个上下文菜单图标。右键单击这些文件夹来查看上下文菜单。例如,Connections文件夹显示一个上下文菜单图标。

• 带有消息的文件夹显示一个消息图标。将鼠标悬停在这些文件夹上以查看消息。例如:Scripts文件夹有一个消息图标。

• 感测目标的时钟和复位状态的调试代理程序显示带有时钟状态图标的信息或错误消息。此图标指示时钟是在运行(信息,绿色),停止(错误,红色)还是正在运行但在复位中(错误,红色)。例如,图中的 trace_system_jtag_link.h2t文件夹有一个运行时钟。

2.6. System Console命令

控制台命令使能测试。使用控制台命令按路径标识一个服务,以及打开和关闭连接。标识服务的path是大多数 System Console命令的第一个参数。

按照下面步骤启动一个服务连接:

1. 通过使用 get_service_paths命令指定一个服务的路径来标识此服务。

2. 使用 claim_service命令打开一个与服务的连接。

3. 使用 Tcl and System Console命令测试连接的器件。

4. 使用 close_service命令关闭一个与服务的连接。

注意: 对于所有的 Tcl命令,<format>参数必须在最前。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

23

Page 24: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 5. System Console命令

命令 参数 功能

get_service_types N/A 返回 System Console管理的服务类型列表。服务类型的示例包括master,bytestream,processor,sld,jtag_debug,device和 design。

get_service_paths • <service-type>• <device>—返回同一指定器件中的服务。此参数可以是一个器件或者器件中的其他服务。

• <hpath>—返回 hpath以指定前缀开头的服务。

• <type>—返回调试类型与此值匹配的服务。特别用于打开从属服务时。

• <type>—返回与参数相同的开发板上的服务。指定同一板级上的板级服务或任何其他服务。

使您能够过滤返回的服务。

claim_service • <service-type>• <service-path>• <claim-group>• <claims>

更好地控制您要使用的服务部分。

claim_service返回表示服务使用的新路径。每次使用都是独立的。多次调用 claim_service每次都会返回不同的值,但每次都允许对服务的访问直到关闭。

close_service • <service-type>• <service-path>

关闭指定路径上的指定服务类型。

is_service_open • <service-type>• <service-type>

如果路径提供的服务类型是打开的(open),则返回 1;如果服务类型是关闭的(closed),则返回 0。

get_services_to_add N/A 返回一个可使用 add_service命令进行例化的所有服务的列表。

add_service • <service-type>• <instance-name>• optional-parameters

使用给定的实例名称添加指定服务类型的服务。运行get_services_to_add以检索可例化的服务列表。此命令返回添加服务的路径。

运行 help add_service <service-type>获得关于此服务类型的特定帮助,包括此服务可能需要的任何参数。

add_service gdbserver • <Processor Service>• <port number>

例化 gdbserver。

add_service tcp • <instance name>• <ip_addr>• <port_number>

使您能够连接到一个 TCP/IP端口,此端口通过以太网提供调试链路。请参考 AN693 (Remote HardwareDebugging over TCP/IP for Intel FPGA SoC)了解详细信息。

add_servicetransceiver_channel_rx

• <data_pattern_checker>• <path>• <transceiver path>• <transceiver channel

address>• <reconfig path>• <reconfig channel

address>

例化一个 Transceiver Toolkit接收器通道。

继续...

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

24

Page 25: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

add_servicetransceiver_channel_tx

• <data_pattern_generator>

• <path>• <transceiver path>• <transceiver channel

address>• <reconfig path>• <reconfig channel

address>

例化一个 Transceiver Toolkit发送器通道。

add_servicetransceiver_debug_link

• <transceiver_channel_txpath>

• <transceiver_channel_rxpath>

例化一个 Transceiver Toolkit调试链路。

get_version N/A 返回当前的 System Console版本和内部版本号(buildnumber)。

get_claimed_services • <claim> 对于给定的声明组,返回声明的服务列表。返回的列表由路径和服务类型成对组成。每一对都是一项声明的服务。

refresh_connections N/A 扫描可用硬件并更新可用的服务路径(如果有任何更改)。

send_message • <level>• <message>

将给定级别的消息发送到消息窗口。可用级别包括信息,警告,错误和调试。

相关链接

Remote Hardware Debugging over TCP/IP for SoC Devices

2.7. 在命令行模式下运行 System Console

您可以在命令行模式下运行 System Console,并以交互方式工作或运行 Tcl脚本。SystemConsole在控制台窗口中打印输出。

• --cli—在命令行模式下运行 System Console。

• --project_dir=<project dir> —将 System Console定向到硬件工程的位置。也在 GUI模式下运行。

• --script=<your script>.tcl—指示 System Console运行 Tcl脚本。

• --help—列出所有可用的命令。输入--help <command name>提供命令的语法和参数。

如果键入命令的开头字母,然后按 Tab键,那么 System Console将提供命令完成。

2.8. System Console服务

Intel的 System Console服务提供对 FPGA中例化的硬件模块的访问。根据所提供的调试访问类型,服务各不相同。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

25

Page 26: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.8.1. 查找可用服务

System Console使用一个虚拟文件系统来组织可用服务,这类似于 Linux系统中的/devlocation。板级连接,器件类型和 IP名称都是服务路径的一部分。服务实例由它们在文件系统中的唯一服务路径引用。要检索特定服务的服务路径,请使用命令 get_service_paths<service-type>。

实例-1: 查找服务路径

#We are interested in master services.set service_type "master"

#Get all the paths as a list.set master_service_paths [get_service_paths $service_type]

#We are interested in the first service in the list.set master_index 0

#The path of the first master.set master_path [lindex $master_service_paths $master_index]

#Or condense the above statements into one statement:set master_path [lindex [get_service_paths master] 0]

System Console命令需要服务路径来标识要访问的服务实例。不同组件的路径可以在 SystemConsole的运行之间和版本之间进行更改。使用 get_service_paths命令获取服务路径。

服务路径的字符串值取决于工具的不同版本。使用 marker_node_info命令从路径获取信息。

System Console在启动时自动发现大多数服务。System Console自动扫描所有基于 JTAG和USB的服务实例并检索它们的服务路径。System Console不会自动发现诸如 TCP/IP的某些服务。使用 add_service通知 System Console有关这些服务的信息。

实例-2: marker_node_info

使用 marker_node_info命令获取关于已发现服务的信息。

set slave_path [get_service_paths -type altera_avalon_uart.slave slave]array set uart_info [marker_node_info $slave_path]echo $uart_info(full_hpath)

2.8.2. 打开和关闭服务

获得特定服务实例的服务路径后,您可以访问此服务以供使用。

claim_service命令指示 System Console开始使用特定服务实例,并且没有其他参数,声明服务实例以供独占使用。

实例-3: 打开一个服务

set service_type "master"set claim_path [claim_service $service_type $master_path mylib];#Claims service.

您可以将其他参数传递给 claim_service命令,以指示 System Console开始访问服务实例的特定部分。例如,如果使用主服务访问存储器,那么使用 claim_service仅访问 0x0到0x1000之间的地址空间。然后,System Console允许其他用户访问其他存储器范围,并拒绝访问所声明的存储器范围。claim_service命令返回新创建的服务路径,您可以使用此路径访问声明的资源。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

26

Page 27: Intel Quartus Prime Standard Edition用户指南: 调试工具

您可以对打开后的服务进行访问。完成访问服务实例后,使用 close_service命令指示System Console将此资源用于其他用户。

实例-4: 关闭一个服务

close_service master $claim_path; #Closes the service.

2.8.3. SLD Service

SLD Service将值移入 SLD节点的指令和数据寄存器,并捕获先前的值。与 SLD节点交互时,首先获取对已打开服务上节点的独占访问权限。

实例-5: SLD Service

set timeout_in_ms 1000set lock_failed [sld_lock $sld_service_path $timeout_in_ms]

此代码尝试锁定选定的 SLD节点。如果它已被锁定,那么 sld_lock等待指定的超时时间。在继续之前请确认程序返回非零值。设置指令寄存器并捕获前一个:

if {$lock_failed} { return}set instr 7set delay_us 1000set capture [sld_access_ir $sld_service_path $instr $delay_us]

1000微秒的延迟可确保以下 SLD命令在至少 1000微秒后执行。数据寄存器访问的工作方式相同。

set data_bit_length 32set delay_us 1000set data_bytes [list 0xEF 0xBE 0xAD 0xDE]set capture [sld_access_dr $sld_service_path $data_bit_length $delay_us \$data_bytes]

移位计数以比特指定,但数据内容指定为字节列表。捕获返回值也是字节列表。一旦完成 SLD服务后就要解锁 SLD节点。

sld_unlock $sld_service_path

相关链接

Virtual JTAG IP Core User Guide

2.8.3.1. SLD命令

表 6. SLD命令

命令 参数 功能

sld_access_ir <claim-path><ir-value><delay> (in µs)

将指令值移入指定节点的指令寄存器。返回指令的先前值。

如果<delay>参数是一个非零值,那么 JTAG时钟在访问后暂停此值的时长。

sld_access_dr <service-path><size_in_bits><delay-in-µs>,

将字节值移入 SLD节点的数据寄存器,最大值为指定的比特值。如果<delay>参数是一个非零值,那么 JTAG时钟在访问后至少暂停此值的时长。返回数据寄存器的之前内容。

继续...

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

27

Page 28: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

<list_of_byte_values>

sld_lock <service-path><timeout-in-milliseconds>

锁定 SLD链以确保独占访问。如果成功则返回 0。如果 SLD链已被另一个用户锁定,那么在抛出 Tcl错误之前需尝试 <timeout>ms。如果要处理错误,可以使用 catch命令。

sld_unlock <service-path> 解锁 SLD链。

2.8.4. In-System Sources and Probes服务

In-System Sources and Probes (ISSP)服务提供对 altsource_probe IP core的脚本访问,与使用 Intel Quartus Prime软件中的 In-System Sources and Probes Editor的方式类似。

实例-6: ISSP服务

在使用 ISSP服务之前,要确保您的设计在 In-System Sources and Probes Editor中有效。在 System Console中,打开 ISSP实例的服务。

set issp_index 0set issp [lindex [get_service_paths issp] 0]set claimed_issp [claim_service issp $issp mylib]

查看有关此特定 ISSP实例的信息。

array set instance_info [issp_get_instance_info $claimed_issp]set source_width $instance_info(source_width)set probe_width $instance_info(probe_width)

Intel Quartus Prime软件将探测数据读取为长度等于探测器宽度的单一位串。

set all_probe_data [issp_read_probe_data $claimed_issp]

例如,您可以定义如下程序来提取单一探测行的数据。

proc get_probe_line_data {all_probe_data index} { set line_data [expr { ($all_probe_data >> $index) & 1 }] return $line_data}set initial_all_probe_data [issp_read_probe_data $claim_issp]set initial_line_0 [get_probe_line_data $initial_all_probe_data 0]set initial_line_5 [get_probe_line_data $initial_all_probe_data 5]# ...set final_all_probe_data [issp_read_probe_data $claimed_issp]set final_line_0 [get_probe_line_data $final_all_probe_data 0]

Intel Quartus Prime软件将源数据写为长度等于源宽度的单一位串。

set source_data 0xDEADBEEFissp_write_source_data $claimed_issp $source_data

当前设置的源数据也可以被检索。

set current_source_data [issp_read_source_data $claimed_issp]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

28

Page 29: Intel Quartus Prime Standard Edition用户指南: 调试工具

例如,通过执行以下操作反转 32位宽源的数据:

set current_source_data [issp_read_source_data $claimed_issp]set inverted_source_data [expr { $current_source_data ^ 0xFFFFFFFF }]issp_write_source_data $claimed_issp $inverted_source_data

2.8.4.1. In-System Sources and Probes命令

注意: ISSP声明的有效值包括 read_only,normal和 exclusive。

表 7. In-System Sources and Probes命令

命令 参数 功能

issp_get_instance_info <service-path> 返回 In-System Sources and Probes实例的配置列表,包括:instance_index

instance_name

source_width

probe_width

issp_read_probe_data <service-path> 检索探测输入的当前值。返回一个十六进制字符串,表示探测端口值。

issp_read_source_data <service-path> 检索源输出端口的当前值。返回一个十六进制字符串,表示源端口值。

issp_write_source_data <service-path><source-value>

设置源输出端口的值。此值可以是 System Console Tcl interpreter支持的十六进制字符串或十进制值。

2.8.5. 监控服务(Monitor Service)

监控器服务建立在master服务之上,以支持定期读取 Avalon -MM slave。此服务是完全基于软件的。监控服务不需要额外的软逻辑。此服务简化了进行间隔读取的逻辑,并且与手动执行master服务相比,此服务提供了更好的性能。

实例-7: 监控服务(Monitor Service)

1. 确定要轮询的master和存储器地址范围:

set master_index 0set master [lindex [get_service_paths master] $master_index]set address 0x2000set bytes_to_read 100set read_interval_ms 100

使用第一个master,从地址 0x2000开始,每 100毫秒读取 100个字节。

2. 打开监控服务:

set monitor [lindex [get_service_paths monitor] 0]set claimed_monitor [claim_service monitor $monitor mylib]

监控服务自动打开master服务。

3. 使用监控服务,寄存地址范围和时间间隔:

monitor_add_range $claimed_monitor $master $address $bytes_to_readmonitor_set_interval $claimed_monitor $read_interval_ms

4. 添加更多范围,定义每个间隔的结果:

global monitor_data_bufferset monitor_data_buffer [list]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

29

Page 30: Intel Quartus Prime Standard Edition用户指南: 调试工具

5. 收集数据并附加上全局变量。

proc store_data {monitor master address bytes_to_read} { global monitor_data_buffer# monitor_read_data returns the range of data polled from the running design as a list#(in this example, a 100-element list). set data [monitor_read_data $claimed_monitor $master $address $bytes_to_read]# Append the list as a single element in the monitor_data_buffer global list. lappend monitor_data_buffer $data}

注意:

如果此程序使用的时间超过间隔时间,那么监控服务可能要跳过对此程序的下一个调用或多个调用。在这种情况下,monitor_read_data返回最新的轮询数据。

6. 使用打开的监控服务寄存此回调:Register this callback with the opened monitorservice:

set callback [list store_data $claimed_monitor $master $address $bytes_to_read]monitor_set_callback $claimed_monitor $callback

7. 使用回调变量在监控完成一个间隔时调用。开始监控:

monitor_set_enabled $claimed_monitor 1

监控立即从器件读取指定的范围并在指定的间隔调用回调。检查 monitor_data_buffer对此进行验证。要关闭监控,在以上命令中使用 0,而不是 1。

2.8.5.1. Monitor命令

您可以使用Monitor命令以固定间隔读取 Avalon -MM slave存储器位置。

在正常负载下,监控服务在每个间隔后读取数据,然后调用回调。如果您读取的值时序敏感的,那么可以使用 monitor_get_read_interval命令读取数据被读取的时间间隔之间的确切时间。

在大量负载下,或者需要使用很长时间执行回调时,监控服务会跳过一些回调。如果您读取的寄存器没有副作用(例如,它们读取复位后的事件总数),那么跳过回调对您的代码没有影响。monitor_read_data命令和 monitor_get_read_interval命令都适用于此情况。

如果您读取的寄存器具有副作用(例如,它们返回最后读取之后的事件数),那么您必须能够访问已读取的数据,但对于这些数据,回调被跳过。 monitor_read_all_data和monitor_get_all_read_intervals命令提供对此数据的访问。

表 8. 监控命令

命令 参数 功能

monitor_add_range <service-path><target-path><address><size>

将一个连续的存储器地址添加到受监控的存储器列表中。

<service path>是服务打开时返回的值。<target-path>参数是要读取的master服务的名称。地址在此服务的地址空间内。<target-path>从[lindex [get_service_pathsmaster] n]返回,其中 n是服务的编号。

继续...

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

30

Page 31: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

<address>和<size>相对于master服务。

monitor_get_all_read_intervals <service-path><target-path><address><size>

返回 monitor_read_all_data返回的数据中两次读取之间的间隔列表(以毫秒为单位)。

monitor_get_interval <service-path> 返回当前间隔集(interval set),此间隔集指定轮询操作的频率。

monitor_get_missing_event_count <service-path> 返回在评估最后一个 Tcl回调表达式时错过的回调事件数。

monitor_get_read_interval <service-path><target-path><address><size>

返回 monitor_read_data返回的最后两次数据读取之间经过的毫秒数。

monitor_read_all_data <service-path><target-path><address><size>

返回从上次 Tcl回调以来从器件读取的所有最新值中读取的 8-bit值列表。您指定的存储器范围必须在monitor_add_range中中的范围内。

monitor_read_data <service-path><target-path><address><size>

返回从器件读取的最新值中读取的 8-bit值列表。您指定的存储器范围必须在 monitor_add_range中中的范围内。

monitor_set_callback <service-path><Tcl-expression>

指定 System Console在读取此服务监控的所有存储器后必须评估的 Tcl表达式。通常情况下,使用传入的必要参数将此表达式指定为单个字符串 Tcl程序调用。

monitor_set_enabled <service-path><enable(1)/disable(0)>

使能和禁用监控。在此命令之后开始存储器读取,并在读取数据后评估 Tcl回调。

monitor_set_interval <service-path><interval>

通过指定两次存储器读取之间的间隔来定义轮询操作的目标频率。实际轮询频率取决于系统活动。

2.8.6. 器件服务(Device Service)

器件服务支持器件级操作。

实例-8: 编程

您可以使用包含 Tcl脚本的器件服务来执行器件编程。

set device_index 0 ; #Device index for targetset device [lindex [get_service_paths device] $device_index]set sof_path [file join project_path output_files project_name.sof]device_download_sof $device $sof_path

要进行编程,您只需要器件服务路径和.sof的文件系统路径。确保目标器件上没有打开其他服务(例如:master服务),否则命令会失败。之后,您可以执行以下操作来检查链接到器件的设计是否与编程的设计相同:

device_get_design $device

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

31

Page 32: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.8.6.1. 器件命令

器件命令提供对电路板上可编程逻辑器件的访问。在使用这些命令之前,请使用get_service_paths确定电路板上可编程逻辑器件的路径。

表 9. 器件命令

命令 参数 功能

device_download_sof <service_path><sof-file-path>

将指定的.sof加载到路径指定的器件。

device_get_connections <service_path> 返回在指定路径上转到器件的所有连接。

device_get_design <device_path> 返回当前与此器件链接的设计。

2.8.7. 设计服务

您可以使用设计服务命令来处理 Intel Quartus Prime设计信息。

实例-9: 加载

从 Intel Quartus Prime软件或者 Platform Designer (Standard)打开 System Console时,如果已经构建.sof,则自动获取当前工程的调试信息。在其他情况下,您可以手动加载。

set sof_path [file join project_dir output_files project_name.sof]set design [design_load $sof_path]

System Console现在知道此特定.sof已经加载。

实例-10: 链接

.sof一旦加载,System Console就会自动将设计信息链接到连接的器件。生成的链接仍然存在,您可以选择取消此链接或者在等同器件(包含相同的 .sof)上重用此链接。

您可以进行手动链接。

set device_index 0; # Device index for our targetset device [lindex [get_service_paths device] $device_index]design_link $design $device

如果目标器件与设计服务不匹配,那么手动链接将失败。

如果编程到目标器件中的.sof与设计.sof不同,链接也会失败。

2.8.7.1. 设计服务命令

设计服务命令在系统级加载并处理您的设计。

表 10. 设计服务命令

命令 参数 功能

design_load <quartus-project-path>,<sof-file-path>,

将 Intel Quartus Prime设计的一个模型加载到 System Console。返回设计路径。

例如,如果 Intel Quartus Prime Project File (.qpf)在 c:/projects/loopback 中,输入以下命令:design_load {c:\projects\loopback\}

继续...

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

32

Page 33: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

or <qpf-file-path>

design_link <design-path><device-service-path>

将一个 Intel Quartus Prime逻辑设计链接到物理器件。例如,您可以将一个称为 2c35_quartus_design的 Intel QuartusPrime设计链接到 2c35器件。创建此链接后,System Console会在 IntelQuartus Prime工程的逻辑子模块与物理子模块之间创建相应的响应关系。

design_extract_debug_files <design-path><zip-file-name>

从.sof提取调试文件并生成 zip文件,此 zip文件能够通过电子邮件发送到Intel FPGA Support以进行分析。您可以指定{}的设计路径以取消链接并对此器件禁用自动链接。

design_get_warnings <design-path> 获得此设计的警告列表。若设计正确加载,则返回一个空列表。

2.8.8. 字节流服务(Bytestream Service)

字节流服务提供对生成或使用字节流的模块的访问。使用字节流服务直接与提供字节流接口的 IP内核进行通信,例如:Altera JTAG UART或者 Avalon -ST JTAG接口。

实例-11: 字节流服务(Bytestream Service)

以下代码查找接口的字节流服务并将其打开。

set bytestream_index 0set bytestream [lindex [get_service_paths bytestream] $bytestream_index]set claimed_bytestream [claim_service bytestream $bytestream mylib]

将输出数据指定为字节列表并通过打开的服务发送:

set payload [list 1 2 3 4 5 6 7 8]bytestream_send $claimed_bytestream $payload

输入数据也是一个字节列表。

set incoming_data [list]while {[llength $incoming_data] ==0} { set incoming_data [bytestream_receive $claimed_bytestream 8]}

完成后关闭服务。

close_service bytestream $claimed_bytestream

2.8.8.1. 字节流命令(Bytestream Commands)

表 11. 字节流命令(Bytestream Commands)

命令 参数 功能

bytestream_send <service-path><values>

将字节列表发送到指定的字节流服务。values参数是要发送的字节列表。

bytestream_receive <service-path><length>

返回指定服务接收队列中当前可用的字节列表(不超过指定的限制)。length参数是要接收的最大字节数。

2.8.9. JTAG Debug服务

JTAG Debug服务使您能够检查您设计中时钟和复位的状态。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

33

Page 34: Intel Quartus Prime Standard Edition用户指南: 调试工具

以下是一个 JTAG Debug设计流程示例。

1. 识别可用的 JTAG Debug路径:

get_service_paths jtag_debug

2. 选择一条 JTAG Debug路径:

set jtag_debug_path [lindex [get_service_paths jtag_debug] 0]

3. 声明一个 JTAG Debug服务路径:

set claim_jtag_path [claim_service jtag_debug$jtag_debug_path mylib]

4. 运行 JTAG Debug服务:

jtag_debug_reset_system $claim_jtag_pathjtag_debug_loop $claim_jtag_path [list 1 2 3 4 5]

2.8.9.1. JTAG Debug命令

JTAG Debug命令帮助调试连接到器件的 JTAG Chain。

表 12. JTAG Debug命令

命令 参数 功能

jtag_debug_loop <service-path><list_of_byte_values>

通过系统级调试(SLD)节点的 tdi和 tdo的环回(loopback)来循环指定的字节列表。按接收顺序返回字节值列表。此命令停止,直到接收到所有字节。字节值有 0x(十六进制)前缀,并由空格划定。

jtag_debug_sample_clock <service-path> 返回驱动模块系统接口的系统时钟的时钟信号。时钟值是被异步采样的;因此,您必须对时钟进行多次采样以确保它正在切换。

jtag_debug_sample_reset <service-path> 返回 Avalon -ST JTAG Interface内核的 reset_n信号的值。如果 reset_n是低电平(置位),那么值为 0。如果 reset_n为高电平(置低),那么值为 1。

jtag_debug_sense_clock <service-path> 返回一个监控系统时钟活动的粘滞位(sticky bit)。如果自上次执行此命令后时钟至少切换一次,则返回 1。否则,返回 0。读取时粘滞位复位成 0。

jtag_debug_reset_system <service-path> 发出一个复位请求到指定服务。器件内的连接决定了系统的哪个部分被复位。

2.9. 使用工具包

使用 Toolkit API,您可以创建自定义工具以可视化设计调试数据并与之交互。Toolkit API提供了按钮和文本字段形式的图形小部件,可以利用用户输入与调试逻辑进行交互。Toolkit API可以与Intel Quartus Prime 14.1和更高版本一起使用。Toolkit API是 Dashboard服务的后继产品。

使用 Toolkit API创建的工具包需要以下文件:

• 描述套件的 XML文件(.toolkit文件)。

• 实现工具包 GUI的 Tcl文件。

2.9.1. 将 Dashboard脚本转换成 Toolkit API

按照下面步骤转换 Dashboard脚本以使用 Toolkit API:

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

34

Page 35: Intel Quartus Prime Standard Edition用户指南: 调试工具

1. 创建一个.toolkit文件。

2. 修改 dashboard脚本:

a. 移除 add_service dashboard <name of service>命令。

b. 将 dashboard_<command>更改成 toolkit_<command>。

c. 将 open_service更改成 claim_service。

例如:

open_service slave $path master_read_memory $path address count

becomes

set c [claim_service slave $path lib {}] master_read_memory $c address count

2.9.2. 创建一个工具包描述文件

工具包描述文件(.toolkit)是一个 XML文件,它提供工具包的注册数据。

在工具包描述文件中包含以下属性:

表 13. 工具包描述文件中的属性

属性名称 用途

name 内部工具包文件名称。

displayName 在 GUI中出现的工具包显示名称。

addMenuItem System Console Tools > Toolkits菜单是否显示工具包。

表 14. 工具包子单元

属性名称 用途

description 描述工具包的用途。

file 包含工具包实现的.tcl文件的路径。

icon System Console中显示为工具包启动程序的图标的路径

注意: .png 首选 64x64格式。如果图标没有占用整个空间,那么要确保背景是透明的。

requirement 如果工具包同一个特定类型的硬件一起使用,那么此属性指定此硬件的调试类型名称。此属性使能工具包的自动发现。

工具包的调试类型名称的语法为:

• hw.tcl组件的名称。

• dot.• 工具包使用的组件中的接口名称。

例如:<hw.tcl name>.<interface name>。

实例-12: .toolkit描述文件

<?xml version="1.0" encoding="UTF-8"?> <toolkit name="toolkit_example" displayName="Toolkit Example" addMenuItem="true"> <file> toolkit_example.tcl </file> </toolkit>

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

35

Page 36: Intel Quartus Prime Standard Edition用户指南: 调试工具

相关链接

将工具包与 IP内核匹配 (第 36页)

2.9.3. 注册一个工具包

使用 System Console中的 toolkit_register命令使您的工具包可用。记住要指定.toolkit文件的路径。注册一个工具包不会创建此工具包 GUI的实例。

toolkit_register <toolkit_file>

2.9.4. 启动一个工具包

通过 System Console,您可以通过多种方式启动预注册的工具包:

• 点击 Tools > Toolkits。

• 使用 Toolkits选项卡。每个工具包都有一个描述,一个检测到的硬件列表和一个启动按钮。

• 使用以下命令:

toolkit_open <.toolkit_file_name>

您可以在与一个工具包类型件相关联的硬件资源的上下文中启动工具包。如果使用命令:

toolkit_open <toolkit_name> <context>

,那么套件 Tcl可以通过键入

set context [toolkit_get_context]

来检索上下文。

相关链接

toolkit_get_context (第 47页)

2.9.5. 将工具包与 IP内核匹配

您可以将您的工具包与任何 IP内核匹配:

• 在搜索 IP时,工具包会查找调试标记,并将 IP内核与工具包要求匹配。在工具包文件中,使用 requirement属性指定调试类型,如下所示:

<requirement><type>debug.type-name</type></requirement

• 在 hw.tcl中对 IP内核创建调试赋值语句(debug assignments)。当在 System Console中加载设计时,hw.tcl文件可用。

• System Console从硬件中的标识符中发现调试标记,并与 IP关联,而无需对设计进行直接了解。

2.9.6. Toolkit API

使用 Toolkit API服务,您可以构造 GUI以可视化调试数据并与之交互。 Toolkit API是用于图形化窗口小部件布局的图形化窗格,其中包括按钮和文本字段。小部件从其他 System Console服务中提取数据。同样,小部件使用服务来利用用户输入来作用于设计中的调试逻辑。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

36

Page 37: Intel Quartus Prime Standard Edition用户指南: 调试工具

属性

窗口小部件属性可以将信息推入和拉出到用户界面。小部件具有特定于其类型的属性。例如,当您单击按钮时,按钮属性 onClick会执行一个操作。标签窗口小部件不具有相同的属性,因为该窗口小部件不对单击操作执行操作。但是,按钮和标签小部件都具有 text属性以显示文本字符串。

布局

Toolkit API服务会创建一个小部件层次结构,其中工具包位于顶层。该服务实现包含子窗口小部件的组类型窗口小部件。布局属性规定了父级对其子级执行的布局操作。例如,expandableX属性设置为 True时 ,水平扩展小部件以包含所有可用空间。visible属性设置为 True时允许小部件在 GUI中显示。

用户输入

一些小部件支持用户交互。例如, textField小部件是一个允许用户输入的文本框。使用 text属性访问文本框的内容。Tcl脚本可以使用 text属性获取或设置 textField小部件的内容。

回调(Callbacks)

一些小部件执行用户指定的操作,称为回调。textField小部件具有 onChange属性,当文本内容更改时将调用此属性。button小部件具有 onClick属性,单击按钮时会调用此属性。回调根据文本字段的内容或任何其他小部件的状态来更新小部件或与服务进行交互。

2.9.6.1. 自定义 Toolkit API小部件

使用 toolkit_set_property命令与例化的小部件进行交互。当更改一个回调执行的一部分时,toolkit_set_property命令最有用。

2.9.6.2. Toolkit API脚本实例

实例-13: 使 Toolkit在 System Console中可见

使用 toolkit_set_property命令来修改根工具包的 visible属性。如果将一个属性应用于整个工具包,那么请使用 self一词。在其他情况下,请使用 all来引用根工具包。

toolkit_set_property self visible true

实例-14: 添加小部件

使用 toolkit_add命令添加小部件。

toolkit_add my_button button all

以下命令将一个标签小部件 my_label添加到根工具包。在 GUI中,标签显示为WidgetLabel。

set name "my_label"set content "Widget Label"toolkit_add $name label alltoolkit_set_property $name text $content

在 GUI中,显示的文本更改为新值。再添加一个标签:

toolkit_add my_label_2 label alltoolkit_set_property my_label_2 text "Another label"

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

37

Page 38: Intel Quartus Prime Standard Edition用户指南: 调试工具

新标签显示在第一个标签的右侧。

请使用以下命令将新标签放置在第一个标签下:

toolkit_set_property self itemsPerRow 1

实例-15: 收集输入(Gathering Input)

要将用户输入合并到您的 Toolkit API中,

1. 使用以下命令创建一个文本域:

set name "my_text_field"set widget_type "textField"set parent "all"toolkit_add $name $widget_type $parent

2. 小部件尺寸非常小。要使小部件填充水平空间,请使用以下命令:

toolkit_set_property my_text_field expandableX true

3. 现在,文本域完全可见。单击后,您可以在域中键入文本。要检索该域的内容,请使用以下命令:

set content [toolkit_get_property my_text_field text] puts $ content

此命令将内容打印到控制台中。

实例-16: 根据用户事件更新小部件

使用回调时,Toolkit API也可以执行操作,而无需交互式输入:

1. 首先定义一个使用文本域内容更新第一个标签的程序:

proc update_my_label_with_my_text_field{ set content [toolkit_get_property my_text_field text] toolkit_set_property my_label text $content}

2. 在 Tcl Console中运行 update_my_label_with_my_text_field命令。第一个标签现在与文本域内容匹配。

3. 每当文本域更改时,需使用 update_my_label_with_my_text_field命令:

toolkit_set_property my_text_field onChange update_my_label_with_my_text_field

每次文本域更改时,Toolkit都会执行 onChange属性。该属性的执行将更改第一个域以匹配您键入的内容。

实例-17: 按钮

使用按钮来触发操作。

1. 创建一个按钮,此按钮更改第二个标签:

proc append_to_my_label_2 {suffix} { set old_text [toolkit_get_property my_label_2 text] set new_text "${old_text}${suffix}" toolkit_set_property my_label_2 text $new_text } set text_to_append ", and more"

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

38

Page 39: Intel Quartus Prime Standard Edition用户指南: 调试工具

toolkit_add my_button button all toolkit_set_property my_button onClick [append_to_my_label_2 $text_to_append]

2. 单击按钮将一些文本附加到第二个标签上。

实例-18: 组(Groups)

属性 itemsPerRow表示组中小部件的布局。对于更复杂的布局,其中每行小部件数量不同,请使用嵌套组。要添加一个新租,其中每行有更多的小部件,请执行以下命令:

toolkit_add my_inner_group group alltoolkit_set_property my_inner_group itemsPerRow 2toolkit_add inner_button_1 button my_inner_grouptoolkit_add inner_button_2 button my_inner_group

这些命令创建一个带有两个按钮组的行。要使嵌套组更加无缝(seamless),请使用以下命令删除带有组名的边框:

toolkit_set_property my_inner_group title ""

您可以将 title属性设置为任何其他字符串,以确保显示边框和标题文本。

实例-19: 选项卡(Tabs)

使用选项卡来管理小部件可见性:

toolkit_add my_tabs tabbedGroup alltoolkit_set_property my_tabs expandableX truetoolkit_add my_tab_1 group my_tabstoolkit_add my_tab_2 group my_tabstoolkit_add tabbed_label_1 label my_tab_1toolkit_add tabbed_label_2 label my_tab_2toolkit_set_property tabbed_label_1 text "in the first tab"toolkit_set_property tabbed_label_2 text "in the second tab"

这些命令添加了一组两个选项卡,每个选项卡都有一个包含标签的组。单击选项卡更改显示的组/标签。

2.9.6.3. Toolkit API GUI实例

本实例显示如何注册和启动一个包含交互式 GUI窗口的工具包:

1. 编写一个工具包描述文件。关于具体示例,请参考创建一个工具包描述文件 。

2. 使用 Toolkit API GUI Example .tcl File上的文本生成一个.tcl文件。

3. 打开 System Console。

4. 在 Tcl Console窗格中注册工具包。包括文件位置的相关路径。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

39

Page 40: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 7. 注册您的工具包

Register toolkit here

Toolkit出现在 Toolkits选项卡中

图 8. 工具包示例注册后的 Toolkits选项卡

Link to launch instance

5. 单击 Launch链接。

出现一个新选项卡,其中包含您在 TCL文件中指定的小部件。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

40

Page 41: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 9. Toolkit Example GUI

Generated GUI

当在 Send Data域中的插入文本并单击 Launch时,此文本出现在 Receive Data域中。

相关链接

创建一个工具包描述文件 (第 35页)

2.9.6.3.1. Toolkit API GUI Example .tcl文件

以下 Toolkit API .tcl文件创建一个 GUI窗口,提供与设计的调试交互。

namespace eval Test {

variable ledValue 0 variable dashboardActive 0 variable Switch_off 1

proc toggle { position } { set ::Test::ledValue ${position} ::Test::updateDashboard } proc sendText {} { set sendText [toolkit_get_property sendTextText text] toolkit_set_property receiveTextText text $sendText }

proc dashBoard {} {

if { ${::Test::dashboardActive} == 1 } { return -code ok "dashboard already active" }

set ::Test::dashboardActive 1 # # top group widget # toolkit_add topGroup group self toolkit_set_property topGroup expandableX false toolkit_set_property topGroup expandableY false toolkit_set_property topGroup itemsPerRow 1 toolkit_set_property topGroup title ""

# # leds group widget

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

41

Page 42: Intel Quartus Prime Standard Edition用户指南: 调试工具

# toolkit_add ledsGroup group topGroup toolkit_set_property ledsGroup expandableX false toolkit_set_property ledsGroup expandableY false toolkit_set_property ledsGroup itemsPerRow 2 toolkit_set_property ledsGroup title "LED State"

# # leds widgets # toolkit_add led0Button button ledsGroup toolkit_set_property led0Button enabled true toolkit_set_property led0Button expandableX false toolkit_set_property led0Button expandableY false toolkit_set_property led0Button text "Toggle" toolkit_set_property led0Button onClick {::Test::toggle 1}

toolkit_add led0LED led ledsGroup toolkit_set_property led0LED expandableX false toolkit_set_property led0LED expandableY false toolkit_set_property led0LED text "LED 0" toolkit_set_property led0LED color "green_off"

toolkit_add led1Button button ledsGroup toolkit_set_property led1Button enabled true toolkit_set_property led1Button expandableX false toolkit_set_property led1Button expandableY false toolkit_set_property led1Button text "Turn ON" toolkit_set_property led1Button onClick {::Test::toggle 2}

toolkit_add led1LED led ledsGroup toolkit_set_property led1LED expandableX false toolkit_set_property led1LED expandableY false toolkit_set_property led1LED text "LED 1" toolkit_set_property led1LED color "green_off"

# # sendText widgets # toolkit_add sendTextGroup group topGroup toolkit_set_property sendTextGroup expandableX false toolkit_set_property sendTextGroup expandableY false toolkit_set_property sendTextGroup itemsPerRow 1 toolkit_set_property sendTextGroup title "Send Data"

toolkit_add sendTextText text sendTextGroup toolkit_set_property sendTextText expandableX false toolkit_set_property sendTextText expandableY false toolkit_set_property sendTextText preferredWidth 200 toolkit_set_property sendTextText preferredHeight 100 toolkit_set_property sendTextText editable true toolkit_set_property sendTextText htmlCapable false toolkit_set_property sendTextText text ""

toolkit_add sendTextButton button sendTextGroup toolkit_set_property sendTextButton enabled true toolkit_set_property sendTextButton expandableX false toolkit_set_property sendTextButton expandableY false toolkit_set_property sendTextButton text "Send Now" toolkit_set_property sendTextButton onClick {::Test::sendText}

# # receiveText widgets # toolkit_add receiveTextGroup group topGroup toolkit_set_property receiveTextGroup expandableX false toolkit_set_property receiveTextGroup expandableY false toolkit_set_property receiveTextGroup itemsPerRow 1 toolkit_set_property receiveTextGroup title "Receive Data"

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

42

Page 43: Intel Quartus Prime Standard Edition用户指南: 调试工具

toolkit_add receiveTextText text receiveTextGroup toolkit_set_property receiveTextText expandableX false toolkit_set_property receiveTextText expandableY false toolkit_set_property receiveTextText preferredWidth 200 toolkit_set_property receiveTextText preferredHeight 100 toolkit_set_property receiveTextText editable false toolkit_set_property receiveTextText htmlCapable false toolkit_set_property receiveTextText text ""

return -code ok } proc updateDashboard {} {

if { ${::Test::dashboardActive} > 0 } {

toolkit_set_property ledsGroup title "LED State" if { [ expr ${::Test::ledValue} & 0x01 & \ ${::Test::Switch_off} ] } { toolkit_set_property led0LED color "green" set ::Test::Switch_off 0 } else { toolkit_set_property led0LED color "green_off" set ::Test::Switch_off 1 } if { [ expr ${::Test::ledValue} & 0x02 ] } { toolkit_set_property led1LED color "green" } else { toolkit_set_property led1LED color "green_off" } } }}::Test::dashBoard

2.9.6.4. Toolkit API命令

Toolkit API命令在唯一工具包实例的情况下运行。

toolkit_register (第 44页)

toolkit_open (第 45页)

get_quartus_ini (第 46页)

toolkit_get_context (第 47页)

toolkit_get_types (第 48页)

toolkit_get_properties (第 49页)

toolkit_add (第 50页)

toolkit_get_property (第 51页)

toolkit_set_property (第 52页)

toolkit_remove (第 53页)

toolkit_get_widget_dimensions (第 54页)

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

43

Page 44: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.1. toolkit_register

描述

指向描述插件的 XML文件(.toolkit文件)。

使用

toolkit_register <toolkit_file>

返回

没有返回值。

参数

<toolkit_file> 工具包定义文件的路径。

示例

toolkit_register /path/to/toolkit_example.toolkit

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

44

Page 45: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.2. toolkit_open

描述

在 System Console中打开一个工具包的实例。

使用

toolkit_open <toolkit_id> [<context>]

返回

没有返回值。

参数

<toolkit_id> 要打开的工具包类型的名称。

<context> 一个可选的上下文(context),例如与打开的工具包关联的硬件资源的服务路径。

示例

toolkit_open my_toolkit_id

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

45

Page 46: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.3. get_quartus_ini

描述

从 Intel Quartus Prime软件.ini文件返回 ini设置的值。

使用

get_quartus_ini <ini> <type>

返回

ini设置的值。

参数

<ini> Intel Quartus Prime软件.ini设置的值。

<type> (可选).ini设置的类型。已知类型是 string和 enabled。如果类型是enabled,那么.ini设置的值返回 1,如果没有使能,返回 0。

示例

set my_ini_enabled [get_quartus_ini my_ini enabled]

set my_ini_raw_value [get_quartus_ini my_ini]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

46

Page 47: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.4. toolkit_get_context

描述

返回工具包打开时指定的上下文(context)。如果未指定 contenxt,那么返回一个空字符串。

使用

toolkit_get_context

返回

上下文(Context)。

参数

没有参数。

示例

set context [toolkit_get_context]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

47

Page 48: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.5. toolkit_get_types

描述

返回一个小部件列表。

使用

toolkit_get_types

返回

小部件类型的列表。

参数

没有参数。

示例

set widget_names [toolkit_get_types]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

48

Page 49: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.6. toolkit_get_properties

描述

返回一个小部件类型的工具包属性的列表。

使用

toolkit_get_properties <widgetType>

返回

工具包属性的列表。

参数

<widgetType> 小部件的类型。

示例

set widget_properties [toolkit_get_properties xyChart]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

49

Page 50: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.7. toolkit_add

描述

添加一个小部件到当前工具包。

使用

toolkit_add <id> <type><groupid>

返回

没有返回值。

参数

<id> 被添加的小部件的唯一 ID。

<type> 正在添加的小部件的类型。

<groupid> 包含新的小部件的父组(parent group)的 ID。将 self用于工具包基本组。

示例

toolkit_add my_button button parentGroup

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

50

Page 51: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.8. toolkit_get_property

描述

返回一个特定小部件的属性值。

使用

toolkit_get_property <id> <propertyName>

返回

属性值。

参数

<id> 被查询的小部件的唯一 ID。

<propertyName> 小部件属性的名称。

示例

set enabled [toolkit_get_property my_button enabled]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

51

Page 52: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.9. toolkit_set_property

描述

设置一个特定小部件的属性值。

使用

toolkit_set_property <id><propertyName> <value>

返回

没有返回值。

参数

<id> 被修改的小部件的唯一 ID。

<propertyName> 被设置的小部件属性的名称。

<value> 小部件属性的新值。

示例

toolkit_set_property my_button enabled 0

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

52

Page 53: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.10. toolkit_remove

描述

从指定的工具包删除一个小部件。

使用

toolkit_remove <id>

返回

没有返回值。

参数

<id> 被删除的小部件的唯一 ID。

示例

toolkit_remove my_button

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

53

Page 54: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.4.11. toolkit_get_widget_dimensions

描述

返回指定小部件的宽度和高度。

使用

toolkit_get_widget_dimensions <id>

返回

指定的小部件的宽度和高度。

参数

<id> 被添加的小部件的唯一 ID。

示例

set dimensions [toolkit_get_widget_dimensions my_button]

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

54

Page 55: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5. Toolkit API属性

以下是 Toolkit API小部件属性:

小部件类型和属性 (第 56页)

barChart属性 (第 57页)

按钮属性 (第 58页)

checkBox属性 (第 59页)

comboBox属性 (第 60页)

表盘属性(dial Properties) (第 61页)

fileChooserButton属性 (第 62页)

group属性 (第 63页)

label属性 (第 64页)

led属性 (第 65页)

lineChart属性 (第 66页)

list属性 (第 67页)

pieChart属性 (第 68页)

table属性 (第 69页)

text属性 (第 70页)

textField Properties (第 71页)

timeChart Properties (第 72页)

xyChart属性 (第 73页)

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

55

Page 56: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.1. 小部件类型和属性

表 15. Toolkit API小部件类型和属性

名称 描述

enabled 使能或者禁用小部件。

expandable 控制小部件是否可扩展。

expandableX 如果小部件所在的单元中有可用空间,那么允许此小部件水平调整大小。

expandableY 如果小部件所在的单元中有可用空间,那么允许此小部件垂直调整大小。

foregroundColor 设置前景色。

maxHeight 如果设置了小部件的 expandableY,那么这是小部件可以采用的最大高度(以像素为单位)。

minHeight 如果设置了小部件的 expandableY,那么这是小部件可以采用的最小高度。

maxWidth 如果设置了小部件的 expandableX,那么这是小部件可以采用的最大宽度。

minWidth 如果设置了小部件的 expandableX,那么这是小部件可以采用的最小宽度。

preferredHeight 未设置 expandableY时的小部件的高度。

preferredWidth 未设置 expandableY时的小部件的宽度。

toolTip 实现一个鼠标悬停工具提示。

visible 显示小部件。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

56

Page 57: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.2. barChart属性

表 16. Toolkit API barChart属性

名称 描述

title 图表标题。

labelX X轴标签文字。

label X轴标签文字。

range Y轴值范围。默认情况下,它是自动范围。使用 Tcl列表指定范围,例如:

[list lower_numerical_valueupper_numerical_value]。

itemValue 使用 Tcl列表指定值,例如:[list bar_category_str numeric_value]。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

57

Page 58: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.3. 按钮属性

表 17. Toolkit API按钮属性

名称 描述

onClick 指定每次单击按钮时要运行的 Tcl命令。通常,此命令是 proc。

text 按钮上的文字。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

58

Page 59: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.4. checkBox属性

表 18. Toolkit API checkBox属性

名称 描述

checked 指定复选框的状态。

onClick 指定每次单击复选框时要运行的 Tcl命令。此命令通常是 proc。

text 复选框上的文字。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

59

Page 60: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.5. comboBox属性

表 19. Toolkit API comboBox属性

名称 描述

onChange 当组合框的值更改时要运行的 Tcl回调。

options 在组合框中显示的项目列表。

selectedItem 组合框中的选定项目。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

60

Page 61: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.6. 表盘属性(dial Properties)

表 20. Toolkit API表盘属性

名称 描述

max 表盘可以显示的最大值。

min 表盘可以显示的最小值。

ticksize 表盘上不同刻度线之间的间隔。

title 表盘的标题。

value 表盘的针标记的值。此值必须在最小和最大之间。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

61

Page 62: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.7. fileChooserButton属性

表 21. Toolkit API fileChooserButton属性

名称 描述

text 按钮上的文字。

onChoose 每次单击按钮时运行的 Tcl命令。此命令通常是 proc。

title 对话框的标题。

chooserButtonText 对话框批准按钮的文本。默认值为 Open。

filter 文件过滤器,基于扩展名。此过滤器仅支持一个扩展名。默认情况下,过滤器支持所有文件名。使用语法[listfilter_description file_extension]指定过滤器,例如:

[list "Text Document (.txt)" "txt"]。

mode 指定可以选择的文件或目录类型。默认值为 files_only。可能的选项是 files_only和 directorys_only。

multiSelectionEnabled 控制是否可以选择多个文件。默认值为 false。

paths 此属性是只读的。返回在文件选择器对话框中选择的文件路径的列表。在 onClick脚本中或对话框关闭后更新结果的过程中使用该属性时最有用。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

62

Page 63: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.8. group属性

表 22. Toolkit API group属性

名称 描述

itemsPerRow 在移动到下一行之前,group可以从左到右放置在一行中的小部件数量。

title group的标题。具有标题的 group可以在其周围有边框,而将标题设置为空将删除此边框。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

63

Page 65: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.10. led属性

表 24. Toolkit API led属性

名称 描述

color LED的颜色。选项包括:red_off,red,yellow_off,yellow,green_off,green,blue_off,blue和black。

text LED旁显示的文字。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

65

Page 66: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.11. lineChart属性

表 25. Toolkit API lineChart属性

名称 描述

title 图表标题。

labelX X轴标签文字。

labelY Y轴标签文字。

range Y轴值范围。默认情况下,它是自动范围。使用 Tcl列表指定范围,例如:

[list lower_numerical_valueupper_numerical_value]。

itemValue 项目值(item value)。使用 Tcl列表指定此值,例如:[list bar_category_str numeric_value]。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

66

Page 67: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.12. list属性

表 26. Toolkit API list属性

名称 描述

selected 组合框中的选定项目的索引。

options 要显示的选项列表。

onChange 当列表中的选定项目更改时运行的 Tcl回调。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

67

Page 68: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.13. pieChart属性

表 27. Toolkit API pieChart属性

名称 描述

title 图表标题。

itemValue 项目值(item value)。使用 Tcl列表指定此值,例如:[list bar_category_str numeric_value]。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

68

Page 69: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.14. table属性

表 28. Toolkit API table属性

名称 描述

columnCount 列数(必要的)(默认为 0)。

rowCount 行数(必要的)(默认为 0)。

headerReorderingAllowed 控制是否可以拖动列(默认为 false)。

headerResizingAllowed 控制是否可以调整所有列宽的大小。(默认为 false)。

注意: 您可以使用 columnWidthResizable属性分别调整每个列的大小。

rowSorterEnabled 控制是否可以对列中的单元格值进行排序(默认为 false)。

showGrid 控制是否同时绘制水平线和垂直线(默认为 true)。

showHorizontalLines 控制是否同时绘制水平线(默认为 true)。

rowIndex 当前行索引。从零开始。此值影响下面一些属性(默认为 0)。

columnIndex 当前列索引。从零开始。此值影响所有指定列属性(默认为 0)。

cellText 对当前 rowIndex和 columnIndex指定的单元格内的文本进行指定(默认为空)。

selectedRows 控制或者检索行选择。

columnHeader 列标题中的文本。

columnHeaders 用于定义表的列的名称列表

columnHorizontalAlignment 指定列中的单元格文本对齐方式。支持的类型为 leading(默认),left,center,right,trailing。

columnRowSorterType 排序方法的类型。仅当 rowSorterEnabled为 true时适用。每列都有各自的排序类型。可能的类型为 string(默认),int和float。

columnWidth 列宽中的像素数。

columnWidthResizable 控制列宽是否由您调整大小(默认为 false)。

contents 表格内容,作为列显示。对于一个包含 A,B和 C列的表格,列表的格式为{A1 B1 C1 A2 B2 C2 etc}。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

69

Page 70: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.15. text属性

表 29. Toolkit API text属性

名称 描述

editable 控制文本框是否可编辑。

htmlCapable 控制文本框是否可以格式化 HTML。

text 要在文本框中显示的文本。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

70

Page 71: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.16. textField Properties

表 30. Toolkit API textField属性

名称 描述

editable 控制文本框是否可编辑。

onChange 更改文本框的内容时要运行的 Tcl回调。

text 在文本框中显示的文本。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

71

Page 72: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.17. timeChart Properties

表 31. Toolkit API timeChart属性

名称 描述

labelX X轴的标签。

labelY Y轴的标签。

latest 系列中的最新值。

maximumItemCount 要在历史记录中显示的采样点数。

title 图表的标题。

range 设置图表的范围。范围的形式为{low,high}。low/high值为双精度。

showLegend 指定图形中是否显示系列的图例。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

72

Page 73: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.9.6.5.18. xyChart属性

表 32. Toolkit API xyChart属性

名称 属性

title 图表标题。

labelX X轴标签文字。

labelY Y轴标签文字。

range 设置图表的范围。范围的形式为{low,high}。low/high值为双精度。

maximumItemCount 指定要在一个数据系列中保留的最大数据值数。此设置仅影响图表中的新数据。如果添加的数据值多于 maximumItemCount,那么仅保留最后的 maximumItemCount数量。

series 在图表中添加一系列数据。规格中的第一个值是此系列的标识符。如果两次设置相同的标识符,那么 Toolkit API将选择最新系列。如果标识符不包含系列数据,那么将从图表中删除此系列。在 Tcl列表中指定系列:{identifier, x-1 y-1, x-2 y-2}。

showLegend 指定图形中是否显示系列的图例。

2.10. ADC Toolkit

ADC Toolkit被设计同 Intel MAX 10器件一起使用,帮助您了解板载 ADC硬件所观察到的模拟信号链的性能。 GUI使用行业标准指标来显示 ADC的性能。您可以将收集的数据导出到.csv文件,然后自己处理这些原始数据。ADC Toolkit建立在 System Console框架上,只能使用 GUI进行操作。对此工具不支持 Tcl。

使用 ADC Toolkit的前提条件

• Altera Modular ADC IP core

— External Reference Voltage如果在 Altera Modular ADC IP参数中选择External

• Reference signal(参考信号)

ADC Toolkit需要将正弦波信号驱动到模拟输入中。您需要能够精确设置参考信号的电平和频率。为了获得准确的测试结果,需要使用高精度的正弦波。但是,使用任何输入信号在 Scope模式下都可以读取有用的信息。

为了获得最佳的测试结果,请确保参考信号要有小于器件 ADC能够解决的失真。否则,来自源的失真会添加到生成的 ADC失真测量中。限制因素基于硬件精度。

注意: 当应用一个正弦波时,ADC应该以基本正弦波频率的 2倍进行采样。应该有一个低通滤波器和设置为基本频率的 3dB point。

配置 Altera Modular ADC IP Core

Altera Modular ADC IP core需要包含在设计中。您可以从 IP Catalog例化此 IP core。当在Parameter Editor中配置此 IP core时,您需要使能位于 Core Configuration下的 DebugPath选项。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

73

Page 74: Intel Quartus Prime Standard Edition用户指南: 调试工具

Intel Quartus Prime v14.1对 Altera Modular ADC IP core有两个限制。ADC Toolkit不支持Core Configuration下的 ADC control core only选项。您必须选择一个使用标准定序器(standard sequencer)的内核变体,使 Altera Modular ADC IP core能够与 ADC Toolkit一起使用。另外,如果 Avalon Master没有连接到定序器,那么必须在 ADC Toolkit之前手动启动定序器。

图 10. Altera Modular ADC Core

运行 ADC Toolkit

您可以从 System Console运行 ADC Toolkit。在启动 ADC toolkit前,需要验证电路板是否已编程。然后通过点击 File > Load Design加载.sof。如果 System Console是通过一个活动工程启动的,那么在启动 System Console时自动加载设计。

有两种方法可以启动 ADC Toolkit。两种方法都需要有一个连接的,使用一个工程进行编程并链接到此工程的 Intel MAX 10器件。但是,只有满足这些要求时,Launch命令才会显示。您可以总是从 Tools菜单启动 ADC Toolkit,但是成功的连接仍然取决于是否满足上述要求。

• 点击 Tools > ADC Toolkit

• 或者,从 Toolkits选项卡点击 Launch。器件的路径显示在 Launch按钮上方。

注意: 一次只能连接一个 ADC Toolkit使能的器件。

启动 ADC Toolkit后,ADC Toolkit选项卡上的一个标识符路径显示器件上的哪个 ADC正用于ADC Toolkit的这一实例。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

74

Page 75: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 11. 运行 ADC Toolkit

ADC Toolkit流程

ADC Toolkit GUI由四个面板组成:Frequency Selection,Scope,Signal Quality和Linearity。

1. 使用 Frequency Selection面板来计算信号质量测试所需要的正弦波频率。ADC Toolkit根据所需参考信号频率提供最接近的理想频率。

2. 使用 Scope面板调整信号生成器或者检查输入信号特性。

3. 使用 Signal Quality面板使用行业标准指标来测试 ADC的性能。

4. 使用 Linearity面板测试 ADC的线性性能,并显示差分和积分非线性结果。

图 12. ADC Toolkit GUI

相关链接

• Using the ADC Toolkit in Intel MAX 10 Devices online training

• Intel MAX 10 FPGA Device Overview

• Intel MAX 10 FPGA Device Datasheet

• Intel MAX 10 FPGA Design Guidelines

• Intel MAX 10 Analog to Digital Converter User Guide

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

75

Page 76: Intel Quartus Prime Standard Edition用户指南: 调试工具

• Additional information about sampling frequency奈奎斯特采样定理(nyquist sampling theorem)和它与避免混叠所需的标称采样间隔之间的关系。

2.10.1. ADC Toolkit术语

表 33. ADC Toolkit术语

术语 描述

SNR 输出信号电压电平与输出噪声电平之比。

THD 谐波频率分量的功率之和与基频/原始频率分量的功率之比。

SFDR 表征基本信号与频谱中最高杂散之间的比率。

SINAD 信号幅度的 RMS值与所有其他频谱分量(包括谐波,但不包括 DC)的RMS值之比。

ENOB ADC起作用的比特数。

DNL 实际传输功能与理想传输功能之间步长的最大和最小差异

INL 实际曲线与理想曲线之间的最大垂直差。它指示实际曲线与理想传输曲线的偏差量。

2.10.2. 设置参考信号的频率

您可以使用 Frequency Selection面板计算 ADC性能测试所需的参考信号频率。此频率至关重要,并会影响测试结果的有效性。计算的频率根据您要使用 ADC Toolkit进行的测试类型而异。

图 13. 频率选择面板(Frequency Selection Panel)

设置参考信号的频率:

1. 在 ADC Channel上,选择要测试的 ADC通道。此工具填充 Sample Size和 Sample Frequency域。

2. 在 Desired Frequency中,输入测试的目标频率。

3. 点击 Calculate。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

76

Page 77: Intel Quartus Prime Standard Edition用户指南: 调试工具

• 在 Signal Quality Test和 Linearity Test下出现用于有效测试的最接近理想的频率。

• 对于信号质量测试和线性测试,最接近的所需正弦波频率是不同的。

4. 根据要运行的测试类型,将信号生成器设置为工具给定的精确频率。

2.10.3. 调整信号生成器

Scope面板使您能够调整信号生成器,以实现 ADC的最佳性能。

图 14. Scope Mode面板

调整信号生成器:

1. 在 ADC Channel上,选择要测试的 ADC通道。

2. 输入参考 Sample Frequency (除非工具能从 IP中提取此值)。

3. 输入 Ref Voltage (除非工具能从 IP中提取此值)。

4. 点击 Run。除了 Signal Information下的其他信息,此工具还会重复采集数据缓存,并将数据显示为波形。

5. 调整信号生成器,在不消波(clipping)的情况下使用 ADC的最大动态范围。

注意: 由于信号削波要避免达到 0或 4095。

6. 确保Oscilloscope下方的正弦波显示出均衡的顶部和底部峰值。这表示最佳值。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

77

Page 78: Intel Quartus Prime Standard Edition用户指南: 调试工具

• 对于 Intel MAX 10器件,您应该尽可能接近Min Code = 0和Max Code =4095,而不要实际达到这些值。

• 要在测试窗口中观察一致性采样,必须将频率精确设置为测试所需的值。继续之前,请遵循检测到的频率旁边显示的信号质量测试或线性测试的建议值。

7. 从 Raw Data选项卡导出数据.csv文件。

相关链接

有关一致性采样与窗口采样的附加信息

2.10.4. 运行信号质量测试

信号质量测试模式下的可用性能指标如下:信噪比(SNR),总谐波失真(THD),无杂散动态范围(SFDR),信噪比和失真比(SINAD),有效位数(ENOB)和频率响应图。频率响应图显示了信号,本底噪声(noise floor)以及任何杂散或谐波。

信号质量参数是相对于载波信号的测量值,而不是 ADC的全标度。

在运行信号质量测试之前,请确保已使用 Scope模式设置了参考信号的频率。

图 15. Signal Quality面板

运行信号质量测试:

1. 在 ADC Channel上,选择要测试的 ADC通道。

2. 点击 Run。

从 Raw Data选项卡导出数据.csv文件。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

78

Page 79: Intel Quartus Prime Standard Edition用户指南: 调试工具

对于信号质量测试,必须对信号进行一致性采样。根据要测试的采样率和样本数,需要特定的输入频率用于一致性采样。每个通道的采样频率(sample frequency)是根据 ADC定序器配置计算得出的。

相关链接

有关动态参数(例如:SNR,THD等)的附加信息

2.10.5. 运行线性测试

线性测试确定每个 ADC代码步长的线性。它使用直方图测试方法,该方法需要正弦输入,比其他测试方法更容易从信号发生器和 DAC获取信号。

使用 Linearity测试模式时,参考信号必须满足特定要求:

• 信号源覆盖了 ADC的全部代码范围。如果在代码端(code end)使用的时间相等,那么可以通过在 Scope模式下调整参考信号来改善结果。

• 如果使用代码端,那么要确保不要剪切信号。在 Scope模式下查看信号,看到其顶部或底部不平。一个良好的做法是退回代码端,并在 ADC输入信号的所需工作范围内测试一个较小的范围。

• 选择一个不是采样率和缓存大小的整数倍的频率有助于确保相对于正弦波的概率密度函数相对均匀地填充将所有代码仓(code bin)。如果选择整数倍,那么某些代码仓可能会被完全跳过,而另一些代码仓则会被过度填充。这会使测试结果无效。使用频率计算器功能来确定一个接近所需频率的良好信号频率。

运行线性测试:

1. 在 ADC Channel上,选择要测试的 ADC通道。

2. 在 Burst Size中输入测试样本的大小。较大的样本会增加对测试结果的信心。

3. 点击 Run。

• 您可以随时停止测试,也可以再次单击 Run来继续添加到汇总数据。要重新开始,请在停止测试后单击 Reset。每次更改输入信号或通道时,都应单击 Reset,这样结果对于特定输入是正确的。

• 有三种数据图形视图:Histogram视图,DNL视图和 INL视图。

• 从 Raw Data选项卡导出数据.csv文件。

2.10.6. ADC工具包数据视图

直方图视图(Histogram View)

Histogram视图显示每个代码出现的频率。该图在收集数据时每隔几秒钟更新一次。您可以使用Histogram视图快速检查测试信号是否设置正确。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

79

Page 80: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 16. 纯正弦波直方图示例

下图显示了纯正弦波信号的形状。您的参考信号应该看起来相似。

如果您的参考信号不是一条相对平滑的线,而是具有锯齿状的边缘,其中某些 bin的值为 0,而相邻 bin的值更高,那么测试信号频率是不够的。使用 Scope模式可以帮助选择良好的频率进行线性测试。

图 17. 不良频率选择(左)与良好频率选择(右)对比的示例

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

80

Page 81: Intel Quartus Prime Standard Edition用户指南: 调试工具

差分非线性视图

图 18. 良好差分非线性的示例

DNL视图显示当前收集的数据。理想情况下,您希望数据看起来像一条穿过 x轴上 0的直线。如果没有足够的数据样本,此线将显得很粗糙。随着更多的数据被收集和均化,此线会不断改进。

图中的每个点代表一个特定代码与 1个 LSB的理想步长大小相差多少个 LSB值。Results框显示最高的正和负 DNL值。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

81

Page 82: Intel Quartus Prime Standard Edition用户指南: 调试工具

积分非线性视图

图 19. 良好积分非线性的示例

INL视图显示当前收集的数据。理想情况下,使用完美的 ADC和足够的样本,图形显示为在 x轴上穿过 0的直线。

图中的每个点代表一个特定代码与电压斜率中它的预期点相差多少个 LSB值。Results框显示最高的正和负 INL值。

2.11. System Console示例和教程

Intel提供了执行电路板启动,创建简单的仪表盘和编程 Nios II处理器的示例。System_Console.zip文件包含电路板启动示例的设计文件。 Nios II EthernetStandard .zip文件包含 Nios II处理器示例的设计文件。

注意: 这些示例的说明假定您已熟悉 Intel Quartus Prime软件、Tcl命令和 Platform Designer(Standard) 。

相关链接

On-Chip Debugging Design Examples Website包含您可以下载的示例设计的设计文件。

2.11.1. Nios II处理器示例

此示例对电路板上的 Nios II处理器进行编程,以运行包含在 Nios II安装中的计数二进制软件示例。这是一个简单的程序,它使用 8-bit变量重复从 0x00到 0xFF进行计数。此变量的输出显示在电路板上的 LED上。对 Nios II处理器编程后,您可以使用 System Console处理器命令来启动和停止处理器。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

82

Page 83: Intel Quartus Prime Standard Edition用户指南: 调试工具

执行以下步骤运行此示例:

1. 从 Intel网站下载 Nios II Ethernet Standard Design Example。

2. 创建一个文件夹以提取设计。对于此示例,使用 C:\Count_binary。

3. 将 Nios II Ethernet Standard Design Example解压缩到 C:\Count_binary中。

4. 在 Nios II command shell中,更改成新工程的目录。

5. 对电路板进行编程。在 Nios II command shell中,输入以下命令:

nios2-configure-sof niosii_ethernet_standard_<board_version>.sof

6. 对 Eclipse使用 Nios II Software Build Tools,使用 Count Binary模板和 Nios IIEthernet Standard Design Example创建一个新的 Nios II Application and BSP。

7. 要为此应用程序生成可执行文件和可链接格式(ELF)文件(.elf),请右键单击 Count Binary工程,然后选择 Build Project 。

8. 通过右键点击 Count Binary工程和选择 Run As, Nios II Hardware,将.elf文件下载到电路板上。

• 电路板上的 LED提供了新的灯光显示。

9. 输入以下命令:

system-console; #Start System Console.

#Set the processor service path to the Nios II processor.set niosii_proc [lindex [get_service_paths processor] 0]

set claimed_proc [claim_service processor $niosii_proc mylib]; #Open the service.

processor_stop $claimed_proc; #Stop the processor.#The LEDs on your board freeze.

processor_run $claimed_proc; #Start the processor.#The LEDs on your board resume their previous activity.

processor_stop $claimed_proc; #Stop the processor.

close_service processor $claimed_proc; #Close the service.

• processor_step,processor_set_register和processor_get_register命令提供对 Nios II处理器的额外控制。

相关链接

• Nios II Ethernet Standard Design Example

• Nios II Gen2 Software Developer's Handbook

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

83

Page 84: Intel Quartus Prime Standard Edition用户指南: 调试工具

2.11.1.1. 处理器命令

表 34. 处理器命令

命令(1) 参数 功能

processor_download_elf <service-path><elf-file-path>

使用与处理器关联的主服务将给定的 Executable and Linking Format文件(.elf)下载到存储器中。将处理器的程序计数器设置成.elf入口点。

processor_in_debug_mode <service-path> 如果处理器处于调试模式,则返回非零值。

processor_reset <service-path> 对处理器进行复位,并将其置于调试模式。

processor_run <service-path> 将处理器置于运行模式。

processor_stop <service-path> 将处理器置于调试模式。

processor_step <service-path> 执行一条汇编指令。

processor_get_register_names <service-path> 返回一个包含所有处理器可访问寄存器名称的列表。

processor_get_register <service-path><register_name>

返回指定寄存器的值。

processor_set_register <service-path><register_name><value>

设置指定寄存器的值。

相关链接

Nios II处理器示例 (第 82页)

2.12. 板载 Intel FPGA Download Cable II支持

System Console通过 USB Debug Master IP组件支持板载 Intel FPGA Download Cable II电路。此 IP core支持主服务。

不是所有的 Stratix® V电路板都支持板载 Intel FPGA Download Cable II。例如,收发器信号完整性电路板不支持板载 Intel FPGA Download Cable II。

2.13. 系统验证流程中的MATLAB和 Simulink*

您可以使用MATLAB和 Simulink*在 System Console中测试系统开发,并使用 Intel FPGAHardware in the Loop (HIL)管脚设置系统验证流程。通过这种方法,您可以部署设计硬件来实时运行,并在软件环境中仿真系统的周围组件。HIL方法使您可以利用软件工具的灵活性以及实际的准确性和硬件速度。您可以逐步将更多硬件组件引入系统验证测试台。该技术使您在调整和验证系统时可以更好地控制集成过程。完整的系统被集成后,HIL方法使您能够通过软件提供在各种情况下测试系统的动力。

(1) 如果您的系统包括一个带有数据缓存的 Nios II/f内核,那么这可能会使调试过程复杂化。如果您怀疑 NiosII/f内核以不确定的时间间隔从数据高速缓存写入存储器;从而覆盖 System Console写入的数据,那么您可以在进行调试的同时禁用 Nios II/f内核的高速缓存。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

84

Page 85: Intel Quartus Prime Standard Edition用户指南: 调试工具

HIL方法的优势

• 避免高处理率算法的长时间计算延迟

• API可帮助在MATLAB环境中控制、调试、可视化和验证 FPGA设计。

• MATLAB软件读回 FPGA结果,用于进一步分析和显示

所需工具和组件

• MATLAB软件

• DSP Builder for Intel FPGAs软件

• Intel Quartus Prime软件

• Intel FPGA

注意: DSP Builder for Intel FPGAs安装包包括 System Console MATLAB API。

图 20. 循环主机目标设置中的硬件(Hardware in the Loop Host-Target Setup)

相关链接

Hardware in the Loop from the MATLAB Simulink Environment white paper

2.13.1. 支持的MATLAB API命令

您可以从MATLAB环境中执行操作,并可以通过 System Console对master和 slave进行读写。受支持的MATLAB API命令使您不必启动 System Console软件。支持的命令是:

• SystemConsole.refreshMasters;

• M = SystemConsole.openMaster(1);

• M.write (type, byte address, data);

• M.read (type, byte address, number of words);

• M.close

实例-20: MATLAB API脚本实例

SystemConsole.refreshMasters; %Investigate available targetsM = SystemConsole.openMaster(1); %Creates connection with FPGA target%%%%%%%% User Application %%%%%%%%%%%%

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

85

Page 86: Intel Quartus Prime Standard Edition用户指南: 调试工具

....M.write('uint32',write_address,data); %Send data to FPGA target....data = M.read('uint32',read_address,size); %Read data from FPGA target....%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%M.close; %Terminates connection to FPGA target

2.13.2. 高级流程(High Level Flow)

1. 安装 DSP Builder for Intel FPGAs软件,以得到启用此流程所需的库文件。

2. 使用 Simulink和 DSP Builder for Intel FPGAs库来构建设计。

DSP Builder for Intel FPGAs可帮助将 Simulink设计转换成 HDL

3. 将 Avalon -MM组件包含在设计中(DSP Builder for Intel FPGAs可移植非 Avalon -MM组件)

4. 在设计中包含信号和控制模块(Signals and Control blocks)

5. 通过边界模块将可综合逻辑与不可综合逻辑分开

6. 在 Platform Designer (Standard)中集成 DSP系统

7. 编程 Intel FPGA

8. 通过受支持的MATLAB API命令与 Intel FPGA进行交互。

2.14. 不推荐使用的命令

下表列出了已弃用的命令。这些命令当前受支持,但会从 System Console中删除。

注意: 所有的 dashboard_<name>命令已被弃用并替换为 toolkit_<name>命令,用于 IntelQuartus Prime 15.1及后续版本。

表 35. 不推荐使用的命令

命令 参数 功能

open_service <service_type><service_path>

打开指定路径上的指定服务类型。

对 open_service的调用可替换为对 claim_service的调用, 但前提是claim_service的返回值被存储并用于访问和关闭服务。

2.15. 使用 System Console分析和调试设计修订历史

本章节的修订历史如下:

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 Intel Quartus Prime Standard Edition User Guide中的初始版本。

2018.05.07 18.0.0 删除了废弃部分:Board Bring-Up with System Console Tutorial。

继续...

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

86

Page 87: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2017.05.08 17.0.0 • 创建了主题将 Dashboard脚本转换成 Toolkit API。• 从 Toolkit API脚本实例中删除了 Registering the Service实例,并将对应的代码段添加到 Registering a Toolkit。

• 将.toolkit Description File Example移到 Creating a Toolkit DescriptionFile下。

• 将 Toolkit API GUI Example .toolkit File重命名为.toolkit Description FileExample。

• 更新了 Toolkit API上的示例以反映当前支持的语法。

2015.11.02 15.1.0 • 编辑为 Toolkit API内容和命令格式。• 添加了 Toolkit API设计示例。• 对 Introduction to System Console添加了图形。• 弃用资讯主页(Dashboard)。• 将 Quartus II修改成 Intel Quartus Prime 。

2015年 10月 15.1.0 • 增添了 Toolkit API的内容— 所需的.toolkit和 Tcl文件— 注册和运行工具包

— 工具包发现,将工具包与 IP匹配— Toolkit API命令表

2015年 5月 15.0.0 增添了关于如何下载和启动 System Console的信息。

2014年 12月 14.1.0 • 添加了在MAX 10器件上使用 ADC Toolkit的概述和步骤。• 增添了使用MATLAB/Simulink Environment with System Console进行系统验证的概述。

2014年 6月 14.0.0 更新了以下设计示例:电路板启动,仪表盘服务,Nios II处理器,设计服务,器件服务,监视器服务,字节流服务,SLD服务和 ISSP服务。

2013年 11月 13.1.0 重新组织各章节。使用框图,工作流程,SLD概述,用例和示例 Tcl脚本添加了高级信息。

2013年 6月 13.0.0 更新了 Tcl命令表。添加了电路板启动设计示例。删除了 SOPC Builder的内容。

2012年 11月 12.1.0 重新组织内容。

2012年 8月 12.0.1 将 Transceiver Toolkit命令移到 Transceiver Toolkit章节。

2012年 6月 12.0.0 维护版本。本章添加了新的 System Console功能。

2011年 11月 11.1.0 维护版本。本章添加了新的 System Console功能。

2011年 5月 11.0.0 维护版本。本章添加了新的 System Console功能。

2010年 12月 10.1.0 维护版本。本章为 Qsys添加了新命令和参考。

2010年 7月 10.0.0 初始发行。以前作为 System Console User Guide发布,现已过时。新的章节增加了新的命令。

相关链接

文档存档关于 Intel Quartus Prime Handbook的早前版本,请搜索文档存档。

2. 使用 System Console分析和调试设计

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

87

Page 88: Intel Quartus Prime Standard Edition用户指南: 调试工具

3. 调试收发器链路

Transceiver Toolkit通过对在电路板上运行的收发器链路进行实时控制,监视和调试来帮助您优化电路板设计中的高速串行链路。

Transceiver Toolkit使您能够:

• 控制发送器或接收器通道以优化收发器设置和硬件功能。

• 在以目标数据速率运行多个链路的同时测试误码率(BER)。

• 控制内部码型生成器和检查器,以及使能环回模式。

• 运行自动扫描(auto sweep)测试,以确定每个链路的最佳物理介质附加层(PMA)设置。

• 对于 Stratix V 器件,在测试过程中查看接收器的水平和垂直的眼图边距(eye margin)。

• 同时在多个电路板上测试多个器件。

注意: Transceiver Toolkit从 System Console框架运行。

要运行此工具包,点击 Tools > System Debugging Tools > Transceiver Toolkit。或者,从命令行运行 Tcl脚本:

system-console --script=<name of script>

关于使用 Transceiver Toolkit运行高速链路测试的在线演示,请参考 Intel网站上的 TransceiverToolkit Online Demo。

相关链接

• On-Chip Debugging Design Examples

• Transceiver Toolkit Online Demo

• Transceiver Toolkit for Intel Arria® 10 Devices (OTCVRKITA10)26 Minutes Online Course

• Transceiver Toolkit for 28-nm Devices (OTCVR1100)39 Minutes Online Course

3.1. Channel Manager

Channel Manager是 Transceiver Toolkit的图形组件。Channel Manager使您能够配置和控制收发器通道和链路,调整可编程模拟设置以提高链路的信号完整性。Channel Manager位于System Console的Workspace区域中。

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 89: Intel Quartus Prime Standard Edition用户指南: 调试工具

Channel Manager由三个选项卡组成,这些选项卡以电子表格格式显示组件:

• 发送器通道(Transmitter Channels)

• 接收器通道(Receiver Channels)

• 收发器链路(Transceiver Links)

每个选项卡上的列取决于每个器件的参数。

图 21. 示例:Channel Manager的 Transceiver Links选项卡

Channel Manager功能

Channel Manager简化了操作,例如:

• 复制和粘贴设置—在通道之间复制,粘贴,导入和导出 PMA设置。

• 导入和导出设置—要将 PMA设置导出到一个文本文件,需要在 Channel Manager中选择一行。要应用一个文本文件中的 PMA设置,需要在 Channel Manager中选择一行或多行。文本文件中的 PMA设置应用于单个通道。从一个文本文件导入 PMA设置时对所选的所有通道复制一组 PMA设置。

• 启动和停止测试—Channel Manager使您能够通过右键单击通道来启动和停止测试。您可以在 Channel Manager中选择两行或更多行来启动或停止对多个通道的测试。

相关链接

• System Explorer窗格 (第 22页)

• System Console GUI (第 21页)

• 用户界面设置参考 (第 113页)

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

89

Page 90: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.1.1. 通道显示模式

有三种通道显示模式:

• Current (默认)—显示器件的当前值。蓝色文本表示设置已生效。

• Min/Max—显示自动扫描(auto sweep)中要使用的最小值和最大值。

• Best—显示最后一次完成的自动扫描运行中的最佳测试值。

注意: Transmitter Channels选项卡仅显示 Current显示模式。Transceiver Toolkit要求收发器通道执行自动扫描(auto sweep)测试。

3.2. 收发器调试流程演练

这些步骤描述了使用 Transceiver Toolkit进行收发器调试的高级过程。

1. 修改设计以使能收发器调试。

2. 将修改后的设计加载到 FPGA中。

3. 将设计加载到 Transceiver Toolkit中。

4. 链接硬件资源。

5. 验证硬件连接。

6. 识别收发器通道。

7. 运行链路测试或者控制 PMA模拟设置。

3.3. 修改设计以使能收发器调试

调试系统的配置因器件系列而异。

3.3.1. 修改 Intel FPGA设计示例

设计示例使您能够快速测试设计中接收器和发送器通道的功能性。您可以修改和定制设计示例,与您想要的收发器设计和信号完整性开发板相匹配。

1. 从 Intel FPGA网站的 On-Chip Debugging Design Examples页面下载设计示例。

2. 打开 Intel Quartus Prime并点击 Project > Restore Archived Project来还原设计示例工程存档。

3. 将 readme.txt文件中指定的开发板和期间与您的电路板和器件进行比较:

选项 描述

Same development board and same device 使用示例中包含的编程文件直接对器件进行编程。

Same board, different device 选择相应的器件并重新编译设计。

Different board 编辑必要的管脚约束(pin assignment),然后重新编译设计示例。

4. 要重新编译设计,您必须在 Platform Designer (Standard)中对系统配置进行修改,在Platform Designer (Standard)中重新生成设计,并在 Intel Quartus Prime软件中重新编译设计以生成一个新的编程文件。

一旦重新编译设计,您可以:

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

90

Page 91: Intel Quartus Prime Standard Edition用户指南: 调试工具

• 在设计示例中更改收发器设置,并观察对收发器链路性能的影响

• 隔离并验证高速串行链路,而不调试设计中的其他逻辑。

请参考每个设计示例的 readme.txt来了解更多信息。

3.3.1.1. 修改 Stratix V设计示例

您可以修改 Intel FPGA设计示例,对与您自己的设计相匹配的配置进行实验。例如,您可以更改数据速率,通道数量,PCS-PMA宽度,FPGA架构接口宽度或者输入参考时钟频率。要修改设计示例,需要在 Platform Designer (Standard)中更改 IP core参数并重新生成系统。接下来,更新顶层设计文件,并根据需要重新分配器件 I/O管脚。

按照下面步骤修改一个 Stratix V设计示例以与您的设计相匹配:

1. 确定设计所需的通道数。

2. 在 Intel Quartus Prime软件中打开设计示例的<project name> .qpf。

3. 点击 Tools > Platform Designer (Standard) 。

4. 在 System Contents选项卡上,右击 PHY模块,然后点击 Edit。对 PHY模块指定选项以匹配设计对通道数,数据速率,PCS-PMA宽度,FPGA架构接口宽度和输入参考时钟频率的要求。

5. 对 Avalon Data Symbol Size指定 FPGA架构接口数据宽度的倍数。有效值为 8或者10。点击 Finish。

6. 从设计中删除所有时序适配器(timing adapter)。时序适配器是不需要的。

7. 在 IP Catalog上对每个发送器和接收器通道添加一个 Data Pattern Generator和 DataPattern Checker。

8. 右击 Data Pattern Generator,然后点击 Edit。对 ST_DATA_W指定一个与 FPGA架构接口宽度匹配的值。

9. 右击 Data Pattern Checker,然后点击 Edit。对 ST_DATA_W指定一个与 FPGA架构接口宽度匹配的值。

10. 从 IP Catalog添加一个 Transceiver Reconfiguration Controller。

11. 右击 Transceiver Reconfiguration Controller,然后点击 Edit。将重配置接口的数量指定为 2*通道数量。点击 finish。

12. 为数据码型生成器和数据码型检查器组件创建连接。右键单击 System Contents选项卡中的 net name,然后指定以下连接。

From To

Block Name Net Name Block Name Net Name

clk_100 clk data_pattern_generator csr_clk

clk_100 clk_reset data_pattern_generator csr_clk_reset

master_0 master data_pattern_generator csr_slave

xcvr_*_phy_0 tx_clk_out0 data_pattern_generator pattern_out_clk

xcvr_*_phy_0 tx_parallel_data0 data_pattern_generator pattern_out

clk_100 clk data_pattern_checker csr_clk

clk_100 clk_reset data_pattern_checker csr_clk_reset

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

91

Page 92: Intel Quartus Prime Standard Edition用户指南: 调试工具

From To

master_0 master data_pattern_checker csr_slave

xcvr_*_phy_0 rx_clk_out0 data_pattern_checker pattern_in_clk

xcvr_*_phy_0 rx_parallel_data0 data_pattern_checker pattern_in

13. 点击 System > Assign Base Addresses。

14. 将时序适配器的复位端口连接到 clk_100的 clk_reset。

15. 要实现对系统的变更,需点击 Generate > Generate HDL。

16. 如果修改 PHY中的通道数,那么必须相应地更新顶层文件。下面示例显示了一个两通道设计的Verilog HDL代码,此代码声明了顶层设计中的输入和输出端口。此设计示例包括低延迟 PHYIP core。如果修改 PHY参数,那么必须使用正确的端口名称修改顶层设计。PlatformDesigner (Standard)显示了 PHY的一个示例。点击 Generate > HDL Example。

module low_latency_10g_1ch DUT ( input wire GXB_RXL11, input wire GXB_RXL12, output wire GXB_TXL11, output wire GXB_TX12 ); ..... low_latency_10g_1ch DUT ( ..... .xcvr_low_latency_phy_0_tx_serial_data_export ({GXB_TXL11, GXB_TXL12}), .xcvr_low_latency_phy_0_rx_serial_data_export ({GXB_RXL11, GXB_TXL12}), ..... );

17. 在 Intel Quartus Prime软件中,点击 Assignments > Pin Planner,更新管脚约束(pin assignment)以匹配您的电路板。

18. 编辑设计的 Synopsys Design Constraints (.sdc)以反映参考时钟变化。可以忽略复位警告消息。

19. 点击 Start > Start Compilation,重新编译设计。

3.3.1.1.1. 从内部 PLL生成 reconfig_clk

您可以使用内部 PLL来生成 reconfig_clk,方法是通过更改 Platform Designer (Standard)连接来延迟偏移校准(offset cancellation),直到生成的时钟稳定为止。

• 如果在重新配置时钟的所需频率范围内没有自由运行的时钟,那么在设计示例的顶层添加一个PLL。频率范围取决于器件系列。请参考相应的器件系列数据表。

• 当使用一个内部 PLL时,在生成的时钟稳定前先不要进行偏移校准(offset cancellation)。这可以通过将内部 PLL的 pll_locked信号连接到 Platform Designer (Standard)系统.clk_clk_in_reset_n端口,而不是连接到 system_reset信号来完成。

• 使用您自己的逻辑来实现 Platform Designer (Standard)系统之外的过滤器逻辑(filterlogic),逆变器(inverter)以及与 reconfig_clk的同步。

您可以在 Intel FPGA Knowledge Base中找到 support solution。该解决方案仅应用于 Arria®

V、 Cyclone® V、 Stratix IV GX/GT和 Stratix V器件。

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

92

Page 93: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.3.2. Stratix V调试系统配置

对于 Stratix V设计,Transceiver Toolkit配置需要安装 JTAG to Avalon Bridge andReconfiguration Controller IP cores。点击 Tools > IP Catalog对 Stratix V设计设置参数,生成和例化以下调试组件。

表 36. Stratix V / 28nm Transceiver Toolkit IP Core配置

组件 调试功能 参数说明 连接到

Transceiver NativePHY

支持所有调试功能 • 如果 Enable 10G PCS使能,那么 10G PCSprotocol mode必须设置成 10G PCS选项卡上的basic。

• Avalon -ST DataPattern Checker

• Avalon -ST DataPattern Generator

• JTAG to AvalonMaster Bridge

• Reconfigurationcontroller

Custom PHY 测试所有可能的收发器并行数据宽度

• Set lanes, group size, serialization factor, datarate, and input clock frequency to match yourapplication.

• Turn on Avalon data interfaces.• Disable 8B/10B.• Set Word alignment mode to manual.• Disable rate match FIFO.• Disable byte ordering block.

• Avalon -ST DataPattern Checker

• Avalon -ST DataPattern Generator

• JTAG to AvalonMaster Bridge

• Reconfigurationcontroller

Low Latency PHY 在 GT器件中以超过 8.5Gbps的速度进行测试,或者使用 PMA direct模式进行测试(例如,在一个四线组(quad)中使用六个通道时)

• 在某些数据速率以上,将 Phase compensationFIFO mode设置成 EMBEDDED,对于 PMAdirect模式,设置为NONE。

• 开启 Avalon data interfaces。• 设置串行环回模式以在工具包中使能串行环回控制。

• Avalon -ST DataPattern Checker

• Avalon -ST DataPattern Generator

• JTAG to AvalonMaster Bridge

• Reconfigurationcontroller

Intel- Avalon DataPattern Generator

在 Avalon -ST源端口生成标准数据测试码型

• 选择 PRBS7,PRBS15,PRBS23,PRBS31,high frequency或者 low frequency码型。

• 开启 Enable Bypass interface,与设计逻辑进行连接。

• ALTPLL输入端口• JTAG to Avalon

Master Bridge• 您的设计逻辑

Intel- Avalon DataPattern Checker

根据 Avalon 流接收(sink)端口上接收的测试码型来验证输入的数据流

对 ST_DATA_W指定一个值,此值要与 FPGA架构接口宽度匹配。

• PHY输出端口• JTAG to Avalon

Master Bridge

ReconfigurationController

支持 PMA控制和其他收发器设置

• 连接重配置控制器

• 将 reconfig_from_xcvr连接到reconfig_to_xcvr。

• 使能模拟控制。

• 开启 Enable Eye Viewerblock以使能信号眼图分析(仅 Stratix V)

• PHY输入端口• JTAG to Avalon

Master Bridge

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

93

Page 94: Intel Quartus Prime Standard Edition用户指南: 调试工具

组件 调试功能 参数说明 连接到

• 开启 Enable Bit Error Rate Block进行 BER测试

• 开启 Enable decision feedback equalizer(DFE) block进行链路优化

• 使能 DFE模块

JTAG to Avalon MasterBridge

接收包含传输数据的编码字节流并启动 Avalon-MM传输

N/A • PHY输入端口• Avalon -ST Data

Pattern Checker• Avalon -ST Data

Pattern Generator• Reconfiguration

Controller

3.3.2.1. 误码率测试配置( Stratix V)

使用以下配置在 Stratix V设计中执行误码率测试。

图 22. 误码率测试配置( Stratix V)

JTAG-to-AvalonMaster Bridge

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Custom PHYIP Core

orLow-LatencyPHY IP Core

Your Design Logic

XCVR ReconfigController

表 37. 系统连接:误码率测试

From To

Your Design Logic Data Pattern Generator bypass port

Data Pattern Generator PHY input port

JTAG to Avalon Master Bridge Intel FPGA Avalon Data Pattern Generator

JTAG to Avalon Master Bridge Intel FPGA Avalon Data Pattern Checker

JTAG to Avalon Master Bridge PHY input port

Data Pattern Checker PHY output port

Transceiver Reconfiguration Controller PHY input port

相关链接

运行 BER测试 (第 106页)

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

94

Page 95: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.3.2.2. PRBS信号眼图测试配置( Stratix V)

使用以下配置在 Stratix V设计中执行 PRBS信号眼图测试。

图 23. PRBS信号眼图测试配置( Stratix V)

JTAG-to-AvalonMaster Bridge

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Custom PHYIP Core

orLow-LatencyPHY IP Core

Your Design Logic

XCVR Reconfiguration

Controller

表 38. 系统连接:PRBS信号眼图测试( Stratix V)

From To

Your Design Logic Data Pattern Generator bypass port

Data Pattern Generator PHY input port

JTAG to Avalon Master Bridge Intel Avalon Data Pattern Generator

JTAG to Avalon Master Bridge Intel Avalon Data Pattern Checker

Data Pattern Checker PHY output port

JTAG to Avalon Master Bridge Transceiver Reconfiguration Controller

JTAG to Avalon Master Bridge PHY input port

Transceiver Reconfiguration Controller PHY input port

相关链接

运行 PRBS信号眼测试(仅 Stratix V) (第 107页)

3.3.2.2.1. 使能串行比特比较器(Serial Bit Comparator)模式( Stratix V)

Serial bit comparator模式使您能够在不中断数据路径的情况下通过 PRBS码型或者用户设计数据运行 Eye Viewer诊断功能。对于 Stratix V器件,必须使能 Serial bit comparator模式。

要对 Stratix V器件使能此模式,当配置调试系统时必须使能以下调试组件选项:

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

95

Page 96: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 39. Serial Bit Comparator模式的组件设置

调试组件 Serial Bit Mode的设置(2)

Transceiver Reconfiguration Controller 开启 Enable Eye Viewer block和 Enable Bit Error Rate Block

Data Pattern Generator(3) 开启 Enable Bypass interface

对于单一比特错误检查,Serial bit comparator模式不如 Data pattern checker模式准确。如果要求一个精确的错误率,那么请不要使用 Serial bit comparator模式。使用 Serialbit comparator模式检查大窗口错误。由于工具包通过存储器映射接口进行读取,因此它不会实时读取比特错误计数器。Serial bit comparator模式对 Stratix V器件具有以下硬件限制:

• 工具包一次仅在每个重配置控制器的单个通道上使用串行比特检查器(serial bit checker)。

• 当串行比特检查器在通道 n上运行时,您仅能修改此通道上的 VOD、预加重、DC增益和 EyeViewer设置。更改或使能 DFE或 CTLE能导致串行比特检查器结果损坏。

• 当串行比特检查器在一个通道上运行时,您不能在同一重配置控制器上更改任何其他通道上的设置。

• 当串行比特检查器在一个通道上运行时,您不能在 Transceiver Toolkit中打开任何其他通道。

• 当串行比特检查器在一个通道上运行时,您不能从同一重配置控制器上的任何通道复制 PMA设置。

3.3.2.3. 定制流量眼图测试配置( Stratix V)

使用以下配置在 Stratix V设计中执行定制流量信号眼图测试。

图 24. 系统配置:定制流量信号眼图测试( Stratix V)

JTAG-to-AvalonMaster Bridge Custom PHY

IP Coreor

Low-LatencyPHY IP Core

Your Design Logic(Custom Traffic)

XCVR Reconfiguration

Controller

(2) 表 39 (第 96页)中的设置仅在 Stratix V器件中支持。

(3) 在 Serial Bit Mode中对 Data Pattern Generator或者数据码型的有限支持。

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

96

Page 97: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 40. 系统连接:定制流量信号眼图测试( Stratix V)

From To

Your design logic with custom traffic PHY input port

JTAG to Avalon Master Bridge Transceiver Reconfiguration Controller

JTAG to Avalon Master Bridge PHY input port

Transceiver Reconfiguration Controller PHY input port

相关链接

运行自定义流量测试(仅 Stratix V) (第 108页)

3.3.2.4. 链路优化测试配置( Stratix V)

使用以下配置在 Stratix V器件中进行链路优化。

图 25. 系统配置:链接优化测试( Stratix V)

JTAG-to-AvalonMaster Bridge

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Custom PHYIP Core

orLow-LatencyPHY IP Core

Your Design Logic

XCVR Reconfiguration

Controller

From To

Your Design Logic Data Pattern Generator bypass port

Data Pattern Generator PHY input port

JTAG to Avalon Master Bridge Altera Avalon Data Pattern Generator

JTAG to Avalon Master Bridge Altera Avalon Data Pattern Checker

Data Pattern Checker PHY output port

JTAG to Avalon Master Bridge Transceiver Reconfiguration Controller

JTAG to Avalon Master Bridge PHY input port

Transceiver Reconfiguration Controller PHY input port

相关链接

运行自动扫描测试(Auto Sweep Test) (第 108页)

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

97

Page 98: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.3.2.5. PMA模拟设置控制重配置( Stratix V)

使用以下配置在 Stratix V设计中控制 PMA Analog设置。

图 26. 系统配置:PMA模拟设置控制( Stratix V)

JTAG-to-AvalonMaster Bridge Custom PHY

IP Coreor

Low-LatencyPHY IP Core

XCVR Reconfiguration

Controller

表 41. 系统连接:PMA模拟设置控制( Stratix V)

From To

JTAG to Avalon Master Bridge Transceiver Reconfiguration Controller

JTAG to Avalon Master Bridge PHY input port

Transceiver Reconfiguration Controller PHY input port

相关链接

控制 PMA模拟设置 (第 109页)

3.3.3. 例化和参数化 Intel Arria 10调试 IP内核

要使用 Transceiver Toolkit调试 Intel Arria 10设计,您必须在 Transceiver Intel FPGA IP内核中使能调试设置。您可以在首次例化这些组件时激活这些设置,也可以在初步编译后修改实例。

修改的 IP内核是:

• Transceiver Native PHY

• Transceiver ATX PLL

• CMU PLL

• fPLL

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

98

Page 99: Intel Quartus Prime Standard Edition用户指南: 调试工具

在调试 IP内核中使能的参数是:

表 42. IP内核和调试设置关于这些参数的详细信息,请参考 Debug Settings for Transceiver IP Cores。

IP Core Enabledynamicreconfiguration

Enable AlteraDebug MasterEndpoint

Enablecapabilityregisters

Enable controland statusregisters

Enable PRBSSoftaccumulators

Transceiver Native PHY Yes Yes Yes Yes Yes

Transceiver ATX PLL Yes Yes

CMU PLL Yes Yes

fPLL Yes Yes

对于每个收发器 IP内核:

1. 在 Project Navigator的 IP Components选项卡中,右击 IP实例,然后点击 Edit inParameter Editor。

2. 开启调试设置,如上表 IP内核和调试设置中所示。

图 27. Parameter Editor中的 Intel Arria 10 Transceiver Native PHY IP Core

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

99

Page 100: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 28. Parameter Editor中的 Intel Arria 10 Transceiver ATX PLL Core

3. 点击 Generate HDL。

对设计中的所有 IP使能参数后,重新编译您的工程。

3.3.3.1. 收发器 IP内核的调试设置

下表描述了准备调试收发器时开启的设置:

表 43. 收发器调试的 Intel FPGA IP设置

设置 描述

Enable Dynamic Reconfiguration 使您能够在不关闭器件电源的情况下更改收发器通道和 PLL的行为

Enable Altera Debug MasterEndpoint

使您能够通过 System Console访问收发器和 PLL寄存器。重新编译设计时, IntelQuartus Prime软件会在综合过程中会插入 ADME,调试架构和嵌入式逻辑。

Enable capability registers 性能寄存器(capability register)提供关于收发器通道配置的高级消息。

Enable control and statusregisters

使能软核寄存器(soft register),通过嵌入式调试读取 PHY接口上的状态信号和写入控制信号。

Enable PRBS Soft Accumulators 使用硬核 PRBS生成器和检查器时使能软核逻(softe logic)辑来执行 PRBS比特和错误累加。

关于 Intel Arria 10器件的动态重配置参数的详细信息,请参考 Intel Arria 10 Transceiver PHYUser Guide 。

相关链接

Dynamic Reconfiguration ParametersIn Intel Arria 10 Transceiver PHY User Guide

3.4. 将设计编程到 Intel FPGA中

在设计中包含调试组件,编译并生成编程文件后,您可以在 Intel FPGA中编程此设计。

相关链接

Programming Intel FPGA Devices (第 0 页)

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

100

Page 101: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.5. 将设计加载到 Transceiver Toolkit中

如果在加载时已经使用工程对 FPGA进行了编程,那么 Transceiver Toolkit会自动将设计链接到工具包中的目标硬件。该工具包会自动发现同一通道的发送器和接收器之间的链路。

加载器件之前,要确保已连接硬件。器件和 JTAG连接出现在 System Explorer窗格的 Device和 Connections文件夹。

将设计加载到 Transceiver Toolkit中:

1. 在 System Console中,点击 File > Load Design。

2. 选择用于收发器设计的.sof编程文件。

加载项目后,System Explorer窗格中的 designs和 design instances文件夹显示有关设计的信息,例如设计名称和能够与 System Console进行通信的设计中的模块。

相关链接

System Explorer窗格 (第 22页)

3.6. 链接硬件资源

链接硬件资源会将您加载的工程映射到目标 FPGA。当您为多个 FPGA加载多个设计工程时,链接表明每个 FPGA中都有哪个工程。该工具包会自动发现您连接的硬件和设计。您也可以在 SystemExplorer中将设计手动链接到已连接的硬件资源。

如果您使用多个 Intel FPGA电路板,那么您可以使用链接到同一设计的多个器件来设置测试。如果要在两个单独的器件上的发送器和接收器之间执行链路测试,那么此设置很有用。您还可以加载多个 Intel Quartus Prime工程和不同系统之间的链路。您可以在一个 Intel Quartus Prime实例中对单独的不相关的系统执行测试。

图 29. Stratix V (28nm)的一个通道环回模式

JTAG-to-AvalonMaster Bridge

Loopbackon board

Top-Level Design (FPGA)

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Custom PHYIP Core

orLow-LatencyPHY IP Core

Transceiver Toolkithost computer

XCVRReconfiguration

Controller

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

101

Page 102: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 30. Intel Arria 10 器件的一个通道环回模式

Transceiver ToolkitHost Computer

Top-Level Design (FPGA)

LoopbackOn Board

Hard PRBS GeneratorHard PRBS Checker

Altera Debug MasterEndpoint (ADME)

Transceiver Native PHY IP

图 31. Stratix V / 28nm的四通道环回模式

JTAG-to-AvalonMaster Bridge

Top-Level Design (FPGA)

Custom PHYIP Core

orLow-LatencyPHY IP Core

Transceiver Toolkithost computer

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Avalon-ST DataPattern Generator

Avalon-ST DataPattern Checker

Loopbackon board

Loopbackon board

Loopbackon board

Loopbackon board

XCVRReconfiguration

Controller

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

102

Page 103: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 32. Intel Arria 10 器件的四通道环回模式

Transceiver ToolkitHost Computer

Top-Level Design (FPGA)

LoopbackOn Board

Hard PRBS Generator

Hard PRBS Checker

Altera Debug MasterEndpoint (ADME)

Transceiver Native PHY IP

LoopbackOn Board

Hard PRBS GeneratorHard PRBS Checker Loopback

On BoardHard PRBS GeneratorHard PRBS Checker

LoopbackOn Board

Hard PRBS GeneratorHard PRBS Checker

3.6.1. 将一个设计链接到一个器件

通过一条 Intel FPGA Download Cable将一个设计链接到一个器件:

1. 加载 Intel Quartus Prime工程的设计。

2. 如果设计不是自动链接的,那么将每个器件链接到一个相应的设计。

3. 创建器件上通道之间的链接来进行测试。

3.6.2. 将两个设计链接到两个器件

将两个设计链接到同一电路板上的两个不同的器件,通过一条 Intel FPGA Download Cable下载电缆进行连接:

1. 加载所需全部 Intel Quartus Prime工程的设计。

2. 如果设计不自动链接,那么将每个器件链接到一个相应的设计。

3. 打开第二个器件的工程。

4. 将 JTAG链上的第二个器件链接到第二个设计(除非设计自动链接)。

5. 创建器件上通道之间的一个链接来进行测试。

3.6.3. 将一个设计链接到两个器件

按照以下步骤将两个不同器件上的同一设计进行链接:

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

103

Page 104: Intel Quartus Prime Standard Edition用户指南: 调试工具

1. 在 Transceiver Toolkit中,打开在两个器件上使用的.sof。

2. 将第一个器件链接到设计实例。

3. 将第二个器件链接到设计实例。

4. 创建器件上通道之间的一个链接来进行测试。

3.6.4. 链接设计和不同电路板上的器件

将两个设计链接到不同电路板上的两个不同器件,不同的电路板链接到不同的 Intel FPGADownload Cable:

1. 加载所需全部 Intel Quartus Prime工程的设计。

2. 如果设计不自动链接,那么将每个器件链接到一个相应的设计。

3. 创建器件上通道之间的链接来进行测试。

4. 与第二个 Intel FPGA Download Cable连接的器件链接到第二个设计。

5. 创建器件上通道之间的一个链接来进行测试。

3.6.5. 验证硬件连接

创建链路后,需验证通道是否在硬件上正确地连接并正确地环回。这种预防措施节省了工作流程中的时间。

使用该工具包正确地发送接收数据码型(data pattern):

1. 在 Receiver选项卡中,验证 RX CDR locked to Data是否设置成 Locked。

图 33. RX CDR Locked to Data

2. 在 Transmitter Channel上运行 generator。

3. 在 Receiver Channel上运行 checker。

4. 验证是否有 Lock to Data和两者之间的 Bit Error Rate是否很低或者为零。

验证发送器和接收器之间的通信后,可以在两个收发器之间创建链路,并执行 Auto Sweep和 EyeViewer (4) 测试。

(4) Eye Viewer仅用于 Stratix V器件。

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

104

Page 105: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.7. 识别收发器通道

验证 Transceiver Toolkit是否正确检测到通道。如果接收器和发送器共享一个收发器通道,那么该工具包会识别该通道。

Transceiver Toolkit在 Channel Manager的 Transmitter Channels和 ReceiverChannels选项卡上识别并显示发送器和接收器通道。您也可以手动识别收发器通道中的发送器和接收器,然后在两者之间创建一条链路以进行测试。

3.7.1. 控制收发器通道

在通道运行的同时调整或监控发送器或者接收器设置:

• 在 Transmitter Channels选项卡中,点击 Control Transmitter Channel

• 在 Receiver Channels选项卡中,点击 Control Receiver Channel。

• 在 Transceiver Links选项卡中,点击 Control Receiver Channel。

例如,您可以在收发器链路上发送一个数据码型,然后报告接收数据的信号质量。

3.8. 创建收发器链路

创建链接可指定物理连接哪些发送器和接收器通道。当接收器和发送器共享收发器通道时,工具包会自动创建链接。您还可以手动创建和删除发送器和接收器通道之间的链接。

创建一个收发器链路

1. 在 Channel Manager中,点击 Setup。

2. 选择想要控制的生成器和检查器。

3. 选择想要控制的发送器和接收器对。

4. 点击 Create Transceiver Link。

5. 点击 Close。

Transceiver Toolkit为链路生成一个自动名称,但您也可以在 Link Alias单元格中输入一个更短、更有意义的名称。

3.9. 运行链路测试

一旦识别出用于调试的收发器通道,就能够运行链路测试了。使用 Transceiver Links选项卡来控制链路测试。

运行链路测试时,通道颜色高显表明测试状态:

表 44. 通道颜色高显

颜色 发送器通道 接收器通道

红色 通道关闭或者生成器时钟未运行。 通道关闭或者检查器时钟未运行。

绿色 生成器正在发送一个码型。 检查器正在检查并且数据码型已锁定。

中性(与背景颜色相同) 通道已打开,生成器时钟正在运行,并且生成器未发送码型。

通道已打开,检查器时钟正在运行,并且检查器没有进行检查。

黄色 N/A 检查器正在检查并且数据码型未被锁定。

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

105

Page 106: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.9.1. 运行 BER测试

BER测试可帮助您评估信号完整性。请按照以下步骤在收发器链路上运行 BER测试:

1. 在 Channel Manager中,点击 Control Transceiver Link。

2. 指定一个 PRBS Test pattern

3. 如果您的器件支持设置 Checker mode,那么设置成 Data pattern checker。

4. 尝试使用 Reconfiguration、Generator或者 Checker设置的不同值。

5. 点击 Start,运行设置的码型。

6. 如果您的器件支持错误注入,那么您可以点击 Inject Error注入错误比特。

7. 您也可以 Reset计数器,或者 Stop测试。

注意: 如果在系统配置中使用 hard PRBS Pattern Generator和 Checker,那么 Intel Arria10器件不支持 Inject Error。

相关链接

• 误码率测试配置( Stratix V) (第 94页)

• 用户界面设置参考 (第 113页)

3.9.2. 信号眼裕量测试(Signal Eye Margin Testing ( Stratix V only))

Stratix V包含 Eye Viewer电路,支持可视化接收器上的水平和垂直眼裕量。对于所支持的器件,使用信号眼测试来调整收发器的 PMA设置。这会产生高数据速率上的最佳眼裕量和 BER。此工具包对不支持的器件禁用了信号眼测试。

Eye Viewer图能够显示一个浴缸曲线(bathtub curve),代表眼裕量的眼图或者热图显示。运行列表显示了每个 Eye Viewer测试的统计。当 PMA设置合适时,浴缸曲线较宽,边沿处有陡峭的斜率。曲线最多有 30个单位宽。如果浴缸较窄,那么信号质量就较差。浴缸曲线越宽,眼越宽。浴缸曲线越小,眼越小。眼轮廓表明所估算的接收器的水平和垂直眼开。

您可以右击列表中的任何测试运行,然后点击 Apply Settings to Device,快速将此 PMA设置应用到您的器件。您也可以点击 Export、Import或者 Create Report。

图 34. Eye Viewer设置和状态,显示两个测试运行的结果

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

106

Page 107: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 35. 热图显示和通过眼的浴缸曲线

3.9.2.1. 运行 PRBS信号眼测试(仅 Stratix V)

运行 PRBS信号眼测试以可视化接收器上估算的水平和垂直眼开。使用调试设计进行 FPGA编程,在工具包中加载设计,连接硬件后,按照以下步骤运行 PRBS信号眼测试:

1. 点击 Setup。

a. 选择想要控制的生成器和检查器。

b. 选择想要控制的发送器和接收器对。

c. 点击 Create Transceiver Link,然后点击 Close。

2. 点击 Link Eye Viewer ,选择 Eye Viewer 作为 Test mode。 Eye Viewer 模式将测试结果显示为浴缸曲线,热图者或眼轮廓(代表比特错误和相位偏移的数据)。

3. 指定 PRBS Test pattern和 Checker mode。Serial bit comparator checker模式仅用于检查自定义流量的大窗口错误。

checker mode选项仅在 Reconfiguration Controller组件中开启 Enable Eye Viewerblock Enable Bit Error Rate Block后可用。(仅 Stratix V设计)

4. 指定 Run length和 Eye Viewer settings来分别控制测试范围和显示的 Eye Viewer结果的类型。

5. 点击 Start运行您设置的码型。Eye Viewer使用当前通道设置进行通道的相位扫描(phasesweep)。相位扫描运行 32 个迭代。运行时查看 Eye Viewer status下的状态。使用此图比较同一通道的 PMA设置和对特定通道选择 PMA设置的最佳组合。

6. 运行完成时,图表显示每个运行的特征。点击 Stop来停止测试,更改 PMA设置,然后重新开始测试。点击 Create Report将数据导出为表格格式以供进一步查看。

相关链接

• PRBS信号眼图测试配置( Stratix V) (第 95页)

• AN 678: High-Speed Link Tuning Using Signal Conditioning Circuitry

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

107

Page 108: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.9.3. 运行自定义流量测试(仅 Stratix V)

使用调试设计进行 FPGA编程后,在工具包中加载设计,链接硬件,然后按照以下步骤运行自定义流量测试:

1. 在 Channel Manager中,点击 Setup。

2. 选择相关联的重配置控制器。

3. 点击 Create Transceiver Link,然后点击 Close。

4. 点击 Receiver Eye Viewer 选项卡。

5. 选择 Eye Viewer 作为 Test mode。 Eye Viewer 模式将测试结果显示为浴缸曲线,热图者或眼轮廓(代表比特错误和相位偏移的数据)。

6. 指定 PRBS Test pattern。

7. 对 Checker mode选择 Serial bit comparator。

checker mode选项仅在 Reconfiguration Controller组件中开启 Enable Eye Viewerblock Enable Bit Error Rate Block后可用。

8. 指定 Run length和 Eye Viewer settings来分别控制测试范围和显示的 Eye Viewer结果的类型。

9. 点击 Start运行您设置的码型。Eye Viewer使用当前通道设置进行通道的相位扫描(phasesweep)。相位扫描运行 32 个迭代。运行时查看 Eye Viewer status下的状态。

10. 运行完成时,图表显示每个运行的特征。点击 Stop来停止测试,更改 PMA设置,然后重新开始测试。点击 Create Report将数据导出为表格格式以供进一步查看。

相关链接

定制流量眼图测试配置( Stratix V) (第 96页)

3.9.4. 链路优化测试

Transceiver Toolkit自动扫描测试(auto sweep test)自动扫描 PMA范围以确定提供最佳信号完整性的收发器设置。此工具包可以存储测试运行的历史记录,并记录最佳的 PMA设置。

3.9.4.1. 运行自动扫描测试(Auto Sweep Test)

运行链路优化测试:

1. 在 Transceiver Links选项卡中,选择想要控制的通道。

2. 点击 Link Auto Sweep。Advanced选项卡中的 Test mode设置为 Auto sweep。

3. 指定 PRBS Test pattern。

4. 指定 Run length实验及 Transmitter settings和 Receiver settings,分别控制测试范围和 PMA设置。

5. 点击 Start,运行满足 PMA参数限制的所有测试组合。运行完成后,显示图表并在运行列表中列出每个运行的特征。

6. 您可以点击 Stop来停止测试,更改 PMA设置,然后重新开始测试。点击 Create Report将数据导出为表格格式以供进一步查看。

7. 如果要使用决策反馈均衡(DFE)确定最佳布线设置(best tap setting):

a. 将 DFE mode设置成Off。

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

108

Page 109: Intel Quartus Prime Standard Edition用户指南: 调试工具

b. 使用 Auto Sweep找到最佳 PMA设置。

c. 如果 BER = 0,那么使用已得到的最佳 PMA设置。

d. 如果 BER > 0,那么使用此 PMA设置,设置从 Auto Sweep得到的最小值和最大值以匹配此设置。将这三个 DFE设置的最大 DFE范围都设置为极限。

e. 运行 Create Report来查看结果并决定哪个 DFE设置具有最佳 BER。这些设置与 PMA设置一起使用可获得最佳结果。

相关链接

• 链路优化测试配置( Stratix V) (第 97页)

• 例化和参数化 Intel Arria 10调试 IP内核 (第 98页)

3.9.4.2. 确定最佳布线设置(Determining the Best Tap Settings)

使用决策反馈均衡(DFE)确定最佳布线设置:

1. 使用 Auto Sweep找到最佳 PMA设置,同时 DFE mode要设置为Off。

选项 描述

如果 BER = 0 那么使用已得到的最佳 PMA设置。

如果 BER > 0 那么使用此 PMA设置,设置 Auto Sweep报告的最小值和最大值以匹配此设置。将这三个 DFE设置的最大 DFE范围都设置为极限。

2. 点击 Create Report来查看结果并决定哪个 DFE设置具有最佳 BER。这些设置与 PMA设置一起使用可获得最佳结果。

3.10. 控制 PMA模拟设置

Transceiver Toolkit使您能够在链路运行时直接控制 PMA模拟设置。关于每个参数的详细说明,请参考相应器件的 PHY用户指南。

请按照下列步骤控制 PMA模拟设置:

1. 在 Channel Manager中,点击 Setup。

2. 在 Transmitter Channels选项卡中,定义一个没有生成器的发送器,然后点击 CreateTransmitter Channel。

3. 在 Receiver Channels选项卡中,定义一个没有生成器的接收器,然后点击 CreateReceiver Channel。

4. 在 Transceiver Links选项卡中,选择想要控制的发送器和接收器,然后点击 CreateTransceiver Link。

5. 点击 Close。

6. 点击 Control Receiver Channel,Control Transmitter Channel或者 ControlTransceiver Link,在运行期间直接控制 PMA设置。

3.10.1. Intel Arria 10和 Intel Cyclone 10 GX PMA设置

下图显示了 PMA模拟设置。

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

109

Page 113: Intel Quartus Prime Standard Edition用户指南: 调试工具

3.11. 用户界面设置参考

Transceiver Toolkit用户界面包含以下设置:

表 45. Transceiver Toolkit控制窗格设置Settings in alphabetical order. All the settings appear in the Transceiver Link control pane.

设置 描述 器件系列 控制窗格

Alias 您选择的通道名称。 所有支持的器件系列 发送器窗格

接收器窗格

Auto Sweep status 报告当前和最佳测试的比特,错误,误码率以及当前 AutoSweep测试的实例数量(case count)。

所有支持的器件系列 接收器窗格

Bit error rate (BER) 错误数除以自上次检查器复位后的已测试比特数。 所有支持的器件系列 接收器窗格

Channel address 收发器通道的逻辑地址编号。 所有支持的器件系列 发送器窗格

接收器窗格

Data rate 在工程文件中显示的通道的数据速率,或者频率检测器测量的数据速率。

要使用频率检测器,需要在 Data Pattern Checker IPcore或者 Data Pattern Generator IP core中开启Enable Frequency Counter,重新生成 IP内核,然后重新编译设计。

测得的数据速率取决于工程文件中显示的 Avalon 管理时钟频率。

如果对设置进行更改,并且想对数据速率进行再次采样,那么单击 Data rate旁边的 Refresh按钮。

所有支持的器件系列 发送器窗格

接收器窗格

DC gain 对整个频谱中的输入信号提供均等提升。 所有支持的器件系列 接收器窗格

DFE mode 用于改进信号质量的决策反馈均衡(DFE)。

器件 值

Stratix V 1-5

Intel Arria 10 1-11

在 Stratix V器件中,DFE模式为Off,Manual,One-time adaptive mode和 AdaptationEnabled。Adaptation Enabled模式的 DFE会自动尝试查找最佳布线值(best tap value)。在 Intel Arria 10器件中,DFE模式为Off,Manual和Adaptation Enabled。Adaptation Enabled模式的 DFE会自动尝试查找最佳布线值(best tap value)。

Stratix VIntel Arria 10

接收器窗格

Enable word aligner 强制收发器通道与指定的字对齐。 Stratix V 接收器窗格

Equalization control 增强输入信号的高频增益,以补偿物理介质的低通滤波器效应。此选项与 DFE一起使用时,要在 Manual或者Adaptation Enabled模式下使用 DFE。在 Stratix V器件中,自动扫描(auto sweep)支持 AEQ一次性适配(one-time adaptation)。

所有支持的器件系列 接收器窗格

Equalization mode 对于 Intel Arria 10器件,Equalization Mode可设置成Manual或者 Triggered。在 Stratix V 器件中,Adaptive equalization (AEQ)自动评估并选择均衡器设置的最佳组合,并关闭Equalization Control。一次性选择会确定最佳设置并停止搜索。您可以将 AEQ用于多个独立控制的接收器通道。

所有支持的器件系列 接收器窗格

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

113

Page 114: Intel Quartus Prime Standard Edition用户指南: 调试工具

设置 描述 器件系列 控制窗格

Error rate limit 开启或关闭错误率限制(error rate limit)。Startchecking after指定工具包在查看接下来两个检查的误码率(BER)之前等待的比特数。Bit error rate achieves below设置误码率上限。如果错误率好于设置的错误率,那么测试结束。

Bit error rate exceeds设置误码率下限。如果错误率坏于设置的错误率,那么测试结束。

所有支持的器件系列 接收器窗格

Generator/Checkermode

指定 Data pattern checker或者 Serial bitcomparator用于 BER测试。如果使能 Serial bit comparator,那么 Data PatternGenerator发送 PRBS码型, serial bit comparator会检查此码型。

在 Bypass mode中,点击 Start开始 Serial bitcomparator上计数。对于 BER测试:• Intel Arria 10器件支持 Data Pattern Checker和

Hard PRBS。• Stratix V器件支持 Data Pattern Checker和 Serial

Bit Checker。

所有支持的器件系列 发送器窗格

接收器窗格

Horizontal phase stepinterval

指定执行扫描时要递增的水平步数(number ofhorizontal steps)。增大该值可提高测试速度,但分辨率较低。此选项仅适用于眼轮廓。

Stratix V 发送器窗格

接收器窗格

Increase test range 对于所选的一组控制,减少一个单位来增加测试范围(最小),增加一个单位来增加测试范围(最大)。您可以跨越PMA Analog控制(非 DFE控制)或 DFE控制。您可以快速设置一个测试以检查是否有任何接近您当前最佳设置的PMA设置组合能产生更好的结果。右键点击 Advanced面板使用此选项

所有支持的器件系列 接收器窗格

Inject Error 将一个比特翻转到 data pattern generator的输出以引入一个人为错误。

Stratix V 发送器窗格

Maximum tested bits 设置每个测试迭代的最大测试比特数。 所有支持的器件系列 接收器窗格

Number of bits tested 指定自上次检查器复位后的测试的比特数。 所有支持的器件系列 接收器窗格

Number of error bits 指定自上次检查器复位后出现的错误比特数。 所有支持的器件系列 接收器窗格

Number of preamblebeats

在测试码型开始之前,前导字发送到的时钟周期数。 Stratix V 发送器窗格

PLL refclk freq 出现在工程文件中的通道参考时钟频率,或者从测得的数据速率计算出的参考时钟频率。

所有支持的器件系列 发送器窗格

接收器窗格

Populate with 右键点击 Advanced面板,加载器件的当前值作为起点,或者初步加载 auto sweep确定的最佳设置。 IntelQuartus Prime软件自动应用在下拉列表中指定的Transmitter settings和 Receiver settings值。

所有支持的器件系列 接收器窗格

Preamble word 使用前同步码模式(preamble mode)时要发出的字(仅在使用 soft PRBS Data Pattern Generator和 Checker时)。

所有支持的器件系列 发送器窗格

Pre-emphasis 该可编程模块可增强每个发送缓冲信号发送数据中的高频。此行为抵消了传输介质中可能的衰减。

(仅适用于 Stratix V)使用预加重(pre-emphasis)可以最大化远端接收器的数据眼开。

所有支持的器件系列 发送器窗格

Receiver channel 指定所选接收器通道的名称。 所有支持的器件系列 接收器窗格

继续...

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

114

Page 115: Intel Quartus Prime Standard Edition用户指南: 调试工具

设置 描述 器件系列 控制窗格

Refresh Button 加载.pof文件后,运行动态重配置后从寄存器加载新设置。

所有支持的器件系列 发送器窗格

接收器窗格

Reset 复位当前测试。 所有支持的器件系列 接收器窗格

Rules BasedConfiguration (RBC)validity checking

根据以前的设置,以红色显示 Transmitter settings和 Receiver settings下每个列表的设置的无效组合。使能此选项时,红色显示的设置表示当前组合无效。此操作避免了手动测试无法针对设计进行编译的无效设置,并避免了将器件长时间设置为无效模式并可能损坏电路。

所有支持的器件系列 接收器窗格

Run length 设置测试运行的覆盖率(coverage)参数。 所有支持的器件系列 发送器窗格

接收器窗格

RX CDR PLL status(5) 在 lock-to-reference (LTR)模式下显示接收器。在 auto-mode下,如果数据不能被锁定,那么此信号在 LTD模式下切换(如果 CDR锁定到数据)。

所有支持的器件系列 接收器窗格

RX CDR data status 在 lock-to-data (LTD)模式下显示接收器。在 auto-mode下,如果数据不能被锁定,那么此信号锁定到数据时保持在高电平,并且不会切换。

所有支持的器件系列 接收器窗格

Serial loopbackenabled

在缓冲器之前插入一个串行环回,使您能够在器件的同一物理通道上的发送器和接收器对上形成一条链路。

所有支持的器件系列 发送器窗格

接收器窗格

Start 启动通道上的 pattern generator或者 checker以验证输入数据。

所有支持的器件系列 发送器窗格

接收器窗格

Stop 停止生成码型和测试通道。 所有支持的器件系列 发送器窗格

接收器窗格

Target bit error rate 查找所选误码率的轮廓边缘。此选项仅适用于眼轮廓模式。

Stratix V 发送器窗格

接收器窗格

Test pattern 发送器通道发送的测试码型。

Data Pattern Checker自对齐高频码型和低频码型。使用 Bypass mode来发送用户设计数据。

器件系列 可用的测试码型

Stratix V PRBS7,PRBS15,PRBS23,PRBS31,LowFrequency,HighFrequency和 Bypassmode。

Intel Arria 10 PRBS9,PRBS15,PRBS23和PRBS31。

所有支持的器件系列 发送器窗格

接收器窗格

Time limit 指定时间限制单位和值,使每次测试迭代都有最大边界时间限制。

所有支持的器件系列 接收器窗格

Transmitter channel 指定所选发送器通道的名称。 所有支持的器件系列 发送器窗格

TX/CMU PLL status 指定发送器通道 PLL是否锁定到参考时钟。 所有支持的器件系列 发送器窗格

继续...

(5) 对于 Stratix V器件,Phase Frequency Detector (PFD)在 LTD模式下是非活动的(inactive)。rx_is_lockedtoref状态信号随机开启和关闭,在 LTD模式下是不重要的。

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

115

Page 116: Intel Quartus Prime Standard Edition用户指南: 调试工具

设置 描述 器件系列 控制窗格

Use preamble uponstart

如果打开,则在测试码型之前发送前导字。如果关闭,则立即开始发送测试码型。

所有支持的器件系列 发送器窗格

Vertical phase stepinterval

指定执行扫描时要递增的垂直步数(number of verticalsteps)。增大该值可提高测试速度,但分辨率较低。此选项仅适用于眼轮廓。

Stratix V 发送器窗格

接收器窗格

VOD control 可编程发送器差分输出电压。 所有支持的器件系列 发送器窗格

相关链接

Channel Manager (第 88页)

3.12. 解决常见错误

缺少高速链接管脚连接

检查管脚连接以识别缺失的高速链接(tx_p/n和 rx_p/n)。当将一个较旧的设计移植到最新版本的Intel Quartus Prime软件中时,要确保这些连接在移植后仍存在。

复位问题:

确保 Transceiver Native PHY,Transceiver Reset Controller和 ATX PLL的复位输入 IntelFPGA IP没有保持在活动状态(1'b1)。Transceiver Toolkit用红色突出显示您设置的所有Transceiver Native PHY通道。

未连接的 reconfig_clk

您必须将 reconfig_clk输入连接并驱动到 Transceiver Native PHY和 ATX PLL Intel FPGAIP。否则,工具包不会显示收发器链接通道。

3.13. 脚本编写 API参考

Intel Quartus Prime软件提供一个 API,通过使用 Tcl命令和脚本任务(如链接器件资源和识别高速串行链接)对 Transceiver Toolkit功能进行访问。

在 Tcl脚本中保存工程设置以在接下来的测试部分使用:

1. 设置并定义描述整个物理系统的链接。

2. 点击 Save Tcl Script保存设置以备将来使用。

您也可以构建一个自定义测试程序脚本。

要运行脚本,请双击 System Explorer脚本文件夹中的脚本名称。

要从 Tcl Console窗口查看可用的 Tcl命令描述的列表,包括示例用法:

1. 在 Tcl控制台中输入 help help。控制台会显示所有的 Transceiver Toolkit Tcl命令。

2. 输入 help <command name>。控制台会显示命令描述。

3.13.1. Transceiver Toolkit命令

下表列出了可用的 Transceiver Toolkit脚本命令。

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

116

Page 117: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 46. Transceiver Toolkit channel_rx命令

命令 参数 功能

transceiver_channel_rx_get_data <service-path> 返回当前检查器数据的列表。结果按比特数,错误数和误码率的顺序排列。

transceiver_channel_rx_get_dcgain <service-path> 得到接收器通道上的 DC增益值。

transceiver_channel_rx_get_dfe_tap_value <service-path> <tapposition>

在指定的布线(tap)位置获取指定通道的当前布线(tap)值。

transceiver_channel_rx_get_eqctrl <service-path> 得到接收器通道上的均衡控制值。

transceiver_channel_rx_get_pattern <service-path> 按名称返回当前数据检查器码型。

transceiver_channel_rx_has_dfe <service-path> 报告您指定的通道是否具有 DFE功能。

transceiver_channel_rx_has_eye_viewer <service-path> (仅适用于 Stratix V)报告 EyeViewer特性是否可用于您指定的通道。

transceiver_channel_rx_is_checking <service-path> 如果检查程序正在运行,则返回非零值。

transceiver_channel_rx_is_dfe_enabled <service-path> 报告在指定的通道上是否使能了 DFE特性。

transceiver_channel_rx_is_locked <service-path> 如果检查器锁定到输入数据上,则返回非零值。

transceiver_channel_rx_reset_counters <service-path> 复位检查器内的比特和错误计数器。

transceiver_channel_rx_reset <service-path> 对指定的通道进行复位。

transceiver_channel_rx_set_dcgain <service-path> <value> 设置接收器通道上的 DC增益值。

transceiver_channel_rx_set_dfe_enabled <service-path> <disable(0)/enable(1)>

在指定的通道上使能或禁用 DFE功能。

transceiver_channel_rx_set_dfe_tap_value <service-path> <tapposition> <tap value>

将指定的布线位置上指定的通道的当前布线值设置为指定的值。

transceiver_channel_rx_set_dfe_adaptive <service-path> <adaptive-mode>

设置指定通道的 DFE自适应模式。

值 描述

0 关闭

1 自适应

2 一次性自适应

transceiver_channel_rx_set_eqctrl <service-path> <value> 设置接收器通道上的均衡控制值。

transceiver_channel_rx_start_checking <service-path> 启动检查器。

transceiver_channel_rx_stop_checking <service-path> 停止检查器。

transceiver_channel_rx_get_eye_viewer_phase_step

<service-path> (仅适用于 Stratix V)得到指定通道的当前相位步长。

transceiver_channel_rx_set_pattern <service-path> <pattern-name>

将预期码型设置为码型名称指定的码型。

transceiver_channel_rx_is_eye_viewer_enabled

<service-path> (仅适用于 Stratix V)报告在指定的通道上是否使能了 Eye Viewer功能。

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

117

Page 118: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

transceiver_channel_rx_set_eye_viewer_enabled

<service-path> <disable(0)/enable(1)>

(仅适用于 Stratix V)在指定的通道上使能或禁用 Eye Viewer功能。

transceiver_channel_rx_set_eye_viewer_phase_step

<service-path> <phase step> (仅适用于 Stratix V)设置指定通道的相位步长(phase step)。

transceiver_channel_rx_set_word_aligner_enabled

<service-path> <disable(0)/enable(1)>

使能或禁用指定通道的字对齐器(wordaligner)。

transceiver_channel_rx_is_word_aligner_enabled

<service-path> <disable(0)/enable(1)>

报告在指定的通道上是否使能了字对齐器功能。

transceiver_channel_rx_is_locked <service-path> 如果检查器锁定到输入信号上,则返回非零值。

transceiver_channel_rx_is_rx_locked_to_data

<service-path> 如果收发器处于 lock to data (LTD)模式,则返回 1。否则返回 0。

transceiver_channel_rx_is_rx_locked_to_ref

<service-path> 如果收发器处于 lock to reference(LTR)模式,则返回 1。否则返回 0。

transceiver_channel_rx_has_eye_viewer_1d <service-path> (仅适用于 Stratix V)检测<service-path>中的眼视图(eye viewer)是否支持 1D-Eye Viewer模式。

transceiver_channel_rx_set_1deye_mode <service-path> <disable(0)/enable(1)>

(仅适用于 Stratix V)使能或禁用 1D-Eye Viewer模式。

transceiver_channel_rx_get_1deye_mode <service-path> (仅适用于 Stratix V)返回 1D-EyeViewer模式是开启还是关闭。

表 47. Transceiver Toolkit channel_tx命令

命令 参数 功能

transceiver_channel_tx_disable_preamble <service-path> 在生成开始时禁用前同步码模式(preamble mode)。

transceiver_channel_tx_enable_preamble <service-path> 在生成开始时使能前同步码模式(preamble mode)。

transceiver_channel_tx_get_number_of_preamble_beats

<service-path> 返回发送前导字的节拍数。

transceiver_channel_tx_get_pattern <service-path> 返回码型。

transceiver_channel_tx_get_preamble_word <service-path> 返回前导字。

transceiver_channel_tx_get_preemph0t <service-path> 得到发送器通道上的预加重第一个预布线值(pre-emphasis first pre-tapvalue)。

transceiver_channel_tx_get_preemph1t <service-path> 得到发送器通道上的预加重第一个后布线值(pre-emphasis first post-tapvalue)。

transceiver_channel_tx_get_preemph2t <service-path> 得到发送器通道上的预加重第二个后布线值(pre-emphasis second post-tap value)。

transceiver_channel_tx_get_preemph3t <service-path> 得到发送器通道上的预加重第二个预布线值(pre-emphasis second pre-tap value)。

transceiver_channel_tx_get_vodctrl <service-path> 得到发送器通道上的 VOD控制值。

继续...

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

118

Page 119: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

transceiver_channel_tx_inject_error <service-path> 将 1-bit错误注入到生成器的输出中。

transceiver_channel_tx_is_generating <service-path> 如果生成器正在运行,则返回非零值。

transceiver_channel_tx_is_preamble_enabled

<service-path> 如果前同步码模式(preamble mode)使能,则返回非零值。

transceiver_channel_tx_set_number_of_preamble_beats

<service-path> <number-of-preamble-beats>

设置发送前导字的节拍数。

transceiver_channel_tx_set_pattern <service-path> <pattern-name>

将输出码型设置为码型名称指定的码型。

transceiver_channel_tx_set_preamble_word <service-path> <preamble-word>

设置要发送的前导字。

transceiver_channel_tx_set_preemph0t <service-path> <value> 设置发送器通道上的预加重第一个预布线值(pre-emphasis first pre-tapvalue)。

transceiver_channel_tx_set_preemph1t <service-path> <value> 设置发送器通道上的预加重第一个后布线值(pre-emphasis first post-tapvalue)。

transceiver_channel_tx_set_preemph2t <service-path> <value> 设置发送器通道上的预加重第二个后布值(pre-emphasis second post-tapvalue)。

transceiver_channel_tx_set_preemph3t <service-path> <value> 设置发送器通道上的预加重第二个预布线值(pre-emphasis second pre-tap value)。

transceiver_channel_tx_set_vodctrl <service-path> <vodctrlvalue>

设置发送器通道上的 VOD控制值。

transceiver_channel_tx_start_generation <service-path> 启动生成器。

transceiver_channel_tx_stop_generation <service-path> 停止生成器。

表 48. Transceiver Toolkit debug_link命令

命令 参数 功能

transceiver_debug_link_get_pattern <service-path> 得到链路用于运行测试的码型。

transceiver_debug_link_is_running <service-path> 如果在链路上运行测试,则返回非零值。

transceiver_debug_link_set_pattern <service-path> <datapattern>

设置链路用于运行测试的码型。

transceiver_debug_link_start_running <service-path> 开始使用当前选择的测试码型运行测试。

transceiver_debug_link_stop_running <service-path> 停止运行测试。

表 49. Transceiver Toolkit reconfig_analog命令

命令 参数 功能

transceiver_reconfig_analog_get_logical_channel_address

<service-path> 得到当前设置的收发器逻辑通道地址。

transceiver_reconfig_analog_get_rx_dcgain

<service-path> 得到当前逻辑通道地址指定的接收器通道上的 DC增益值。

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

119

Page 120: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

transceiver_reconfig_analog_get_rx_eqctrl

<service-path> 由当前逻辑通道地址指定的接收器通道上的均衡控制值。

transceiver_reconfig_analog_get_tx_preemph0t

<service-path> 得到当前逻辑通道地址指定的发送器通道上的预加重第一个预布线值(pre-emphasis first pre-tap value)。

transceiver_reconfig_analog_get_tx_preemph1t

<service-path> 得到当前逻辑通道地址指定的发送器通道上的预加重第一个后布线值(pre-emphasis first post-tap value)。

transceiver_reconfig_analog_get_tx_preemph2t

<service-path> 得到当前逻辑通道地址指定的发送器通道上的预加重第二个后布线值(pre-emphasis second post-tap value)。

transceiver_reconfig_analog_get_tx_vodctrl

<service-path> 得到当前逻辑通道地址指定的发送器通道上的 VOD控制值。

transceiver_reconfig_analog_set_logical_channel_address

<service-path> <logic channeladdress>

设置收发器逻辑通道地址。

transceiver_reconfig_analog_set_rx_dcgain

<service-path> <dc_gainvalue>

设置当前逻辑通道地址指定的接收器通道上的 DC增益值。

transceiver_reconfig_analog_set_rx_eqctrl

<service-path> <eqctrl value> 设置当前逻辑通道地址指定的接收器通道上的均衡控制值。

transceiver_reconfig_analog_set_tx_preemph0t

<service-path> <value> 设置当前逻辑通道地址指定的发送器通道上的预加重第一个预布线值(pre-emphasis first pre-tap value)。

transceiver_reconfig_analog_set_tx_preemph1t

<service-path> < value> 设置当前逻辑通道地址指定的发送器通道上的预加重第一个后布线值(pre-emphasis first post-tap value)。

transceiver_reconfig_analog_set_tx_preemph2t

<service-path> <value> 设置当前逻辑通道地址指定的发送器通道上的预加重第二个后布线值(pre-emphasis second post-tap value)。

transceiver_reconfig_analog_set_tx_vodctrl

<service-path> <vodctrl value> 设置当前逻辑通道地址指定的发送器通道上的 VOD控制值。

表 50. Transceiver Toolkit Decision Feedback Equalization (DFE)命令

命令 参数 功能

alt_xcvr_reconfig_dfe_get_logical_channel_address

<service-path> 得到其他alt_xcvr_reconfig_dfe命令应用的逻辑通道地址。

alt_xcvr_reconfig_dfe_is_enabled <service-path> 报告在指定的之前通道上是否使能了DFE特性。

alt_xcvr_reconfig_dfe_set_enabled <service-path> <disable(0)/enable(1)>

使能或禁用指定的之前通道上的 DFE功能。

alt_xcvr_reconfig_dfe_set_logical_channel_address

<service-path> <logicchannel address>

(仅适用于 Stratix V)设置其他alt_xcvr_reconfig_eye_viewer命令使用的逻辑通道地址。

alt_xcvr_reconfig_dfe_set_tap_value <service-path> <tapposition> <tap value>

设置指定布线位置和值的之前指定通道上的布线值(tap value)。

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

120

Page 121: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 51. Transceiver Toolkit Eye Monitor命令(仅用于 Stratix V)

命令 参数 功能

alt_xcvr_custom_is_word_aligner_enabled <service-path> <disable(0)/enable(1)>

报告在指定的之前通道上是否使能了字对齐器功能。

alt_xcvr_custom_set_word_aligner_enabled <service-path> <disable(0)/enable(1)>

使能或禁用指定的之前通道的字对齐器(word aligner)。

alt_xcvr_custom_is_rx_locked_to_data <service-path> 返回接收器 CDR是否被锁定到数据。

alt_xcvr_custom_is_rx_locked_to_ref <service-path> 返回接收器 CDR PLL是否锁定到参考时钟。

alt_xcvr_custom_is_serial_loopback_enabled

<service-path> 返回指定的之前通道的串行环回模式是否使能。

alt_xcvr_custom_set_serial_loopback_enabled

<service-path> <disable(0)/enable(1)>

使能或禁用指定的之前通道的串行环回模式。

alt_xcvr_custom_is_tx_pll_locked <service-path> 返回发送器 PLL是否锁定到参考时钟。

alt_xcvr_reconfig_eye_viewer_get_logical_channel_address

<service-path> 得到其他alt_reconfig_eye_viewer命令使用的逻辑通道地址。

alt_xcvr_reconfig_eye_viewer_get_phase_step

<service-path> 得到指定的之前通道的当前相位步长(phase step)。

alt_xcvr_reconfig_eye_viewer_is_enabled <service-path> 报告在指定的之前通道上是否使能了Eye Viewer功能。

alt_xcvr_reconfig_eye_viewer_set_enabled <service-path> <disable(0)/enable(1)>

使能或禁用指定的之前通道上的 EyeViewer功能。设置成 2将使能 Eye Viewer以及Serial Bit Comparator。

alt_xcvr_reconfig_eye_viewer_set_logical_channel_address

<service-path> <logicchannel address>

设置其他alt_reconfig_eye_viewer命令使用的逻辑通道地址。

alt_xcvr_reconfig_eye_viewer_set_phase_step

<service-path> <phase step> 得到指定的之前通道的相位步长(phase step)。

alt_xcvr_reconfig_eye_viewer_has_ber_checker

<service-path> 检测由<service-path>指向的 eyeviewer是否支持 Serial BitComparator。

alt_xcvr_reconfig_eye_viewer_ber_checker_is_enabled

<service-path> 检测 Serial Bit Comparator是否使能。

alt_xcvr_reconfig_eye_viewer_ber_checker_start

<service-path> 启动 Serial Bit Comparator计数器。

alt_xcvr_reconfig_eye_viewer_ber_checker_stop

<service-path> 停止 Serial Bit Comparator计数器。

alt_xcvr_reconfig_eye_viewer_ber_checker_reset_counters

<service-path> 复位 Serial Bit Comparator计数器。

alt_xcvr_reconfig_eye_viewer_ber_checker_is_running

<service-path> 报告 Serial Bit Comparator计数器当前是否运行。

alt_xcvr_reconfig_eye_viewer_ber_checker_get_data

<service-path> 得到 Serial Bit Comparator的当前总比特,错误比特和异常计数。

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

121

Page 122: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

alt_xcvr_reconfig_eye_viewer_has_1deye <service-path> 检测由<service-path>指向的 eyeviewer是否支持 1D-Eye Viewer模式。

alt_xcvr_reconfig_eye_viewer_set_1deye_mode

<service-path> <disable(0)/enable(1)

使能或禁用 1D-Eye Viewer模式。

alt_xcvr_reconfig_eye_viewer_get_1deye_mode

<service-path> 得到 1D-Eye Viewer模式的使能或禁用状态。

表 52. 通道类型命令

命令 参数 功能

get_channel_type <service-path> <logical-channel-num>

报告位于<service-path>的重配置模块的通道<logical-channel-num >的检测类型(GX/GT)。

set_channel_type <service-path> <logical-channel-num> <channel-type>

将位于<service-path>的重配置模块的通道<logical-channel-num>的检测类型覆盖成指定类型(0:GX, 1:GT)。

表 53. 环回命令

命令 参数 功能

loopback_get <service-path> 返回环回通道上的设置值或结果。可用的结果包括:

• Status—运行或停止。• Bytes—通过环回通道发送的字节数。• Errors—环回通道报告的错误数。• Seconds—自环回通道启动后的秒数。

loopback_set <service-path> 设置控制环回通道的设置值。一些设置仅被特定通道类型支持。可用的设置包括:

• Timer—测试运行的秒数。• Size—测试数据的大小。• Mode—测试的模式。

loopback_start <service-path> 开始通过环回通道发送数据。

loopback_stop <service-path> 停止通过环回通道发送数据。

3.13.2. Data Pattern Generator命令

您可以使用 Data Pattern Generator命令来控制数据码型对收发器通道进行调试。您必须例化Data Pattern Generator组件以支持这些命令。

表 54. Soft Data Pattern Generator命令

命令 参数 功能

data_pattern_generator_start <service-path>

启动数据码型生成器。

data_pattern_generator_stop <service-path>

停止数据码型生成器。

data_pattern_generator_is_generating <service-path>

如果生成器正在运行,则返回非零值。

data_pattern_generator_inject_error <service-path>

将 1-bit错误注入到生成器输出中。

继续...

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

122

Page 123: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

data_pattern_generator_set_pattern <service-path><pattern-name>

设置<pattern-name>指定的输出码型。

值 描述

• PRBS7• PRBS15• PRBS23• PRBS31

伪随机二进制序列。PRBS文件是纯文本文件,您可以修改PRBS文件。

HF 输出高频,0和 1交替的恒定码型

LF 输出低频,10b’1111100000的恒定码型(10-bit符号)和8b’11110000的恒定码型(8-bit符号)

data_pattern_generator_get_pattern <service-path>

返回当前选择的输出码型。

data_pattern_generator_get_available_patterns <service-path>

按名称返回可用数据码型的列表。

data_pattern_generator_enable_preamble <service-path>

在生成开始时使能前同步码模式(preamblemode)。

data_pattern_generator_disable_preamble <service-path>

在生成开始时禁用前同步码模式(preamblemode)。

data_pattern_generator_is_preamble_enabled <service-path>

如果前同步码模式(preamble mode)使能,则返回一个非零值。

data_pattern_generator_set_preamble_word <preamble-word>

设置前导字(preamble word)(可以是 32-bit或者 40-bit)。

data_pattern_generator_get_preamble_word <service-path>

得到前导字。

data_pattern_generator_set_preamble_beats <service-path><number-of-preamble-beats>

设置在前导字中发送的节拍数。

data_pattern_generator_get_preamble_beats <service-path>

返回在前导字中发送的当前设置的节拍数。

data_pattern_generator_fcnter_start <service-path> <max-cycles>

设置最大周期数并启动频率计数器。

data_pattern_generator_check_status <service-path>

查询数据码型生成器以获得当前状态。返回一个表明状态的位图(bitmap),其比特定义如下:

值 描述

0 使能

1 旁路使能

2 Avalon

3 目的端就绪(Sink ready)

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

123

Page 124: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

值 描述

4 源端有效(Source valid)

5 频率计数器使能

data_pattern_generator_fcnter_report <service-path> <force-stop>

报告当前测量的时钟比率,根据<force-stop>首先停止计数。

表 55. Hard Data Pattern Generator命令

命令 参数 功能

hard_prbs_generator_start <service-path> 启动指定的生成器。

hard_prbs_generator_stop <service-path> 停止指定的生成器。

hard_prbs_generator_is_generating <service-path> 检查生成状态。返回:

值 描述

0 生成

1 其他

hard_prbs_generator_set_pattern <service-path><pattern>

将指定的硬核 PRBS生成器的码型设置成pattern。

hard_prbs_generator_get_pattern <service-path> 返回指定硬核 PRBS生成器的当前码型。

hard_prbs_generator_get_available_patterns <service-path> 返回指定硬核 PRBS生成器的可用码型。

3.13.3. Data Pattern Checker命令

您可以使用 Data Pattern Checker命令来验证生成的数据码型。您必须例化 Data PatternChecker组件以支持这些命令。

表 56. Soft Data Pattern Checker命令

命令 参数 功能

data_pattern_checker_start <service-path> 启动数据码型检查器。

data_pattern_checker_stop <service-path> 停止数据码型检查器。

data_pattern_checker_is_checking <service-path> 如果检查器正在运行,则返回一个非零值。

data_pattern_checker_is_locked <service-path> 如果检查器锁定到输入数据上,则返回非零值。

data_pattern_checker_set_pattern <service-path><pattern-name>

将预期的码型设置成<pattern-name>。

data_pattern_checker_get_pattern <service-path> 按名称返回当前选择的预期码型。

data_pattern_checker_get_available_patterns <service-path> 按名称返回可用数据码型的列表。

data_pattern_checker_get_data <service-path> 返回当前检查器数据的列表。结果按比特数,错误数和误码率的顺序排列。

继续...

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

124

Page 125: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 功能

data_pattern_checker_reset_counters <service-path> 复位检查器内的比特和错误计数器。

data_pattern_checker_fcnter_start <service-path><max-cycles>

设置最大周期数并启动频率计数器。

data_pattern_checker_check_status <service-path><service-path>

查询数据码型检查器以获得当前状态。返回一个表明状态的位图(bitmap):

值 状态

0 使能

1 锁定

2 旁路使能

3 Avalon

4 目的端就绪(Sink ready)

5 源端有效(Source valid)

6 频率计数器使能

data_pattern_checker_fcnter_report <service-path><force-stop>

报告当前测量的时钟比率,根据<force-stop>首先停止计数。

表 57. Hard Data Pattern Checker命令

命令 参数 功能

hard_prbs_checker_start <service-path> 启动指定的硬核 PRBS检查器。

hard_prbs_checker_stop <service-path> 停止指定的硬核 PRBS检查器。

hard_prbs_checker_is_checking <service-path> 检查指定硬核 PRBS检查器的运行状态。如果检查器正在运行,则返回一个非零值。

hard_prbs_checker_set_pattern <service-path><pattern>

将指定硬核 PRBS检查器的码型设置成参数<pattern>。

hard_prbs_checker_get_pattern <service-path> 返回指定硬核 PRBS检查器的当前码型。

hard_prbs_checker_get_available_patterns <service-path> 返回指定硬核 PRBS检查器的可用码型。

hard_prbs_checker_get_data <service-path> 返回指定硬核 PRBS检查器的当前比特和错误计数数据。

hard_prbs_checker_reset_counters <service-path> 复位指定硬核 PRBS检查器的比特和错误计数。

3.14. 调试收发器链路修订历史

本章节的修订历史如下:

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 Intel Quartus Prime Standard Edition User Guide中的初始版本。

2018.07.03 18.0.0 • 在收发器工具包控制窗格设置表中增添了器件系列

继续...

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

125

Page 126: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2017.11.06 17.1.0 • 将 EyeQ重命名为 Eye Viewer。• 更新了主题"收发器调试流程",重命名为"收发器调试流程演练"。• 更新了例化和参数化 Debug IP core的指南。— 删除了图:"Altera Debug Master Endpoint Block Diagram"。

• 增添了设计编程的步骤,作为调试流程的一部分。

• 更新了关于 Intel Arria 10器件的调试收发器链路的信息。

2016.10.31 16.1.0 • 删除了对 Intel Arria 10的 EyeQ支持。• 将"Continuous Adaptation"重命名为"Adaptation Enabled"。

2015.11.02 15.1.0 将 Quartus II更改为 Intel Quartus Prime。• 添加了新 Refresh按钮的说明。• 添加了 VGA对话框的说明。• 在 Transceiver Toolkit Commands部分添加了两个表格。— Hard Data Pattern Generator Commands— Hard Data Pattern Checker Commands

• 将 Arria 10和 Stratix V系统配置步骤分开。

2015年 5月 15.0.0 • 添加了关于 Stratix V与 Arria 10之间实现差异的部分。• 添加了 Recommended Flow for Arria 10 Transceiver Toolkit Design with

the Quartus II Software部分。• 添加了 Transceiver Toolkit Troubleshooting部分• 更新了以下部分,添加了关于使用 Transceiver Toolkit和 Arria 10器件的信息:— Serial Bit Comparator Mode— Arria 10 Support and Limitations— Configuring BER Tests— Configuring PRBS Signal Eye Tests— Adapting Altera Design Examples— Modifying Design Examples— Configuring Custom Traffic Signal Eye Tests— Configuring Link Optimization Tests— Configuring PMA Analog Setting Control— Running BER Tests— Toolkit GUI Setting Reference

• 重作表格:Transceiver Toolkit IP Core Configuration• 将图 EyeQ Settings and Status Showing Results of Two Test Runs替换成

EyeQ Settings and Status Showing Results of Three Test Runs。• 增添了图:Arria 10 Altera Debug Master Endpoint Block Diagram.• 增添了图:BER Test Configuration (Arria10/ Gen 10/ 20nm) Block

Diagram。• 增添了图:Added Figure: PRBS Signal Test Configuration (Arria 10/

20nm) Block Diagram。• 增添了图:Custom Traffic Signal Eye Test Configuration (Arria 10/ Gen

10/ 20nm) Block Diagram。• 增添了图:PMA Analog Setting Control Configuration (Arria 10/ Gen 10/

20nm) Block Diagram。• 增添了图:One Channel Loopback Mode (Arria 10/ 20nm) Block

Diagram。• 增添了图:Four Channel Loopback Mode (Arria 10/ Gen 10/ 20nm) Block

Diagram。

继续...

3. 调试收发器链路

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

126

Page 127: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

软件版本 15.0限制• Transceiver Toolkit对 Arria 10设计支持 EyeQ。• 对 EyeQ支持可选的硬核加速。这支持更快的 EyeQ数据收集。 在 Dynamic

Configuration选项卡下的 Arria 10 Transceiver Native PHY IP core中使能此选项。开启 Enable ODI acceleration logic。

2014年 12月 14.1.0 • 添加了关于 Arria 10支持和限制的部分。

2014年 6月 14.0.0 • 更新了 Channel Manager(弹出菜单),IP Catalog,Quartus II和 Qsys的GUI变更。

• 添加了 Arria 10的 ADME和 JTAG调试链路信息。• 增添了从命令行运行 Tcl脚本的说明。• 增添了热图显示选项。

• 增添了使用内部 PLL生成 reconfig_clk的步骤。• 增添了注释:RX CDR PLL状态能够在 LTD模式中翻转。

2013年 11月 13.1.0 • 重组并转换为 DITA。

2013年 5月 13.0.0 • 增添了 Conduit Mode Support, Serial Bit Comparator, Required Files andTcl command表格。

2012年 11月 12.1.0 • 少量编辑更新。添加了 Tcl帮助信息,删除了 Tcl命令表。添加了 28-GbpsTransceiver支持部分。

2012年 8月 12.0.1 • 作了一般重组并修改了 Altera实例设计的步骤。

2012年 6月 12.0.0 • Transceiver Toolkit特性更新的维护版本。

2011年 11月 11.1.0 • Transceiver Toolkit特性更新的维护版本。

2011年 5月 11.0.0 • 添加了新的 Tcl方案。

2010年 12月 10.1.0 • 更改为新的文档模板。添加了新的 10.1版本功能。

2010年 8月 10.0.1 • 更正的链接。

2010年 7月 10.0.0 • 首次发布。

相关链接

文档存档关于 Intel Quartus Prime Handbook的早前版本,请搜索文档存档。

3. 调试收发器链路

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

127

Page 128: Intel Quartus Prime Standard Edition用户指南: 调试工具

4. 使用 Signal Probe的快速设计调试

Signal Probe增量式布线特性有助于减少可编程片上系统(SOPC)设计的硬件验证过程并缩短上市时间。在设计或调试过程中,对内部器件信号的轻松访问是很重要的。 Signal Probe特性将内部信号快速布线到 I/O管脚 ,同时又不影响设计,从而使设计验证更加有效。当开始于一个完整布线设计时,您可以选择用于调试信号,并将它们布线到之前保留或者当前未使用的 I/O管脚。

Signal Probe特性支持 Arria 系列, Cyclone 系列, MAX II 和 Stratix 系列器件。

相关链接

系统调试工具概述 (第 8页)

4.1. 使用 Signal Probe的设计流程

Signal Probe特性使您能够保留可用的管脚并将内部信号布线到这些保留的管脚,同时保留设计的行为。 Signal Probe是一个有效的调试工具,提供了对 FPGA的可见性。

您可以对 Signal Probe保留管脚并在完整编译后分配 I/O标准。每个 Signal Probe-source到Signal Probe-pin的连接都作为一个工程变更单(ECO)进行实现,ECO在完全编译后将应用于您的网表。

执行以下任务将内部信号布线到器件的保留管脚以用于 Signal Probe:

1. 执行完整的编译。

2. 保留 Signal Probe管脚。

3. 分配 Signal Probe源。

4. 在流水线路径与 Signal Probe管脚之间添加寄存器。

5. 执行 Signal Probe编译。

6. 分析 Signal Probe编译的结果。

4.1.1. 执行一个完整的编译

您必须完成完整的编译才能生成一个内部网表,其中包含要探查的内部节点列表。

在 Processing菜单上点击 Start Compilation来执行完整编译。

4.1.2. 保留 Signal Probe管脚

只能在完整编译后保留 Signal Probe管脚。您也可以探查任何未使用的 I/O管脚。保留 SignalProbe管脚后,分配源是一个简单的过程。Signal Probe管脚的源是您想要探查的后编译网表中的内部节点和寄存器。

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 129: Intel Quartus Prime Standard Edition用户指南: 调试工具

注意: 尽管您可以使用 Intel Quartus Prime软件中的诸多功能来保留 Signal Probe管脚,包括 PinPlanner和 Tcl interface,但您也应该使用 Signal Probe Pins对话框来创建和编辑您的Signal Probe管脚。

4.1.3. 分配 Signal Probe源

一个 Signal Probe源可以是后编译网表中任何组合节点,寄存器或者管脚。要查找一个 SignalProbe源,在 Node Finder中,使用 Signal Probe过滤器去除所有不能被探查的源。您可能无法找到一个特定的内部节点,这是因为该节点在综合期间被优化掉了,或者是因为该节点不能被布线到 Signal Probe管脚。例如,您不能探查 Stratix IV器件的千兆位收发器中的节点和寄存器,因为没有到管脚的物理布线。

注意: 要探测增量式编译流程中低层分区中生成的虚拟 I/O管脚,请选择将虚拟管脚作为 Signal Probe源管脚源进行驱动的逻辑的源。

由于 Signal Probe管脚是作为 ECO进行实现和布线的,因此开启或关闭 Signal Probeenable选项等同于在 Change Manager窗口中选择 Apply Selected Change或者 RestoreSelected Change。如果 Change Manager窗口在屏幕底部不可见,那么在 View菜单上指向Utility Windows,然后点击 Change Manager。

4.1.4. 在流水线路径与 Signal Probe管脚之间添加寄存器

您可以指定在 Signal Probe源和 Signal Probe管脚之间放置的寄存器数量。寄存器将数据同步到一个时钟,并控制 Signal Probe输出的延迟。Signal Probe功能自动将指定数量的寄存器插入到Signal Probe路径中。

此图显示了在 Signal Probe source Reg_b_1与 Signal Probe Signal Probe_Output_2输出管脚之间添加的一个寄存器 ,以同步两个 Signal Probe输出管脚之间的数据。

注意: 当将一个寄存器添加到一个 Signal Probe管脚上时,Signal Probe编译会尝试将此寄存器放置在最能满足时序要求的位置。您可以将 Signal Probe寄存器放置在 Signal Probe source附近以满足 fMAX要求,或者放置在 I/O附近以满足 tCO要求。

图 39. 使用一个 Signal Probe寄存器来同步 Signal Probe输出

Reg_b_1

SignalProbePipelineRegister

SignalProbe_Output_1

SignalProbe_Output_2

D Q

DFF

Reg_b_2

D Q

DFF

D Q

D Q

DFF

Reg_a_1

D Q

DFFReg_a_2

Logic

Logic

Logic

Logic

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

129

Page 130: Intel Quartus Prime Standard Edition用户指南: 调试工具

除了流水线寄存器的时钟输入,您还可以对流水线寄存器指定一个复位信号。使用 Tcl命令make_sp对流水线寄存器指定一个复位管脚。

4.1.5. 执行 Signal Probe编译

执行 Signal Probe编译来对您的 Signal Probe管脚进行布线。Signal Probe编译保存并检查所有网表变更,而无需重新编译设计的其他部分。一个 Signal Probe编译只需要一个完整编译的一小部分时间来完成。设计的当前布局布线被保留。

要执行一个 Signal Probe编译,在 Processing菜单上指向 Start,然后点击 Start SignalProbe Compilation。

4.1.6. 分析 Signal Probe编译的结果

Signal Probe编译后,结果可在编译报告文件中找到。每个 Signal Probe管脚显示在Compilation Report的 Fitter部分中的 Signal Probe Fitting Result页面中。要在 SignalProbePins对话框中查看每个 Signal Probe管脚的状态,需要在 Tools菜单上点击 SignalProbe Pins。

每个 Signal Probe管脚的状态出现在 Change Manager窗口中。如果 Change Manager窗口在GUI的底部不可见,那么在 View菜单中指向 Utility Windows,然后点击 ChangeManager。

图 40. 通过 Signal Probe管脚更改Manager窗口

要查看每个成功布线的 Signal Probe管脚的时序结果, 在 Processing菜单上指向 Start,然后点击 Start Timing Analysis。

相关链接

Engineering Change Management with the Chip PlannerIntel Quartus Prime Standard Edition User Guide: Design Optimization

4.1.7. 一个 Signal Probe编译所完成的操作

完整编译后,您可以手动或自动启动一个 Signal Probe编译。Signal Probe编译执行以下功能:

• 验证 Signal Probe管脚

• 验证您指定的 Signal Probe源

• 将寄存器添加到 Signal Probe路径中(如果适用)

• 尝试通过寄存器从 Signal Probe源布线到 Signal Probe管脚

要在完整编译后立即运行 Signal Probe编译,需要在 Tools菜单上点击 Signal Probe Pins。在 Signal Probe Pins对话框中,点击 Start Check & Save All Netlist Changes。

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

130

Page 131: Intel Quartus Prime Standard Edition用户指南: 调试工具

要在完整编译后手动运行一个 Signal Probe编译,需要在 Processing菜单上指向 Start,然后点击 Start Signal Probe Compilation。

注意: 在 Signal Probe编译之前必须运行 Fitter。Fitter生成一列可用作 Signal Probe源的所有内部节点。

在 Signal Probe Pins对话框中开启或关闭 Signal Probe enable选项来使能或禁用每个Signal Probe管脚。

4.1.8. 了解 Signal Probe编译的结果

Signal Probe编译后,结果出现在编译报告文件中的两个部分中。拟合(fitting)结果和每个 SignalProbe管脚的状态出现在 Compilation Report的 Fitter部分中的 Signal Probe FittingResult屏幕中。

表 58. 状态值

状态 描述

Routed 成功地连接和布线

Not Routed 未使能

Failed to Route 上次 Signal Probe编译期间布线失败

Need to Compile 自上次 Signal Probe编译后更改的约束(assignment)

图 41. Compilation Report窗口中的 Signal Probe Fitting Results页面

Compilation Report的 Timing Analysis部分中的 Signal Probe source to outputdelays屏幕显示每个成功布线的 Signal Probe管脚的时序结果。

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

131

Page 132: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 42. Compilation Report窗口中的 Signal Probe Source to Output Delays页面

注意: Signal Probe编译后,Messages窗口的处理屏幕也提供每个 Signal Probe管脚的结果,并显示每个成功布线的 Signal Probe管脚的时序裕量(slack)信息。

4.1.8.1. 分析 Signal Probe布线失败原因

Signal Probe编译失败的原因如下:

• Route unavailable—由于布线拥塞,Signal Probe编译无法找到从 Signal Probe源到Signal Probe管脚的布线。

• Invalid or nonexistent Signal Probe source—输入的 Signal Probe源不存在或者无效。

• Unusable output pin—所选的输出管脚不可用。

如果 Signal Probe管脚的 I/O标准与同一 I/O bank中的其他 I/O标准有冲突,那么会出现布线失败。

如果布线拥塞阻止了一个成功的 Signal Probe编译,那么可以让 compiler修改到指定的 SignalProbe源的布线。在 Tools菜单上,点击 Signal Probe Pins,然后开启Modify latestfitting results during Signal Probe compilation。此设置使 Fitter能够修改设计使用的现有布线通道。

注意: 开启Modify latest fitting results during Signal Probe compilation能够改变设计的性能。

4.2. 脚本支持

您也可以在命令提示符处运行某些程序。有关脚本命令选项的详细信息,请参阅 Intel QuartusPrime命令行和 Tcl API Help browser。要运行 Help browser,请在命令提示符处键入以下命令:

quartus_sh --qhelp

注意: 本节中的 Tcl命令是::quartus::chip_planner Intel Quartus Prime Tcl API的一部分。在脚本中 source或者包含(include)::quartus::chip_planner Tcl package,以使这些命令可用。

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

132

Page 133: Intel Quartus Prime Standard Edition用户指南: 调试工具

相关链接

• Tcl ScriptingIntel Quartus Prime Standard Edition用户指南:脚本

• Command Line ScriptingIntel Quartus Prime Standard Edition用户指南:脚本

4.2.1. 生成一个 Signal Probe管脚

输入以下命令生成一个 Signal Probe管脚:

make_sp [-h | -help] [-long_help] [-clk <clk>] [-io_std <io_std>] \-loc <loc> -pin_name <pin name> [-regs <regs>] [-reset <reset>] \-src_name <source name>

4.2.2. 删除一个 Signal Probe管脚

输入以下 Tcl命令来删除一个 Signal Probe管脚:

delete_sp [-h | -help] [-long_help] -pin_name <pin name>

4.2.3. 使能一个 Signal Probe管脚

输入以下 Tcl命令来使能一个 Signal Probe管脚:

enable_sp [-h | -help] [-long_help] -pin_name <pin name>

4.2.4. 禁用一个 Signal Probe管脚

输入以下 Tcl命令来禁用一个 Signal Probe管脚:

disable_sp [-h | -help] [-long_help] -pin_name <pin name>

4.2.5. 执行一个 Signal Probe编译

输入以下命令来执行一个 Signal Probe编译:

quartus_sh --flow signalprobe <project name>

4.2.5.1. 脚本示例

此示例显示一个脚本,此脚本在一个已经编译的工程中创建了一个称为 sp1的 Signal Probe管脚,并将 sp1管脚连接到源节点 reg1。

创建一个称为 sp1的 Signal Probe管脚

package require ::quartus::chip_plannerproject_open projectread_netlistmake_sp -pin_name sp1 -src_name reg1check_netlist_and_saveproject_close

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

133

Page 134: Intel Quartus Prime Standard Edition用户指南: 调试工具

4.2.6. 保留 Signal Probe管脚

要保留一个 Signal Probe管脚,请将示例中显示的命令添加到 Intel Quartus Prime SettingsFile (.qsf)中。

保留一个 Signal Probe管脚

set_location_assignment <location> -to <Signal Probe pin name>set_instance_assignment -name RESERVE_PIN \"AS SIGNALPROBE OUTPUT" -to <Signal Probe pin name>

有效的位置是管脚位置名称,例如:Pin_A3。

4.2.6.1. 保留 Signal Probe管脚时的常见问题

如果您不能在 Intel Quartus Prime软件中保留 Signal Probe管脚,那么可能的原因如下:

• 您选择了多个管脚。

• 编译在后台运行。等待编译完成,然后再保留管脚。

• 您使用 Intel Quartus Prime Lite Edition软件,默认情况下 Signal Probe功能没有使能。

• 您没有将管脚保留类型设置为 As Signal Probe Output。要保留一个管脚,在Assignments菜单上,在 Assign Pins对话框中,选择 As Signal Probe Output。

• 从之前编译中保留管脚。在编译期间, Intel Quartus Prime软件保留目标器件上的每个管脚。如果在编译期间结束 Intel Quartus Prime进程,如使用Windows Task ManagerEnd Process命令或者 UNIX kill命令,那么在保留管脚作为 Signal Probe输出之前要执行一个完整编译。

• 管脚不支持 Signal Probe特性。选择另一个管脚。

• 当前器件系列不支持 Signal Probe特性。

4.2.7. 添加 Signal Probe源

• 输入以下 Tcl命令将节点名称分配给一个 Signal Probe管脚:

set_instance_assignment -name SIGNALPROBE_SOURCE <node name> \ -to <signalprobe pin name>

• 要关闭单独的 Signal Probe管脚,请使用以下命令指定 OFF,而不是 ON:

set_instance_assignment -name SIGNALPROBE_ENABLE ON \ -to <Signal Probe pin name>

4.2.8. 分配 I/O标准

• 输入以下 Tcl命令将一个 I/O标准分配给一个管脚:

set_instance_assignment -name IO_STANDARD <I/O standard> -to <Signal Probe pin name>

相关链接

I/O Standards DefinitionIn Intel Quartus Prime Help

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

134

Page 135: Intel Quartus Prime Standard Edition用户指南: 调试工具

4.2.9. 添加寄存器用于流水线(pipelining)

要添加寄存器用于流水线(pipelining),请输入以下 Tcl命令:

set_instance_assignment -name SIGNALPROBE_CLOCK <clock name> \-to <Signal Probe pin name>

set_instance_assignment -name SIGNALPROBE_NUM_REGISTERS <number of registers> \-to <Signal Probe pin name>

4.2.10. 完整编译后立即运行 Signal Probe

要在完整编译后立即运行 Signal Probe,请输入以下 Tcl命令:

set_global_assignment -name SIGNALPROBE_DURING_NORMAL_COMPILATION ON

4.2.11. 手动运行 Signal Probe

作为脚本流程的一部分,使用 Tcl运行 Signal Probe:

execute_flow -signalprobe

要在命令提示符下以交互方式执行 Signal Probe编译,请输入以下命令:

quartus_sh_fit --flow signalprobe <project name>

4.2.12. 使能或禁用所有 Signal Probe布线

使用示例中的 Tcl命令来开启或者关闭 Signal Probe布线。使用此命令时,要开启 Signal Probe布线,请指定 ON。要关闭 Signal Probe布线,请指定 OFF。

使用 Tcl命令开启或关闭 Signal Probe

set spe [get_all_assignments -name SIGNALPROBE_ENABLE] \foreach_in_collection asgn $spe { set signalprobe_pin_name [lindex $asgn 2] set_instance_assignment -name SIGNALPROBE_ENABLE \-to $signalprobe_pin_name <ON|OFF> }

4.2.13. 允许 Signal Probe修改 Fitting结果

要开启Modify latest fitting results,请输入以下 Tcl命令:

set_global_assignment -name SIGNALPROBE_ALLOW_OVERUSE ON

4.3. 使用 Signal Probe的快速设计调试修订历史

本章节的修订历史如下:

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

135

Page 136: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 Intel Quartus Prime Standard Edition User Guide中的初始版本。

2015.11.02 15.1.0 将 Quartus II更改成 Intel Quartus Prime。

2014年 6月 14.0.0 Dita转换。

2013年 5月 13.0.0 更改了流程顺序,以明确您需要在保留 Signal Probe管脚之前执行完整编译。受影响的部分是第 12-1页上的“Debugging Using the Signal Probe Feature”和第12-2页上的“Reserving Signal Probe Pins”。将第 12-2页上的“Performing aFull Compilation”移到“Reserving Signal Probe Pins”之前。

2012年 6月 12.0.0 删除了调查链接。

2011年 11月 10.0.2 模板更新。

2010年 12月 10.0.1 更改为新的文档模板。

2010年 7月 10.0.0 • 针对新的 UI进行了修改。• 删除了 Signal Probe ECO flows章节• 删除了增量式编译开启时进行重新编译时对 Signal Probe管脚保留的支持。• 删除了过时的 FAQ部分。• 添加了 Quartus II Help的链接,以获得步骤相关内容。

2009年 11月 9.1.0 • 删除了 APEX器件的所有参考和步骤。• 样式变化。

2009年 3月 9.0.0 • 删除了“Generate the Programming File”部分• 删除了不必要的截屏

• 少量的编辑更新

2008年 11月 8.1.0 • 修改了使用 Incremental Compilation时保留 Signal Probe连接的描述• 添加了在设计中不保留 Signal Probe连接的合理方案

2008年 5月 8.0.0 • 将“Arria GX”添加到支持的器件列表中• 删除了“On-Chip Debugging Tool Comparison”,并替换为对第 13-1页的

Section V Overview的引用• 在本章中添加了指向参考文档的超链接

• 少量的编辑更新

相关链接

文档存档关于之前版本的 Intel Quartus Prime Handbook,请搜索文档存档。

4. 使用 Signal Probe的快速设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

136

Page 137: Intel Quartus Prime Standard Edition用户指南: 调试工具

5. 使用 Signal Tap逻辑分析仪进行设计调试

5.1. Signal Tap逻辑分析仪

Signal Tap Logic Analyzer采集并显示 FPGA设计中的实时信号行为,从而无需额外的 I/O管脚或外部实验室设备即可检查正常器件操作期间内部信号的行为。

为了简化调试过程,您可以将采集的数据保存在器件存储器中,以供以后分析。您还可以通过定义自定义触发条件逻辑来过滤与调试无关的数据。Signal Tap Logic Analyzer支持可编程逻辑市场上任何逻辑分析仪的最多通道数,最大采样深度和最快时钟速度。

图 43. Signal Tap Logic Analyzer结构图

Design Logic

1 2 30

1 2 30

Signal TapInstances

Intel FPGAProgramming

Hardware

Quartus PrimeSoftware

Buffers (Device Memory)

FPGA Device

JTAGHub

注释:

1. 此图假设您已经使用 Intel Quartus Prime增量式编译特性将包含设计的 Signal Tap LogicAnalyzer编译成一个独立的设计分区。如果不使用增量式编译,那么 Compiler将 SignalTap逻辑集成到设计中。

Signal Tap Logic Analyzer可作为独立软件包提供,也可通过软件订购提供。

对 Signal Tap Logic Analyzer进行变更时,如要利用更快的编译时间,了解 Intel QuartusPrime增量式编译特性是很有帮助的。

5.1.1. 硬件和软件要求

使用 Signal Tap Logic Analyzer进行逻辑分析需要以下硬件和软件:

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 138: Intel Quartus Prime Standard Edition用户指南: 调试工具

• Signal Tap Logic Analyzer

以下软件包括 Signal Tap Logic Analyzer:

— Intel Quartus Prime Design Software

— Intel Quartus Prime Lite Edition

或者,使用 Signal Tap Logic Analyzer独立软件和独立 Programmer软件。

• 下载/上传电缆

• Intel 开发套件或者包含与正在测试的器件的 JTAG连接的设计板

注意: Intel Quartus Prime Lite Edition软件不支持与 Signal Tap Logic Analyzer的增量式编译集成。

在数据获取期间,器件中的存储器模块存储采集的数据,然后通过 JTAG通信电缆(如或 IntelFPGA Download Cable)将数据传输到逻辑分析仪。

5.1.1.1. 打开独立的 Signal Tap Logic Analyzer GUI

1. 通过命令行打开一个新的 Signal Tap,输入:

quartus_stpw <stp_file.stp>

5.1.2. Signal Tap Logic Analyzer特性和优点

特性 优点

快捷工具栏 提供常用菜单项的单击操作。您可以将鼠标悬停在图标上以查看工具提示。

单个器件中的多个逻辑分析仪 支持同时采集一个设计中多个时钟域的数据。

单个 JTAG链中多个器件中的多个逻辑分析仪 支持同时从 JTAG链中的多个器件采集数据。

Nios II插件支持 支持指定节点,触发器和 IP的信号助记符,如 Nios II处理器。

每个分析仪实例的高达 10个基本,比较或高级触发条件 支持将复杂的数据采集命令发送到逻辑分析仪,从而提供更高的准确性和问题隔离度。

上电触发 采集信号数据,用于在器件编程之后但在手动启动逻辑分析仪之前发生的触发。

自定义触发器 HDL目标 您可以在 Verilog HDL或 VHDL中编写自己的触发器,并布线(tap)位于设计层次结构中任意位置的模块的特定实例,而无需对所有必要的连接进行手动布线。这简化了分布在整个设计中的布线节点(tapping node)的过程。

基于状态的触发流程 使您能够组织触发条件,以精确定义逻辑分析仪采集的内容。

增量式编译 使您能够对 Signal Tap Logic Analyzer监控的信号和触发器进行修改,无需进行完整编译,从而节省了时间。

通过快速重新编译(rapid recompile )进行增量式布线 支持手动分配触发器输入,数据输入,存储限定符输入和节点数,并执行完整编译以将 Signal Tap Logic Analyzer包括在您的设计中 。然后,您可以有选择地连接、断开连接和交换到设计中的不同节点。使用 Rapid Recompile执行增量式布线,并在初始完整编译过程中获得 2-4倍的加速。

灵活的缓冲器采集(buffer acquisition)模式 缓冲器采集控制使您能够精确地控制写入采集缓冲器的数据。具有存储资格的分段缓冲器和非分段缓冲器都允许您丢弃与设计调试无关的数据样本。

包含MEX功能的MATLAB集成 将 Signal Tap Logic Analyzer采集的数据收集到MATLAB整数矩阵中。

每个逻辑分析仪实例多达 2,048个通道 采样大量信号和宽总线结构。

每个实例多达 128K样本 为每个通道采集一个大样本集。

继续...

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

138

Page 139: Intel Quartus Prime Standard Edition用户指南: 调试工具

特性 优点

快速时钟频率 使用驱动被测逻辑的相同时钟树对数据节点进行同步采样。

资源使用估算器 提供对 Signal Tap Logic Analyzer配置使用的逻辑和存储器件资源的评估。

无需额外费用 Intel Quartus Prime订购版和 Intel Quartus Prime Lite Edition包括Signal Tap Logic Analyzer。

与其他片上调试程序的兼容性 Signal Tap Logic Analyzer可以与任何基于 JTAG的片上调试工具(如 In-System Memory Content编辑器)配合使用,使您能够在使用 Signal TapLogic Analyzer运行分析期间实时更改信号值。

浮点显示格式 要使能此功能,请点击 Edit > Bus Display Format > Floating-point支持:

• 单精度浮点格式 IEEE754 Single (32-bit)。• 双精度浮点格式 IEEE754 Double (64-bit)。

相关链接

系统调试工具概述 (第 8页)

5.1.3. 向后兼容 Intel Quartus Prime软件的先前版本

在新版本的 Intel Quartus Prime软件中打开一个在旧版软件中创建的.stp文件后,此.stp文件就不能在先前版本的 Intel Quartus Prime软件中打开了。

如果一个在先前版本的软件中生成的 Intel Quartus Prime工程文件,那么您可能需要更新.stp配置文件,然后对此工程重新编译。通过打开 Signal Tap Logic Analyzer可以对配置文件进行更新。如果您需要更新配置,则会出现提示,询问您是否要更新.stp以匹配当前版本的 IntelQuartus Prime软件。

5.2. Signal Tap Logic Analyzer任务流程概述

要使用 Signal Tap Logic Analyzer对您的设计进行调试,您需要执行几个任务来添加,配置和运行逻辑分析仪。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

139

Page 140: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 44. Signal Tap Logic Analyzer任务流程

End

Yes

NoFunctionalitySatisfied or Bug

Fixed?

Add Signal Tap Logic Analyzer to Design Instance

ConfigureSignal Tap Logic Analyzer

Program TargetDevice or Devices

View, Analyze, andUse Captured Data

Define Triggers

Run Signal Tap Logic Analyzer

Adjust Options, Triggers, or Both

Continue Debugging

RecompilationNecessary?

Yes

Create New Project orOpen Existing Project

NoCompile Design

No

5.2.1. 将 Signal Tap Logic Analyzer添加到您的设计中

使用 IP Catalog和参数编辑器创建一个.stp,或者创建逻辑分析仪的一个参数化 HDL实例表示。如果要同时监控多个时钟域,那么要添加逻辑分析仪的其他实例到您的设计中,仅受器件中的可用资源限制。

5.2.2. 配置 Signal Tap Logic Analyzer

将 Signal Tap Logic Analyzer添加到您的设计中之后,配置逻辑分析仪以监控信号。

您可以手动添加信号或者使用插件(如 Nios II处理器插件)添加一个特定 IP的整组相关信号。

对数据采集缓冲器(data capture buffer)指定设置,如数据采集缓冲器的容量,Signal Tap LogicAnalyzer采集和存储数据的方式。如果您的器件支持存储器类型选择,那么可以指定缓冲器要使用的存储器类型。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

140

Page 141: Intel Quartus Prime Standard Edition用户指南: 调试工具

相关链接

配置 Signal Tap Logic Analyzer (第 142页)

5.2.3. 定义触发条件

默认情况下,Signal Tap Logic Analyzer在运行期间会连续采集数据。要采集和存储特定的信号数据,可以通过设置触发器来指定启动或停止采集数据的条件。

Signal Tap Logic Analyzer支持定义触发条件,范围从非常简单的触发条件(例如单个信号的上升沿)到非常复杂的触发条件(包括信号组,额外逻辑和多个条件)。Power-Up Triggers使您能够从器件配置后进入用户模式之后立即发生的触发事件中采集数据。

相关链接

定义触发器 (第 157页)

5.2.4. 编译设计

一旦配置了.stp文件并定义了触发条件,就对您的工程进行编译,将逻辑分析仪包含在您的设计中。

注意: 由于您可能需要在调试过程中频繁更改受监视的信号节点或调整触发设置,因此 Intel FPGA建议您使用内置在 Signal Tap Logic Analyzer中的增量编译功能,以及 Intel Quartus Prime增量编译,以减少重新编译时间。您还可以使用 Incremental Route with Rapid Recompile来减少重新编译时间。

相关链接

编译设计 (第 179页)

5.2.5. 对目标器件或者器件编程

当使用 Signal Tap Logic Analyzer对设计进行调试时,您可以从.stp直接对目标器件进行编程,无需使用 Intel Quartus Prime Programmer。您也可以对不同设计的多个器件进行编程,并同时对这些器件进行调试。

相关链接

• 对目标器件或者器件编程 (第 184页)

• 管理多个 Signal Tap文件和配置 (第 156页)

5.2.6. 运行 Signal Tap Logic Analyzer

在正常的器件操作中,您可以通过 JTAG连接控制逻辑分析仪,指定何时开始寻找触发条件以开始采集数据。通过使用 Runtime或者 Power-Up Triggers,可以将采集的数据从片上缓冲器读取并传输到.stp来进行分析。

相关链接

运行 Signal Tap Logic Analyzer (第 185页)

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

141

Page 142: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.2.7. 查看,分析和使用采集的数据

您采集并读取到.stp文件中的数据可用于分析和调试。您可以保存数据以供以后分析,也可以将数据转换为其他格式以进行共享和进一步研究。

• 为简化读取和解释采集的信号数据,请手动或使用插件设置助记符表。

• 为加速调试,请使用 Signal Tap node列表中的 Locate功能来查找 Intel QuartusPrime软件中其他工具中的问题解答的位置。

相关链接

查看,分析和使用采集的数据 (第 188页)

5.3. 配置 Signal Tap Logic Analyzer

在 Signal Tap Logic Analyzer窗口的 Signal Configuration窗格中配置 Signal TapLogic Analyzer的实例。

图 45. Signal Tap Logic Analyzer Signal Configuration窗格

Signal Configuration Pane

5.3.1. 分配一个采集时钟(Acquisition Clock)

要控制 Signal Tap Logic Analyzer如何获取数据,您必须分配一个时钟信号。逻辑分析仪在采集时钟的每个正(上升)边沿进行数据采样。逻辑分析仪不支持在采集时钟的负(下降)边沿上进行数据采样。

设计中的任何信号都可用作采集时钟。但是,为了获得最佳数据采集结果,请使用与被测信号同步的全局非门控时钟。门控时钟用作采集时钟可能会产生意外数据,这些意外数据没有准确地反映设计行为。 Intel Quartus Prime静态时序分析工具显示了设计可运行的最大采集时钟频率。要查找逻辑分析仪时钟的最大频率,请参考 Compilation Report的 Timing Analysis部分。

警告: 将收发器中恢复的时钟用作 Signal Tap Logic Analyzer的采集时钟(acquisition clock)时,请务必小心。恢复的时钟可能导致错误或意外的行为,特别是在收发器恢复的时钟是具有上电触发功能的采集时钟时。

如果您未在 Signal Tap Logic Analyzer Editor中分配一个采集时钟,那么 Intel Quartus Prime软件会自动创建一个称为 auto_stp_external_clk的时钟管脚。您必须对此管脚进行管脚分配,并确保设计中的时钟信号驱动采集时钟。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

142

Page 143: Intel Quartus Prime Standard Edition用户指南: 调试工具

相关链接

• 使用插件添加信号 (第 145页)

• Managing Device I/O PinsIn Intel Quartus Prime Standard Edition Handbook Volume 2

5.3.2. 将信号添加到 Signal Tap文件中

将想要监控的信号添加到.stp节点列表中。您也可以选择信号来定义触发器。您可以分配以下两种信号类型:

• Pre-synthesis—这些信号在设计制定之后,但在完成任何综合优化之前存在。这组信号必须反映您的 Register Transfer Level (RTL)信号。

• Post-fitting—这些信号存在于物理综合优化和布局布线之后。

注意: 如果没有使用增量式编译,那么只将 pre-synthesis信号添加到.stp中。当您要在更改设计后添加新节点时,可以使用 pre-syntheiss(预综合)。执行 Analysis and Elaboration之后,源文件变更将显示在 Node Finder中。

Intel Quartus Prime软件不限制用于 Signal Tap窗口波形显示中监控的信号数量。但是,可用通道的数量与器件中逻辑元件(LE)或自适应逻辑模块(ALM)的数量成正比。因此,对可用于监控的通道数量有物理限制。蓝色文本显示的信号是 post-fit节点名称。黑色文本显示的信号是 pre-synthesis节点名称。

成功的 Analysis and Elaboration之后,无效信号显示为红色。除非您确定这些信号是有效的,否则要从.stp文件中将其删除以进行正确操作。Signal Tap Status指示器还指示.stp文件中是否存在一个无效的节点名称。

如果存在对 Signal Tap实例的连接进行布线的布线资源(行或列互连),那么您可以布线信号。例如,您不能布线(tap)存在于 I/O单元(IOE)中的信号,因为没有从 IOE中的信号到内核逻辑单元的直接布线资源。对于输入管脚,您可以对从 IOE驱动逻辑阵列模块(LAB)的信号进行布线(tap)。对于输出管脚,您可以对驱动 IOE的 LAB的信号进行布线。

相关链接

• 使用 Intel Quartus Prime增量编译的更快速编译 (第 179页)

• Setup Tab (Signal Tap Logic Analyzer)In Intel Quartus Prime Help

5.3.2.1. 预综合信号(Pre-Synthesis Signals)

当添加预综合信号时,在综合前要进行所有到 Signal Tap Logic Analyzer的连接。Compiler分配逻辑和布线资源以进行连接,就好像您更改了设计文件一样。 对于驱动到 IOE的信号和从 IOE驱动的信号,预综合信号名称与管脚的信号名称一致。

5.3.2.2. 后拟合信号(Post-Fit Signals)

当布线(tap)后拟合信号时,您将连接到后拟合网表中的实际电路单元(atom)。您只能对后拟合网表中存在的信号进行布线(tap),并且必须存在现有布线资源。

如果是后拟合输出信号,那么对驱动 IOE模块的 COMBOUT或者 REGOUT进行布线。对于后拟合输入信号,驱动到内核逻辑的信号与管脚的信号名称一致。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

143

Page 144: Intel Quartus Prime Standard Edition用户指南: 调试工具

注意: 由于 NOT-gate push back(NOT门推回)应用于任何布线的寄存器,因此电路单元中的信号可能会被反转。您可以通过在 Resource Property Editor或者 Technology Map Viewer中找到信号来检查此情况。您也可以使用 Technology Map viewer和 Resource Property Editor来查找post-fit节点名称。

相关链接

Design Flow with the Netlist ViewersIn Intel Quartus Prime Standard Edition Handbook Volume 1

5.3.2.2.1. 使用 Technology Map Viewer分配数据信号

Technology Map Viewer使您能够添加 post-fit信号。

1. 编译后,从 Intel Quartus Prime 软件运行 Technology Map Viewer,点击 Tools >Netlist Viewers > Technology Map Viewer (Post-Fitting)。

2. 查找要布线的节点。

3. 将节点复制到活动的.stp或者一个新的.stp 。

5.3.2.3. 信号保留(Signal Preservation)

Intel Quartus Prime软件提供综合属性,可防止 Compiler对特定信号进行优化,从而使这些信号能够持续到 post-fit网表中。

Intel Quartus Prime软件在综合和布局布线期间对 RTL信号进行优化。优化后 RTL信号名称可能不会出现在 post-fit网表中。

优化属性是:

• keep—在优化期间防止组合信号的移除。

• preserve—在优化期间防止寄存器的移除。

然而,保留属性可能会增加器件资源的使用或降低时序性能。

注意: 这些处理结果能导致 Signal Tap Logic Analyzer中增量式编译流程的问题。由于您只能将 post-fitting信号添加到 Signal Tap Logic Analyzer中的 post-fit类型的分区中,因此您想要监控的RTL信号可能不可用,从而阻止了它们的使用。为避免此问题,请添加综合属性,在综合和布局布线过程中保留信号。

当使用一个插件添加一个 IP的添加信号组时,通常需要保留节点。如果调试一个加密的 IP core(如Nios II CPU), ,那么您可能需要保留内核的节点,以用于 Signal Tap Logic Analyzer进行调试。

在增量式编译流程中,预综合(pre-synthesis)节点可能未连接到 Signal Tap Logic Analyzer以用于 post-fit分区。对于在 post-fit网表中不存在的所有 pre-synthesis节点,Signal Tap都会发出一个严重警告消息。

5.3.2.4. 节点列表信号使用选项

将一个信号添加到节点列表时,可以选择用于指定逻辑分析仪如何使用此信号的选项。

为防止信号触发分析,请在.stp文件中禁用信号的 Trigger Enable选项。当您只想查看信号的采集数据时,此选项很有用。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

144

Page 145: Intel Quartus Prime Standard Edition用户指南: 调试工具

通过禁用 stp文件中的 Data Enable列来关闭查看一个信号的数据的功能。当您要触发一个信号但又对查看此信号的数据不感兴趣时,此选项很有用。

相关链接

定义触发器 (第 157页)

5.3.2.4.1. 禁用和使能一个 Signal Tap实例

在 Instance Manager窗格中禁用和使能 Signal Tap实例。物理上添加或删除实例要求在禁用和使能一个 Signal Tap实例后进行重新编译。

5.3.2.5. 不可用于 Signal Tap调试的信号

在您的设计中,并非所有的 post-fitting信号都能Node Finder对话框中的 Signal Tap:post-fitting filter中找到。

您不能布线(tap)以下任何信号类型:

• Post-fit output pins—您不能直接布线 post-fit输出管脚。要使输出信号可见,需要对驱动输出管脚的寄存器或缓冲器进行布线(tap)。这包括定义为双向的管脚。

• Signals that are part of a carry chain—您不能布线一个逻辑单元的进位(carry out,cout0或者 cout1)信号。由于架构限制,carry out信号只能驱动另一个 LE的 carry in。

• JTAG Signals—您不能布线 JTAG控制(TCK,TDI,TDO和 TMS)信号。

• ALTGXB IP core—您不能直接布线一个 ALTGXB实例的任何端口。

• LVDS—您不能布线 serializer/deserializer (SERDES)模块的数据输出。

• DQ, DQS Signals—您不能直接布线 DDR/DDRII设计中的 DQ或者 DQS信号。

5.3.3. 使用插件添加信号

您可以使用插件来添加一个特定类型的 IP的相关信号组,而不必通过Node Finder添加单个信号或者一组信号。除了容易添加信号外,插件还提供了一些功能,例如预先设计的助记符表,可用于触发器创建和数据查看以及在采集的数据中反汇编代码的功能。Signal Tap Logic Analyzer随附一个用于 Nios II处理器的插件。

例如, Nios II插件在 Setup选项卡中创建一个助记符表,在 Data选项卡中创建两个助记符表。

• Nios II Instruction (Setup选项卡)—采集所有用于触发所选指令地址的所需信号。

• Nios II Instance Address (Data选项卡)—以十六进制格式显示执行指令的地址,如果在可选的 Executable and Linking Format (.elf)文件中定义, 那么以编程符号名称显示。

• Nios II Disassembly (Data选项卡)—显示对应地址的反汇编代码。

要使用插件将信号添加到.stp文件,请在设计上运行 Analysis and Elaboration之后执行以下步骤:

1. 要确保全部所需信号是可用的,在 Intel Quartus Prime软件中,点击 Assignments >Settings > Compiler Settings > Advanced Settings (Synthesis)。开启 Createdebugging nodes for IP cores。插件中包含的所有信号都会添加到节点列表中。

2. 右键点击节点列表。在 Add Nodes with Plug-In子菜单上,选择要使用的插件,如命名为 Nios II 的插件。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

145

Page 146: Intel Quartus Prime Standard Edition用户指南: 调试工具

Select Hierarchy Level对话框显示了设计的 IP层次结构。如果您的设计中不存在所选插件的 IP,那么会显示一条消息,通知您无法使用所选插件。

3. 选择包含要通过插件监控的信号的 IP,然后点击OK。

— 如果插件中的全部信号均可用,那么可能会出现一个对话框(具体取决于插件),您可以在其中指定插件的选项。

4. 使用 Nios II插件,您可以从 Nios II Integrated Development Environment (IDE)软件设计中选择一个包含程序符号的.elf。对所选插件指定选项,然后点击OK。

相关链接

• 定义触发器 (第 157页)

• 查看,分析和使用采集的数据 (第 142页)

5.3.4. 添加有限状态机状态编码寄存器(Adding Finite State Machine StateEncoding Registers)

查找用于调试有限状态机(FSM)的信号可能具有挑战性。从后拟合(post-fit)网表中查找节点或许是不可能的,因为 Compiler可能会更改或优化掉 FSM编码信号。要查找 FSM信号值并将其映射到您在 HDL中指定的状态名称,则必须执行一个额外步骤。

Signal Tap Logic Analyzer能够检测到编译设计中的 FSM。配置在编译过程中自动跟踪 FSM状态信号以及状态编码。

使用 Shortcut菜单命令,通过一个命令将所有 FSM状态信号添加到逻辑分析仪中。

对于添加到 Signal Tap配置中的每个 FSM,FSM调试功能添加了一个助记符表,将信号值映射到源代码中提供的状态枚举。助记符表使您能够在波形查看器中可视化状态机转换。 FSM调试功能支持从 pre-synthesis和 post-fit网表添加 FSM信号。

图 46. 解码的 FSM助记符包含添加了 FSM调试功能的状态机的解码信号值的波形查看器。

相关链接

State Machine HDL GuidelinesIn Intel Quartus Prime Standard Edition Handbook Volume 1

5.3.4.1. 修改和还原状态机的助记符表

使用Mnemonic Table Setup对话框编辑助记符表。通过 FSM调试功能添加 FSM状态信号时,Signal Tap Logic Analyzer GUI使用<StateSignalName> _table格式创建一个助记符表,其中 StateSignalName是在 RTL中声明的状态信号的名称。

如果要还原已修改的助记符表,那么右键单击节点列表窗口中的任意位置,然后选择 RecreateState Machine Mnemonics。默认情况下,还原助记符表将覆盖已修改的现有助记符表。要将FSM助记符表恢复到一个新记录,请在 Recreate State Machine Mnemonics对话框中关闭Overwrite existing mnemonic table。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

146

Page 147: Intel Quartus Prime Standard Edition用户指南: 调试工具

注意: 如果您已在 setup选项卡内的 FSM状态信号组中添加或删除了信号,那么要删除修改后的寄存器组,然后再次添加回 FSM信号。

相关链接

为比特码型创建助记符(Creating Mnemonics for Bit Patterns) (第 190页)

5.3.4.2. Signal Tap中的状态机的其他考量

• 只有使用 Intel Quartus Prime Integrated Synthesis时,Signal Tap配置 GUI才能识别设计中的状态机。相反,如果使用其他 EDA综合工具,那么状态机调试功能将无法跟踪 FSM信号或状态编码。

• 如果添加 post-fit FSM信号,那么 Signal Tap Logic Analyzer FSM调试功能可能不会跟踪所有的优化变更(优化变更是编译过程中一部分)。

• 如果使能了以下两个特定的优化,那么 Signal Tap FSM调试功能可能不会列出设计中的状态机的助记符表:

— 如果使能了 Physical Synthesis优化,那么状态寄存器可被资源平衡(寄存器时序)以提高 fMAX。如果出现寄存器时序,那么 FSM调试功能不会列出 post-fit FSM状态寄存器。

— FSM调试功能不会列出在综合或 Fitter优化期间 Compiler封装到 RAM和 DSP模块的状态信号。

• 您可以仍然使用 FSM调试功能来添加预综合状态信号。

相关链接

Enabling Physical Synthesis OptimizationIn Intel Quartus Prime Standard Edition Handbook Volume 1

5.3.5. 指定样本深度

针对采集的数据存中的每个信号,Sample depth设置指定 Signal Tap Logic Analyzer所采集和存储的样本数量。

指定样本深度:

1. 在 Sample Depth下拉菜单中选择所需数量。

样本深度范围从 0到 128K。

在器件存储器资源有限的情况下,由于所选的样本缓存容量不够,设计可能无法编译。请尝试降低样本深度以减少资源使用。

相关链接

Signal Configuration Pane (View Menu) (Signal Tap Logic Analyzer)In Intel Quartus Prime Help

5.3.6. 采集数据到一个特定的 RAM类型

您可以选择 Signal Tap Logic Analyzer存储采集数据的 RAM类型。一旦将 Signal Tap LogicAnalyzer缓存分配给一个特定的 RAM模块,整个 RAM模块就成为逻辑分析仪的专用资源。

RAM选择使您能够为设计保留一个特定的存储器模块,并分配存储器的另一部分用于 Signal TapLogic Analyzer数据采集。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

147

Page 148: Intel Quartus Prime Standard Edition用户指南: 调试工具

例如,如果您的设计有一个需要大量存储器资源(如大指令或数据高速缓存)的应用程序,那么可以使用MLAB,M512或M4k模块进行数据采集,而将M9k 模块用于设计的其余部分。

要指定 RAM类型以用于 Signal Tap Logic Analyzer缓存,去到 Signal Tap 窗口中的 SignalConfiguration窗格,然后从下拉列表中选择一个 Ram type。

仅当采集的数据小于所选 RAM类型的可用内存时,才使用此功能。数据量显示在 Signal Tap资源估算器中。

相关链接

Signal Configuration Pane (View Menu) (Signal Tap Logic Analyzer)In Intel Quartus Prime Help

5.3.7. 选择缓存采集模式

当您指定逻辑分析仪如何组织采集的数据缓存时,您可以减少 Signal Tap需要用于数据采集的存储器容量。

Signal Tap Logic Analyzer中有两种类型的采集缓存—非分段(或循环)缓存和分段缓存。

• 通过使用非分段缓存,Signal Tap Logic Analyzer将整个存储器空间视为单个 FIFO,连续填充缓冲区,直到逻辑分析仪达到一组定义的触发条件为止。

• 使用分段缓存,存储空间被拆分为单独的缓存。每个缓存用作一个单独的 FIFO,具有各自的触发条件,并充当非分段缓存。采集期间只有单个缓存处于活动状态。在达到触发条件或活动段的条件后,Signal Tap Logic Analyzer的 Signal Tap将前进到下一段。

使用非分段缓存时,您可以使用存储限定功能来确定将哪些样本写入采集缓存。具有存储限定功能的分段缓存和非分段缓存都可以帮助您最大程度地利用可用内存空间。

图 47. Signal Tap Logic Analyzer中的缓存类型比较下图显示了两种缓存类型之间的差异。

Newly CapturedData

Oldest Data Removed

Post-Trigger Pre-Trigger Center Trigger

1 1

AllTrigger Level

Segment 1 Segment 2 Segment 3 Segment 4

SegmentTrigger Level

1 1 ... 0 1 1 0 ... 0 1 1 1 ... 0 1 1 0 ... 0 1

0 0 1 0 0 1 0 1

SegmentTrigger Level

SegmentTrigger Level

1

(b) Segmented Buffer

(a) Circular Buffer

非分段缓存和分段缓存均可以使用预设的触发位置 (Pre-Trigger,Center Trigger,Post-Trigger)。或者,您可以使用 State-Based Triggering选项卡定义一个自定义触发位置。有关更多详细信息,请参考 Specify Trigger Position。

相关链接

• 指定触发位置 (第 176页)

• 过滤相关样本 (第 150页)

5.3.7.1. 非分段缓存

非分段缓存是 Signal Tap Logic Analyzer中的默认缓存类型。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

148

Page 149: Intel Quartus Prime Standard Edition用户指南: 调试工具

在运行时,逻辑分析器将数据存储在缓存中,直到缓存填满为止。从那时起,新数据将覆盖最旧的数据,直到发生特定的触发事件。触发事件后缓存采集的数据量取决于 Trigger position设置:

• 要在触发之前采集最多的数据,请从列表中选择 Post trigger position。

• 要在触发后采集最多的数据,请选择 Pre trigger position 。

• 要将触发位置居于数据的中心,请选择 Center trigger position。

或者,使用基于状态的定制触发流程来定义一个采集缓存内的定制触发位置。

相关链接

指定触发位置 (第 176页)

5.3.7.2. 分段缓存

在分段缓存中,采集存储器被均分为多个段(segment),并为每个段定义一组触发条件。每个段都用作一个非分段缓存。分段缓存使您能够对包含相对不经常发生的事件的系统进行调试。

如果要使每个分段缓存都有各自的触发条件,那么必须使用基于状态的触发流程。下图显示了分段缓存系统的一个示例。

图 48. 产生重复事件的系统

在此设计中,当地址 H'0F0F0F0F发送到 RADDR端口时,您就要通过监控 RDATA端口来确保正确的数据写入到 SRAM控制器中。

QDR SRAMController

WADDR[17..0]RADDR[17..0]

WDATA[35..0]RDATA[35..0]

CMD[1..0]

INCLK

A[17..0]Q[17..0]D[17..0]BWSn[1..0]RPSnWPSn

K, Kn

QDRSRAM

Reference Design Top-Level File

Stratix Device

PipelineRegisters

(Optional)

K_FB_OUTK_FB_IN

C, Cn

SRAM Interface Signals

通过使用缓存采集功能,在不再次运行 Signal Tap Logic Analyzer的情况下,您可以监控从SRAM器件的多个读取传输,因为您可以通过拆分存储器来多次采集同一事件,而不会浪费已分配的存储器。缓存采集的周期与您在 Signal Configuration窗格的 Data设置下定义的段数(number of segments)一样多。

要使能和配置缓存采集,请在 Signal Tap Logic Analyzer Editor中选择 Segmented,并确定要使用的段数。在此图的示例中,选择六十四个 64-sample段可以采集 64个读周期。

相关链接

使用分段缓存采集数据 (第 188页)

5.3.8. 指定流水线设置(Specifying Pipeline Settings)

Pipeline factor设置表明 Intel Quartus Prime软件能够添加的流水线寄存器的数量,以提升Signal Tap Logic Analyzer的 fMAX。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

149

Page 150: Intel Quartus Prime Standard Edition用户指南: 调试工具

从 Signal Tap GUI指定流水线因数(pipleline factor):

• 在 Signal Configuration窗格中,指定一个 0到 5之间的 pipeline factor。默认值为0。

注意: 设置 pipeline factor不能保证 fMAX的增加,因为 pipeline register可能不在关键路径上。

5.3.8.1. 从 Platform Designer (Standard)指定流水线设置(Pipeline Settings)

Pipeline factor设置表明可以添加的流水线寄存器的数量,以提升 Signal Tap Logic Analyzer的 fMAX。 您可以在 Signal Configuration窗格中指定流水线因数(pipeline factor)。pipelinefactor值的范围从 0到 5,默认值为 0。

从 Platform Designer (Standard)系统例化 Signal Tap Logic Analyzer组件时指定 pipelinefactor:

1. 双击 IP Catalog中的 Signal Tap Logic Analyzer组件。

2. 指定 Pipeline Factor以及其他参数值

图 49. 从 Platform Designer (Standard)指定 Pipeline Factor

5.3.9. 过滤相关样本

Storage Qualifier功能使您能够过滤出与调试设计无关的单个样本。

Signal Tap Logic Analyzer提供采集缓存中存储的数据的快照。默认情况下,Signal Tap LogicAnalyzer在每个时钟周期将数据样本写入到采集缓存中。使用非分段缓存时有一个数据窗口代表数据流的完整快照。相反,分段缓存使用几个较小的采样窗口,这些采样窗口通过更长的时间展开,每个采样窗口代表一个连续的数据集。

通过使用采集缓存进行分析,您可以捕捉到所选信号集中的大多数功能错误,前提是要有足够的触发条件和足够的样本深度进行采集。但是,每个数据窗口都可能有大量不必要的数据。例如,数据突发(data burst)之间有很长的空闲信号。Signal Tap Logic Analyzer中的默认行为不会丢弃冗余采样位。

Storage Qualifier功能使您能够建立一个条件,在数据采集的每个时钟周期内将其作为对缓存的写使能,从而在更长的分析时间内更有效地利用采集存储器。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

150

Page 151: Intel Quartus Prime Standard Edition用户指南: 调试工具

因为您可以在缓存中的任何两个样本之间创建不连续性,所以 Storage Qualifier功能等效于创建自定义分段缓存,其中段边界(segment boundary)的数量和大小是可调整的。

注意: 您只能将 Storage Qualifier功能与未分段缓存一起使用。IP Catalog流程对于 StorageQualifier功能仅支持 Input Port模式。

图 50. 使用控制采集缓存的不同模式进行数据采集

注释:

1. 非分段缓存采集固定样本窗口的连续数据。

2. 分段缓存将缓存分为固定大小的段,每个段有相同的样本深度。

3. Storage Qualifier允许您为使用限定条件创建的每个分段定义自定义采样窗口,因此可能支持更大的覆盖时间范围。

Storage Qualifier功能下有六种存储限定符类型:

• Continuous (默认)关闭 Storage Qualifier。

• Input port

• Transitional

• Conditional

• Start/Stop

• State-based

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

151

Page 152: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 51. Storage Qualifier设置

采集开始后,Signal Tap Logic Analyzer会检查每个时钟周期,然后根据存储限定符的类型和条件将数据写入缓存中。当定义的一组触发条件发生时,采集停止。

Signal Tap Logic Analyzer评估触发条件与存储限定条件无关。

相关链接

定义触发条件 (第 141页)

5.3.9.1. 输入端口模式

当使用输入端口模式时,Signal Tap Logic Analyzer将设计中的所有端口都作为一个输入。采集期间,如果信号在时钟边沿上为高电平,那么 Signal Tap Logic Analyzer将数据储存在闪存中。如果信号在时钟边沿上为低电平,那么 Logic Analyzer会忽略数据样本。如果不指定一个内部节点,那么 Logic Analyzer将创建一个管脚,并将其连接到此输入端口。

如果通过.stp文件创建一个 Signal Tap Logic Analyzer实例,那么使用 Setup选项卡上的input port域指定存储限定符信号。您必须指定此端口,使您的工程能够进行编译。

如果使用参数编辑器,那么存储资格输入端口(如果已指定)将显示在生成的实例化模板中。然后,您可以将此端口连接到 RTL中的一个信号。

图 52. 在重复数据码型的数据采集中比较连续和输入端口采集模式

• 连续模式:

• 输入端口存储限定符:

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

152

Page 153: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.3.9.2. Transitional模式

在 Transitional模式中,Logic Analyzer监控一种信号中的变化,并仅在检测到变化后才将新数据写入采集缓存中。使用 Storage Qualifier列中的复选框选择用于监控的信号。

图 53. 过渡存储限定符设置

Select signals to monitor

图 54. 在重复数据码型的数据采集中比较连续和过渡采集模式

连续:

• Transitional模式:

5.3.9.3. Conditional模式

在 Conditional模式中,Signal Tap Logic Analyzer通过评估节点列表中预定义信号的组合功能来确定是否存储样本。 Signal Tap Logic Analyzer在您指定的条件评估为 TRUE的时钟周期内写入缓存。

您可以选择 Basic AND,Basic OR,Comparison或者 Advanced存储限定符条件。BasicAND或者 Basic OR条件将每个信号与以下其中一个值匹配:

• Don’t Care

• Low

• High

• Falling Edge

• Rising Edge

• Either Edge

如果对多个信号指定 Basic AND存储限定符条件,那么 Signal Tap Logic Analyzer将评估条件的逻辑 AND。

您可以通过高级存储条件对存储限定(storage qualification)指定具有使能信号集的任何其他组合或关系运算符。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

153

Page 154: Intel Quartus Prime Standard Edition用户指南: 调试工具

您可以定义存储限定条件,类似于定义触发条件的方式。

图 55. 有条件的存储限定符设置

下图显示了.stp文件中有条件的存储限定符设置。

Signals not enabled for storage cannot be part of the Storage Qualifier condition

Storage Enable Storage Condition

图 56. 在重复数据码型的数据采集中比较连续和有条件的采集模式

在下面两种情况下,数据码型都是相同的。

• 连续采样采集模式:

• 有条件的采样采集模式:

相关链接

• 基本触发条件 (第 158页)

• Comparison触发条件 (第 159页)

• 高级触发条件 (第 161页)

5.3.9.4. Start/Stop模式

Start/Stop模式使用两组条件,一组条件用于开始数据采集,一组条件用于停止数据采集。如果开始条件的值为 TRUE,那么 Signal Tap Logic Analyzer在每个时钟周期都存储缓存数据,直到停止条件的值为 TRUE,然后暂停数据采集。Logic Analyzer会忽略数据采集开始后接收到的其他开始信号。如果开始和停止条件的值同时为 TRUE,那么 Logic Analyzer会采集一个周期。

注意: 如果缓存由于停止条件而无法填满,那么可以通过按 Stop按钮来强制一个触发。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

154

Page 155: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 57. Start/Stop模式存储限定符设置Start condition Stop Condition

Storage Qualifier Enabled signals

图 58. 比较连续数据码型的连续和开始/停止采集模式

• 连续模式:

• Start/Stop存储限定符:

5.3.9.5. 基于状态(State-Based)

State-based存储限定模式是 State-based触发流程的一部分。State-based触发流程通过评估一个条件语言来定义 Signal Tap Logic Analyzer如何将数据写入缓存中。使用 State-based触发流程,您可以通过命令布尔运算符和关系运算符来指导目标采集缓存的执行流程。

当对 State-based流程使能存储限定符功能时,您可以使用两个额外的命令:start_store和stop_store。这些命令类似于 Start/Stop采集条件。采集开始后,Signal Tap LogicAnalyzer不会写入数据到缓存中,直到执行 start_store操作。stop_store命令暂停采集操作。如果 start_store和 stop_store操作都出现在同一时钟周期,那么 Logic Analyzer将一个单一样本存储到采集缓存中。

相关链接

基于状态的触发 (第 170页)

5.3.9.6. 显示数据不连续性

开启 Record data discontinuities时,Signal Tap Logic Analyzer标记从存储限定符中暂停采集的样本。采集完成后,该标记将显示在波形查看器中。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

155

Page 156: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.3.9.7. 禁用存储限定符

您可以使用 Disable Storage Qualifier选项快速关闭存储限定符,执行连续采集。此选项是运行时可重配置的。从 Type域更改存储限定符模式需要重新编译工程。

相关链接

运行时可重配置选项 (第 185页)

5.3.10. 管理多个 Signal Tap文件和配置

通过对相关监控信号进行分组可以调试设计中的不同模块。同样,您可以使用一组信号来定义多个触发条件。信号、采集设置和触发条件的每种组合都决定了一个调试配置,并且一个配置可以有零个或多个关联的数据日志。

Signal Tap Logic Analyzer使您能够在多个.stp文件中保存调试配置。或者,您可以在同一.stp文件中嵌入多个配置,并将 Data Log用作管理工具。

注意: 每个.stp文件都与一个编程文件(.sof)相关联。为了正常运行,在运行时使用的.stp文件中的设置必须与用于编程器件的.sof文件中的 Signal Tap设置相匹配。

相关链接

确保.stp与.sof文件之间的设置兼容性 (第 184页)

5.3.10.1. Data Log窗格

Data Log窗格显示所有 Signal Tap配置和存储在单一.stp文件中的数据采集结果。

• 要在 Data Log中保存当前配置—打开.stp文件,点击 Edit > Save to Data Log。或

者,点击 Data Log窗格顶部的 Save to Data Log图标 。

• 要在每次采集数据后生成日志条目,请点击 Edit > Enable Data Log。或者,选中 DataLog窗格顶部的复选框。

Data Log以树状层次结构显示其内容。活动项目显示不同的图标。

表 59. Data Log项目

项目 Icon 包含一个或多个 备注

未选择 已选

Instance Signal Set

Signal Set Trigger 每当您对 Signal Tap添加新信号时,Signal Set都会更改。Signal Set更改后,您需要重新编译。

Trigger Capture Log 更改任何触发条件时,Trigger都会更改。这些更改不需要重新编译。

Capture Log

当 Signal Tap Logic Analyzer触发时,每个条目的名称都显示挂钟时间和从开始采集到触发激活所经过的时间。您可以重命名条目,使其更有意义。

要在配置之间进行切换,请双击 Data Log上的任意条目。Setup选项卡将更新以显示活动信号列表和触发条件。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

156

Page 157: Intel Quartus Prime Standard Edition用户指南: 调试工具

实例-21: 简单的 Data Log

在此示例中,Data Log显示一个包括三个信号组配置的实例。

5.3.10.2. SOF Manager

SOF Manager位于 JTAG Chain Configuration窗格中。

使用 SOF Manager,您可以将多个 SOF嵌入到一个.stp文件中。此操作使您能够将.stp文件移动到同一计算机上或整个网络上的其他位置,而不必分别包括关联的.sof。要将一个新的 SOF

嵌入到.stp文件中,请单击 Attach SOF File图标 。

图 59. SOF Manager

Attach SOF File Icon

在 Data Log中的配置之间进行切换时,可以提取与该配置兼容的 SOF。

要下载一个新的 SOF到 FPGA中,请在确保.stp的配置与编程到目标器件中的设计匹配之后,点

击 SOF Manager中的 Program Device图标 。

相关链接

Data Log窗格 (第 156页)

5.4. 定义触发器

在运行时 Signal Tap Logic Analyzer从监控的信号中连续采样活动。当监控的信号达到您指定的条件或一组条件时,激活一个触发器(也就是逻辑分析仪停止并显示数据)。您可以在 Signal TapLogic Analyzer Signal Configuration窗格中指定触发条件。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

157

Page 158: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.4.1. 基本触发条件

如果选择 Basic AND或者 Basic OR触发类型,那么必须对添加到.stp中的每个信号指定触发码型。要指定触发码型,请右键单击 Trigger Conditions列,然后点击所需码型。将触发码型设置为以下任何条件:

• Don’t Care

• Low

• High

• Falling Edge

• Rising Edge

• Either Edge

对于总线,请以二进制格式输入一个码型,或右键单击并选择 Insert Value以其他数字格式输入码型。请注意,您可以输入 X以在十六进制或二进制字符串中指定一组“don’t care”值。对于.stp文件中具有关联助记符表的信号,可以在表中右键单击并选择一个条目(entry),以指定触发器的预定义条件。

通过插件添加信号时,可以使用预定义的助记符表条目创建基本触发器。例如, 通过使用 Nios II插件,如果从 Nios II IDE设计指定一个.elf文件,那么可以从 Nios II代码键入功能的名称。当 Nios II指令地址与指定的代码功能名称的地址匹配时,逻辑分析仪触发。

对于一个给定触发条件,当所有信号的 logical AND计算结果为 TRUE时,数据采集将停止,逻辑分析仪会将数据存储在缓冲区中。

相关链接

查看,分析和使用采集的数据 (第 188页)

5.4.1.1. 使用 Basic OR触发条件和嵌套组

当使用 Basic OR触发类型将一组信号指定为嵌套组(组中组)时,Signal Tap Logic Analyzer 会生成一个高级触发条件。此条件会在组内对信号进行分类,以最大程度地减少重新编译设计的需求。只要节点的父子(parent-child)关系保持恒定,高级触发条件就不会改变。您可以修改节点的同级关系,而无需重新编译设计。

嵌套触发条件的评估优先级从具有叶组的底层开始。Logic Analyzer使用结果逻辑值来计算父组的逻辑值。如果手动设置组的值,那么组成员的逻辑值不会影响组触发的结果。创建嵌套的触发条件:

1. 在 Trigger Conditions下选择 Basic OR。

2. 在 Setup选项卡中,选择几个节点。在您的选择中包括组。

3. 右键单击 Setup选项卡,然后选择 Group。

4. 选择嵌套的组,然后右键单击以设置一个组触发条件,应用 AND,OR,NAND,NOR,XOR,XNOR或者 logical TRUE or FALSE。

注意: 对底层组(没有组作为子组的组)只能选择 OR和 AND组触发条件。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

158

Page 159: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 60. 将触发条件应用于嵌套组

5.4.2. Comparison触发条件

Compasion触发器使您能够通过在总线节点上指定简单的比较条件,将一条总线的多个分组位与期望的整数值进行比较。 Comparsion触发器保留 Basic OR触发器包括的所有触发器条件。您可以将 Comparison触发器与其他触发器结合使用。您也可以在运行时在 Basic OR触发器和Comparision触发器之间进行切换,而无需重新编译。

Signal Tap Logic Analyzer支持以下类型的 Comparison触发条件:

• Single-value comparison—比较总线节点的值与指定的数字值。使用以下操作符进行比较:>, >=, ==, <=, <。当总线节点与指定的数值匹配时,返回 1。

• Interval check—验证总线节点的值是否限制在您定义的间隔内。当总线节点的值在指定的有界间隔内时,返回 1。

使用 Comparison触发器条件时,请遵循以下规则:

• 将 Comparison触发器仅应用于由叶子节点组成的总线节点。

• 不要在总线节点内形成子组。

• 不要在总线节点内使您或禁用单个触发节点。

• 不要指定超过所选节点总线宽度的比较值(单值比较时)和边界值(间隔检查时)。

5.4.2.1. 指定 Comparison触发条件

按照以下步骤指定 Comparison触发条件:

1. 在 Setup选项卡上,在 Trigger Conditions下选择 Comparison。

2. 在触发器编辑器中右键单击节点,然后选择 Compare 。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

159

Page 160: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 61. 选择 Comparison触发条件

Select Comparison from the Trigger Conditions list

Right-click your node and select Compare to set trigger condition values

3. 从 Compare窗口中选择 Comparison type。

— 如果选择 Single-value comparison作为比较类型,请指定操作数和值。

— 如果选择 Interval check作为比较类型,请提供间隔的上下限值。

您还可以指定是否要包括或排除边界值。

图 62. 指定比较值Compares the bus node’s value to a specified numeric value

Verifies whether the bus node’s value confines to a specified bounded interval

Specify inclusion or exclusion of boundary values

4. 点击OK。触发器编辑器在组节点条件文本框中显示生成的比较表达式。

注意: 您可以使用有效的表达式在文本框中修改比较条件。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

160

Page 161: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 63. 文本框中的生成比较条件

Group node condition text box displayingthe resulting comparison expression

Modify the comparison condition in the text box with a valid expression

5.4.3. 高级触发条件

要对特定组合的条件采集数据,需构建一个高级触发器。 Signal Tap Logic Analyzer提供了Advanced Trigger选项卡,可帮助您使用 GUI构建复杂的触发器表达式。

在 Trigger Conditions下拉菜单中选择 Advanced,然后打开 Advanced Trigger选项卡。

图 64. 访问 Advanced Trigger Condition选项卡

Select Advanced from theTrigger Conditions List

图 65. Advanced Trigger Condition选项卡

Node List Pane

Object Library Pane

Advanced Trigger Condition Editor Window

要在表达式树中构建一个复杂的触发条件,请将运算符从 Object Library窗格和Node List窗格拖放到 Advanced Trigger Configuration Editor窗口中。

要配置运算符的设置,请双击或右键单击放置的运算符,然后单击 Properties。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

161

Page 162: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 60. 高级触发运算符

类别 名称

Signal Detection Edge and Level Detector

Input Objects BitBit ValueBusBus Value

Comparison Less ThanLess Than or Equal ToEqualityInequalityGreater Than or Equal ToGreater Than

Bitwise Bitwise ComplementBitwise ANDBitwise ORBitwise XOR

Logical Logical NOTLogical ANDLogical ORLogical XOR

Reduction Reduction ANDReduction ORReduction XOR

Shift Left ShiftRight Shift

Custom Trigger HDL

将很多对象添加到 Advanced Trigger Condition Editor中会使工作空间混乱并且难以阅读。要在建立高级触发条件时对对象进行很好的组织,请使用快捷菜单并选择 Arrange All bjects。或者,使用 Zoom-Out命令将更多对象放入 Advanced Trigger Condition Editor窗口中。

5.4.3.1. 高级触发表达式的示例

以下示例显示如何使用 Advanced Triggering:

图 66. 总线 outa大于或等于总线 outb当总线 outa大于或等于 outb时触发。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

162

Page 163: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 67. 使能信号有一个上升沿

当总线 outa大于或等于总线 outb时和使能信号有一个上升沿时触发。

图 68. 逐位 AND运算当总线 outa大于或等于总线 outb时,或者当使能信号有一个上升沿时触发。或者,当在总线 outc与总线 outd之间执行逐位 AND运算时触发,此运算的结果的所有位都等于 1。

5.4.4. Custom Trigger HDL对象

Signal Tap Logic Analyzer使您能够使用自己的 HDL模块来创建自定义触发条件。您可以使用Custom Trigger HDL对象来仿真触发逻辑,并确保逻辑本身没有故障。此外,您可以在设计层次结构中的任何位置布线模块实例,而无需手动对所有必需的连接进行布线。

Custom Trigger HDL对象出现在 Advanced Trigger编辑器的Object Library窗格中。

图 69. Object Library

5.4.4.1. 使用 Custom Trigger HDL对象

定义一个定制触发流程:

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

163

Page 164: Intel Quartus Prime Standard Edition用户指南: 调试工具

1. 选择要编辑的触发。

2. 在 Trigger Conditions下拉菜单中选择 Advanced,然后打开 Advanced Trigger选项卡。

3. 使用 Project Navigator将包含触发模块的 HDL源文件添加到您的工程中。

— 或者,将触发模块的 HDL附加到工程中已包含的源文件中。

图 70. Project Navigator中的HDL Trigger

4. 实现 Custom Trigger HDL模块要求的输入和输出。

5. 拖入 Custom Trigger HDL对象,并将该对象的数据输入总线和结果输出比特连接到最终触发结果。

图 71. Custom Trigger HDL对象

6. 右键点击 Custom Trigger HDL对象,然后配置该对象的属性。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

164

Page 165: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 72. 配置对象属性

7. 编译您的设计。

8. 使用 custom Trigger HDL对象,通过 Signal Tap获取数据。

实例-22: Verilog HDL触发

以下触发使用配置比特流:

module test_trigger ( input acq_clk, reset, input[3:0] data_in, input[1:0] pattern_in, output reg trigger_out ); always @(pattern_in) begin case (pattern_in) 2'b00: trigger_out = &data_in; 2'b01: trigger_out = |data_in; 2'b10: trigger_out = 1'b0; 2'b11: trigger_out = 1'b1; endcase endendmodule

此触发没有配置比特流:

module test_trigger_no_bs ( input acq_clk, reset, input[3:0] data_in, output reg trigger_out ); assign trigger_out = &data_in;endmodule

5.4.4.2. Custom Trigger HDL模块所需输入和输出

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

165

Page 166: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 61. Custom Trigger HDL模块所需输入和输出

名称 描述 输入/输出 必需/可选

acq_clk Signal Tap使用的采集时钟(acquisition clock) 输入 必需

reset 重新开始采集时 Signal Tap使用的复位。 输入 必需

data_in • 在 Advanced Trigger编辑器中连接的数据输入。• 模块用来触发的数据。

输入 必需

pattern_in • 配置比特流属性的模块输入。

• 可从 Signal Tap GUI进行设置的运行时可配置属性,此属性用于更改触发逻辑的行为。

输入 可选

trigger_out 模块的输出信号,当触发条件满足时置位。 输出 必需

5.4.4.3. Custom Trigger HDL模块属性

表 62. Custom Trigger HDL模块属性

属性 描述

Custom HDL Module Name 触发逻辑的模块名称。

Configuration Bitstream • 支持创建可在运行时进行配置的触发逻辑,基于配置比特流的值。

• Signal Tap logic analyzer将配置比特流属性读取为二进制,因此比特流必须只包含字符 1和 0。

• 比特宽度(1和 0的数量)必须与 pattern_in比特宽度匹配。

• 一个空白的配置比特流表示模块没有 pattern_in输入。

Pipeline 指定触发逻辑中的流水线级数。

例如,如果 LA在接收到触发输入之后需要三个时钟周期来置位触发输出,那么可以将流水线值表示为 3。

5.4.5. 触发条件流程控制

Trigger Condition Flow使您能够定义一组触发条件之间的关系。 Signal Tap Logic AnalyzerSignal Configuration窗格提供了两种用于组织触发条件的流程控制机制:

• Sequential Triggering—默认触发流程。顺序触发支持定义多达 10个触发级别,在采集缓存完成采集之前必须满足这些触发级别。

• State-Based Triggering—最大限度地控制采集缓存。基于自定义的触发使您能够根据定义的有条件流程将触发条件组织成状态。

您可以对分段缓存或非分段缓存使用顺序或基于状态的触发。

5.4.5.1. 顺序触发(Sequential Triggering)

当指定一个顺序触发时,Signal Tap Logic Analyzer顺序评估每个条件。顺序触发流程使您能够级联多达 10个级别的触发条件。

当最后一个触发条件的值为 TRUE时,Signal Tap Logic Analyzer开始数据采集。对于分段缓存,第一个采集段之后的每个采集段均开始于您指定的最后一个条件。Simple SequentialTriggering功能使您能够指定基本触发,比较触发,高级触发或这三种的混合。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

166

Page 167: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 73. 顺序触发流程(Sequential Triggering Flow)下图显示了非分段缓存和分段缓存的简单顺序触发流程。

Segmented BufferNon Segmented Buffern ≤ 10

Trigger Condition n

Trigger Condition 1

Trigger Condition 2

Trigger Condition 1

Trigger Condition 2

Trigger Condition n

Trigger Condition n

Trigger Condition n

n - 2 transitions

Acquisition Segment mtrigger

trigger

trigger

Acquisition Buffertrigger

n - 2 transitions

m-2 transitions

Acquisition Segment 2

Acquisition Segment 1

注释:

1. 当满足所有 n个触发级别时(n <10),采集缓存(acquisition buffer)开始采集。

Signal Tap Logic Analyzer将外部触发视为 level 0,在任何其他触发条件之前评估外部触发。

5.4.5.1.1. 配置顺序触发流程

配置 Signal Tap Logic Analyzer以实现顺序触发:

1. 在 Trigger Flow Control上,选择 Sequential

2. 在 Trigger Conditions上,从下拉列表中选择触发条件的数量。Node List窗格现在显示相同数量的触发条件列。

3. 在Node List窗格中配置每个触发条件。

您可以从列标头使能/禁用任何触发条件。

图 74. 顺序触发流程配置(Sequential Triggering Flow Configuration)

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

167

Page 168: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.4.5.1.2. 达到条件后跳过时钟周期的触发

实例-23: 在达到条件 1后,跳过三个采样时钟周期的触发流程描述

代码:

State 1: ST1 start_store if ( condition1 ) begin stop_store; goto ST2; endState 2: ST2 if (c1 < 3) increment c1; //skip three clock cycles; c1 initialized to 0 else if (c1 == 3) begin start_store;//start_store necessary to enable writing to finish //acquisition trigger; end

这些图显示了连续采集中的数据传输以及应用触发流程描述时的数据捕获。

图 75. 数据传输的连续采集

图 76. 应用触发流程描述的数据传输的采集

5.4.5.1.3. Post-Fill Count值小于m的存储限定(Storage Qualification)

实例-24: 上一个示例的实际数据采集

图 77. Post-Fill Count值小于m的存储限定(Storage Qualification)(采集成功完成)数据采集成功完成。它使用一个样本深度为 64的缓存,m = n = 10,post-fill count = 5。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

168

Page 169: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 78. Post-Fill Count值大于m的存储限定(Storage Qualification)(采集无限期暂停)即使在 stop_store导致出现一个触发条件之后,logic analyzer也会无限期暂停。此示例使用的样本深度为 64,m = n= 10和 post-fill count = 15。

图 79. 强制分析停止后的波形

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

169

Page 170: Intel Quartus Prime Standard Edition用户指南: 调试工具

使用计数器,布尔运算符和关系运算符以及 start_store和 stop_store命令的组合可以提供时钟周期级别的分辨率来控制写入到采集缓存的样本。

5.4.5.2. 基于状态的触发

通过基于状态的触发,状态图可以组织触发采集缓存的事件。这些状态采集 acquisition buffer(采集缓存)执行的所有操作,并且每个状态都包含定义转换条件的条件表达式。

自定义基于状态的触发授予对触发条件管理的控制。由于 Logic Analyzer仅采集所需的样本,因此自定义基于状态的触发可更高效地利用采集缓存中的可用空间。

为了帮助您描述触发条件之间的关系,基于状态的触发流程在 flow GUI中提供了工具提示。此外,您也可以使用基于条件表达式的 Signal Tap Trigger Flow Description Language。

图 80. 基于状态的触发流程

n ≤ 20

Segmented Acquisition Buffer

First Acquisition Segment Next Acquisition Segment Next Acquisition Segment Last Acquisition Segment

Transition Condition: i

TC: j

TC: k

TC: l S: 2TCS: b S: 3

TCS: c

State: 1Trigger Condition Set: a

S: n (last state)TCS: d

segment_trigger segment_trigger segment_trigger segment_trigger

注释:

1. 您可以定义高达 20个不同的状态。

2. 逻辑分析器评估在基于状态的自定义触发流中的任何条件之前定义的外部触发输入。

每个状态都支持定义一组条件表达式。条件表达式是布尔表达式,它取决于触发条件,计数器和状态标志的组合。您可以在 Setup选项卡中配置触发条件。Signal Tap Logic Analyzer基于自定义的触发流程提供计数器和状态标志。

在每个条件表达式中定义一组操作。操作包括触发采集缓存以停止采集,对计数器或状态标志的修改或状态转换。

触发操作可以应用于分段采集缓存的单个段,也可以应用于整个非分段采集缓存。每个触发动作都提供一个可选的计数,该计数指定在逻辑分析器停止当前段的采集之前缓存采集的样本数量。count参数使您能够控制触发事件发生之前和之后缓存采集的数据量。

资源操纵使您能够递增和递减计数器或者对状态标志进行设置和清零。逻辑分析器将计数器和状态标志资源用作条件表达式中的可选输入。计数器和状态标志可用于计算某些事件的发生次数,并有助于触发流程控制。

基于状态的触发流程使您能够采集一序列事件,这些事件不一定在时间上是连续的。例如,两个器件之间的通信传输包含的握手协议,此握手协议包含一序列的确认。

5.4.5.2.1. State-Based Triggering Flow选项卡

State-Based Trigger Flow选项卡是自定义基于状态的触发流程的控制界面。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

170

Page 171: Intel Quartus Prime Standard Edition用户指南: 调试工具

只有在 Trigger Flow Control上选择 State-Based时,此选项卡才可用。如果将 TriggerFlow Control指定为 Sequential,那么 State-Based Trigger Flow选项卡是不可见的。

图 81. State-Based Triggering Flow选项卡

State-Based Trigger Flow选项卡包含三个窗格:

State Diagram窗格

State Diagram窗格提供了触发流程的图形概述。此窗格显示可用状态数和状态转换。要调整可用状态的数量,请使用图形概述上方的菜单。

State Machine窗格

State Machine窗格包含文本输入框,您可以在其中定义与每个状态相关联的触发流程和操作。

• 您可以使用 Signal Tap Trigger Flow Description Language定义触发流程,Signal TapTrigger Flow Description Language是一种基于“if-else”条件语句的简单语言。

• 将鼠标移到光标上时,将显示工具提示,以指导命令输入到状态框中。

• GUI实时提供对流程描述的语法检查,并突出显示文本流程中的任何错误。

State Machin描述文本框默认为每个状态显示一个文本框。您还可以在单个文本字段中显示整个流程描述。从模板或外部文本编辑器复制和粘贴流程描述时,此选项很有用。要在每个状态一个窗口或一个窗口中的所有状态之间切换,请在 State Display模式下选择相应的选项。

相关链接

Signal Tap Trigger Flow Description Language (第 173页)

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

171

Page 172: Intel Quartus Prime Standard Edition用户指南: 调试工具

Resources窗格

Resources窗格使您能够对 Custom Triggering Flow的条件表达式声明状态标志和计数器。

• 您可以对触发流程中的计数器进行递增/递减或者对状态标志进行设置/清零。

• 您可以指定高达 20个计数器和 20个状态标志。

• 要初始化计数器和状态标志,请右键单击表中的行,然后选择 Set Initial Value。

• 要指定计数器宽度,请在表中右键单击计数器,然后选择 Set Width。

• 为帮助调试触发流程规范,逻辑分析器在采集开始后将动态地更新计数器和标志值。

Configurable at runtime设置使您能够控制哪些选项可以在运行时进行更改,而无需进行重新编译。

表 63. 运行时可重配置设置,基于状态的触发流程

设置 描述

Destination of goto action 使您能够在运行时修改状态转换的目标。

Comparison values 使您能够在运行时修改布尔表达式中的比较值。此外,您可以在运行时修改segment_trigger并触发操作填充后计数参数(trigger action post-fill countargument )。

Comparison operators 使您能够在运行时修改布尔表达式中的运算符。

Logical operators 使您能够在运行时修改布尔表达式中的逻辑运算符。

相关链接

• 性能和资源考量 (第 183页)

• 运行时可重配置选项 (第 185页)

5.4.5.2.2. 触发锁定模式(Trigger Lock Mode)

触发锁定模式将变更限制为 Configurable at runtime的配置设置。Custom Trigger Flow选项卡的运行时可配置设置默认情况下开启的。

注意: 通过禁用某些运行时可配置选项可能会获得一些性能优势。

您可以限制更改 Signal Tap配置以仅包含不需要重新编译的选项。触发锁定模式使您能够进行在器件中立即生效的变更。

1. 在 Setup选项卡上,指向 Lock Mode,然后选择 Allow trigger condition changesonly。

图 82. Allow Trigger Conditions Change Only

2. 修改 Trigger Flow条件。

Incremental Route锁定模式限制 GUI仅支持需要使用 Rapid Recompile的 IncrementalRoute编译的变更。使用 Rapid Recompile执行增量布线,并在初始完整编译过程中获得 2-4倍的加速。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

172

Page 173: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.4.5.3. Signal Tap Trigger Flow Description Language

Trigger Flow Description Language基于每个状态的一列条件表达式来定义一组操作。

当达到一个状态时,请按照以下语法来描述 Logic Analyzer评估的操作:

Trigger Flow Description Language的语法

state <state_label>: <action_list> if (<boolean_expression>) <action_list> [else if (<boolean_expression>) <action_list>] [else <action_list>]

• 非终端由"<>"划分。

• 可选参数由"[]"划分。

• 条件语句的的评估优先级从上到下。

• Trigger Flow Description Language支持多个 else if条件。

<state_label> (第 173页)

<boolean_expression> (第 173页)

<action_list> (第 174页)

相关链接

自定义触发流程应用示例 (第 197页)

5.4.5.3.1. <state_label>

标识给定状态。一旦达到所述状态,您可以使用状态标签开始描述 Logic Analyzer评估的操作。您还可以使用包含 goto命令的状态标签。

状态描述标头的语法为:state <state_label>

一个状态的描述结束于另一个状态的开头或整个触发流程描述的结尾。

5.4.5.3.2. <boolean_expression>

计算为 Boolean结果的运算符和操作数的集合。运算符可以是逻辑的或关系的。根据运算符的不同,操作数可以引用触发条件,计数器和寄存器或数字值。请使用括号将表达式中的一组操作数进行分组。

表 64. 逻辑运算符

逻辑运算符接受任何布尔表达式作为操作数。

运算符 描述 语法

! NOT operator ! expr1

&& AND operator expr1 && expr2

|| OR operator expr1 || expr2

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

173

Page 174: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 65. 关系运算符

在计数器或状态标志上使用关系运算符。

运算符 描述 语法

> 大于 <identifier> > <numerical_value>

>= 大于或等于 <identifier> >= <numerical_value>

== 等于 <identifier> == <numerical_value>

!= 不等于 <identifier> != <numerical_value>

<= 小于或等于 <identifier> <= <numerical_value>

< 少于 <identifier> < <numerical_value>

注释:1. <identifier>表示一个计数器或者状态标志。2. <numerical_value>表示一个整数。

注意: • if语句中的<boolean_expression>可以包含单个事件或多个事件条件。

• 当布尔表达式的计算结果为 TRUE时,逻辑分析器将同时计算<action_list>中的所有命令。

5.4.5.3.3. <action_list>

一个条件一旦满足时,Logic Analyzer在状态内执行的一列操作。

• 每个操作都必须以分号(;)结束。

• 如果在一个 if或 else if子句中指定多个操作, 那么必须以 begin和 end标记来划分action_list。

可能的操作包括:

资源操纵(Resource Manipulation Action)

触发流程描述使用的资源可以是计数器或状态标志。

表 66. 资源操纵(Resource Manipulation Action)

操作 描述 语法

increment 以 1递增计数器资源 increment <counter_identifier>;

decrement 以 1递减计数器资源 decrement <counter_identifier>;

reset 将计数器资源复位成初始值 reset <counter_identifier>;

set 将状态标志设置为 1 set <register_flag_identifier>;

clear 将状态标志设置为 0 clear <register_flag_identifier>;

缓存控制操作

控制采集缓存的操作。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

174

Page 175: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 67. 缓存控制操作

操作 描述 语法

trigger 停止当前缓存的采集并结束分析。在每个流程定义中都需要此命令。

trigger <post-fill_count>;

segment_trigger 仅在分段采集模式下可用。结束当前段的采集。计算此命令后,Signal Tap LogicAnalyzer开始从下一个段进行采集。如果所有段均已写入,那么 Logic Analyzer会用最新样本覆盖最旧的段。当计算出一个触发操作时,采集停止。

segment_trigger <post-fill_count>;

start_store 仅在基于状态的存储限定符模式下有效。将write_enable置位成 Signal Tap采集缓存。

start_store

stop_store 仅在基于状态的存储限定符模式下有效。将write_enable信号置低成 Signal Tap采集缓存。

stop_store

trigger和 segment_trigger操作都接受可选的 post-fill_count参数。

相关链接

填充后计数(Post-fill Count) (第 177页)

状态转换操作(State Transition Action)

指定自定义状态控制流程中的下一个状态。语法为:goto <state_label>;

5.4.5.4. 基于状态的存储限定符功能

选择基于状态的存储限定符类型将使能 start_store和 stop_store操作。当将这些操作与基于状态的触发流程的表达式结合使用时,您将获得最大的灵活性来控制写入采集缓存的数据。

注意: 对非分段缓存只能应用 start_store和 stop_store命令。

start_store和 stop_store命令类似于 start/stop存储限定符模式的开始和停止条件。如果使能存储限定功能,那么 Signal Tap Logic Analyzer不会写入数据到采集缓存中,直到出现start_store命令。然而 ,在基于状态的存储限定符类型中必须包含一个 trigger命令作为触发流程描述的一部分。此 trigger命令是完成采集并将结果显示在波形显示器上所必需的。

5.4.5.4.1. 基于状态的触发流程的存储限定功能

此触发流程描述包含三个触发条件,这些触发条件在单击 Start Analysis后的不同时间发生:

State 1: ST1: if ( condition1 ) start_store; else if ( condition2 ) trigger value; else if ( condition3 ) stop_store;

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

175

Page 176: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 83. 使用基于状态的触发流程的存储限定的采集示例

a b c Sample

n samples

m samples

Time Scale for data streamat the start of acquisition

Condition 1 occurs Condition 3 occursCondition 2 occurs

将触发流程应用于图中的示例时:

1. 直到 Condition 1发生(sample a),Signal Tap Logic Analyzer才会写入采集缓存。

2. 当 Condition 2发生时(sample b),logic analyzer计算 trigger value命令,并继续写入缓存以完成采集。

3. 触发流程在 c上指定一个 stop_store命令,此命令出现在触发点后的 m样本。

4. 如果在 Condition 3发生之前数据采集完成了填充后采集样本,那么 logic analyzer将完成采集并显示波形的内容。在这种情况下,如果填充后计数值<m,那么采集结束。

5. 如果 Trigger Flow description 1中的 post-fill count值> m样本,那么缓存将无限期暂停采集,前提是不重复出现 Condition 1来触发 logic analyzer再次开始采集数据。

Signal Tap Logic Analyzer继续计算 stop_store和 start_store命令,即便在计算触发之后。如果采集暂停,那么点击 Stop Analysis以手动停止和强制触发采集。您可以使用计数器值,标志和状态图来帮助您执行触发流程。计数器值,标志和当前状态在数据采集期间实时进行更新。

5.4.6. 指定触发位置

您可以指定 Logic Analyzer在触发事件之前和之后采集的数据量。Runtime和 Power-Up触发的位置是分开的。

Signal Tap Logic Analyzer提供预触发数据与后触发数据的三种预定义的比率:

• Pre—保存出现在触发之后的信号活动(12%预触发,88%后触发)。

• Center—保存 50%预触发和 50%后触发数据。

• Post—保存出现在触发之前的信号活动(88%预触发,12%后触发)。

这些预定义的比率应用于非分段缓存以及分段缓存。

相关链接

基于状态的触发 (第 170页)

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

176

Page 177: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.4.6.1. 填充后计数(Post-fill Count)

在包含 segment_trigger和 trigger的自定义基于状态的触发流程中,可以使用 post-fill_count参数来指定一个自定义触发位置。

• 如果不使用 post-fill_count参数,那么受影响的缓存的触发位置默认为在 Setup选项卡中指定的触发位置。

• 在 trigger缓存控制操作中(对于非分段缓存),post-fill_count指定在停止数据采集之前要采集的样本数量。

• 在 segment_trigger缓存控制操作中(对于分段缓存),post-fill_count指定一个数据段。

注意:

对于 segment_trigger而言,如果在下一个状态中发出一个后续触发操作,那么无论当前缓存的后填充计数如何,都将立即停止对当前缓存的采集。Logic Analyzer丢弃当前缓存中剩余的未完成的计数后采集,并在数据窗口中将其显示为灰色样本。

当 Signal Tap数据窗口显示采集的数据时,触发位置显示为从采集段或缓存末尾开始的计数后样本数量。

触发位置的样本数量 = (N – Post-Fill Count)

在这种情况下,N是采集段或者非分段缓存的样本深度。

相关链接

缓存控制操作 (第 174页)

5.4.7. 上电触发器

上电触发器在 FPGA上电或复位后立即采集器件初始化过程中发生的事件。

Signal Tap Logic Analyzer的典型用途是触发器件正常操作期间发生的事件。目标器件一旦完全上电后,并且此器件的的 JTAG连接可用,您便可以手动启动分析。通过使用 Signal Tap Power-Up Trigger功能,Signal Tap Logic Analyzer在器件初始化后能够立即采集数据。

您可以在 Signal Tap Instance Manager窗格中对每个 logic analyzer实例添加一个不同的Power-Up Trigger。

5.4.7.1. 使能 Power-Up Trigger

对一个 logic analyzer实例使能 Power-Up Trigger:

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

177

Page 178: Intel Quartus Prime Standard Edition用户指南: 调试工具

• 右键点击实例,然后点击 Enable Power-Up Trigger。

图 84. 在 Signal Tap Logic Analyzer Editor中使能 Power-Up Trigger

Power-Up Trigger 作为子实例出现在所选实例名称的下方。节点列表显示默认触发条件。

要禁用 Power-Up Trigger,右键点击实例,然后点击 Disable Power-Up Trigger。

5.4.7.2. 配置 Power-Up Trigger条件

• 您对 Power-Up Trigger条件所做的任何更改都需要重新编译 Signal Tap Logic Analyzer实例,即便对 Runtime Trigger条件进行了类似的更改不需要重新编译。

• 您也可以使用 In-System Sources and Probes和 Signal Tap Logic Analyzer一起来强制触发条件。In-System Sources and Probes功能使您能够通过 JTAG链对所选网络上的值进行驱动和采样。

相关链接

使用 In-System Sources and Probes进行设计调试 (第 215页)

5.4.7.3. 使用 Run-Time和 Power-Up Trigger条件管理 Signal Tap实例

在同时具有两种类型的触发条件的实例上,Power-Up Trigger条件用浅蓝色颜色编码,而 Run-Time Trigger条件则保持白色。

• 要在 Power-Up Trigger与 Run-Time Trigger的触发条件之间进行切换,请双击实例名称或者 Instance Manager中的 Power-Up Trigger名称。

• 要将触发条件从 Run-Time Trigger复制到 Power-Up Trigger,或者从 Power-Up Trigger到 Run-Time Trigger,请右键点击 Instance Manager中的触发器名称,然后点击Duplicate Trigger。或者,选择触发器名称,然后点击 Edit > Duplicate Trigger。

注意: Run-time触发条件支持比 Power-up触发条件更少的调整。

5.4.8. 外部触发器(External Triggers)

外部触发器输入使您能够从一个外部源触发 Signal Tap Logic Analyzer。

外部触发器输入的行为类似于触发条件 0,在 logic analyzer计算出任何其他触发条件之前,此条件必须为 TRUE 。

Signal Tap Logic Analyzer提供一个用于触发外部器件或其他逻辑分析仪实例的信号。这些功能使您能够将外部逻辑分析设备与内部逻辑分析器同步。Power-Up Trigger可以使用外部触发器功能,但必须使用与其关联的 Run-Time Trigger相同的源或目标信号。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

178

Page 179: Intel Quartus Prime Standard Edition用户指南: 调试工具

您可以使用外部触发器在硬核处理器系统(HPS)上执行交叉触发:

• 处理器调试器(processor debugger )使您能够配置 HPS配置以遵从或忽略来自 FPGA的交叉触发请求,并能发出或者不发出交叉触发请求到 FPGA。

• 处理器调试器与 Signal Tap外部触发器功能的结合使您能够开发一个动态组合的交叉触发行为。

• 通过使用 ARM Development Studio 5 (DS-5)软件的交叉触发功能,可以对 Intel FPGASoC实现一个系统级调试解决方案。

相关链接

• FPGA-Adaptive Software Debug and Performance Analysis white paper

• Signal Configuration PaneIn Intel Quartus Prime Help

5.4.8.1. 使用一个分析器的 Trigger Out 作为另一个分析器的 Trigger In

Signal Tap Logic Analyzer的一个高级功能是使用一个分析器的 Trigger out作为另一个分析器的 Trigger in。此功能使您能够对跨多个时钟域发生的事件进行同步和调试。

要执行此操作,请首先对源逻辑分析器实例打开 Trigger out。在 Trigger out触发器的Instance列表上,选择目标逻辑分析器实例。例如,如果命名为 auto_signaltap_0的实例应该触发 auto_signaltap_1,那么选择 auto_signaltap_1|trigger_in。

开启 Trigger out将自动使能目标逻辑分析器实例的 Trigger in,并且使用源逻辑分析器实例的Trigger out信号填充 Trigger in触发器的 Instance域。在此实例中,auto_signaltap_0以 auto_signaltap_1为目标。auto_signaltap_1的Instance中的 Trigger自动填充为 auto_signaltap_0|trigger_out。

5.5. 编译设计

要将 Signal Tap逻辑加入到您的设计中并且使能 JTAG连接,则必须对工程进行编译。将一个.stp文件添加到您的工程中时,Signal Tap Logic Analyzer成为设计的一部分。使用传统的外部逻辑分析器调试设计时,通常必须更改要监控的信号以及触发条件。

注意: 由于这些调整要求在使用 Signal Tap Logic Analyzer的时候重新编译设计,因此要使用 SignalTap Logic Analyzer功能以及 Intel Quartus Prime软件中的增量编译来减少重新编译时间。

5.5.1. 使用 Intel Quartus Prime增量编译的更快速编译

您可以将一个 Signal Tap Logic Analyzer实例添加到您的设计中,而无需重新编译原始源代码。增量编译使您能够保留原始设计的综合和拟合(synthesis and fitting)结果。

当对包含.stp文件的设计进行编译时, Intel Quartus Prime软件自动添加 sld_signaltap和 sld_hub实体到编译层次结构中。这两个实体是 Signal Tap Logic Analyzer的主要组件,提供操作所需要的触发逻辑和 JTAG接口。

当想要修改.stp文件的配置时,增量编译也很有用。例如,您可以更改缓存样本深度或存储器类型,而无需执行完整编译。或者,您只需要重新编译 Signal Tap Logic Analyzer,配置为各自的设计分区。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

179

Page 180: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.5.1.1. 对您的设计使能增量编译

对您的设计使能增量编译功能时,Signal Tap Logic Analyzer始终是一个单独分区。第一次编译后,您可以使用 Signal Tap Logic Analyzer来分析 post-fit网表中的信号。如果您的分区被正确地设计,那么由于 Signal Tap Logic Analyzer设置的原因,接下来的编译将使用更少的时间。

顶级分区的网表类型默认为 source。要利用增量编译,请将要布线的分区的网表类型指定为Post-fit。

相关链接

Intel Quartus Prime规划分层和基于团队设计的增量式编译文档

5.5.1.2. 使用 Signal Tap Logic Analyzer的增量编译

Signal Tap Logic Analyzer默认使用增量编译流程。 对于从 post-fit网表连接到 Signal TapLogic Analyzer的所有信号:

1. 在 Design Partitions窗口中,将包含信号的分区的网表类型设置为 Post-Fit,Placementand Routing的 Fitter Preservation Level。

2. 在Node Finder中,使用 Signal Tap: post-fitting filter将相关信号添加到 SignalTap配置文件中。

3. 如果想要从 pre-synthesis网表添加信号,那么网表类型要设置为 Source File,并使用Node Finder中的 Signal Tap: pre-synthesis filter。不要使用 Signal Tap LogicAnalyzer的网表类型 Post-Synthesis。

警告: 使用 post-fit和 pre-synthesis节点时:

• 请阅读所有增量编译指南,以确保对工程进行正确的分区。

• 为了加快编译时间,对指定为 preservation-level post-fit的分区,只能使用 post-fit 节点。

• 不要在任何分区中混合 pre-synthesis和 post-fit节点。如果必须为特定分区布线 pre-synthesis节点,那么使该分区中的所有布线节点成为 pre-synthesis节点,然后在设计分区窗口中将网表类型更改为 source。

节点名称在 pre-synthesis网表与 post-fit网表之间可以不同。通常,寄存器和用户输入信号在两个网表之间共享通用名称。在编译期间,某些优化会更改 RTL中组合信号的名称。如果选择的节点名称类型与网表类型不匹配,那么 compiler可能无法找到连接到 Signal Tap Logic Analyzer实例的信号。compiler会发出严重警告,以提醒您这种情况。未连接的信号在 Signal Tapdata选项卡中接地。

如果使用 Signal Tap Logic Analyzer以及增量编译流程,并且源文件的更改是必要的,那么请注意您可能必须删除 compiler生成的 post-fit网络名称。源代码变更会强制受影响的分区进行重新综合。在综合期间,compiler无法从先前的编译中找到 compiler生成的网络名称。

注意: Intel FPGA建议在可能的情况下仅使用将寄存的信号和用户输入的信号作为.stp中的调试布线(debugging tap)。

寄存的信号和用户输入的信号共享 pre-synthesis和 post-fit网表中的通用节点名称。因此,仅在.stp中使用寄存的信号和用户输入的信号会限制对 Signal Tap Logic Analyzer配置所需要进行的变更。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

180

Page 181: Intel Quartus Prime Standard Edition用户指南: 调试工具

通过使用 In-System Debugging编译报告可以查看连接到每个 Signal Tap实例的节点。这些报告列出了您选择要连接到一个 Signal Tap实例的每个节点名称,用于特定连接的网表类型和编译后使用的实际节点名称。如果没有使用增量编译流程,那么 In-System Debugging报告位于Analysis & Synthesis文件夹中。如果使用增量编译流程,那么此报告位于 Partition Merge文件夹中。

要验证您的原始设计没有被修改,请查看 Compilation Report的 Partition Merge部分中的消息。

除非对要求重新编译的设计分区进行更改,否则只对 Signal Tap设计分区进行重新编译。如果仅对.stp进行后续更改,那么只有 Signal Tap设计分区必须重新编译,以减少重新编译时间。

5.5.2. 防止需要重新编译的更改

配置.stp以防止通常需要重新编译的更改。为此,请在 Setup选项卡的节点列表中选择 Lockmode。要锁定您的配置,请选择 Allow trigger condition changes only。

图 85. 仅允许触发条件变更

相关链接

验证是否需要重新编译工程 (第 181页)

5.5.3. 验证是否需要重新编译工程

在开始调试之前,请勿对需要重新编译工程的.stp设置进行任何更改。

要验证所做的更改是否需要重新编译工程,请检查 Instance Manager窗格的顶部的 SignalTap状态显示。此功能使您能够撤消更改,从而无需重新编译工程。

相关链接

防止需要重新编译的更改 (第 181页)

5.5.4. 通过快速重新编译进行增量式布线(Incremental Route with RapidRecompile)

您可以使用 Incremental Route with Rapid Recompile来减少编译时间。对设计执行完整编译后,您可以使用 Incremental Route流程在平面编译中实现 2-4倍的加速。Incremental Route流程与 Partial Reconfiguration不兼容。

Intel Quartus Prime Standard Edition软件对 Arria V、 Cyclone V和 Stratix V器件支持Incremental Route with Rapid Recompile。

5.5.4.1. 使用 Incremental Route流程

要使用 Incremental Route流程:

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

181

Page 182: Intel Quartus Prime Standard Edition用户指南: 调试工具

1. 打开设计,运行 Analysis & Elaboration (或者完整编译)以在 Signal Tap中显示节点。

2. 将 Signal Tap添加到设计中。

3. 在 Signal Tap Signal Configuration窗格中, 对于 Trigger和 Data节点(StorageQualifier,如果使用),在Nodes Allocated域中指定Manual。

图 86. 手动分配节点

手动节点分配使您能够控制编译到设计中的节点数量,这对于 Incremental Route流程至关重要。

当选择 Auto分配时,编译到设计中的节点数与 Setup选项卡中的节点数匹配。如果以后添加节点,那么会在器件所需的节点数和已编译的节点数之间造成不匹配,并且必须执行完整的编译。

4. 指定调试过程中估算所需的节点数。您可以稍后增加节点数量,但这需要更多的编译时间。

5. 添加要布线的节点。

6. 如果尚未完整编译工程,那么要运行完整编译。否则,使用 Rapid Recompile开始增量编译。

7. 调试并确定其他所需信号。

8. (可选)选择 Allow incremental route changes only锁定模式。

图 87. 增量布线锁定模式(Incremental Route Lock-Mode)

9. 在 Signal Tap Setup选项卡中添加额外节点。

— 不要超过您指定的手动分配的节点数。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

182

Page 183: Intel Quartus Prime Standard Edition用户指南: 调试工具

— 避免对非运行时可配置设置进行更改。

10. 从工具栏点击 Rapid Recompile图标 。或者,点击 Processing > Start RapidRecompile。

注意: 前面的步骤设置了设计的 Incremental Route,但是实际的 Incremental Route是在执行 Rapid Recompile时开始的。

5.5.4.2. 实现最大加速的技巧

• Basic AND (应用于 Storage Qualifier以及 trigger input)对于 Incremental Route流程是最快的。

• Basic OR对于 Incremental Route流程是比较慢的,但如果避免更改组内节点的父子关系,那么可以最大程度地减少对编译时间的影响。您可以更改节点的兄弟关系。

— 当更改布线节点的数量/名称时,Basic OR和高级触发要求重新综合(re-synthesis)。

• 使用 Incremental Route锁定模式可以避免要求完整编译的无意更改。

5.5.5. 使用 Signal Tap Logic Analyzer的时序保留

除验证功能外,时序收敛是一个设计成功运行最关键的部分之一。

注意: 当您使用 Signal Tap Logic Analyzer而不使用增量编译对一个工程进行编译时,必须将 IP添加到现有设计中。这种添加通常会影响设计的现有布局,布线和时序。为了最大程度地减少 Signal TapLogic Analyzer对设计的影响,需要对工程使用增量编译。增量编译是新设计中的默认设置。您可以轻松地在现有设计中使能增量编译功能。当 Signal Tap Logic Analyzer位于设计分区中时,它对设计几乎没有影响。

对于 Intel Arria 10器件, Intel Quartus Prime Standard Edition软件不支持通过 RapidRecompile对 post-fit tap的时序保留。

以下技术可以帮助您保持时序:

• 避免将关键路径信号添加到.stp文件中。

• 最小化添加到.stp文件中的组合信号的数量,并尽可能添加寄存器。

• 对设计中的每个时钟指定一个 fMAX约束。

相关链接

时序收敛与优化>In Intel Quartus Prime Standard Edition User Guide: Design Optimization

5.5.6. 性能和资源考量

在对设计进行逻辑分析时,您可以在运行时灵活性,时序性能和资源使用之间进行必要的权衡。

Signal Tap Logic Analyzer使您能够选择运行时可配置参数,对运行时灵活性,速度和区域的需求进行平衡。

运行时可配置参数的默认值提供了最大的灵活性,因此您可以尽快完成调试。但是,您可以调整这些设置来确定是否有更适合您的设计的配置。因为性能结果取决于设计,所有需要以不同的组合尝试这些选项,直到在功能,性能和利用率之间达到所需的平衡。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

183

Page 184: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.5.6.1. 关键路径中的 Signal Tap逻辑

如果 Signal Tap逻辑是关键路径的一部分,那么请按照以下提示技巧来加速 Signal Tap LogicAnalyzer的性能:

• Disable runtime configurable options—分配了某些资源以适应运行时的灵活性。如果使用高级触发或基于状态的触发流程,那么要禁用运行时可配置参数以提高 Signal Tap逻辑的fMAX。

— 如果使用基于状态的触发流程,那么要在禁用其他运行时可配置选项之前尝试禁用 Gotostate destination选项并执行重新编译。与其他运行时可配置选项相比,Goto statedestination选项对 fMAX影响最大。

• Minimize the number of signals that have Trigger Enable selected—默认情况下,Signal Tap Logic Analyzer对添加到.stp文件的所有信号使能 Trigger Enable选项。对于那些不计划用作触发器的信号,请关闭此选项。

• Turn on Physical Synthesis for register retiming—如果大量使能的触发信号(大于LAB中的输入数量)将逻辑扇入(fan-in)到一个基于门(gate-based)的触发条件(基本触发条件或高级触发标签中的逻辑归约运算符),那么开启 Perform register retiming。这可以帮助平衡 LAB之间的组合逻辑。

5.5.6.2. 使用关键资源的 Signal Tap逻辑

如果您的设计时受资源限制的,那么请按照以下技巧以减少 Signal Tap Logic Analyzer 使用逻辑或存储器:

• Disable runtime configurable options—禁止高级触发条件的运行时配置和基于状态的触发流程中的运行时可配置选项会导致更少的 LE。

• Minimize the number of segments in the acquisition buffer—如果限制采样缓存中的分段(segment),那么能够减少 Signal Tap Logic Analyzer使用的逻辑资源。

• Disable the Data Enable for signals that you use only for triggering—默认情况下,Signal Tap Logic Analyzer对所有信号使能 data enable选项。对仅用作触发器输入的信号关闭 data enable选项可节省存储器资源。

5.6. 对目标器件或者器件编程

将 Signal Tap Logic Analyzer添加到工程并重新编译后,您可以配置 FPGA目标器件。

如果要同时调试多个设计,那么要从.stp配置器件,而不是从 Intel Quartus PrimeProgrammer配置器件。这使您能够打开多个.stp文件,并对多个器件进行编程。

5.6.1. 确保.stp与.sof文件之间的设置兼容性

当逻辑分析器的设置(例如采集缓存的大小,监控和触发信号)与目标器件的编程设置匹配时,.stp文件与.sof文件兼容。如果文件不兼容,您仍然可以对器件进行编程,但是无法从 Signal TapLogic Analyzer Editor上运行或控制逻辑分析器。

• 为确保编程兼容性,请使用最新编译中生成的.sof文件对器件进行编程。

• 要检查一个特定.sof是否兼容当前的 Signal Tap配置,将.sof附加到 SOF manager。

注意: 当 Signal Tap Logic Analyzer在分析开始后检测到不兼容性时, Intel Quartus Prime软件会生成一个系统错误消息,包含两个 CRC值:预期值和从器件上的.stp实例检索到的值。CRC值来自影响编译的所有 Signal Tap设置。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

184

Page 185: Intel Quartus Prime Standard Edition用户指南: 调试工具

最佳做法是将.stp文件同 Intel Quartus Prime工程一起使用。工程数据库包含关于当前 SignalTap Logic Analyzer部分的完整性的信息。没有工程数据库就无法验证当前.stp文件是否与器件中的.sof文件匹配。如果.stp文件与.sof文件不匹配,那么 Signal Tap Logic Analyzer能够捕获错误数据。

相关链接

管理多个 Signal Tap文件和配置 (第 156页)

5.7. 运行 Signal Tap Logic Analyzer

调试 Signal Tap Logic Analyzer与使用一个外部逻辑分析器相类似。通过开始一个分析来初始化逻辑分析器。发生触发事件时,逻辑分析器将采集的数据存储在器件的存储器缓存中,然后通过JTAG连接将该数据传输到.stp文件。

您还可以执行与强制触发指令等效的操作,该指令使您可以查看缓存中当前采集的数据,而不会发生触发事件。

下面流程图显示了如何操作 Signal Tap Logic Analyzer。指示 Power-Up和 Runtime Trigger事件发生在何处以及何时可以从这些事件中采集的数据进行分析。

图 88. Power-Up和 Runtime Trigger事件流程图

Manually RunSignal Tap Logic Analyzer

Compile Design

Start

End

Yes

No

No

Yes

Yes

No

Program Device

No

Yes

Manually Read Data from Device

Trigger Occurred?

Analyze Data: Power-Upor Run-Time Trigger

Continue Debugging?Make Changes to Setup(If Needed)

Changes RequireRecompile?

Data Downloaded?

Manually Stop Analyzer

Possible Missed Trigger(Unless Power-UpTrigger Enabled)

您也可以使用 In-System Sources and Probes和 Signal Tap Logic Analyzer一起来强制触发条件。In-System Sources and Probes功能使您能够通过 JTAG链对所选信号上的值进行驱动和采样。

相关链接

使用 In-System Sources and Probes进行设计调试 (第 215页)

5.7.1. 运行时可重配置选项

当使用 Runtime Trigger模式时,您可以更改.stp中的某些设置,而无需重新编译设计。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

185

Page 186: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 68. 运行时可重配置功能

运行时可重配置设置 描述

Basic Trigger Conditions and Basic StorageQualifier Conditions

您可以更改成任何基本触发条件值,而无需重新编译所有 Trigger条件开启的信号。

Comparison Trigger Conditions and ComparisonStorage Qualifier Conditions

所有比较操作数,比较数值和间隔界限值都是运行时可配置的。

您可以在运行时从 Comparison切换到 Basic OR触发,而无需重新编译。

Advanced Trigger Conditions and AdvancedStorage Qualifier Conditions

很多运算符都包括运行时可配置设置。例如,所有比较运算符都是运行时可配置的。可配置的设置在框图中具有白色背景。在Object Properties对话框中开启运行时可配置选项。

Switching between a storage-qualified and acontinuous acquisition

在任何符合存储要求的模式(storage-qualified mode)下,都可以切换到连续采集模式,而无需重新编译设计。要启用此功能,请开启 disable storagequalifier。

State-based trigger flow parameters 请参考 Runtime Reconfigurable Settings, State-Based Triggering Flow

Runtime Reconfigurable选项使您能够涵盖更广泛的事件示例而无需重新编译设计,从而可以在调试周期节省时间。这可能会对性能和逻辑利用率产生轻微影响。您可以对高级触发条件和基于状态的触发流程参数关闭运行时可重配置性,从而提高性能并降低区域利用率。

要在 Setup选项卡中配置.stp文件来防止通常要求重新编译的变更,请在节点列表上方选择Allow Trigger Condition changes only。

在 Incremental Route锁定模式中,Allow incremental route changes only,限制于仅要求 Incremental Route编译的变更,而不是一个完全编译。

本示例通过提供一个使能了存储限定的基于状态的触发流程描述,并说明如何在运行时修改采集窗口的大小而无需重新编译,从而展示了 Runtime Reconfigurable功能的潜在用例。本示例提供了一个与分段缓存等效的功能,具有分段大小是运行时可重配置的单一触发条件。

state ST1:if ( condition1 && (c1 <= m) )// each "segment" triggers on condition // 1begin // m = number of total "segments" start_store; increment c1; goto ST2:End

else (c1 > m ) // This else condition handles the last // segment.begin start_store Trigger (n-1)end

state ST2:if ( c2 >= n) //n = number of samples to capture in each //segment.begin reset c2; stop_store; goto ST1;end else (c2 < n)begin increment c2; goto ST2;end

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

186

Page 187: Intel Quartus Prime Standard Edition用户指南: 调试工具

注意: m x n 必须等于样本深度,从而有效利用样本缓存中的空间。

下图显示了触发流程示例描述的分段缓存。

图 89. 使用存储限定符和基于状态的触发器创建的分段缓存

总采样深度是固定的,其中m x n必须等于采样深度。Segment 1

1 n

Segment 2

1 n

Segment m

1 n

在运行时,您可以修改 m和 n的值。更改触发流程描述中的 m和 n值可调整分段边界,而无需重新编译。

您可以将状态添加到触发流程描述中,并有选择地屏蔽特定状态,并在运行时使用状态标志使能其他状态。

此示例与前面的示例类似,其中插入了其他状态。您可以使用此额外状态指定不使用存储限定符功能的其他触发条件。将状态标志插入条件语句中,以控制触发流程的执行。

state ST1 : if (condition2 && f1) // additional state added for a non-segmented // acquisition set f1 to enable state begin start_store; trigger end else if (! f1) goto ST2;state ST2: if ( (condition1 && (c1 <= m) && f2) // f2 status flag used to mask state. Set f2 // to enable begin start_store; increment c1; goto ST3: end else (c1 > m ) start_store Trigger (n-1) endstate ST3: if ( c2 >= n) begin reset c2; stop_store; goto ST1; end else (c2 < n) begin increment c2; goto ST2; end

5.7.2. Signal Tap状态消息

下表描述了在数据采集之前,期间和之后可能出现在 Instance Manager窗格中的 Signal TapStatus Indicator中的文本消息。这些消息使您能够监控逻辑分析器的状态,并确定 LogicAnalyzer正在执行的操作。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

187

Page 188: Intel Quartus Prime Standard Edition用户指南: 调试工具

表 69. Signal Tap Status Indicator中的消息

消息 消息描述

Not running Signal Tap Logic Analyzer没有运行。当没有与器件的连接或者器件尚未配置时会出现此消息。

(Power-Up Trigger) Waiting for clock (1) Signal Tap Logic Analyzer正在执行 Runtime或者 Power-Up Trigger采集,并等待时钟信号跳变。

Acquiring (Power-Up) pre-trigger data (1) 触发条件尚未评估。

如果采集模式是非分段缓存,并且存储限定符类型是连续的,那么 SignalTap Logic Analyzer将收集一个完整缓存的数据。

Trigger In conditions met 发生了 Trigger In条件。Signal Tap Logic Analyzer等待第一个触发条件发生。

仅当 Trigger In条件存在时才会出现此消息。

Waiting for (Power-up) trigger (1) Signal Tap Logic Analyzer等待触发事件发生。

Trigger level <x> met 出现了触发条件 x。Signal Tap Logic Analyzer等待 condition x + 1的出现。

Acquiring (power-up) post-trigger data (1) 发生了整个触发事件。Signal Tap Logic Analyzer正采集后触发数据(post-trigger data)。当选择非分段缓存采集模式时定义要收集的后触发数据量(介于 12%,50%和 88%之间)。

Offload acquired (Power-Up) data (1) JTAG chain正发送数据到 Intel Quartus Prime软件。

Ready to acquire Signal Tap Logic Analyzer正等待您初始化分析器。

1. 对于 Runtime以及 Power-Up Trigger事件,此消息都能出现。当提到 Power-Up Trigger时,出现括号中的文本。

注意: 在分段采集(segmented acquisition)模式下,前触发(pre-trigger )和后触发(post-trigger)均不适用。

5.8. 查看,分析和使用采集的数据

Signal Tap Logic Analyzer界面使您能够手动或使用触发器检查采集的数据。在 Data视图中时,可通过单击鼠标左键使能拖动到缩放(drag-to-zoom)来功能隔离相关数据。

5.8.1. 使用分段缓存采集数据

Segmented Acquisition缓存可以对每个采集分段使用各自的触发条件执行采集。这些缓存使您能够采集长时间内发生的重复事件或事件序列。

每个采集分段都充当一个非分段缓存,激活后连续采集数据。使用分段缓存运行分析时,SignalTapLogic Analyzer采集数据缓存中每个采集分段的背靠背(back-to-back)数据。您可以在Sequential触发流程控制或 Custom State-based触发流控制中定义触发流程,或者为每个缓存评估触发条件的类型和顺序。

下图显示了一个分段采集缓存,包括表示为四个单独非分段缓存的四个分段。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

188

Page 189: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 90. 分段采集缓存(Segmented Acquisition Buffer)

0

1

1

Segment 1 Buffer

1

111

1

1

11

1 11

1

000

0

0

0

0 0

0

Trigger 1Post Pre

0

1

1

Segment 2 Buffer

1

111

1

1

11

1 11

1

000

0

0

0

0 0

0

Trigger 2Post Pre

0

1

1

Segment 3 Buffer

1

111

1

1

11

1 11

1

000

0

0

0

0 0

0

Trigger 3Post Pre

0

1

1

Segment 4 Buffer

1

111

1

1

11

1 11

1

000

0

0

0

0 0

0

Trigger 4Post Pre

Signal Tap Logic Analyzer完成一个分段的采集后,继续到下一个分段开始新的采集。出现在波形查看器中的数据采集取决于触发条件的发生时间。该图显示了数据采集方法。Trigger标记—Trigger 1,Trigger 2,Trigger 3和 Trigger 4—是指 Custom State-based触发流程中segment_trigger和 trigger命令的评估。在顺序流程中,Trigger标记是指在 Setup标签中指定触发条件。

如果 Segment 1 Buffer是活动分段并且出现 Trigger 1,那么 Signal Tap Logic Analyzer立即开始计算 Trigger 2。当 Segment Buffer 1完成其后填充计数时,或者当 Trigger 2计算为TRUE时(无论哪个条件先发生), Segment 2 buffer的数据采集开始。因此,与数据采集序列中的下一个缓存关联的触发条件可以抢占当前活动缓存的填充后计数。这使 Signal Tap LogicAnalyzer能够对所发生的所有触发条件进行准确采集。未使用的样本在波形查看器中显示为空白。

图 91. 通过采集分段的抢占的分段采集

该图显示了使用顺序流程控制的一个采集,每个分段的触发条件指定为 Don’t Care 。

最后一个分段之前的每个分段仅采集一个样本,这是因为下一个触发条件会立即抢占当前缓存。将所有分段的触发位置都指定为预触发(pre-trigger)(10%的数据在触发条件之前,而 90%的数据在触发位置之后)。由于最后一个分段立即以触发条件开始,因此该分段仅包含触发后数据。最后一个分段中的三个空样本是从预触发样本中保留的, 这些预触发样本是 Signal Tap Logic Analyzer分配给缓存的。

对于顺序触发流程,Trigger Position选项应用于缓存中的每个分段。基于状态的自定义触发流程提供了定义触发位置的最大灵活性。通过调整特定于调试要求的触发位置,可最大程度地利用分配的缓存空间。

相关链接

分段缓存 (第 149页)

5.8.2. 不同采集模式之间的预填充写入行为的差异

不同的采集模式在运行 Signal Tap Logic Analyzer之后和任何触发条件发生之前采集不同数量的数据。

连续模式下的非分段缓存

运行在连续模式下的非分段缓存的配置中,在计算出任何触发条件之前,缓存必须装满采样数据。只有在缓存已满后,Signal Tap logic analyzer才开始通过 JTAG连接检索数据并计算触发条件。

如果执行 Stop Analysis,那么 Signal Tap会防止缓存在触发条件之前的第一次采集期间被转储(dumped)。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

189

Page 190: Intel Quartus Prime Standard Edition用户指南: 调试工具

具有存储限定的缓存(Buffers with Storage Qualification)

对于使用存储限定模式的缓存,Signal Tap Logic Analyzer 在将采样写入采集存储器的同时立即计算出所有触发条件。在数据集上使用任何存储限定条件时,此评估计算尤为重要。如果逻辑分析仪在计算任何触发条件之前等待采集完整缓存的数据,那么可能会错过触发条件。

如果一个触发器在指定数量的预触发数据发生之前激活,那么不管您指定的触发前数据量如何,Signal Tap Logic Analyzer都将开始使用触发后数据填充存储器。例如,如果将触发位置设置为50%,并将逻辑分析器设置为在处理器复位时触发,启动逻辑分析器,然后对目标系统上电,则触发激活。然而,逻辑分析器存储器仅包含触发后数据,而不包含任何触发前数据,因为触发事件的优先级高于触发前数据的采集。

5.8.2.1. 示例

连续数据采集和条件数据采集的图显示了连续模式下的非分段缓存和使用存储限定符的非分段缓存之间的差异。逻辑分析器波形的配置是基本触发条件,64位采样深度和 Post triggerposition 。

图 92. Signal Tap Logic Analyzer 连续数据采集

在连续数据采集中,在 Signal Tap Logic Analyzer触发激活之前 Trig1会在数据存中发生几次。在逻辑分析器计算出任何触发条件之前,缓存必须已满。触发条件发生后,逻辑分析器继续采集另外八个样本(12%的缓存,是由"post-trigger"位置定义的)。

图 93. Signal Tap Logic Analyzer条件数据采集

注释:

1. 有条件采集,存储始终使能,填充后计数。

2. Signal Tap Logic Analyzer在条件模式下使用非分段缓存进行重复模式的采集。逻辑分析器的配置是一个基本触发条件"Trig1"和 64位的采样深度。Trigger in条件是 Don't care,因此缓存采集所有样本。

在有条件采集中,逻辑分析器即可触发。由于是连续采集,逻辑分析器完成八个采本(或者 64的12%,采集缓存的样本容量)的采集。

5.8.3. 为比特码型创建助记符(Creating Mnemonics for Bit Patterns)

助记符表可以对一组比特码型(例如总线)分配一个有意义的名称。创建一个助记符表:

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

190

Page 191: Intel Quartus Prime Standard Edition用户指南: 调试工具

1. 右键点击 Signal Tap实例的 Setup或者 Data选项卡,然后点击Mnemonic TableSetup。

2. 通过输入比特码型集并指定表示每个码型的标签来创建助记符表。

3. 通过右键点击组将此表分配给一组信号,点击 Bus Display Format,然后选择助记符表。

4. 在 Setup选项卡上,通过右键点击 Trigger Conditions列中的一个条目并从分配给信号组的表中选择一个标签来创建一个具有有意义名称的基本触发。

在 Data选项卡上,如果采集的数据与分配的助记符表中包含的比特码型匹配,那么 Signal TapGUI使用相应的标签替换信号组数据,从而简化了对预期数据码型的视觉检查。

5.8.4. 使用插件的自动助记符

当使用一个插件将信号添加到.stp时,将自动创建所添加信号的助记符表,并将其分配给该插件中定义的信号。要手动使能这些助记符表,请右键单击信号或信号组的名称。在 Bus DisplayFormat快捷菜单上,然后单击与插件匹配的助记符表的名称。

例如, Nios II插件可帮助您在执行代码时监控设计的信号活动。如果通过设置逻辑分析器,基于.elf的数据触发 Nios II代码中的一个函数名称,那么您可以在触发器样本的 InstanceAddress信号组中看到此函数名称,并在 Disassembly信号组中看到相应的反汇编代码,如图13–52所示。触发器周围采集的数据样本被称为到触发器函数名称的偏移地址。

图 94. 当使用 Nios II插件时的 Data选项卡

5.8.5. 在设计中定位一个节点

当使用 Signal Tap Logic Analyzer在设计中发现一个错误源时,您可以使用节点定位功能在Intel Quartus Prime软件中的很多工具中定位此信号。这使您可以快速找到问题的根源,从而可以修改设计以纠正缺陷。要在其中一个 Intel Quartus Prime软件工具中或者设计文件中从 SignalTap Logic Analyzer定位一个信号,请在.stp中右键点击此信号,然后点击 Locate in <tool name >。

您可以使用以下工具从节点列表中定位一个信号:

• Assignment Editor

• Pin Planner

• Timing Closure Floorplan

• Chip Planner

• Resource Property Editor

• Technology Map Viewer

• RTL Viewer

• Design File

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

191

Page 192: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.8.6. 保存采集的数据

当保存数据采集时,Signal Tap Logic Analyzer将此数据存储在活动.stp中,Data Log将此采集作为一个日志条目添加到当前配置下。

当分析设置成 Auto-run mode时,Logic Analyzer将在 Data Log中创建一个单独的条目来存储每次发生触发时采集的数据。这使您可以查看每个触发事件的采集数据。

当 Logic Analyzer获取数据时一个日志的默认名称是基于时间戳的。最佳做法是使用更有意义的名称重命名数据日志。

日志的组织是分层的;Logic Analyzer将采集数据的类似日志分组到触发器集中。

相关链接

Data Log窗格 (第 156页)

5.8.7. 将采集的数据导出为其他文件格式

您可以将采集的数据导出为以下文件格式,以用于其他 EDA仿真工具:

• Comma Separated Values File (.csv)

• Table File (.tbl)

• Value Change Dump File (.vcd)

• Vector Waveform File (.vwf)

• Graphics format files (.jpg, .bmp)

要从 Signal Tap Logic Analyzer导出采集的数据,请在 File菜单上点击 Export,然后指定 FileName,Export Format和 Clock Period。

5.8.8. 创建一个 Signal Tap列表文件

.stp列表文件以文本格式包含逻辑分析器对触发事件采集的所有数据。

列表文件的每一行对应于缓存中的一个采集样本。列对应于该样本的每个采集信号或信号组的值。如果对采集的数据定义了助记符表,那么该表中的匹配条目将替换列表中的数值。

.stp列表文件与包含反汇编代码的插件结合使用时特别有用。您可以在触发事件的同一时间段查看指令代码的执行顺序。

要在 Intel Quartus Prime软件中创建一个.stp列表文件,请点击 File > Create/Update >Create Signal Tap List File。

相关链接

使用插件添加信号 (第 145页)

5.9. 其他功能

Signal Tap Logic Analyzer提供了并非特定于一个任务流程的可选功能。以下技术在特定情况下提供了优势。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

192

Page 193: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.9.1. 从设计实例创建 Signal Tap文件

除了对.stp文件的生成提供 GUI支持外, Intel Quartus Prime软件也支持从 HDL源文件中定义的逻辑 生成一个 Signal Tap 实例。此技术有助于通过以下方式修改运行时可配置的触发条件,获取数据以及通过 Signal Tap实用程序在数据日志上查看获取的数据。

5.9.1.1. 从一个设计实例创建一个.stp文件

要从设计中的参数化的 HDL实例生成一个.stp文件,请执行以下操作:

1. 打开或创建一个 Intel Quartus Prime工程,此工程包括 Signal Tap logic analyzer的一个或多个 HDL实例。

2. 点击 Processing > Start > Start Analysis & Synthesis。

3. 点击 File > Create/Update > Create Signal Tap File from DesignInstance(s)。

4. 对生成的.stp文件指定一个位置,然后点击 Save。

图 95. Create Signal Tap File from Design Instances对话框

注意:

如果您的工程包含部分重配置分区,那么 Create Signal Tap File from DesignInstance(s)对话框会显示工程中 PR分区的树状视图。从视图中选择一个分区,然后点击 Create Signal Tap file。生成的.stp文件包含对应 PR分区中所有的 HDL实例。生成的.stp文件不包含任何嵌套的部分重配置分区中的实例。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

193

Page 194: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 96. 对.stp文件生成选择分区

成功创建.stp文件之后会出现 Signal Tap Logic Analyzer。除运行时可配置的触发条件外,所有字段均为只读。

图 97. 生成的.stp文件

相关链接

• Create Signal Tap File from Design InstancesIn Intel Quartus Prime Help

• Custom Trigger HDL对象 (第 163页)

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

194

Page 195: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.9.2. 使用 Signal Tap MATLAB MEX函数采集数据

当MATLAB用于 DSP设计时,可以从 Signal Tap Logic Analyzer获取数据并通过调用内置在Intel Quartus Prime软件中的MATLAB MEX函数 alt_signaltap_run直接转换为MATLAB环境中的一个矩阵。如果在循环中使用MATLAB MEX函数,那么当在 Intel QuartusPrime软件环境中使用 Signal Tap时,您可以在相同的时间内执行尽可能多的采集。

注意: Windows*版本和 Linux版本的 Intel Quartus Prime软件中均提供 Signal Tap MATLAB MEX函数。此函数兼容于MATLAB Release 14 Original Release Version 7及后续版本。

设置 Intel Quartus Prime软件和MATLAB环境来执行 Signal Tap采集:

1. 在 Intel Quartus Prime软件中,创建一个.stp文件。

2. 在 Signal Tap Logic Analyzer Editor的 Data选项卡中的节点列表中,将信号和信号组组织成要在MATLAB矩阵中出现的顺序。

导入矩阵的每一列代表一个 Signal Tap采集样本,而每一行代表一个信号或一组信号,这些信号按照您在 Data标签中定义的顺序排列。

注意: Signal Tap Logic Analyzer采集并传输到MATLAB MEX函数的信号组的宽度限制为32个信号。要使用包含 32以上信号的总线或信号组的MATLAB MEX函数,请将该组分成不超过限制的较小组。

3. 保存.stp文件并编译您的设计。对器件进行编程并运行 Signal Tap Logic Analyzer以确保触发条件和信号采集正常工作。

4. 在MATLAB环境中,使用以下命令将 Intel Quartus Prime二进制目录添加到路径中:

addpath <Quartus install directory>\win

通过在MATLAB中输入以下命令(无需任何操作符)来查看MEX函数的帮助文件:

alt_signaltap_run

5. 使用MATLAB MEX函数打开与器件的 JTAG连接,运行 Signal Tap Logic Analyzer获取数据。数据获取完成后,关闭 JTAG连接。

使用以下命令打开 JTAG连接,开始获取采集的数据,直接将这些数据转入到一个称为 stp的MATLAB矩阵:

stp = alt_signaltap_run \('<stp filename>'[,('signed'|'unsigned')[,'<instance names>'[, \'<signalset name>'[,'<trigger name>']]]]);

采集数据时,作为MATLAB MEX函数的一个要求,您必须分配一个文件名,如<stp filename>。下表描述了其他MATLAB MEX功能选项:

表 70. Signal Tap MATLAB MEX函数选项

选项 使用 描述

signed

unsigned

'signed'

'unsigned'

signed选项将信号组转换为 32位二进制补码有符号整数。在Signal Tap Data选项卡中定义的信号组的MSB是符号位。unsigned选项将数据保持为无符号整数。默认值为 signed。

<instance name> 'auto_signaltap_0' 如果定义了多个实例,那么指定一个 Signal Tap实例。默认值为.stp中的第一个实例 auto_signaltap_0。

<signal set name><trigger name>

'my_signalset'

'my_trigger'

如果多个配置出现在.stp中,那么从 Signal Tap数据日志指定信号集和触发器。默认值是文件中的活动信号集和触发器。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

195

Page 196: Intel Quartus Prime Standard Edition用户指南: 调试工具

在数据获取期间,您可以使能或禁用详细模式(verbose mode)以查看逻辑分析仪的状态。请使用以下命令使能或者禁用详细模式(verbose mode):

alt_signaltap_run('VERBOSE_ON');-alt_signaltap_run('VERBOSE_OFF');

获取数据完成后,使用以下命令关闭 JTAG连接:

alt_signaltap_run('END_CONNECTION');

关于MATLAB中MATLAB MEX函数的使用的详细信息,请参考MATLAB Help。

5.9.3. 在实验室环境中使用 Signal Tap

您可以安装独立版本的 Signal Tap Logic Analyzer。此版本在实验室环境中工作站不满足完整Intel Quartus Prime安装要求的情况下特别有用,或者如果你没有完整安装 Intel QuartusPrime软件的许可的情况下也很有用。独立版本的 Signal Tap Logic Analyzer包含在其中,并要求 Intel Quartus Prime stand-alone Programmer,可从 Intel网站的下载页面获得。

5.9.4. 使用 Signal Tap Logic Analyzer进行远程调试

5.9.4.1. 使用本地 PC和 SoC进行调试

您可以使用 Signal Tap Logic Analyzer的 System Console对 Intel FPGA SoC进行远程调试。此方法需要一台本地 PC,一个现有的 TCP/IP连接,一个位于远程位置的编程器件和一个Intel FPGA SoC。

相关链接

通过 TCP/IP进行远程硬件调试

5.9.4.2. 使用本地 PC和远程 PC进行调试

您可以使用 Signal Tap Logic Analyzer对运行在与远程 PC连接的器件上的设计进行调试。

要执行远程调试,则必须满足以下设置:

• 安装在本地 PC上的 Intel Quartus Prime软件

• 安装在远程 PC上的独立版本的 Signal Tap Logic Analyzer或者完整版本的 Intel QuartusPrime软件

• 在远程位置编程硬件连接到 PCB上的器件

• TCP/IP协议连接

5.9.4.2.1. 设备设置

1. 在远程位置的 PC上,安装独立版本的 Signal Tap Logic Analyzer,包含在 Intel QuartusPrimestand-alone Programmer中,或者完整版本的 Intel Quartus Prime软件。

2. 将远程计算机连接到 Intel编程硬件,例如或者 Intel FPGA Download Cable 。

3. 在本地 PC上,安装完整版本的 Intel Quartus Prime软件。

4. 使用 TCP/ IP协议通过 LAN将本地 PC连接到远程 PC。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

196

Page 197: Intel Quartus Prime Standard Edition用户指南: 调试工具

5.9.5. 在具备配置比特流安全性的器件中使用 Signal Tap Logic Analyzer

某些器件系列在配置过程中使用 on-device AES解密引擎来支持比特流解密。您仍然可以使用Signal Tap Logic Analyzer分析 FPGA内的功能数据。但是请注意,在将安全密钥编程到器件中后无法进行 JTAG配置。

Intel FPGA建议您在设计的原型和调试阶段使用未加密的比特流。使用未加密的比特流,可以在调试周期内通过 JTAG连接生成新的编程文件并重新配置器件。

如果必须使用包含加密比特流的 Signal Tap Logic Analyzer,那么要首先使用 Passive Serial(PS),Fast Passive Parallel (FPP)或者 Active Serial (AS)配置模式通过一个加密配置文件对器件进行配置。设计必须至少包含一个 Signal Tap Logic Analyzer的实例。使用一个 Signal TapLogic Analyzer实例对 FPGA进行配置之后,在 Intel Quartus Prime软件中打开 Signal TapLogic Analyzer时,然后扫描链并准备通过 JTAG连接获取数据。

5.9.6. 监控 Signal Tap Logic Analyzer使用的 FPGA资源

Signal Tap Logic Analyzer有一个内置的资源估算器,可计算每个逻辑分析器实例使用的逻辑资源和存储器。此外,由于逻辑分析器最需要的片上资源是存储器使用,因此资源估算器会根据上次编译的结果,报告设计中总 RAM使用量与可用 RAM总量的比率。如果出现可能的“no-fit”,那么资源估算器会发出警告。

您可以在 Signal Tap Logic Analyzer Editor的 Instance Manager窗格的列中查看资源使用情况(按照实例和总数)。当了解到设计的资源不足时,请使用此功能。

资源使用量估算器报告的逻辑单元值可能与实际资源使用量相差多达 10%。

5.10. 设计实例:使用 Signal Tap Logic Analyzers

本实例中的系统包含很多组件,包括 Nios 处理器,直接存储器访问(DMA)控制器,片上存储器以及与外部 SDRAM存储器进行连接的接口。按下按钮后,处理器将启动一个 DMA传输,您可以使用 Signal Tap Logic Analyzer对 DMA传输进行分析。在此实例中, Nios 处理器从片上存储器执行一个简单的 C程序,并等待您按下按钮。

相关链接

AN 446: Debugging Nios II Systems with the Signal Tap Embedded Logic Analyzerapplication note

5.11. 自定义触发流程应用示例

Signal Tap Logic Analyzer中的自定义触发流程对于组织多个触发条件以及对采集缓存进行精确控制最有用。本节提供了使用 Signal Tap Logic Analyzer定义一个自定义触发流程的两个应用示例。通过使用状态显示模式 All states in one window可以轻松地将这两个示例复制并直接粘贴到状态机描述框中。

相关链接

片上调试设计示例网站

5.11.1. 设计示例 1:指定一个自定义触发位置

对采集缓存的操作可以接受一个可选的后计数参数。该后计数参数使您可以为采集缓存中的每个分段定义一个自定义触发位置。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

197

Page 198: Intel Quartus Prime Standard Edition用户指南: 调试工具

该示例说明如何将触发位置应用于采集缓存中的所有分段。该示例描述了一个将采集缓存分为四个分段的触发流程。如果每个采集分段的深度为 64个样本,那么每个缓存的触发位置在 sample#34上。所有分段填充一次后,采集停止。

if (c1 == 3 && condition1) trigger 30;else if ( condition1 )begin segment_trigger 30; increment c1;end

每个分段都充当一个非分段缓存,使用信号值连续更新存储器内容。

Data选项卡将停止缓存之前的最后一次采集显示为受影响的分段中的最后一个样本编号。然后,通过 N – post count fill定义受影响分段中的触发位置,其中 N是每个片段的样本数。

图 98. 指定一个自定义触发位置

0

1

1

111

1

1

11

1 11

1

1

000

0

0

0

0 0

0

Trigger

Sample #1

Post Count

Last Sample

5.11.2. 设计示例 2:当在 triggercond2和 triggercond3之间 triggercond1出现十次时触发

自定义触发流程描述通常可用于在触发采集缓存之前对一序列事件进行计数。该示例显示了这种示例流程。本示例使用了在 Signal Tap Setup选项卡中配置的三个基本触发条件。

当 condition1出现在 condition3之后并且在 condition3之前出现十次时,此实例触发采集缓冲器。如果 condition3在 condition1重复十次之前出现,那么状态机转换成一个永久等待状态。

state ST1:if ( condition2 )begin reset c1; goto ST2;endState ST2 :if ( condition1 ) increment c1;

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

198

Page 199: Intel Quartus Prime Standard Edition用户指南: 调试工具

else if (condition3 && c1 < 10) goto ST3;else if ( condition3 && c1 >= 10) trigger;ST3:goto ST3;

5.12. Signal Tap脚本支持

Intel Quartus Prime支持脚本环境中的自动化 Signal Tap过程,例如 Tcl脚本或通过quartus_stp可执行文件。有关脚本命令选项的详细信息,请参考 Intel Quartus PrimeCommand-Line and Tcl API Help浏览器。要运行 Help浏览器,请在命令提示符下键入quartus_sh --qhelp 。

相关链接

• Tcl ScriptingIntel Quartus Prime Standard Edition用户指南:脚本

• Command Line ScriptingIntel Quartus Prime Standard Edition用户指南:脚本

5.12.1. Signal Tap命令行选项

通过 quartus_stp可执行文件,可以使用以下选项:

表 71. quartus_stp命令行选项

选项 使用 描述

--stp_file <stp_filename> 必需 指定.stp文件的名称。

--enable 可选 在工程的.qsf文件中将 ENABLE_SIGNALTAP选项设置成 ON,因此 Signal TapLogic Analyzer在下一次编译中运行。如果忽略此选项,那么 Intel Quartus Prime软件使用.qsf文件中ENABLE_SIGNALTAP的当前值。

将后续 Signal Tap assignments写入到.qsf文件中的.stp。如果.qsf文件未指定.stp文件,那么必须使用--stp_file选项。

--disable 可选 在工程的.qsf文件中,将 ENABLE_SIGNALTAP选项设置成 OFF,因此 SignalTap Logic Analyzer在下一次编译中不会运行。如果忽略--disable选项,那么 Intel Quartus Prime软件使用.qsf文件中ENABLE_SIGNALTAP的当前值。

--create_signaltap_hdl_file

可选 创建一个代表 Signal Tap实例的.stp文件。您必须使用--stp_file选项来创建一个.stp。

等同于 Intel Quartus Prime软件中的 Create Signal Tap File from DesignInstances命令。

实例

第一个示例显示了如何在命令行使用 Signal Tap Logic Analyzer编译一个设计。

quartus_stp filtref --stp_file stp1.stp --enablequartus_map filtref --source=filtref.bdf --family=CYCLONEquartus_fit filtref --part=EP1C12Q240C6 --fmax=80MHz --tsu=8nsquartus_asm filtref

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

199

Page 200: Intel Quartus Prime Standard Edition用户指南: 调试工具

quartus_stp --stp_file stp1.stp --enable命令创建 QSF变量并指示 IntelQuartus Prime软件编译 stp1.stp文件。--enable选项必须应用于 Signal Tap LogicAnalyzer来编译到您的设计中。

下面示例在使用 IP Catalog构建 Signal Tap Logic Analyzer实例后创建一个新的.stp。

quartus_stp filtref --create_signaltap_hdl_file --stp_file stp1.stp

5.12.2. 从命令行采集数据

quartus_stp可执行文件支持 Tcl接口,该接口使您能够在不运行 Intel Quartus Prime GUI的情况下采集数据。

注意: 您不能从 Intel Quartus Prime软件中的 Tcl console中执行 Signal Tap Tcl命令。

要执行一个包含 Signal Tap Logic Analyzer Tcl命令的 Tcl脚本,请使用:

quartus_stp -t <Tcl file>

实例-25: 连续采集数据

此摘录显示了可用于连续采集数据的命令。一旦采集满足触发条件 e,Signal Tap Logic Analyzer就开始采集数据并将数据存储在数据日志中。

# Open Signal Tap sessionopen_session -name stp1.stp

### Start acquisition of instances auto_signaltap_0 and### auto_signaltap_1 at the same time

# Calling run_multiple_end starts all instancesrun_multiple_start

run -instance auto_signaltap_0 -signal_set signal_set_1 -trigger \trigger_1 -data_log log_1 -timeout 5run -instance auto_signaltap_1 -signal_set signal_set_1 -trigger \trigger_1 -data_log log_1 -timeout 5

run_multiple_end

# Close Signal Tap sessionclose_session

相关链接

::quartus::stpIn Intel Quartus Prime Help

5.13. 使用 Signal Tap Logic Analyzer进行设计调试修订历史

本章节的修订历史如下:

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

200

Page 201: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 • Intel Quartus Prime Standard Edition User Guide中的初始版本。• 将主题 Untappable Signals重命名为 Signals Unavailable for Signal Tap

Debugging。

2017.11.06 17.1.0 • 澄清了有关 Data Log窗格的信息。• 更新了图:Data Log,并且重命名为 Simple Data Log。• 增添了图:Accessing the Advanced Trigger Condition Tab。

2017.05.08 17.0.0 • 增添了 Open Standalone Signal Tap Logic Analyzer GUI。• 更新了图 Create Signal Tap File from Design Instance(s)。

2016.10.31 16.1.0 • 增添了 Create SignalTap II File from Design Instance(s)。• 删除了对不支持的 Talkback 功能的引用。

2016.05.03 16.0.0 • 增添了 Specifying the Pipeline Factor• 增添了 Comparison Trigger Conditions

2015.11.02 15.1.0 将 Quartus II更改成 Intel Quartus Prime 。

2015.05.04 15.0.0 在表 SignalTap II Logic Analyzer Features and Benefits中增添了 FloatingPoint Display Format的内容。

2014.12.15 14.1.0 更新了 Fitter Settings,Analysis & Synthesis Settings和 Physical SynthesisOptimizations to Compiler Settings的位置。

2014年 12月 14.1.0 • 增加了MAX 10作为支持的器件。• 删除了 Full Incremental Compilation设置和 Post-Fit (Strict)网表类型设置信息。

• 从"Using Incremental Compilation with the SignalTap II Logic Analyzer"部分删除了过时的 GUI图像。

2014年 6月 14.0.0 • DITA转换。• 使用 IP Catalog和参数编辑器内容替换了MegaWizard Plug-In Manager and

Megafunction内容。• 增添了 custom trigger HDL object,Incremental Route with Rapid

Recompile和 nested groups with Basic OR的流程。• GUI变更:工具栏,拖动到缩放,禁用/启用实例,触发日志时间戳。

2013年 11月 13.1.0 删除了 HardCopy材料。添加了有关使用 DS-5工具进行交叉触发的部分,并添加了白皮书 01198的链接。添加了有关远程调试 Altera SoC的部分,并添加了应用笔记693的链接。更新了对MEX功能的支持。

2013年 5月 13.0.0 • 添加了将基于状态的流程用于具有单独触发条件的分段缓存的建议,有关基本 OR触发条件的信息以及硬核处理器系统(HPS)外部触发。

• 更新了第 13-17页的“分段缓存”,第 13-21页的条件模式,第 13-16页的创建基本触发条件以及第 13-48页的使用外部触发。

2012年 6月 12.0.0 更新了第 13-16页上的图 13-5和第 13-10页上的的“Adding Signals to theSignalTap II File”。

2011年 11月 11.0.1 模板更新。

少量编辑更新。

2011年 5月 11.0.0 更新了对独立版本的 SignalTap II软件的要求。

2010年 12月 10.0.1 更改为新文档模板。

2010年 7月 10.0.0 • 在“View, Analyze, and Use Captured Data”部分增添了新的采集缓存内容。

• 增添了在编程器件中生成十六进制 CRC值的脚本示例。• 为重复的程序内容创建了对 Quartus II Help的交叉引用。

继续...

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

201

Page 202: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2009年 11月 9.1.0 内容无变化。

2009年 3月 9.0.0 • 更新了表 13–1。• 更新了第 13–45页上的“Using Incremental Compilation with the

SignalTap II Logic Analyzer”。• 添加了表 13-33。• 做少量的编辑修改。

2008年 11月 8.1.0 针对 Quartus II 8.1发布进行的更新:• 在第 14-25页上增添了“Using the Storage Qualifier Feature”部分• 在第 14-36页上的“Trigger Condition Flow Control”部分增添了

start_store和 stop_store命令的描述

• 在第 14-63页上增添了新的章节“Runtime Reconfigurable Options”

2008年 5月 8.0.0 针对 Quartus II 8.0进行了更新:• 在第 14-24页上添加了“Debugging Finite State machines”• 编录了各种 GUI可用性增强功能,包括对资源估算器,总线查找功能的改进以及在基于状态的触发流控制选项卡中对计数器和标志资源的动态显示更新

• 在第 14–16页上添加了“Capturing Data Using Segmented Buffers”• 添加了到引用文档的超链接

• 少量编辑更新

相关链接

文档存档关于之前版本的 Intel Quartus Prime Handbook,请搜索文档存档。

5. 使用 Signal Tap逻辑分析仪进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

202

Page 203: Intel Quartus Prime Standard Edition用户指南: 调试工具

7. 使用外部逻辑分析器进行在系统调试(In-System DebuggingUsing External Logic Analyzers)

7.1. 关于 Intel Quartus Prime Logic Analyzer Interface

Intel Quartus Prime Logic Analyzer Interface (LAI)使您的设计在 Intel支持的器件上全速运行的同时使用一个外部逻辑分析器和最少数量的 Intel支持的器件 I/O管脚对内部信号的行为进行检查。

LAI将一大组内部器件信号连接到少量的输出管脚上。您可以将这些输出管脚连接到外部逻辑分析器来进行调试。在 Intel Quartus Prime LAI中,内部信号被分组在一起,分配给一个用户可配置的多路复用器,然后输出到 Intel支持的器件上的可用 I/O管脚中。内部信号与输出管脚之间没有一对一的关系, Intel Quartus Prime LAI使您能够将许多内部信号映射到较少数量的输出管脚上。能够映射到输出管脚的内部信号的确切数量取决于 Intel Quartus Prime LAI中的多路复用器设置。

注意: 在本文档中使用的术语“逻辑分析器(logic analyzer)”既包括逻辑分析器,也包括配备有数字通道的示波器,通常称为混合信号分析器或MSO。

LAI不支持 Hard Processor System (HPS) I/O。

相关链接

Device Support Center

7.2. 选择一个逻辑分析器

Intel Quartus Prime软件提供以下两种通用的片上调试工具,用于调试设计中的大量 RTL信号:

• The Signal Tap Logic Analyzer

• 一个外部逻辑分析器,可以使用 Intel Quartus Prime LAI连接到 Intel支持的器件中的内部信号

表 72. 比较 Signal Tap Logic Analyzer与 Logic Analyzer Interface

特性 描述 推荐的 Logic Analyzer

样本深度 您可以使用一个外部逻辑分析器访问更大的样本深度。在Signal Tap Logic Analyzer中,最大样本深度设置为 128Kb(这是一种器件限制)。但是,使用外部逻辑分析器时却没有器件限制,因此可提供更大的样本深度。

LAI

调试时序问题 使用外部逻辑分析器可以访问“timing”模式,使您能够调试组合的数据流。

LAI

性能 当使用 Signal Tap Logic Analyzer时,用于布局布线的资源是有限的。外部逻辑分析器添加了最少逻辑,从而消除了布局布线的资源限制。

LAI

继续...

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 204: Intel Quartus Prime Standard Edition用户指南: 调试工具

特性 描述 推荐的 Logic Analyzer

Triggering Capability Signal Tap Logic Analyzer提供的触发功能可与外部逻辑分析器相媲美。

LAI或者 Signal Tap

输出管脚的使用 使用 Signal Tap Logic Analyzer时不需要其他输出管脚。使用外部逻辑分析器需要使用额外的输出管脚。

Signal Tap

采集速度 使用 Signal Tap Logic Analyzer,您能够以 200 MHz以上的速度采集数据。您可以使用外部逻辑分析仪实现相同的采集速度;但是,您必须考虑信号完整性问题。

Signal Tap

相关链接

系统调试工具概述 (第 8页)

7.2.1. 所需组件

要使用 LAI进行分析,以下组件是必需的:

• Intel Quartus Prime 15.1或更新版本

• 被测器件

• 外部逻辑分器

• Intel FPGA通信电缆

• 用于连接 Intel支持的器件和外部逻辑分析器的电缆

图 99. LAI和硬件设置

JTAG

(1)

(2)

FPGA

Connected toUnused FPGA Pins

LAI

FPGA ProgrammingHardware Quartus Prime Software

External Logic AnalyzerBoard

注释:

1. 使用一个加载了 Intel Quartus Prime软件的计算机,通过 JTAG端口进行 LAI的配置和控制。

2. 使用一个第三方供应商提供的逻辑分析仪器通过 JTAG端口进行 LAI的配置和控制。提供的支持因供应商而异。

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

204

Page 205: Intel Quartus Prime Standard Edition用户指南: 调试工具

7.3. 使用 LAI的流程

图 100. LAI工作流程

Configure Logic AnalyzerInterface File

Create New LogicAnalyzer Interface File

Compile Project

Program Device

Control Output Pin

Debug Project

Start the Quartus Prime Software

注释:

1. 使用一个加载了 Intel Quartus Prime软件的计算机,通过 JTAG端口进行 LAI的配置和控制。

2. 使用一个第三方供应商提供的逻辑分析仪器通过 JTAG端口进行 LAI的配置和控制。提供的支持因供应商而异。

7.3.1. 定义 Logic Analyzer Interface的参数

Logic Analyzer Interface Editor使您能够定义 LAI的参数。

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

205

Page 206: Intel Quartus Prime Standard Edition用户指南: 调试工具

• 点击 Tools > Logic Analyzer Interface Editor。

图 101. Logic Analyzer Interface Editor

• 在 Setup View列表中,选择 Core Parameters。

• 指定 LAI实例的参数。

相关链接

LAI核心参数 (第 209页)

7.3.2. 将 LAI文件管脚映射到可用的 I/O管脚

对 LAI分配管脚位置:

1. 在 Setup View列表中选择 Pins

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

206

Page 207: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 102. 映射 LAI文件管脚

2. 双击Name列中保留管脚旁边的 Location列,然后从列表中选择一个管脚。

3. 右键点击所选管脚,然后在 Pin Planner中定位此管脚。

相关链接

Managing Device I/O PinsIn Intel Quartus Prime Standard Edition Handbook Volume 2

7.3.3. 将内部信号映射到 LAI bank

在 Core Parameters设置页面中指定要使用的 bank数量后,必须对 LAI中的每个 bank分配内部信号。

1. 点击 Setup View箭头,然后选择 Bank n或者 All Banks。

2. 要查看所有 bank连接,请点击 Setup View,然后选择 All Banks。

3. 在进行 bank分配之前,右键点击 Node列表,然后选择 Add Nodes打开Node Finder。

4. 查找要获取的信号。

5. 将信号从Node Finder对话框拖入到 bank Setup View中。

添加信号时,对非增量布线实例使用 Signal Tap: pre-synthesis,对增量布线实例使用Signal Tap: post-fitting

在您继续在 Setup View中进行分配(make assignments)的同时,Logical View窗格中的 LAI的示意图开始反映所做的更改。

6. 继续在 Setup View中对每个 bank进行分配(make assignments),直到添加全部要获取的内部信号。

相关链接

Node Finder CommandIn Intel Quartus Prime Help

7.3.4. 编译 Intel Quartus Prime工程

保存.lai文件后,将出现一个对话框,提示您为活动工程使能 Logic Analyzer Interface实例。或者,您可以在 Global Project Settings对话框中定义工程使用的.lai文件。指定.lai文件的名称后,编译您的工程。

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

207

Page 208: Intel Quartus Prime Standard Edition用户指南: 调试工具

要验证是否通过您的工程正确地编译了 Logic Analyzer,请在 Project Navigator中展开实体层次结构。如果 LAI是通过设计编译的,那么 sld_hub和 sld_multitap实体会出现在 ProjectNavigator中。

图 103. Project Navigator

7.3.5. 使用 LAI对 Intel支持的器件进行编程

编译完成后,在使用 LAI之前必须配置 Intel支持的器件。

您可以将 LAI与 JTAG链中的多个器件一起使用。您的 JTAG链还可以包含不支持 LAI,non-Intel和符合 JTAG的器件的器件。要在多个 Intel支持的器件中使用 LAI,请创建一个.lai文件并为每个要进行分析的 Intel支持的器件配置一个.lai文件。

7.4. 在运行期间控制活动 bank

对 Intel支持的器件编程后,您可以控制将哪一个 bank映射到保留的.lai文件输出管脚。要控制映射哪一个 bank,请在 Logical View的原理图中,右键点击相应 bank,然后点击 ConnectBank。

图 104. 配置 bank

7.4.1. 获取 Logic Analyzer上的数据

要获取逻辑分析仪上的数据,必须在器件与外部逻辑分析仪之间建立连接。有关此过程的更多信息以及有关如何在调试头(debugging header)和逻辑分析仪之间建立连接的指导,请参考逻辑分析仪的文档。

7.5. 使用 LAI及增量编译

Intel Quartus Prime软件中的 Incremental Compilation功能使您能够保留设计的综合和拟合(synthesis and fitting)结果。如果您仅修改设计的一部分,或者希望保留先前编译的优化结果,那么此功能可以减少编译时间。

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

208

Page 209: Intel Quartus Prime Standard Edition用户指南: 调试工具

由于 LAI仅包含设计的一小部分,因此增量编译有助于最大程度地减少编译时间。当您仅更改设计的一小部分时,增量编译效果最佳。通过多次编译更改.lai文件时,增量编译可准确表示设计行为。

7.6. LAI核心参数

下表列出了 LAI文件的核心参数:

表 73. LAI文件核心参数

参数 范围值 描述

Pin Count 1 - 255 LAI专用的管脚数量。您必须将管脚连接到板上的调试接头。在器件内,Compiler将每个管脚映射到用户可配置的内部信号数量。

Bank Count 1 - 255 您要映射到每个管脚的内部信号数量。

例如,值为 8的 Bank Count表示八个内部信号连接到每个管脚。

Output/Capture Mode 指定采集模式。这两个选项是:

• Combinational/Timing—此采集模式使用外部逻辑分析仪的内部时钟来确定何时采样数据。

此采集模式要求您手动确定要调试和验证系统的采样频率,因为数据采样与Intel支持的器件异步。如果要测量时序信息(如 channel-to-channel skew),那么此模式有效。有关采样频率及其运行速度的更多信息,请参考外部逻辑分析仪的数据表。

• Registered/State—此采集模式确定何时从被测系统上的信号进行采样。因此,数据样本与 Intel支持的器件同步。Registered/State模式提供 Intel支持的器件运行时的功能视图在运行时。当您验证设计的功能性时,此模式有效。

Clock 指定样本时钟。设计中的任何信号都可用作样本时钟。但是,为了获得最佳结果,请使用工作频率足够快的时钟对要获取的数据进行采样。

注意: 仅当Output/Capture Mode设置为 Registered State时,Clock参数才可用。

Power-Up State 对指定用于 LAI的管脚的上电状态进行设定。您可以对所有管脚选择三态(tri-stated),或选择使能的特定 bank。

相关链接

定义 Logic Analyzer Interface的参数 (第 205页)

7.7. 使用外部逻辑分析器进行在系统调试修订历史(In-System DebuggingUsing External Logic Analyzers Revision History)

本章节的修订历史如下:

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 Intel Quartus Prime Standard Edition User Guide中的初始版本。

2018.05.07 18.0.0 • 将 LAI File Core Parameters从 Configuring the File Core Parameters移至其主题下,并添加了链接。

2017.05.08 17.0.0 • 更新了图:LAI Instance in Compilation Report。

2015.11.02 15.1.0 将 Quartus II更改成 Intel Quartus Prime。

继续...

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

209

Page 210: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2014年 6月 14.0.0 • Dita转换。• 增添了了有关 HPS I/O支持的限制

2012年 6月 12.0.0 删除了调查链接

2011年 11月 10.1.1 更改为新的文档模板

2010年 12月 10.1.0 • 少量的编辑更新

• 更改为新的文档模板

2010年 8 月 10.0.1 纠正了链接

2010年 7月 10.0.0 • 创建了 Intel Quartus Prime Help的链接• 编辑更新

• 删除了 Referenced Documents

2009年 11月 9.1.0 • 删除了对 APEX器件的引用• 编辑更新

2009年 3月 9.0.0 • 少量的编辑更新

• 删除了图 15–4,15–5和 15–11(8.1版本)

2008年 11月 8.1.0 更改成 8-1/2 x 11页面大小。无内容变更。

2008年 5月 8.0.0 • 更新了第 15-3页中的器件支持列表。• 在本章中添加了指向参考文档的链接

• 添加了“Referenced Documents”• 添加了对 Section V. In-System Debugging的引用• 少量的编辑更新

相关链接

文档存档关于之前版本的 Intel Quartus Prime Handbook,请搜索文档存档。

7. 使用外部逻辑分析器进行在系统调试(In-System Debugging Using External Logic Analyzers)

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

210

Page 211: Intel Quartus Prime Standard Edition用户指南: 调试工具

8. 存储器和常量的在系统修改(In-System Modification ofMemory and Constants)

Intel Quartus Prime In-System Memory Content Editor (ISMCE)支持在运行时通过 JTAG接口查看和更新存储器和常量。通过在设计运行时对 FPGA中存储器内容的变更进行测试,可以识别,测试和解决问题。

从存储器和常量中读取数据的功能可以帮助您识别问题的根源,写入功能使您能够通过写入期望的数据来避开功能性问题。

当 In-System Memory Content Editor与 Signal Tap Logic Analyzer一起使用时,您可以在硬件实验室(hardware lab)中查看和调试设计。

相关链接

• 系统调试工具概述 (第 8页)

• 使用 Signal Tap逻辑分析仪进行设计调试 (第 137页)

• Megafunctions/LPMList of the types of memories and constants currently supported by the IntelQuartus Prime software

8.1. 设置在系统可修改的存储器和常量

当存储器或常量指定为运行时可修改的时, Intel Quartus Prime软件会更改默认实现。单端口RAM转换为双端口 RAM,并在寄存器而不是查找表(LUT)中实现常量。这些变更可在不更改设计功能的情况下使能运行时修改。

如果直接使用 VHDL或者 Verilog HDL中的端口和参数例化一个存储器或者恒定 IP内核,那么请按如下所示添加或者修改 lpm_hint参数:

在 VHDL代码中,添加:

lpm_hint => "ENABLE_RUNTIME_MOD = YES, INSTANCE_NAME = <instantiation name>";

在 Verilog HDL代码中,添加:

defparam <megafunction instance name>.lpm_hint = "ENABLE_RUNTIME_MOD = YES, INSTANCE_NAME = <instantiation name>";

8.2. 运行 In-System Memory Content Editor

In-System Memory Content Editor包含三个单独的窗格:Instance Manager,JTAGChain Configuration和Hex Editor。

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 212: Intel Quartus Prime Standard Edition用户指南: 调试工具

Instance Manager窗格显示了 FPGA器件中所有可用的运行时可修改的存储器和常量。JTAGChain Configuration窗格使您能够对 FPGA进行编程并在链中选择要更新的 Intel FPGA器件。

使用 In-System Memory Content Editor不要求您打开工程。In-System Memory ContentEditor通过扫描 JTAG链并将查询发送到在 JTAG Chain Configuration窗格中选择的特定器件来检索运行时可配置存储器和常量的所有实例。

如果在 JTAG链有多个包含在系统可配置存储器和常量的器件,那么可以在 Intel Quartus Prime软件中运行多个 In-System Memory Content Editor来访问每个器件中的存储器和常量。每个In-System Memory Content Editor能够访问单一器件中的在系统存储器和常量。

8.2.1. Instance Manager

您可以使用 Instance Manager窗格读取和写入在系统存储器。当扫描 JTAG链以更新Instance Manager窗格时,可以查看设计中所有运行时可修改存储器和常量的列表。Instance Manager显示列表中每个单元的 Index,Instance,Status,Width,Depth,Type和Mode。

注意: 除了 Instance Manager窗格中的按钮外, 也可以从 Processing菜单选择命令或者右击Instance Manager窗格或Hex Editor窗格中的菜单对数据进行读写。

每个实例的状态也显示在 Instance Manager窗格中每个条目的旁边。状态指示实例是否是Notrunning,Offloading data或者 Updating data。运行状况监视器(health monitor)提供有关编辑器状态的信息。

Intel Quartus Prime软件对每个在系统存储器(in-system memory)分配不同的索引号和常量,以区分同一存储器或常量函数的多个实例。请查看 Compilation Report的 In-SystemMemory Content Editor Settings部分将一个索引号与其对应的实例 ID相匹配。

相关链接

Instance Manager PaneIn Intel Quartus Prime Help

8.2.2. 对Hex Editor窗格中显示的数据进行编译

通过直接在编辑器中键入值或导入存储器文件,可以编辑从Hex Editor中显示的在系统存储器和常量读取的数据。

8.2.3. 导入和导出存储器文件

In-System Memory Content Editor使您能够从 In-System Updating功能使能的存储器导入和导出数据值。从数据文件进行导入使您能够快速加载整个存储器映像。导出到数据文件使您能够保存存储器的内容以备将来使用。

8.2.4. 脚本支持

Intel Quartus Prime软件使您能够在脚本化流程中对存储器和常量执行运行时修改。

您可以从 HDL代码使存储器和常量实例变成运行时可修改的。此外,In-System MemoryContent Editor支持通过 insystem_memory_edit包中的 Tcl命令进行存储器读写操作。

8. 存储器和常量的在系统修改(In-System Modification of Memory and Constants)

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

212

Page 213: Intel Quartus Prime Standard Edition用户指南: 调试工具

相关链接

• Tcl ScriptingIn Intel Quartus Prime Standard Edition Handbook Volume 2

• Command Line ScriptingIn Intel Quartus Prime Standard Edition Handbook Volume 2

• API Functions for TclIn Intel Quartus Prime Help

8.2.5. 使用 In-System Memory Content Editor对器件进行编程

编译后,必须在 FPGA中对设计进行编程。您可以使用 JTAG Chain Configuration Pane在 In-System Memory Content Editor中对器件进行编程。

8.2.6. 示例:使用 In-System Memory Content Editor和 Signal Tap LogicAnalyzer

以下示例描述了如何使用 In-System Updating of Memory and Constants功能和 Signal TapLogic Analyzer有效地调试设计。您可以通过 JTAG接口同时使用 In-System Memory ContentEditor和 Signal Tap Logic Analyzer。

示例:完成 FPGA设计后,您发现 FIR滤波器设计的特性与预期不符。

1. 要找到问题的根源,请将所有的 FIR滤波器系数更改为在系统可修改的,然后例化 Signal TapLogic Analyzer。

2. 使用 Signal Tap Logic Analyzer布线并触发内部设计节点,您会发现 FIR滤波器在预期截止频率(cutoff frequency)范围之外起作用。

3. 使用 In-System Memory Content Editor,您可以检查 FIR滤波器系数的正确性。读取每个系数后,您会发现其中一个系数不正确。

4. 由于系数是在系统可修改的,因此通过 In-System Memory Content Editor使用正确的数据对系数进行更新。

在此示例中,您可以使用 In-System Memory Content Editor以及 Signal Tap LogicAnalyzer快速找到问题的根源。您还可以在修改设计源文件之前通过更改系数值来验证器件的功能。

您也可以使用 In-System Memory Content Editor修改系数以改变 FIR滤波器的特性,例如:滤波器衰减,过渡带宽,截止频率和开窗功能。

8.3. 存储器和常量的在系统修改修订历史

本章节的修订历史如下:

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 Intel Quartus Prime Standard Edition User Guide中的初始版本。

2018.05.07 18.0.0 • 删除了过时的示例。

2015.11.02 15.1.0 将 Quartus II更改成 Intel Quartus Prime。

2014年 6月 14.0.0 • Dita转换。• 删除了对宏功能的引用,并替换为 IP core。

继续...

8. 存储器和常量的在系统修改(In-System Modification of Memory and Constants)

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

213

Page 214: Intel Quartus Prime Standard Edition用户指南: 调试工具

文档版本 Intel QuartusPrime版本

修订内容

2012年 6月 12.0.0 删除了调查链接。

2011年 11月 10.0.3 模板更新。

2010年 12月 10.0.2 更改为新的文档模板。内容无变化。

2010年 8 月 10.0.1 更正的链接。

2010年 7月 10.0.0 • 插入了 Intel Quartus Prime Help的链接• 删除参考文档部分。

2009年 11月 9.1.0 • 删除对 APEX器件的引用• 样式变更

2009年 3月 9.0.0 内容无变更。

2008年 11月 8.1.0 更改成 8-1/2 x 11页面大小。无内容变更。

2008年 5月 8.0.0 • 在第 16-1页上添加了 Section V. In-System Debugging in volume 3 of theIntel Quartus Prime Handbook的引用

• 删除了对Mercury器件的引用,因为它现在被视为“Mature”器件• 添加了指向参考文档的链接

• 少量的编辑更新

相关链接

文档存档关于之前版本的 Intel Quartus Prime Handbook,请搜索文档存档。

8. 存储器和常量的在系统修改(In-System Modification of Memory and Constants)

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

214

Page 215: Intel Quartus Prime Standard Edition用户指南: 调试工具

9. 使用 In-System Sources and Probes进行设计调试

Signal Tap Logic Analyzer and Signal Probe使您能够在运行时读取或“tap”内部逻辑信号,作为调试逻辑设计的一种方法。

传统的调试技术通常涉及使用外部码型生成器来执行逻辑,并使用逻辑分析仪来研究运行期间的输出波形。

手动驱动设计中的任何内部信号时都可以使调试周期更有效,这使您能够执行以下操作:

• 强制在 Signal Tap Logic Analyzer中设置的触发条件的发生

• 创建简单的测试向量来进行设计,而无需使用外部测试设备

• 通过 JTAG链动态控制运行时控制信号

Intel Quartus Prime软件中的 In-System Sources and Probes Editor扩展了验证更加的范围, 使您能够轻松控制任何内部信号,并提供完全动态的调试环境。与 Signal Tap LogicAnalyzer或者 Signal Probe一起使用,In-System Sources and Probes Editor可提供了一个强大的调试环境,在此调试环境中可以产生促进因素并获得逻辑设计的响应。

Virtual JTAG IP core和 In-System Memory Content Editor还使您能够将虚拟输入驱动到设计中。 Intel Quartus Prime软件提供了多种片上调试工具。

In-System Sources and Probes Editor由 ALTSOURCE_PROBE IP内核和一个在运行时控制ALTSOURCE_PROBE IP内核实例的接口组成。每个 ALTSOURCE_PROBE IP内核实例都提供源输出端口和探针输入端口,其中源端口驱动所选信号,而探针端口采样所选信号。编译设计时,ALTSOURCE_PROBE IP内核会建立一个寄存器链,以驱动或采样逻辑设计中的选定节点。在运行期间,In-System Sources and Probes Editor使用 JTAG连接在 ALTSOURCE_PROBE IP内核实例之间来回移动数据。下图显示了组成 In-System Sources and Probes Editor的组件的框图。

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 216: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 105. In-System Sources and Probes Editor框图

Design Logic

altsource_probeMegafunction

Probes Sources

JTAGController

FPGAProgramming

Hardware

Quartus PrimeSoftware

FPGA

D Q

D Q

ALTSOURCE_PROBE IP内核隐藏了 JTAG控制器和设计中所用寄存器之间的详细传输,从而为您提供了一个仿真和探究设计的基本构建模块。此外,In-System Sources and Probes Editor还提供了单周期样本和对选定逻辑节点的单周期写入。您可以使用此功能输入简单的虚拟激励因素并采集已检测节点上的当前值。由于 In-System Sources and Probes Editor使您能够访问设计中的逻辑节点,因此可以在调试过程中切换低级组件的输入。如果与 Signal Tap Logic Analyzer一起使用,那么能够强制触发条件以帮助隔离问题并缩短调试过程。

In-System Sources and Probes Editor使您能够轻松地将设计中的控制信号实现为虚拟激励因素(virtual stimuli)。此功能对于原型设计特别有用,例如以下操作:

• 创建虚拟按钮

• 创建虚拟前面板以与设计进行交互

• 仿真外部传感器数据

• 实时监控和更改运行时常量

In-System Sources and Probes Editor支持 Tcl命令,此命令与所有 ALTSOURCE_PROBE IPcore实例连接,以提高自动化水平。

相关链接

System Debugging Tools提供了 Intel Quartus Prime软件片上调试工具套件中所有工具的概述和比较

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

216

Page 217: Intel Quartus Prime Standard Edition用户指南: 调试工具

9.1. 硬件和软件要求

使用 In-System Sources and Probes Editor需要以下组件:

• Intel Quartus Prime软件

或者

• Intel Quartus Prime Lite Edition

• Download Cable (USB-BlasterTM下载电缆或者 ByteBlasterTM电缆)

• Intel FPGA开发套件或者包含与被测器件的 JTAG连接的用户设计板

In-System Sources and Probes Editor支持以下器件系列:

• Arria®系列

• Stratix ®系列

• Cyclone ®系列

• MAX®系列

9.2. 使用 In-System Sources and Probes Editor的设计流程

In-System Sources and Probes Editor支持 RTL流程。您想要在 In-System Sources andProbes editor中查看的信号连接到 In-System Sources and Probes IP core的一个实例。

编译设计后,您可以通过 In-System Sources and Probes Editor窗格或者 Tcl界面控制每个实例。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

217

Page 218: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 106. 使用 In-System Sources and Probes Editor的 FPGA设计流程

Yes

No

Start

End

FunctionalitySatisfied?

Create a New Project or Open an Existing Project

Configure altsource_probe Megafunction

Instrument selected logic nodes by Instantiating the

altsource_probe Megafunction variation file into the HDL

Design

Compile the design

Program Target Device(s)

Control Source and Probe Instance(s)

Debug/Modify HDL

9.2.1. 例化 In-System Sources and Probes IP Core

在设计中例化 In-System Sources and Probes IP Core:

1. 在 IP Catalog (Tools > IP Catalog)中,输入 In-System Sources andProbes。

2. 双击 In-System Sources and Probes,打开参数编辑器。

3. 指定 IP变体的名称。

4. 指定 IP变体的参数。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

218

Page 219: Intel Quartus Prime Standard Edition用户指南: 调试工具

IP core支持每个源高达 512比特,设计最多可包含此 IP core的 128个实例。

5. 点击 Generate或者 Finish生成符合您的规范的 IP内核综合和仿真文件。

6. 使用生成的模板,在设计中例化 In-System Sources and Probes IP Core:

注意: In-System Sources and Probes Editor不支持仿真。在创建仿真网表之前要删除 In-SystemSources and Probes IP core。

9.2.2. In-System Sources and Probes IP Core参数

使用模板实例化设计中的变体文件。

表 74. In-System Sources and Probes IP端口信息

端口名称 是否需要? 方向 备注

probe[] No Input 设计的输出。

source_clk No Input 源数据被同步写入到此时钟中。如果开启参数编辑器中的 Advanced Options框中的 Source Clock,那么需要此输入。

source_ena No Input source_clk的时钟使能信号。如果在参数编辑器中的 Advanced Options框中指定了此输入,那么需要此输入。

source[] No Output 用于驱动用户设计的输入。

如果器件具有可用资源,那么设计中最多可以包含 128个 in-system sources and probes IPcore的实例。IP core的每个实例使用每个信号一对寄存器,以达到 IP core中最宽端口的宽度。此外,还有一些固定的开销逻辑(overhead logic)可满足 IP core实例与 JTAG控制器之间的通信。您还可以为每个源端口指定另外一对寄存器,以进行同步。

使用 Intel Quartus Prime增量编译功能可以减少编译时间。增量编译使您能够将设计组织到逻辑分区中。在设计的重新编译期间,增量编译保留未变更分区的编译结果和性能,并通过仅编译修改的设计分区来并减少设计迭代时间。

9.3. 编译设计

对包含 In-System Sources and ProbesIP core的设计进行编译时,In-System Sources andProbes和 SLD Hub Controller IP core会自动添加到编译层次结构中。这些 IP core提供了JTAG控制器与检测逻辑之间的通信。

您可以通过编辑 In-System Sources and Probes IP core来修改与设计的连接数量。要在参数编辑器中打开要修改的设计实例,请在 Project Navigator中双击该实例。然后,您可以在 HDL源文件中修改连接。进行更改后,必须重新编译设计。

您可以使用 Intel Quartus Prime增量编译功能将编译设计减少成逻辑分区。增量编译使您能够将设计组织到逻辑分区中。在设计的重新编译期间,增量编译保留未变更分区的编译结果和性能,并通过仅编译修改的设计分区来并减少设计迭代时间。

9.4. 运行 In-System Sources and Probes IP Core

In-System Sources and Probes Editor使您能够控制设计中的所有 ALTSOURCE_PROBE IPcore实例。该编辑器使您可以查看设计中 ALTSOURCE_PROBE IP core的所有运行时可控实例,提供一个按钮界面来驱动所有源节点,并提供一个日志记录功能来存储探测和源数据。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

219

Page 220: Intel Quartus Prime Standard Edition用户指南: 调试工具

运行 In-System Sources and Probes Editor:

• 在 Tools菜单上,点击 In-System Sources and Probes Editor。

9.4.1. In-System Sources and Probes Editor GUI

In-System Sources and Probes Editor包含三个窗格:

• JTAG Chain Configuration—使您能够指定 In-System Sources and Probes Editor用于采集和编程数据的编程硬件,器件和文件设置。

• Instance Manager—显示关于在编译设计时生成的实例的信息,并使您能够控制 In-System Sources and Probes Editor获取的数据。

• In-System Sources and Probes Editor—记录从选定实例读取的所有数据,并使您能够修改写入到器件的源数据。

当使用 In-System Sources and Probes Editor时,您不需要打开 Intel Quartus Prime软件工程。In-System Sources and Probes Editor通过扫描 JTAG链并发送一个查询到 JTAG ChainConfiguration窗格中所选的器件来检索 ALTSOURCE_PROBE IP core的所有实例。您还可以使用以前保存的配置来运行 In-System Sources and Probes Editor。

每个 In-System Sources and Probes Editor窗格能够访问单一器件中的ALTSOURCE_PROBE IP core实例。如果在 JTAG链中有多个包含 IP core实例的器件,那么可以启动多个 In-System Sources and Probes Editor窗格来访问每个器件中的 IP core实例。

9.4.2. 使用 JTAG链配置对器件编程

编译工程后,在使用 In-System Sources and Probes Editor之前必须配置 FPGA。

按照下面步骤配置一个器件配置以用于 In-System Sources and Probes Editor:

1. 打开 In-System Sources and Probes Editor。

2. 在 JTAG Chain Configuration窗格中,指向Hardware,然后选择硬件通信器件。系统可能会提示您配置硬件;在这种情况下,点击 Setup。

3. 从 Device列表中选择 FPGA器件,设计将被下载到此器件中(此器件可能会被自动检测到)。您可能需要点击 Scan Chain来检测您的目标器件。

4. 在 JTAG Chain Configuration窗格中,点击浏览包含 In-System Sources and Probes实例的 SRAM Object File (.sof)(.sof可能会被自动检测到)。

5. 点击 Program Device对目标器件进行编程。

9.4.3. Instance Manager

Instance Manager窗格提供设计中所有 ALTSOURCE_PROBE实例,并使您能够对数据采集进行配置。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

220

Page 221: Intel Quartus Prime Standard Edition用户指南: 调试工具

Instance Manager窗格包含以下按钮和子窗格:

• Read Probe Data—对所选实例中的探针数据进行采样,并在 In-System Sources andProbes Editor窗格中显示探针数据。

• Continuously Read Probe Data—对所选实例的探针数据进行连续采样,并在 In-System Sources and Probes Editor窗格中显示探针数据;您可以通过 Probe readinterval设置修改采样率。

• Stop Continuously Reading Probe Data—取消对所选实例的探针进行连续采样。

• Read Source Data—读取所选实例中的源数据。

• Probe Read Interval—显示设计中 所有 In-System Sources and Probe实例的样本间隔;通过点击Manual可以修改样本间隔。

• Event Log—控制 In-System Sources and Probes Editor窗格中显示的事件日志。

• Write Source Data—使您能够手动或连续将数据写入系统中。

在每个条目旁边,Instance Manager窗格显示实例状态。可能的实例状态是Not runningOffloading data,Updating data和 Unexpected JTAG communication error。

9.4.4. In-System Sources and Probes Editor窗格

In-System Sources and Probes Editor窗格使您能够查看设计中所有源和探针(sourcesand probes)的数据。

数据根据实例的索引号进行组织。编辑器提供了一种管理信号的简便方法,并允许您重命名信号或将其分组为总线。从系统内源和探测节点(in-system source and probe nodes)收集的所有数据都记录在事件日志中,您可以按时序图查看数据。

9.4.4.1. 读取探针数据(Reading Probe Data)

通过在 Instance Manager窗格中选择 ALTSOURCE_PROBE实例并点击 Read Probe Data来读取数据。

此操作将生成探针数据的单个样本,并更新 In-System Sources and Probes Editor窗格中所选索引的数据列。通过打开 Instance Manager窗格中的 Save data to event log选项,可以将数据保存到事件日志中。

如果要连续从探针实例中采样数据,请在 Instance Manager窗格中单击要读取的实例,然后单击 Continuously read probe data。读取时,活动实例的状态显示为正在 Unloading。您可以从多个实例进行连续读取。

您可以使用 Instance Manager窗格中的快捷菜单访问读取的数据。

要调整探针读取间隔,在 Instance Manager窗格,开启 Probe read interval子窗格中的Manual选项,在Manual选项旁边的文本字段中指定采样率。最大采样率取决于您的计算机设置。实际采样率显示在 Current interval框中,您可以在Maximum Size框中调整事件日志缓存大小。

9.4.4.2. 写数据(Writing Data)

要对想要写入到 ALTSOURCE_PROBE实例的源数据进行修改,请单击要更改的信号的名称字段。对于信号总线,可以双击数据字段,然后将要驱动的值键入 ALTSOURCE_PROBE实例。In-System Sources and Probes Editor将修改后的源数据值存储在临时缓存中。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

221

Page 222: Intel Quartus Prime Standard Edition用户指南: 调试工具

未写入到 ALTSOURCE_PROBE实例的修改值显示为红色。要更新 ALTSOURCE_PROBE实例,请在 Instance Manager窗格中突出显示该实例,然后单击Write source data 。还可以通过 Instance Manager窗格中的快捷菜单使用Write source data功能。

In-System Sources and Probes Editor提供了不断更新每个 ALTSOURCE_PROBE实例的选项。连续更新支持将源数据缓存的任何变更立即写入到 ALTSOURCE_PROBE实例中。要持续更新ALTSOURCE_PROBE实例,请将Write source data从Manually更改成Continuously。

9.4.4.3. 组织数据(Organizing Data)

In-System Sources and Probes Editor窗格使您能够将信号分组为总线,还可以修改数据缓存的显示选项。

要创建一组信号,请选择要分组的节点名称,右键单击并选择 Group。您可以在 Bus DisplayFormat 和 Bus Bit order快捷菜单中修改显示格式。

In-System Sources and Probes Editor窗格可重命名任何信号。要重命名一个信号,请双击信号名称并输入新名称。

事件日志包含最新样本的记录。缓存容量最多可调整为 128k样本。当您将指针移到数据样本上时,将记录每个样本的时间戳,并显示在活动实例的事件日志上方。

您可以将所做的更改和记录的数据保存到一个 Sources and Probes File( .spf )中。要保存更改,在 File菜单上点击 Save。该文件包含您对信号组所做的所有修改以及当前数据事件日志。

9.5. In-System Sources and Probes Editor的 Tcl界面

为了支持自动化,In-System Sources and Probes Editor以 Tcl命令的形式支持本章中描述的过程步骤。运行 quartus_stp时,默认包含 In-System Sources and Probes Editor的 Tclpackage。

In-System Sources and Probes Editor的 Tcl界面提供了一个设计调试的强大平台。Tcl界面 对于调试需要切换多组控制输入的设计特别有用。您可以将多个命令与 Tcl脚本结合使用以定义一个定制命令集。

表 75. In-System Sources and Probes Tcl命令

命令 参数 描述

start_insystem_source_probe

-device_name <device name>-hardware_name <hardware name>

打开一个包含指定硬件的器件的句柄。

在开始任何传输之前,请调用此命令。

get_insystem_source_probe_instance_info

-device_name <device name>-hardware_name <hardware name>

返回设计中的所有 ALTSOURCE_PROBE实例。返回的每个记录均采用以下格式:{<instance Index>, <source width>, <probewidth>, <instance name>}

read_probe_data -instance_index <instance_index>-value_in_hex (optional)

检索探针的当前值。

返回一个字符串,该字符串指定每个探针的状态,其中MSB为最左边的位。

read_source_data -instance_index <instance_index>-value_in_hex (optional)

检索源的当前值。

继续...

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

222

Page 223: Intel Quartus Prime Standard Edition用户指南: 调试工具

命令 参数 描述

返回一个字符串,该字符串指定每个源的状态,其中MSB为最左边的位。

write_source_data -instance_index <instance_index>-value <value>-value_in_hex (optional)

设置来源的值。

一个二进制字符串被发送到源端口,其中MSB作为最左边的位。

end_insystem_source_probe None 释放 JTAG链。所有传输完成后,发出此命令。

该示例显示了 Tcl脚本的摘录,其中包含控制设计的 ALTSOURCE_PROBE实例的过程,如下图所示。该示例设计包含一个具有 ALTSOURCE_PROBE实例的 DCFIFO,以读取和写入 DCFIFO。在设计中添加了一组控制复用器,以控制输入管脚和 ALTSOURCE_PROBE实例之间的 DCFIFO数据流。脉冲发生器被添加到读取请求和写入请求控制行,以确保对单个样本进行读取或写入。在下面的示例中与脚本一起使用时,ALTSOURCE_PROBE实例通过执行单个样本写入和读取操作并报告满和空状态标志(full and empty status flags)的状态,从而提供对 FIFO内容的可见性。

在调试情况下使用 Tcl脚本可以清空或预加载设计中的 FIFO。例如,您可以使用此功能预加载FIFO,以匹配 Signal Tap Logic Analyzer中设置的触发条件。

图 107. 由 Tcl脚本控制的 DCFIFO示例设计

Write_clock

write_reqdata[7..0]

write_clock

read_req

read_clock

wr_full

Q[7..0]

rd_empty

data_out

read_clocksource_read_sel

s_read_req

s_write_req

rd_req_in

wr_req_in

data_in[7..0]

altsource_probe(Instance 1)

altsource_probe(Instance 0)

source_write_sel

s_data[7..0]D Q

D Q

## Setup USB hardware - assumes only USB Blaster is installed and## an FPGA is the only device in the JTAG chainset usb [lindex [get_hardware_names] 0]set device_name [lindex [get_device_names -hardware_name $usb] 0]## write procedure : argument value is integerproc write {value} {global device_name usb

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

223

Page 224: Intel Quartus Prime Standard Edition用户指南: 调试工具

variable fullstart_insystem_source_probe -device_name $device_name -hardware_name $usb#read full flagset full [read_probe_data -instance_index 0]if {$full == 1} {end_insystem_source_probereturn "Write Buffer Full"}##toggle select line, drive value onto port, toggle enable##bits 7:0 of instance 0 is S_data[7:0]; bit 8 = S_write_req;##bit 9 = Source_write_sel##int2bits is custom procedure that returns a bitstring from an integer ## argumentwrite_source_data -instance_index 0 -value /[int2bits [expr 0x200 | $value]]write_source_data -instance_index 0 -value [int2bits [expr 0x300 | $value]]##clear transactionwrite_source_data -instance_index 0 -value 0end_insystem_source_probe}proc read {} {global device_name usbvariable emptystart_insystem_source_probe -device_name $device_name -hardware_name $usb##read empty flag : probe port[7:0] reads FIFO output; bit 8 reads empty_flagset empty [read_probe_data -instance_index 1]if {[regexp {1........} $empty]} { end_insystem_source_probereturn "FIFO empty" }## toggle select line for read transaction## Source_read_sel = bit 0; s_read_reg = bit 1## pulse read enable on DC FIFOwrite_source_data -instance_index 1 -value 0x1 -value_in_hexwrite_source_data -instance_index 1 -value 0x3 -value_in_hexset x [read_probe_data -instance_index 1 ]end_insystem_source_probereturn $x}

相关链接

• Tcl Scripting

• Intel Quartus Prime Settings File Manual

• Command Line Scripting

9.6. 设计示例:动态 PLL重配置

In-System Sources and Probes Editor可以帮助您在设计的原型开发阶段创建虚拟前面板。您可以在短时间内创建相对简单,功能强大的设计。以下 PLL重配置示例演示了如何使用 In-SystemSources and Probes Editor来提供一个用于动态重配置 Stratix PLL的 GUI。

Stratix PLL使您能够在运行时动态更新 PLL系数。 Stratix 器件内的每个增强型 PLL均包含一个寄存器链,可用于修改预缩放计数器(m和 n值),输出分频计数器和延迟计数器。另外,ALTPLL_RECONFIG IP core提供了一个简单的接口来访问寄存器链计数器。ALTPLL_RECONFIG IP core提供了一个包含所有可修改 PLL参数的缓存。在更新缓存中的所有PLL参数之后,ALTPLL_RECONFIG IP core将驱动 PLL寄存器链,以使用更新后的参数更新PLL。下图显示了一个 Stratix 具有可重配置系数的 Stratix 增强型 PLL。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

224

Page 225: Intel Quartus Prime Standard Edition用户指南: 调试工具

图 108. 具有可配置系数的 Stratix 增强 PLL

÷n Δtn

Δtm

÷m

÷g0 Δtg0

÷e3 Δte3

÷g3 Δtg3

PFD VCOChargePump

LoopFilter

fREF

scandata

scanclk

scanaclr

Counters and ClockDelay Settings areProgrammable

All Output Counters andClock Delay Settings canbe Programmed Dynamically

LSB MSB

LSB MSB

LSB MSB

LSB MSB

LSB

MSB

(1) (2)

以下设计示例使用 ALTSOURCE_PROBE实例来更新 ALTPLL_RECONFIG IP core高速缓存中的PLL参数。ALTPLL_RECONFIG IP core连接到 Stratix FPGA中的一个增强型 PLL来驱动包含PLL可重配置系数的寄存器链。该设计示例使用 Tcl/Tk脚本生成一个 GUI,在此 GUI中可输入增强型 PLL的新m和 n值。Tcl脚本从 GUI提取m和 n值,将这些值移出至 ALTSOURCE_PROBE实例以更新 ALTPLL_RECONFIG IP core高速缓存中的值,并置位 ALTPLL_RECONFIG IP core上的重配置信号。 ALTPLL_RECONFIG IP core上的重配置信号启动寄存器链传输以更新所有的PLL可重配置系数。

图 109. 动态 PLL重配置设计示例的结构图

In-System Sourcesand ProbesTcl Interface

JTAGInterface

CounterParameters

Stratix FPGA50 MHz

PLL_scandataPLL_scandlkPLL_scanaclr

E0

C0

C1

fref

Stratix-EnhancedPLLalt_pll_reconfig

Megafunction

In-SystemSources and

Probes

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

发送反馈 Intel Quartus Prime Standard Edition用户指南: 调试工具

225

Page 226: Intel Quartus Prime Standard Edition用户指南: 调试工具

此设计实例是使用 Nios II Development Kit, Stratix Edition创建的。sourceprobe_DE_dynamic_pll.zip文件包含运行该设计示例所需的全部文件,包括:

• Readme.txt—一个文本文件,描述了设计示例中包含的文件,并提供了有关运行 Tk GUI的说明,如下图所示。

• Interactive_Reconfig.qar—此设计示例的已存档 Intel Quartus Prime工程。

图 110. 使用 Tk和 In-System Sources and Probes Tcl Package创建的 PLL重配置 GUI

相关链接

On-chip Debugging Design Examplesto download the In-System Sources and Probes Example

9.7. 使用 In-System Sources and Probes进行设计调试修订历史

本章节的修订历史如下:

文档版本 Intel QuartusPrime版本

修订内容

2018.09.24 18.1.0 Intel Quartus Prime Standard Edition User Guide中的初始版本。

2018.05.07 18.0.0 添加了有关在 IP Catalog中查找 In-System Sources and Probes的详细信息。

2015.11.02 15.1.0 将 Quartus II更改成 Intel Quartus Prime 。

2014年 6月 14.0.0 更新了格式。

2012年 6月 12.0.0 删除了调查链接。

2011年 11月 10.1.1 模板更新。

2010年 12月 10.1.0 少量更正。更改为新文档模板。

2010年 7月 10.0.0 少量更正。

2009年 11月 9.1.0 • 删除了对过时器件的引用。

• 样式更新。

2009年 3月 9.0.0 内容无变更。

2008年 11月 8.1.0 更改成 8-1/2 x 11页面大小。无内容变更。

2008年 5月 8.0.0 • 在第 17-5页上阐明此功能不支持仿真• 更新了图 17–8 Interactive PLL reconfiguration manager• 在本章中添加了指向参考文档的超链接

• 少量的编辑更新

相关链接

文档存档关于 Intel Quartus Prime Handbook的早前版本,请搜索文档存档。

9. 使用 In-System Sources and Probes进行设计调试

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

226

Page 227: Intel Quartus Prime Standard Edition用户指南: 调试工具

A. Intel Quartus Prime Standard Edition用户指南

关于 Intel Quartus Prime Standard Edition FPGA设计流程的所有阶段的详细信息,请参考以下用户指南。

相关链接

• Intel Quartus Prime Standard Edition User Guide: Getting Started介绍了 Intel Quartus Prime Standard Edition软件的基本功能,文件和设计流程,包括管理 Intel Quartus Prime Standard Edition工程和 IP,初始设计规划注意事项以及从之前软件版本的工程迁移。

• Intel Quartus Prime Standard Edition User Guide: Platform Designer对使用 Platform Designer (Standard)创建和优化系统作了描述,Platform Designer(Standard)是一种系统集成工具,可简化工程中自定义 IP core的集成。PlatformDesigner (Standard)自动生成互连逻辑,以连接知识产权(IP)功能和子系统。

• Intel Quartus Prime Standard Edition User Guide: Design Recommendations描述了使用 Intel Quartus Prime Standard Edition软件设计 FPGA的最佳设计实践。HDL编码样式和同步设计实践可显着影响设计性能。以下推荐的 HDL编码样式确保了Intel Quartus Prime Standard Edition synthesis最佳实现硬件中的设计。

• Intel Quartus Prime Standard Edition User Guide: Design Compilation描述了 Intel Quartus Prime Standard Edition Compiler的所有阶段的设置,运行和优化。Compiler在生成器件编程文件之前对设计进行综合,布局和布线。

• Intel Quartus Prime Standard Edition User Guide: Design Optimization介绍 Intel Quartus Prime Standard Edition可用于实现 Intel FPGA中最高设计性能的设置,工具和技术。技术包括优化设计网表,解决限制重定时和时序收敛的关键链,以及优化器件资源使用。

• Intel Quartus Prime Standard Edition User Guide: Programmer描述了 Intel Quartus Prime Standard Edition Programmer的操作,通过连接 IntelFPGA下载电缆对 Intel FPGA器件进行配置和对 CPLD和配置器件进行编程。

• Intel Quartus Prime Standard Edition User Guide: Partial Reconfiguration描述了 Partial Reconfiguration,这是一种高级设计流程,使您能够动态地重新配置FPGA的一部分,而其余的 FPGA设计继续运行。为特定设计区域定义多个角色,而不影响其他区域的操作。

• Intel Quartus Prime Standard Edition User Guide: Third-party Simulation描述了 Aldec*,Cadence*, Mentor Graphics* 和 Synopsys* 对第三方仿真工具的RTL-和 gate-level设计仿真支持,使您能够在器件编程前验证设计行为。包括仿真器支持,仿真流程和仿真 Intel FPGA IP。

• Intel Quartus Prime Standard Edition User Guide: Third-party Synthesis描述了 Mentor Graphics* 和 Synopsys* 对第三方综合工具中可选的设计综合的支持 。包括设计流程步骤,生成的文件描述和综合指南。

683552 | 2018.09.24

发送反馈

英特尔公司。保留所有权利。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。依照英特尔的标准保证条例,英特尔保证其 FPGA和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。英特尔概不承担因应用或使用本文中描述的任何信息、产品或服务而产生的任何责任和义务,除非得到英特尔书面上的明确同意。建议英特尔客户在信赖任何已发布的信息之前以及下单订购产品或服务之前,应先获取最新版本的器件规格。*其他的名称和品牌可能是其他所有者的资产。

ISO9001:2015Registered

Page 228: Intel Quartus Prime Standard Edition用户指南: 调试工具

• Intel Quartus Prime Standard Edition User Guide: Debug Tools描述了一组 Intel Quartus Prime Standard Edition系统内设计调试工具,用于实时验证您的设计。这些工具通过将设计中的信号路由(或“tapping”)到调试逻辑来提供可视性。这些工具包括 System Console,Signal Tap logic analyzer,Transceiver Toolkit,In-System Memory Content Editor和 In-System Sources and Probes Editor。

• Intel Quartus Prime Standard Edition User Guide: Timing Analyzer解释基本的静态时序分析原理和 Intel Quartus Prime Standard Edition TimingAnalyzer的使用,功能强大的 ASIC样式时序分析工具,使用行业标准约束,分析和报告方法验证设计中所有逻辑的时序性能。

• Intel Quartus Prime Standard Edition User Guide: Power Analysis and Optimization描述了 Intel Quartus Prime Standard Edition Power Analysis工具,可以准确估算器件功耗。估算器件的功耗,以开发功率预算并设计电源,稳压器,散热器和冷却系统。

• Intel Quartus Prime Standard Edition User Guide: Design Constraints描述影响 Compiler如何实现设计的时序和逻辑约束,例如管脚分配,器件选项,逻辑选项和时序约束。使用 Pin Planner可以在目标器件的图形表示中可视化,修改和验证所有 I/Oassignment。

• Intel Quartus Prime Standard Edition User Guide: PCB Design Tools描述了 Mentor Graphics* 和 Cadence*对可选第三方 PCB设计工具的支持 。还包括有关使用 HSPICE和 IBIS模型进行信号完整性分析和仿真的信息。

• Intel Quartus Prime Standard Edition User Guide: Scripting描述使用 Tcl和命令行脚本来控制 Intel Quartus Prime Standard Edition软件并执行各种功能,例如管理工程,指定约束,运行编译或时序分析或生成报告。

A. Intel Quartus Prime Standard Edition用户指南

683552 | 2018.09.24

Intel Quartus Prime Standard Edition用户指南: 调试工具 发送反馈

228