对 HLS 代码的仿真式验证在很大程度上是通过编译和调试设计描述来执行的,与 SystemC 类库实现相关联,采用与软件测试相似的方式。由于 SystemC 验证工具的可用性受限,很多验证任务是对生成的综合 RTL 代码执行的,因而引入了一个间接级别,使得在 SystemC/C++ 级别上纠正问题变得复杂而耗时。
使用 OneSpin 360 DV-Inspect™ 形式自动检查,用户可以有效地检测代码编写问题(例如使用来自未初始化存储器读取的未定义值,或使用未定义的运算结果 [例如除以零、数组超出范围])、线程之间的竞争条件,以及 SystemC 特定的自动算术溢出和数字精度问题。
优势
• 在早期进行验证和错误检测
• 在综合之前,对 SystemC/C++ 代码进行详尽的自动验证
• 缩短调试周期
• 提供全面的覆盖率指标,帮助完全了解覆盖率
• 使用常见的综合工具
• 经过业界验证
功能
• SystemC/C++ 语言
o 通用 C/C++,具有静态存储器布局和静态多态
o 标准综合 SystemC
o 高层次综合的模型
o 算法 C/C++ 模型,无浮点类型,例如从 Matlab/Simulink™ 生成的模型
• 形式自动检查
o 初始化/重置检查
o SystemC 的算术溢出和精度检查
o 范围和条件检查
o 线程之间的竞争检测
• 形式化覆盖率分析
o 无用代码检测,代码行/代码块覆 盖率
o FSM 死锁检测,状态/转换覆盖率
o SystemC 和 SystemVerilog 验证平台的生成
o SystemC/C++ 和 RTL 之间的设计一致性检查
• 形式验证应用程序
o 未初始化的内存读取 (UMR) 检查和 X 传播检查
o 使用验证 IP 进行接口协议检查, 包括 ARM APB/AHB/AXI
o 使用记分板验证 IP 进行数据流分析
o 连通性验证
• 基于断言的形式验证
o C-Assert、SystemVerlog 断言、OneSpin TiDAL™ SVA
o 基于 Quantify 模型的突变覆盖率
• 集成的调试器和分析器
资料详情 https://mbb.eet-china.com/download/whitepaper/Siemens_20220126_06.html