中文 英语

质量的时间吗?

验证工程师对芯片开发中最耗时的部分的看法。

受欢迎程度

埃德·斯珀林

系统级设计与意法半导体功能验证组设计验证团队负责人Olivier Haller坐下来讨论验证的未来;希勒尔·米勒(Hillel Miller),飞思卡尔(Freescale)功能设计和验证工具及方法论经理;联发科无线设计验证工程经理Kelly Larson;Breker的首席执行官Adnan Hamid和ARM处理器部门的顾问设计工程师Alan Hunter。以下是那次谈话的节选。

问:目前核查的痛点在哪里?

米勒里面的目前我们发现不同地区的不同群体在做同样的事情。为了提高效率,我们付出了很多努力。我们曾经让建模端的团队做验证IP, RTL端的团队做验证IP,验证端的团队做验证IP。我们用c++开发了可以重用的验证IP。没有什么可以做的,所以我们自己做了。我们现在正试图弄清楚如何让供应商——synopsys、Cadence和mentor——参与进来。

拉森:我们正在为System Verilog开发专业知识,我们正在采用类库。我们缺乏专业知识的地方是我们的覆盖模式。在刺激和随机化方面比在检测漏洞和确保我们对此有覆盖方面要复杂得多。

哈勒:几年前,我们的挑战是质量,但我们有很好的方法来解决验证流程中的质量问题。我们需要的是更好的方法将智能带入测试平台,以提高生产率。

哈米德:我们需要围绕你必须测试的结果和将给你这些小程序的结构来构建覆盖率。我们还看到,人们需要能够更快地验证他们的IP核。第三件事是垂直重用。我们希望能够对固件进行测试,使其与我们的系统一起工作。

猎人我们有一个不同的问题。我们提供的是IP,而不是系统。我们对自己的知识产权进行了合理的核查。我们在覆盖模型方面有相当好的经验。我们开始进入系统verilog测试平台。我们一直是一个“e”的房子(Cadence的设计语言)。我们现在开始转向System Verilog,这引起了一些头痛。但问题是IP配置,以及如何验证所有这些配置。我们有自己的内部系统,可以插入IP,这样我们就可以测试所有这些极端情况。对我们来说,把它放到实时系统而不是FPGA中是一个大问题。 We’re addressing it, but slowly.

问:覆盖是否是硬件方面的主要问题?

米勒在保险方面,我们有两个大问题。一是设计团队确切地知道他们需要实现什么。覆盖范围很广。涵盖了单元级、子系统、SoC、刺激、信号的功能和遥功能。这是一个决定他们需要达到什么样的覆盖目标的问题。在此基础上,就是资源规划的问题了。今天,我们不知道我们需要多少人、多少工作站或多少软件许可证,因为我们不知道设计团队需要达到什么样的覆盖率。另一个大问题是,覆盖范围涉及多个学科,目前我们没有一个好的标准方法。System Verilog在某些方面不完整。

拉森:对于我们来说,很容易无法生成足够的覆盖率数据。但也很容易产生过多的数据。从一个极端到另一个极端。你必须弄清楚你需要看什么,不需要看什么。这是一门艺术。

问:但这不是核查中最大的问题吗?这是一个你真正需要看什么的问题,因为有这么多数据。你是如何发现漏洞的?

哈米德:英特尔声称,核查人员25%的时间都浪费在了“不在乎”上。他说,情况越来越复杂。

米勒我想在设计师们工作的时候问问他们模拟许可证资源,他们从这些资源中得到了什么价值以及覆盖率如何提高。

猎人:弹出的是“不在乎”、“真的在乎”和“基本不在乎”。“问题是,这些都是依赖于系统的,所以我们需要什么都去做。

米勒:但是你如何追求多个时钟域和频率关系呢?

猎人:我们必须尝试我们的内部系统工作台。我们有一整套不同的时钟域,我们可以改变内存类型。

拉森:我们在内部遇到了同样的事情,我们提供了一个经过验证的块,而某人以不同的方式使用它。你不知道你的“不在乎”是什么。

哈勒:通过定义具有相关严重性的特征,然后将它们映射到验证指标,我们应用基于计划的验证方法。这样做,你可以确保对你的设计最重要的功能得到验证。

米勒我们认为你需要双向发展。你需要从上至下专注,你需要从下至上确保你对自己的IP做了全面的覆盖。

猎人但是这是假设你的设计是正确的。

哈勒你没有对设计进行限定。您正在对验证进行限定。

问:你用什么语言写东西很重要吗?我们有System Verilog, e, Vera,还有很多其他的。

米勒:推动这一趋势的关键因素之一是半导体行业的整合。我们的伙伴关系比过去多得多,我们需要确保为未来的伙伴关系做好一切准备。我们使用System Verilog是因为它得到了广泛的支持,我们使用c++也是出于同样的原因。

拉森:为了提高效率和重用,你真的希望东西看起来尽可能相似,这就是我们使用类库的原因。一切都与效率有关。我们有非常小的团队和非常大的筹码。垂直重用是一个大问题。如何将单级测试台架利用到子单元级和系统级测试台架中?

猎人:从设计的角度来看,我们必须使用最小公分母,即Verilog 95。这是你唯一能保证人们理解的事情。直到最近,我们还必须支持VHDL。我们很快就要转移到Verilog 2001,这样我们就可以做参数了。

哈米德:你不让供应商搬上去吗?

猎人:我们尽力去做。我们与Synopsys、Cadence和Mentor都有合作关系。但是很多人都不想搬家。从验证的角度来看,我们提供了一个执行调用的简单测试平台,我们可以为这些组装测试提供简单的测试流。制作部门会卖给你一个验证IP,但从核心角度来看,这是相对简单的。

问:其他人呢?您使用什么语言进行验证?

哈勒在ST,我们的主要语言是e。我们有两个项目,从System Verilog的验证开始。OVM(开放验证方法)是开源的事实是我们考虑的因素之一。我们能够在OVM环境中集成System Verilog和e。

哈米德我们看到每个人都在做不同的事情。我们必须使用最低公分母的解决方案,即c。现在它正在演变成一个用不同的语言开发不同的IP块的世界。我们并不关心语言。我们关心的是互操作性。我们可以驱动evc (e验证组件)或VMM (System Verilog验证方法手册)事务处理程序,并且我们可以从C驱动它们。

问:这听起来不像是进步。这听起来像是向最低公分母的回归。

米勒在我看来,System Verilog从块级和用户级都是一个巨大的成功。这是一个重大的生产力提高。调试工具和Verilog语言的紧密性都是进步。C- c++的出现是因为我们提供了使用C/ c++作为前端的产品。这就需要C作为最小公分母。

拉森作为一名验证工程师,我们对用c语言设计测试台没有兴趣,我们需要一种高级的测试台语言。我们一直在关注Specman和Vera,但我们从来没有买通过其中任何一家公司,因为他们对专利产品存在阻力。我们跳上了System Verilog。它具有高级测试平台语言所具有的所有功能。这些都增加了验证工程师的工作效率。

问:为什么不用Cadence的e?

拉森:这将你与特定的模拟器联系在一起。我们在不同的模拟器之间摇摆不定,取决于谁给了我们最好的交易。这是类库应该很快就能解决的问题之一。

猎人直到最近,我们也在使用e。这对于IP来说非常有效。但是经济压力迫使我们选择了System Verilog。

:有没有一种方法可以在验证中插入标准,以解决一些逐渐演变为更复杂设计的极端情况?

米勒:我们在Accellera成立知识产权验证委员会的原因正是如此。我们将开始关注System Verilog本身。我们必须处理System Verilog和这个最小公分母,也就是C或c++。

哈米德:测试台问题,无论是System Verilog、Specman、Vera还是System C,在过去的10年里已经变得成熟了,所以我们可以开始讨论标准了。只有当我们理解我们在谈论什么时,我们才能谈论标准。我们可以建立一个测试平台,允许良好的交通进出。现在的问题是获得好的测试用例,使我们能够触及我们所关心的所有覆盖区域。但我们也必须弄清楚这些覆盖点对我们意味着什么。我们甚至还没有接近标准化,因为我们还没有弄清楚问题是什么。语言不是问题所在。这是人类如何与我们正在建造的这些极其复杂的东西联系在一起。

米勒我们开始标准化语言。然后我们谈到了格式。现在我们在做互操作性.下一件事是方法论。

问:当我们移动到45和32纳米,然后堆叠晶圆时,问题会变得更加困难吗?

米勒:你向客户交付了一些东西,你需要确保它适用于客户想要编写的应用程序。您还需要在硅上有一个良好的覆盖环境。这将帮助我们实现45nm制程,在45nm制程中,所有的设计都是正确的。我们将有一个与之互补的环境。我们将在SoC上使用良好的覆盖模型测试我们的功能。

哈米德我们需要进行功能后端测试,因为只有这样我们才能确保我们的设计能够正常工作。

米勒我们有这样一种假设,即一切设计都是正确的,它会工作。我从来不相信这一点。在45纳米和32纳米时,情况更糟。

问:在这些几何图形上,覆盖模型更差,因为芯片上的空间更大,对吗?

哈勒:从RTL和上述验证的角度来看,问题来自可伸缩性的角度,因为我们能够添加越来越多需要验证的功能。在针对这些密集的几何图形时,重用合格的IP是实现功能正确性的关键。

拉森:另一件正在推进验证领域的事情是整个低功率验证的概念。有很多功能上的问题。

米勒:如果你看一下整个系统,我们有隔离和保留单元,电平转换器和功率域。

拉森你有开始时钟,停止时钟,某些部分保持,而其他部分没有,我们有软件程序,重新启动一些寄存器。你需要模拟去掉所有的值。你不能再这么敷衍了事了。

哈米德:我们还看到,随着这些设计变得越来越复杂,让设备通过所有这些通电和断电状态需要大量管理良好的操作。测试一代也变得越来越难。

Q:增加多核怎么样?

米勒:我们正在处理互连和缓存一致性能力,我们发现我们有一个互连补丁一致性模块。这里的问题是,状态过渡表变得如此复杂——我们有这些表的书——这是一场噩梦。我们正在编写断言并验证这些过渡表是否完整。此外,使用多核,您希望能够在不同的核上同时运行不同的操作系统。这就产生了对特定地址上的地址转换功能和资源管理的巨大需求。现在我们必须把软件和硬件紧密地结合起来。在多核系统中,您希望提高硬件的效率。我们有像队列这样的东西,你可以在其中插入任务,你希望这尽可能地并行,所以我们有软件任务和硬件执行的紧密耦合。这些对我们来说都是真正的挑战。实时需求必须通过软件和硬件来解决。

哈米德: CPU的家伙已经看到这个有一段时间了。这都是关于资源冲突。有些测试以前已经做过了。

拉森我们现在用十几个人来处理相同数量的晶体管,而过去我们用几百人来处理。

问:晶圆代工厂一直在发回越来越多关于制造过程的数据。这是帮助还是混淆了问题?

哈米德一旦我们弄清楚如何进行所有这些功能测试,我们就会看到他们转移到制造端,以确保这是可行的。

米勒:从我们这边来说,我们需要更多的东西,比如冗余和ECO(工程变更订单)能力。这也有帮助。

猎人我们离硅的制造只差一步。这对硅公司有帮助,但对我们没有帮助。我们需要更多的反馈。

哈米德我们需要制定一套规则,说明‘这是我们期望你使用我们的IP的方式’,并提供文档。如果我们说,‘这些是使用模型,这些是你可以使用工具的方式’,那么客户可能会抱怨规则,但至少他知道如何使用它。

Q:关于如何使用IP或工具的意图是一个有趣的方法。但到目前为止,还没有人做到这一点。

哈米德:对于一个设计来说,工作意味着什么?它对所有可能的实现给出相同的答案。

米勒:这是一个黑盒的观点。我们需要强调白盒的观点。

哈米德:黑盒也是你意图的一部分。但是不,我们还没有进化到那种程度。

哈勒:我们正试图与我们的IP供应商就基于突变的度量达成一致,以确保其功能的正确性。我们还没到那一步。但这显然是最客观的方法,行业应该推动这类指标,以确保设计的最终质量。

问:目前,验证占芯片开发时间和成本的70%。减少这段时间的现实目标是什么?

米勒:关键是自动化,以及编写可以从这些规范自动验证IP的规范。今天,人们正在编写规范,但他们并不总是以可提取的形式进行。有一些成功案例。

拉森:我们在重复利用设计IP方面做得很好。我们有标准的总线协议,我们可以从多个来源获取标准IP,并将它们融合在一起,创建一个巨大的系统。但是这些都不能帮助验证设计是否符合您的要求。我们不太擅长重复使用验证IP。将测试台架和测试计划组合在一起需要大量的努力。我们需要在验证中达到与设计相同的点。在核查过程中,我们需要标准的沟通渠道。我们典型的验证工程师要比典型的RTL工程师写出更多的新代码。



留下回复


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

Baidu