前言:在《基础篇》和《时序篇》之后是《验证篇》,但考虑到之前两篇收到的反馈有限,故把第三篇《验证篇》拆分为若干段分批发于博客,希望能依次带动互动。
1. 验证及调试工具介绍
Altera提供了如下七种验证调试工具:
(1)SignalTapII Logic Analyzer
可以在系统分析器件内部节点和I/O引脚信号。SignalTapII使用FPGA资源,根据用户定义的触发条件将信号数据通过JTAG接口显示在SignalTapII文件中。使用前需要确保有足够的片上存储器资源,也因此不支持CPLD。
(2)SignalProbe
可以在系统分析器件内部节点和I/O引脚信号。SignalProbe使用剩余未用的器件布线资源和IO资源,在最近一次布局布线的基础上进行增量式地布线,将选定信号送往外部逻辑分析仪或示波器。适用于片上存储器资源不多的情况。
(3)外部逻辑分析仪接口(LAI)
可以在系统分析器件内部节点和I/O引脚信号。如果片上存储器资源有限,并希望用外部逻辑分析仪来验证大量内部的数据总线,可以使用LAI。
(4)In-System Sources and Probes
使用JTAG来驱动和采样内部节点的逻辑值。当系统还不完整的时候可以利用该工具模拟众多的输入激励。
(5)In-System Memory Content Editor
用来显示和编辑片上存储器。
(6)Virtual JTAG
Altera提供的一个IP核,使用器件逻辑资源实现JTAG接口电路的功能。
(7)系统控制台(system console)
Tcl控制与实例化的硬件模块的通讯。用于系统级调试。
以上除SignalProbe,其余的调试工具都需要使用JTAG来控制和读写数据。
以下把七个工具分两类进行大致的比较。
(1)SignalTapII、LAI和SignalProbe用来查看RTL网表里的信号。
任何需要使用JTAG的调试工具都需要使用大概200个逻辑单元(LEs)来搭建平台。如果同时使用多个调试工具,此部分逻辑可以共享。
除此以外,SignalProbe只使用少量布线资源,不使用逻辑和存储器资源,信号和引脚成一对一的关系;
LAI使用少量逻辑资源,不使用存储器资源,信号和引脚成多对一的关系,一个测试引脚最多可对应256个信号;
SignalTapII需要使用逻辑和存储器资源,使用量的多少由采样信号的数目和触发条件的复杂程度决定(基本触发条件一般使用300到400个LE,每添加一个节点增加大约11个LE),但不使用除JTAG以外的其他引脚。
(2)In-System Sources and Probes、Virtual JTAG、System console和In-System Memory Content Editor除了能查看RTL网表里的信号外,还允许在运行的时候输入值。
Virtual JTAG让高级用户可以开发定制的JTAG平台;In-System Sources and Probes适用于调试控制信号;In-System Memory Content Editor适用于输入大量测试数据。