仿真调试
在验证过程中,仿真比传统的FPGA原型要早得多。例如模拟加速一旦SoC的主要模块可用,则应立即考虑。因此,在运行模拟时,需要高级调试功能来跟踪问题和发现bug,而不是回滚到纯HDL模拟。针对这些要求,Aldec的HES-DVM™包含一整套工具和功能,例如:
- 调试探针HVD技术保证了100%的信号可视性
- 触发器和断点控制调试过程,缩小要分析的调试数据量
- 内存可见性接口与读和写访问仿真设计内存块
- HW调试器工具-所有调试功能的GUI前端
- 他调试API-允许从C/ c++代码控制所有调试函数的独特特性
调试探针
需要调试探针功能,以便在运行仿真时捕获设计信号的值,并保存波形数据库以进行仿真后调试。
HES-DVM支持两种调试探测,即静态探测和动态探测,可以在速度和可见性之间进行必要的权衡。在这两种情况下,HES-DVM确保自动RTL源代码插装和真正的RTL视图,这意味着所有信号名称、数据类型和层次结构路径都会像HDL模拟器一样保留和显示。调试探针使用其中一个设计时钟进行采样,用户可以在运行时更改要使用的时钟。HES-DVM支持两种波形格式,即ASDB(可加载在Aldec的Riviera PRO或Active HDL中)和FSDB(可加载在Synopsys Verdi工具中)。VCD波形可通过ASDB转换获得。使用快速PCIe主机接口从仿真器板获取调试数据。
基本特点:
- 仿真设计的真实RTL视图
- 自动RTL代码检测
- 兼容多种调试工具(ASDB, FSDB, VCD波形)
- 运行时重新配置
- 基于PCIe的主机连接,用于快速调试数据传输
静态探头
静态探针特性作为片上逻辑分析仪实现,因此它为这类工具提供了特性。Aldec独特的高级逻辑分析仪(ALA)实现支持无缝多FPGA操作,灵活的采样缓冲区在每个FPGA本地和PCIe上的高吞吐量主机接口。
在运行合成之前,必须在设计设置流程中选择静态探头,因此称为静态探头。ALA提供了前所未有的高达256 kbit的调试探测容量,可以分散在所有FPGA分区中。静态探测组织在数据和触发器组中,可以在仿真运行时选择和配置这些组。
数据组 | 触发组 | |
---|---|---|
数量的组 | 16 | 32 |
每个组的探针数 | 16kbit | 256位 |
探头总数 | 每秒256比特 | 每秒8比特 |
此外,用户可以通过探针限定表达式或指定捕获样本时的时间范围来调整调试过程。在任何情况下,ALA确保没有样品下降,因为仿真时钟可以自动停止时,调试缓冲区满载。
基本特点:
- 快速,高速调试-在FPGA中探测,片上采样缓冲区
- 多FPGA支持
- 灵活的探测器-可选择的数据组,前所未有的容量
- 运行时可配置采样时钟
- 具有示例限定表达式的强大过滤器
- 连续捕获模式,无样品脱落
- 在每个分区中自动集成设计逻辑
动态探测
Dynamic Probe功能可实现100%的可见性,它基于独特的HVD技术(基于硬件的可见性调试)。HVD算法用于自动分析和找出基本探头,这些探头是应从硬件捕获的设计信号的最小子集,以提供完整的可见性。
动态探针的最大优点是用户不必预先知道诊断给定问题需要哪些信号。相反,可以在仿真运行时选择任何设计信号进行调试。HVD扩展保留的基本信号,确保任何设计节点的可见性。
基本特征
- HVD技术用于智能探测和捕获最小数据集
- 自动映射到RTL名称
- 动态和交互式探针的选择
- 按需启用/禁用流程
触发器和断点
调试复杂SoC时,需要检查不同的条件,以决定是否捕获调试数据。获取完整的设计数据集(100%的信号)是不现实的,因为对于数以百万计的信号,调试数据量对于任何类型的仿真器来说都是无法承受的。触发器和断点为调试过程带来了智能性和可控性。触发器与LogicAnalyzer中的触发器相同,用于释放收集的静态探针样本,而断点停止模拟时钟并将控制权返回给用户。
Aldec的HES-DVM支持创建基于静态探测的复杂触发器和断点条件,以及基于动态探测的软断点。条件要么是布尔表达式,要么是带有一整套关系运算符的序列表达式。可以在运行时启用、禁用和重新配置所有触发器和断点条件。
基本特点:
- 大量触发端口(32)
- 多FPGA支持
- 布尔表达式和序列表达式
- 可编程计数器
- 可配置触发位置
- 以模拟速度检查触发器和断点
内存可见性
存储块存在于任何一种数字电路设计中。在soc中,它们不仅被广泛地用作本地数据存储,而且经常被用作微处理器子系统的关键元素。因此,内存内容的可见性对于硬件和嵌入式软件的验证都是必不可少的。内存查看器正在成为硬件和软件开发人员手中的首要工具。
Aldec的HES-DVM为模型提供了用于调试的后门接口,允许在运行仿真时读取和写入片上内存数据。HES-DVM提供了各种标准内存模型的reach库,这些标准内存模型根据大小可以映射到FPGA RAM块或外部板载DDR3资源。在仿真过程中,给定的内存根据其从RTL源代码派生的层次名称进行选择。物理地址和数据组织保留在用户界面中,而不考虑实际的FPGA实现。
基本特点:
- 运行设计仿真设置时HES-DVM中可用的内存流
- 内存模型有一个用于调试的后门接口
- 在仿真运行时提供读写访问
- 仿真中的内存由原始RTL层次结构路径标识
- 使用物理寻址和数据组织来访问内存内容
- 单个细胞和块访问与数据文件
- 便于SoC bringup中的程序和数据存储器初始化
硬件调试器
HW调试器工具为所有仿真调试功能提供GUI。它使用TCP/IP套接字连接到仿真目标,因此可以在仿真主机工作站上甚至从桌面计算机远程运行它。硬件调试器在Linux和MS Windows操作系统上都可用,并允许跨平台操作。
基本特点:
- 所有调试功能的GUI界面(探针,触发器,断点,采样时钟)
- 仿真时钟控制(停止、运行、运行/直到)
- 内存查看器与文件读写和丰富的显示选项(基数,值,字符串)
- 设计结构和信号的RTL视图
- 所选动态探针和当前值的列表
- 运行时选项重新配置
- 为自动化编写脚本命令
他调试API
这个HesDebugApi是一个带有“C”接口的库,可以在任何能够链接C或c++对象的应用程序中使用。该库支持hs - dvm的所有调试功能,因此它是HW调试器GUI的替代接口。使用HES调试API是一种方便的方法,可以开发功能强大的交互式测试台,这些测试台可以初始化片上内存,探测内部寄存器,甚至动态配置断点。有了这个独特的特性,验证工程师就不必再把模拟箱中的设计当作黑箱来对待了。
基本特点:
- C-API容易与任何测试平台或应用程序集成(C,C++,SystemC,SV DPI-C,TCL,Python)
- 为仿真启用白盒测试方法
- 在模拟中直接访问调试探针和内存
- 为要求苛刻的应用程序提供快速接口