系统与设计
的意见

产品毛羽RISC-V设计

如何验证设计代码的健壮性没有运行模拟。

受欢迎程度

随着开源RISC-V指令集架构(ISA)的势头继续发展,越来越多的RISC-V设计解决方案和他们的灵活性,问题出现了选择最可靠和健壮的解决方案从一个竞争者的数量。

当然,RISC-V IP设计必须符合基本ISA标准和证明合规应该包含一个测试套件。但这是唯一指标选择时使用RISC-V IP ?

除了RISC-V设计的功能验证和一致性测试质量和完整性,还重要的是检查的质量设计代码和静态验证工具。

Aldec ALINT-PRO提供了一个广泛而全面的方法验证设计代码的健壮性没有运行模拟。该工具包括几个检查,如命名约定,确认正确的连接,并检查代码优化合成的适宜性。

合成后,它可以用一个等效性检查确认功能匹配仿真结果和高密度脂蛋白合成,可以找到一些功能缺陷而不运行模拟。

验证规则驻留在规则插件的代码。

支持静态验证RISC-V生态系统,一个新的规则插件-基于最佳实践处理器系统静态分析添加了支持Verilog和SystemVerilog,最常用的语言用于RISC-V IP开发。

以下许多集和规则集,这是四个章节,通过结构化访问图书馆部分,现在可用RISC-V焦点。用户只需要选择包括。

  • 编码风格
  • 数据类型和操作
  • 编码实现
  • SystemVerilog构造

编码风格验证常量和变量使用的正确性,端口定义、实例化和对象引用。例如,这个规则验证每一个常数,它的一些宽度值与基数的部分,没有连续作业在输入端口和输出端口的背景资料,以及所有声明对象分配和引用。

作为一个例子,让我们考虑以下代码示例:

以上,max_value参数值位宽度是错误地从4减少到3位。由于这个原因,max_parameter被分配给0而不是8。因此,条件dout从来没有成为真的,导致dout分配给一个常数(即4 'b1111)。

数据类型和操作规则集验证相关的各种问题适当的Verilog和SystemVerilog数据类型使用表达式。例如,它们提供数组index-to-bounds检查,警告签署和无符号混合信号在一个表达式,宽度不匹配等等。让我们考虑下面的代码示例:

数组变量选取范围从0到7,而实际数据数组范围从0到3。阅读不存在的值会导致X-generation模拟。然而,模拟可能隐藏的X-generationif - then - else情况下语句。先进的静态设计验证建议定位和纠正这些问题。

编码实现规则集包含重要的代码检查最佳合成、定时关闭以及重置和有限状态机实现。同时,他们确保没有不受欢迎的门闩,适当的复位方法的实现以及simulation-to-synthesis功能等价性问题。

这个规则集还包含了确保适当的FSM设计有限状态机特定规则,适当的状态编码和适当的FSM类型。

以下两个代码示例演示的一些检查行动。

第一个示例演示了使用内阻塞和非阻塞赋值的顺序流程。下面的过程尝试交换d1和d2值在使用阻塞赋值:

自执行流内过程被阻塞,直到作业完成后,d1被分配给d2值,然后d2被分配给一个已经改变了吗d1值(作为一个旧的价值d2)。因此,我们观察到的波形如下:

这种情况还会导致simulation-to-synthesis不匹配的问题,因为一些合成工具自动改变阻塞内作业顺序进程阻塞的。

ALINT-PRO的RISC-V产品毛羽规则确保使用非阻塞赋值的顺序流程,并使用阻塞赋值在组合过程中,导致的正确行为上面的例子:

现在,让我们看一个简单的有限状态机设计检查行动:

ALINT-PRO提取FSM的结构,分析了其拓扑结构和其激活所有转换的能力。这里的FSM模型ALINT-PRO创建上面的代码:

因为一个变量只包含三个部分,它的价值不能超过7日,禁止“跑”到“停止”的激活状态转换和遥不可及的“停止”状态;因此红十字会和重影(灰色)的“停止”状态。

违反也违反查看器中生成的消息。

第四组规则被给予一个RISC-V焦点,SystemVerilog结构,确保最优SystemVerilog使用RTL编码。检查应用于实例化和接口SystemVerilog类型和SystemVerilog程序块,等always_comb

虽然SystemVerilog标准允许通配符连接实例,设计实践表明,节省调试时间大大超过时间从wildcard-based RTL编码。

因此,RISC-V规则推荐命名连接在通配符的偏好。

基于类型的检查表明,限制使用国SystemVerilog类型,例如int,,字节,等等。这些类型可以隐藏设计问题,导致仿真与合成不匹配。一个例外是使用int变量在for循环迭代器变量。

SystemVerilog介绍流程等always_comb,always_ff,always_latch。这些过程清楚地识别为实现设计意图的工具。例如,下面的代码将生成“插销插入”警告的实现工具,因为工具理解设计者的意图只使用这个过程来实现组合逻辑:

同时,SystemVerilog检查使用等SystemVerilog构造的偏好设置case_inside,unique_case,priority_case等等在常规Verilog结构来消除可能simulation-to-synthesis不匹配和表达设计意图的实现工具以更清晰和简洁的方式。

RISC-V插件促进先进的静态产品毛羽RISC-V IP设计和芯片系统,提高质量、安全性和鲁棒性的设计代码。



留下一个回复


(注意:这个名字会显示公开)

Baidu