18.luck新利
的意见

驯服绒线与正式

Linting工具利用快速而浅层的分析为非常大的设计提供快速反馈。

受欢迎程度

设计人员多年来一直在使用Linting工具,以确保设计符合推荐的编码指南。检测工具验证RTL是否以明确的方式编写,以确保下游工具(模拟、综合等)不会错误地解释代码,从而导致设计、验证、时间或实现问题。

Linting工具利用快速和浅层分析的优势,为非常大尺寸的设计提供快速反馈。然而,这可能会导致大量的违规行为被报告——这是一个棘手的问题。因此,在典型的时间压力下,用户通常不会仔细检查每一个违规。相反,他们在没有真正理解设计失败风险的情况下就放弃了违规。

earlyeditionpic

有越来越多的违规可以用正式的技术进行功能分析,以验证它们是否会导致真正的设计问题。这就是正式装饰的用武之地。它大大减少了违规的数量,使用户能够集中精力处理真正的违规。

让我们来看几个例子:

例1:将违反作为死代码的一部分
输入c;
输入[4:0]a;
Reg [3:0] b;
Wire e = a & !a;//或一个非常复杂的顺序条件,减少到0
Always @(posedge c)
如果(e) b <= a;在本例中,Lint报告赋值的宽度不匹配冲突。然而,由于“e”的值总是为“0”,因此这种违反在部分设计中被报告为死代码。可以使用形式化技术自动过滤掉这种类型的违规。例2:Lint报告宽度不匹配(功能上不是设计问题)输入c,r;电线[3:0]o;Reg[4:0]计数器;(电子邮件保护)if(!r) counter <= 0;Else if (counter < 8) counter <= counter +1;//计数器达到最大值7结束赋值o =计数器;在这个例子中,Lint通常会报告上次赋值的宽度不匹配。形式化分析实现了计数器的最大值为7,因此没有宽度不匹配。这种违规行为可以被自动过滤掉。我们可以认为函数分析是一种自动的、强大的方法,可以减少Lint违规中的噪声。设计师可以花时间审视真正的设计问题,而不是仅仅放弃嘈杂的违规。函数式方法分析lint违规的优点是不需要额外的设计器资源。设计师只需要打开正式的引擎并探索Lint的结果。 It simply requires additional machine time and saves precious designers’ time. Additionally, there are options available to use formal to functionally verify the designs to find FSMs, dead code, and case-related (full / parallel / unique / priority, etc.) issues without requiring any testbench. There is a smarter way to tame the Linting ‘beast’.



1评论

Himanshu Kathuria 说:

不错的文章

留下回复


(注:此名称将公开显示)

Baidu