系统与设计
的意见

FPGA和系统设计进入市场的速度利用ASIC-Proven分析工具

数字系统需要的时钟。今天的设计需要从时钟方案比以往任何时候都多,而且这一趋势将持续下去。

受欢迎程度

增加权力约束导致更细粒度的分区设计成可以有时钟禁用或功能域,更彻底,完全关闭。系统需要自适应管理时钟切换功率降到最低。

性能和面积约束导致放弃更为保守的做法赞成更激进的设计;例如,删除注册银行作为记忆功能或时钟域之间的缓冲区。在这个日益复杂,成本和上市时间的压力提高严格的验证需要释放任何系统前,SoC,或FPGA设计,无论行业或应用程序。

鉴于这些趋势,在FPGA时钟问题比以往任何时候都更为普遍和系统产品进入实验室,或者更重要的是,市场。根据2018年威尔逊研究小组功能验证研究,孵蛋的缺陷在FPGA成为造成生产的问题,在过去的六年中上涨近20%,并有望成为FPGA生产问题的主要原因,如图1所示。


图1所示。历史趋势的FPGA产品问题的原因

相同的威尔逊研究小组研究发现,在2018年,84%的FPGA设计有重要的bug逃入生产,在两年内上涨了6%,如图2所示。这是一个真正的需要提高应用水平和成熟度FPGA验证方法的空间。


图2。历史的趋势发布的非平凡的bug数量FPGA设计

FPGA和系统设计师来说,好消息是,工具来解决这些问题已经开发和ASIC社区证明和很容易适用于FPGA系统设计空间。

时钟域交叉的问题
孵蛋的问题,因此,应该是一个重要的问题在FPGA开发社区。然而,孵蛋的问题往往被误解是时钟本身的完整性。相反,孵蛋的问题通常与数据腐败或信号丢失在两个异步时钟域之间的边界时,称为一个时钟域交叉(CDC)。数据从一个时钟域或控制信号传输到另一个,这些信号具有时间特征相对于采购时钟域。这些信号是最终在接收采样时钟域的元素,比如触发器。触发器的数据变化过于密切的时钟边缘将进入一个过渡,不确定的状态持续时间的概率。这就是所谓的亚稳状态。存在许多clock-boundary同步方案,确保信号传输控制或数据准确,尽管这种亚稳态行为。没有这样的一种机制,不正确的值的数据或控制信号采样和错误的行为会结果。

亚稳定性发生在系统异步时钟。如果亚稳度暴露在功能设计本身的一部分,由此产生的问题是难以调试测试,甚至更难调试,如果他们进入生产领域。的不确定和概率自然价值的触发器是受到环境条件的影响。某些环境特征可能加剧亚稳度本身的条件。非确定性行为的概率自然也体现——有时发生故障,有时它不相同的环境和条件。设计治疗疾病预防控制中心轻成本团队重要的时间在实验室调试,或者更糟,在现场与客户质量问题,具有挑战性的根本原因分析,和昂贵的返工。

对于简单的设计与一个或两个时钟,时钟许多问题可以捕捉设计之前发布。训练有素的组合方法的基本线头时钟检查,有限的同步方案,疾控中心的详细审查,和时钟的变化模拟代表最终系统的实现中,可以找到问题。这些分析是驯良的,可回顾的由于时钟域的数量排列不超过两个。

然而,如图3所示,大部分的FPGA设计现在至少有三个钟。设计的三个或更多的时钟已上涨百分之六在过去的六年里,尽管从2014年到2016年才会减小。FPGA设计的数量超过两个时钟增长到2018年的73%。


图3。历史趋势的异步时钟域/ FPGA设计

疾控中心要求验证的数量不与域的数量成线性比例,但域交叉排列的;所以有四个时钟域的设计有一个潜在的12种不同的排列检查坏的。当你把额外的复杂性的时钟管理、电源管理,性能,和延迟考虑,技术和解决方案,为简单的设计根本不工作。手动检查和严格的方法是不够的。

模拟的局限性
因此,许多团队转向功能模拟来验证他们的疾病预防控制中心。这种模拟的目的是确定当数据损坏或信号丢失在疾控中心。虽然这是一个崇高的目标,有一些挑战,团队可以相遇,可以导致他们错过的问题。

首先,数字模拟,根据定义,不处理好非行为。因此,一个触发器或其他存储元素的亚稳态行为不是在传统的数字仿真建模。结果,验证正确的同步对亚稳态行为是具有挑战性的。

应该一个团队成功地克服这个问题,接下来必须确保限制时钟精确地反映真正的时钟在硅上的场景。只有通过这样做将模拟的场景要求创建和测试时钟域口岸正常。这是不容易为复杂的设计做了详尽。

下一个挑战似乎违反直觉的:约束所有时钟正确是不够的。同步问题只发生在数据或控制信号传输通过时钟域穿越周期的时钟接近足以导致一个时机问题。可以添加功能报道这些事件,以确保他们在模拟发生,但这将只包含已知的过境点,不会验证那些无意的。

最后的挑战与通过测试的定义。功能测试不可能实际上失败即使数据损坏或通过一个时钟域交叉发生信号丢失。测试必须以某种方式敏感问题的路径,而不是所有的测试关注所有路径。

总之,依靠功能模拟是最好的一个非常具有挑战性的前景,但在最坏的情况是容易出错且将导致设计团队错过疾病预防控制中心,将存在于系统的关键。很明显,仿真是不够的。所需要的是彻底的,non-simulation-based验证的时钟网络和疾控中心。

借贷中心从ASIC技术的世界
幸运的是FPGA和系统设计师,multiple-clock-domain设计中遇到的挑战ASIC systems-on-chips (SoC)早些时候,总的来说,比在FPGA和系统设计。从那时起,ASIC SoC行业创新发展,成熟的疾控中心验证技术,导致频谱,强大和广泛的疾病预防控制中心解决方案已成功部署了将近20年。这些特性很容易适用于FPGA系统设计空间。

ASIC疾控中心的成功验证工作中可以看到ASIC社区之间的差异的结果,疾控中心的使用是很常见的,和FPGA的社区,这是不太常见的。如图4所示,威尔逊研究小组2018年的调查发现孵蛋的问题作为一个功能缺陷的根源在ASIC只有26%的时间,43%的时间相比,对FPGA设计。


图4。差ASIC和FPGA验证记录缺陷

孵蛋的问题是失败在asic的第三大原因,自2016年以来(图5)。相比之下,他们的第二原因失败fpga(参见图1)。这种差异更大,因为它的存在,尽管asic比fpga时钟域平均有23%在2018年的调查(2016年95%)。


图5。历史趋势的原因ASIC功能缺陷导致的衍生

这个更高的失败与时钟的数量分布在fpga明显比较图3和图6。


图6。历史趋势的异步时钟域/ ASIC设计

那么这些成功的疾控中心核查技术看起来像什么?除了静态正式RTL设计分析,美国疾病控制和预防中心解决方案空间包含了动态仿真的解决方案添加亚稳定性模型下的RTL模拟静态形式的方向疾控中心的工具。这个糖分会让所有疾病预防控制中心确定的详尽的正式方法产生随机延迟,也增加覆盖率报告。这些方法解决上面所讨论的关于的更具挑战性的问题在仿真验证中心。

Netlist-focused CDC工具也被引入分析最终实现网表准备生产的承诺。这些工具是专门为netlist-focused调谐性能,从疾控中心运行在RTL之前,进口限制,专门寻找新的疾病预防控制中心违反可能引入的实现工具,如合成或测试插入。

基本的静态疾控中心分析工具的功能得到增强,随着时间的推移,,添加自动同步器方案推理从代码分析,以及基于规范设计意图流和同步器协议验证通过正式和动态模拟的方法。

最后,尽管很明显,人们越来越需要采用FPGA和系统设计社区疾病预防控制中心验证工具,应该小心谨慎。在疾病预防控制中心的功能有显著差异产品市场上的成熟,结果,质量和完整性的分析。有些formal-based,依靠网络列表语法分析来识别问题。有些人比其他人更准确。有些成熟和ASIC-hardened,而另一些则相对较新的市场,还处于幼年期的质量和功能的结果。它是至关重要的,一个团队识别需求,找到合适的解决方案,将与他们的路线图和需求规模。

简而言之,FPGA和系统设计是导致今天的问题,推动了ASIC SoC社区创建、成熟和强化疾病预防控制中心工具年前。这是好消息的FPGA作为必要的工具和系统设计社区今天可显著降低风险,加快走向市场和收入。



留下一个回复


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

Baidu