没有变化是免费的,但有时它无法量化到足以做出决定。
古老的智慧说,你应该小心你的要求,因为你可能会得到它。在我在EDA的职业生涯中,这种情况确实发生过很多次,我相信今天仍然如此。有时结果不是我们想要的,或者代价比预期的要高。例如,考虑VHDL,该语言旨在纠正Verilog的问题。
Verilog的一个问题是没有很好地定义0延迟传播的模拟语义,这导致模拟器以不同的顺序计算事物,有时会得到不同的结果。即使在同一个模拟器上重新编译和运行也可能导致不同的结果。VHDL解决了这个问题,但这意味着扩展了模拟循环的复杂性,因此模拟运行得更慢——一直都是如此,而不仅仅是在遇到问题的少数情况下。
用户表示,他们希望能够从语言作为库从外部定义值集。虽然这看起来像是一种很好的可扩展语言功能,但实际上并不是必需的,而且它的加入导致模拟运行速度变慢。SystemVerilog走的是相反的方向,它直接在语言中定义了所有的值集,其中一个,位,导致了一个数量级的加速。我们都知道结果,今天VHDL是一种用于少数细分市场的利基语言——就像基于fpga的设计。
业界一直想要更快的模拟。研究人员和EDA公司问:“你愿意放弃什么?”他们尝试在门级模拟器的时代计时,并生产了闪电般的单位延迟模拟器。没有人想要它们,通常是因为它们的设计中有一个地方违反了规则。在早期的RTL时代,循环模拟器和加速器被创造出来,但没有人想要它们,因为它们的设计中可能有一种情况违反了规则。
随着设计IP的出现,可以节省的设计时间数量被吹捧,对验证的影响也被口头上提到。只是说设计将会有更高的质量,需要更少的验证,但我们都知道这些都不是真的。知识产权行业对提供知识产权的高级功能模型并承担保证模型与实现匹配的任务不感兴趣。即使在今天,也很少有知识产权公司愿意这么做。因此,验证就不得不使用IP的实现模型进行验证。
新的设计语言已经被开发出来并呈现给了业界——这些语言直接针对硬件的基本结构,并对验证所花费的时间产生了巨大的影响——但没有一个是成功的。
即使是高级综合,对于某些类型的区块来说,可以展示出更高的生产力和结果质量,最初也很困难,因为它没有完全解决所需的验证方法。虽然设计输入语言现在是C,但不存在基于C的验证流。
核查一直被视为一种成本负担,这就是为什么我认为核查在今天如此昂贵。要达到一个可接受的风险水平,需要更多的人和更多的时间,而且目前还没有什么可以改变这一点。核查技术取得了重大进步,但它拖着一个巨大的锚,几乎不可能取得任何重大进展。
这个行业根深蒂固,即使是革命性的方法也不太可能成功。回到80年代后期,当RTL合成开始被接受时,很容易将新旧方法放在一起,比较结果和生产率。结果不如当时最好的设计师,但它提供了10倍或更多的生产力提升。我们可以用什么新的语言、工具或方法来与我们今天所拥有的进行这种比较呢?
EDA行业已经尝试了几次。在清理一些旧记录时,我最近发现了一份100页的报告,这是我在一家大型EDA公司工作时编写的。这是一个开发电子系统级(ESL)工具套件和方法的计划,它将同样地推进方法的设计和验证方面。它是基于公司内部现有的工具,一些需要获得的新技术,一些需要资助的研究项目,以及一个显示如何证明方法有效性的插入计划。
问题总是出现在最后一部分,即使是那些积极推动我们朝这个方向发展的公司。他们的内部研究小组想要做出改变,但他们在说服自己的开发团队看一看方面也很不成功,更不用说采用了。
改变是艰难的,虽然现有的方法并没有完全崩溃,但它们不太可能看到重大变化。在已有的基础上寻找增量变化和补丁会更容易、更安全。
你提到FPGA是利基市场。不久前我听到的一个数字是,每启动一个ASIC,就有30个FPGA启动?
你有别的电话号码吗?因为我认为设计不是ASIC就是FPGA。因此,就数字设计器而言,FPGA似乎是主导地位。
还是说你在市场上花费的美元?在这种情况下,ASIC工具和SystemVerilog模拟器明显比FPGA工具和VHDL模拟器更贵?