系统与设计
的意见

更好地与RTL产品毛羽和疾控中心验证代码

一个简单但有效的方法在ASIC和FPGA设计找到bug。

受欢迎程度

自动化设计规则检查,或产品毛羽,一直在RTL验证了至少两年,但仍许多HDL设计师完全忽视这个简单但非常强大的bug狩猎方法。为什么一个设计师需要运行这恼人的警告信号发生器忙吗?敌意对使用传统产品毛羽工具通常被解释为大量的输出噪声、有限的可配置性,模棱两可的汇报,不能捕获一个高级设计师的意图。FPGA用户也抱怨缺乏供应商库的支持。是否它是一个ASIC或FPGA IP块的存在对刚果(金)工具,创建一个额外的挑战IPs往往工具生成或加密。

虽然有几个著名的、成熟DRC-based EDA市场针对大规模ASIC验证工具,他们也有一年一度的许可成本,价格超过一个新的四轮越野车。auto-formal方法的使用申请等方面疾病预防控制中心协议检查和MCP验证,以及UPF-based力量的处理模型和考虑到物理细胞性质,实际上使这些产品毛羽非常强大的工具。但这种能力真的需要一个假想的中档FPGA项目依赖于本地供应商的后端实现工具吗?

这样一个中档FPGA的问题或小ASIC的项目,比如物联网设备,是重量级的,没有预算,overkilling仪器,投资于过时的“警告发电机”不再有任何意义。

Challenges_solved_ALINT-PRO

对关键部件解决典型的挑战

  • 设计输入和逻辑合成功能。毫不奇怪,在最底部,RTL剥绒机需要一个健壮的设计输入和逻辑合成功能。没有合成引擎,短绒将限于执行编码风格和命名约定,只和捕获基本滥用高密度脂蛋白的结构。规则的最高需求解决最优合成,合成与模拟不匹配,或直接引用”合成网表,“所以网表必须自动提取从RTL描述类似于一个真正的逻辑综合工具。然而,短绒只需要合成冰山的顶端,即序列元素的提取和胶水组合逻辑映射到自己的内部图书馆文摘网表原语。不像真正的合成工具,短绒不一定需要翻译推断细胞库,具体目标技术可能忽视时间的优化,区域,和没有地方逻辑元素在芯片或分配I / O包针。至少短绒只能建立一个最终的高级投影网表中提取其关键结构和时间依赖性对这个投影运行网表规则检查。一个高级投影也应该足以显示调试目的的检测问题。
  • 网表模式匹配功能。如果盖茨和人字拖的“字符”网表,模式是“通配符”或“正则表达式。“模式被定义为组织相关的网表原语,满足给定的连接和上下文环境。模式匹配,综合以上水平,认识常用的网表结构内部时钟和复位树,以及控制和数据路径的一部分。模式是时钟产生电路的例子,像一个纹波计数器,时钟门控模式,脉冲/边缘探测器、数据和某个浏览器重置,插入扫描链,边界的有限状态机(FSMs)和fifo围绕记忆元素。发现模式出现有助于捕捉更高层次的语义视图网表,使多智能产品毛羽规则,像时钟/重置连接,组合反馈和基本DFT。有想要的和不想要的模式。一些模式,就像时钟信号驱动一个复位销,天生邪恶,他们代表了一个重要的潜在的有害缺陷。
  • 特定于供应商的原语支持。除了编写定制的RTL代码,FPGA设计者也使用的直接实例化特定于供应商的原语,如逻辑元素、时钟资源,高速串行I / O和记忆细胞。一些组件,即Xilinx DDR寄存器,在RTL没有任何已知的推理模式。FPGA供应商提供仿真库所有可用的原语,然而大部分的仿真模型不能直接合成和解释。剥绒机针对FPGA设计验证必须处理特定于供应商的原语,并代之以其内部网络列表细胞等价物尽可能。查找表,多路复用器,锁存,人字拖和记忆必须解释类似RTL-inferred等价物时寻找网表模式。孵蛋的原语,如缓冲区,完美控制/多路复用模式,锁相环和DCMs不仅影响网表模式,但通常形成孵蛋的整个设计的层次结构。中使用的短绒FPGA项目验证周期必须提供良好的覆盖目标供应商的库。
  • 详细的时间视图基于设计约束。下一个级别高于网表模式和FPGA单元模型认为应用设计约束(署,XDC)和建筑设计的详细时间视图。有一个清晰的理解的时间域是强制性的执行先进的时钟和复位域交叉验证。误解了时间会导致产生成千上万的假CDC阳性,或者,更糟糕的是,错过一个重要的负面。默认的时间视图将自动从网络列表中提取拓扑和标识的网表模式。通常,这个默认视图是令人满意的,但是可能仍然需要应用一些外部约束自动给出提示,特别是当使用复杂的时钟门控或多路复用模式,也选择静态时钟路径。提供约束是必须的时钟之间的关系或重置时是看不见的,只有在网表拓扑。剥绒机不能猜时钟周期是什么,但是可以建议更好的规则输出时决策取决于时期比较(fast-to-slow、低到高转移)。同样,没有办法预测,选择外部时钟属于同一同步组,同时,一些时间路径从不主动和被忽略。此外,设计有特殊的I / O引脚,依靠外部时钟信号被分析的设计(虚拟时钟),这显然是无形的网表。 User-defined constraints polish the auto-detected view and assist the linter to eliminate the output noise.
  • 黑盒与Blocks-Level约束IPs。现代设计实例化的至少一个或多个IP块实现补充核心或支持通信接口、内存单元,整合定制RTL和嵌入式CPU。的IPs的形式通常是pre-synthesized网表或加密的RTL和格式通常是特定于合成工具。即使HDL代码可用,它可能是non-synthesizable(模拟行为模型),以及终端用户通常有一个有限的控制这一过程。剥绒机的IP块成为黑盒,通过包括一个存根I / O定义文件或I / O自动生成基于端口映射。时钟/重置连接和疾控中心验证是不完整的没有检查至少IP块的I / O,尤其是是多时钟域的模块。最具挑战性的验证问题来自IP块,产生新的输出时钟域的,影响的总体时间视图设计。未能正确的时钟域的结构保证疾病预防控制中心的输出噪声。然而,产品毛羽工具必须至少有一个最小的理解IP块的时间依赖关系。如果没有synthesizable RTL,唯一的方法就是问用户描述的时间属性块使用约束。
  • 先进的调试和分析机制。最高的级别高于最后时间视图实现高级调试功能和分析机制。Aldec的ALINT-PRO提供了一些选择,相辅相成,包括传统的违反规则的报告以各种形式(文本、CSV、PDF、HTML);文本提取的时间观点的报道,时钟域过境点,确定某个浏览器;基于gui的违反观众各种问题分类模式(通过源文件,设计单位,规则的重要性,规则的主题),过滤和汇总函数;cross-probing之间发现违规行为,高密度脂蛋白源代码和RTL示意图;突出或过滤违反网表模式示意图表示;额外的抽象示意图表示时钟和复位树,以及时钟域和相关口岸,隐藏不相关的逻辑在哪里;(基于tcl的API跟踪提取的自定义分析模型。

上面的陈述功能需要与灵活的放弃补充机制来解释角情况下,发现的规则执行。放弃是一个重要的函数来实现常规回归产品毛羽,特别是在安全至上的设计过程中,然而它不应该滥用隐藏不清楚错误的设计。

可选地,linting-based验证过程可以利用分阶段产品毛羽。这种方法使规则和相关条目阶段组织成多个阶段,每个覆盖一个特定的目标。阶段的结果应该一步一步清洁。这个简单的技巧最小化之间的重叠检测到相互依赖问题,并减少的总数规则报告验证的设计师。



留下一个回复


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

Baidu