系统与设计
的意见

好喜剧和SystemC代码验证的秘密…时机!

如何处理与正式应用的断言。

受欢迎程度

高级合成(HLS)的算法代码,通常写在SystemC,正稳步取得进展。然而,这段代码的验证仍是一个有些混乱的,特别的过程。新技术应用情况正在改善,但很明显,在真实项目中的快节奏的体验评价这些解决方案比失踪的宏伟愿景物质更重要的是现在!

SystemC建立在C + +,添加硬件描述语言(HDL)的想法——功能软件基础。就像教老狗学新把戏,有一些困难,考虑到c++软件的起源。c++并没有一个“X”或未知状态的概念,导致初始化错误,很难追踪。它并没有提供方便< =非阻塞赋值以避免痛苦的竞态条件。许多常见软件编程语言结构很难与硬件,如指向数组的指针,导致意想不到的行为。

一个新兴的方法来追踪这些问题是使用一个自动化的正式应用专门处理SystemC设计和绑定到HLS工具及其相关函数库。一年前OneSpin宣布这样一个工具,一直在与几个客户和合作伙伴。重点是确定关键问题,否则造成的痛苦的经历调试post-synthesis寄存器传输级(RTL)代码,然后将结果返回到最初的抽象SystemC文件。

形式验证是好的在针对这些类型的代码问题给定的性质,检查整个状态空间设计的时钟周期。HLS代码,此外,特定于算法的新功能,如数字精度分析,证明有用。许多这些问题已经浮出水面,公司在这一领域与合作伙伴合作。很明显,一个强大的正式的工具,它可以处理完整,时态与时间(即)SystemVerilog断言,即使他们有些藏在一个自动化的应用,解决这些问题是至关重要的。

但这是困难的技术。很难足以产生一个可行的正式的工具,可以可靠地执行时间断言RTL代码。想象这翻译成越严格SystemC域。带来的好处是巨大的,然而,只要正式工具可以充分利用应用程序由颞SystemVerilog等断言。

这是什么时间的问题?一些HLS用户可能指出,至少在一个类的算法设计,合成过程的主要功能之一是将适当的寄存器插入基本上不计时的设计,和原设计定时功能有限。这是越来越常见。我们看到更多的控制逻辑和数据在SystemC运输系统编码,和结婚pre-synthesis控制的数学算法。

事实上确保数学是正确的在这些设计需要多级管道验证,以及验证工具可以完成这允许更多的组件在中央管道在SystemC编码。这使得一个整体的这些组件的设计方法。工具的进步导致更多的设计工作在SystemC层面,进而驱动工具功能在一个良性循环。

不计时的C断言被设计为软件验证。对硬件、定时时间断言键和SystemVerilog就是答案。注意静态验证工具,保证快速修复一个或两个SystemC问题。如果时间停止,那么他们的验证!



留下一个回复


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

Baidu