中文 英语
系统与设计
的意见

为什么您的FPGA合成流程需要验证

等价性检查是使逻辑综合成为主流的关键,但当涉及到fpga时,它更加复杂。

受欢迎程度

当你想到它时,逻辑合成是现代芯片设计中至关重要但相当令人生畏的部分。这个过程需要对预期功能的高级描述,用看起来更像软件而不是硬件的RTL语言编写,并使用ASIC或FPGA设备的低级构建块库实现它。由此产生的栅极级网表必须满足速度、面积和功率的各种要求。在完整的地点和路线流程完成后,这些相同的需求必须继续得到满足。现代合成工具复杂,既有先进的算法,也有许多用于用户指导的“旋钮”。

ASIC合成工具的早期用户非常担心将手动门级设计转向自动化工具的影响。时间和资源的节省是显而易见的,但设计师担心他们如何验证得到的网列表。对于先行者来说,唯一的答案是使用RTL代码上运行的完整测试套件中的尽可能大的子集来运行门级模拟。但是门级模拟比RTL慢得多,并且不能保证合成工具引入的错误会被发现。EDA供应商通过提供正式的等价检查(EC)工具来解决这种情况。

等价检查器比较两个设计实现并报告差异。它可以比较两个RTL设计,例如,在插入扫描或内置自检(BIST)逻辑之前和之后。另一个例子是两个不同的网列表,例如,对于不同的目标技术,使用相同的RTL代码运行两次合成。也许最重要的是,rtl与网络列表的比较验证了合成过程本身,要么在网络列表中找到错误,要么正式证明不存在这样的错误。这为逻辑综合提供了高可信度,并且当与静态时序分析配合使用时,在很大程度上消除了对门级模拟的需要。

EC工具可能很难开发,但传统ASIC合成不影响状态元素(寄存器和内存)的事实简化了这个问题。如果RTL代码中的状态元素与网络列表之间存在直接映射,则可以在单个时钟周期内组合检查状态元素之间的等价性。下图显示,对于公共输入值和完全映射的状态元素,可以证明输出和下一个状态值是等效的。这意味着设计是匹配的。


图1:等价性检验证明,黄金设计与综合后的修正设计匹配。

EC工具的可用性是推动逻辑综合进入主流开发流程的关键因素,而且这种技术在今天的ASIC开发团队中无处不在。然而,EC工具在FPGA开发流程中并不常见。在某种程度上,这只是一个令人不安的普遍信念的结果,即验证对于fpga来说没有asic那么重要,因为在实验室中发现的错误可以通过重新编程设备来修复。虽然改变FPGA不需要很长的前置时间和高成本来转换ASIC,但发现、诊断、修复和验证FPGA错误的时间可能是令人望而却步的。

随着基于fpga的设计变得越来越复杂,许多开发团队已经采用了类似asic的设计和验证流程。在EC工具的情况下,在FPGA开发中使用它们有额外的好处。这是由于FPGA合成工具执行的优化和转换的积极性质,以满足设计要求并提高设备利用率。FPGA工具执行一些优化,改变输入RTL和输出网络列表之间的状态元素的映射。一个常见的例子是重新计时,其中逻辑从寄存器或内存的一侧移动到另一侧以满足计时要求。

这意味着只能直接映射状态元素的一个子集,并且需要更复杂的EC工具。该工具必须自动执行大部分或所有映射,尽可能利用组合EC,并根据需要在有限的设计部分应用顺序(多周期)EC。下图显示了两种不可能实现完全状态映射的设计。尽管如此,先进的EC工具仍然可以正式证明等价性。


图2:即使这两种设计的完全状态映射是不可能的,等价性检查可以正式证明等价性。

在存在其他改变状态元素映射的综合优化(包括状态机重新编码和内存中寄存器的实现)时,这种相同的方法可以很好地比较RTL代码和netlist。虽然与FPGA供应商密切合作是必要的,以优化每个特定FPGA设备和流程的EC设置,从而实现高度自动化,但EC工具必须独立于合成工具的任何提示或侧文件。

只有使用具有顺序功能的高级形式等效检查工具(例如OneSpin 360 EC-FPGA), FPGA设计人员才能确保主动合成会导致功能等效的网列表实现。此流程提供的确定性级别对于项目的成功非常重要,并且对于满足诸如DO-254和ISO 26262等需要高置信度的安全标准的要求很有价值。



留下回复


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

Baidu