其中验证(第1部分)

专家在餐桌上,第1部分:其中验证是什么和它如何与约束随机生成和UVM吗?

受欢迎程度

功能验证已经由工具要求硬件看起来像二十年前的系统被设计。这些限制将芯片置于风险和新的解决问题的方法是姗姗来迟。半导体工程与弗兰克Schirrmeister坐下,集团董事、产品营销系统开发套件节奏;高级主管Maruthy Vedam系统验证工程英特尔;营销副总裁汤姆·安德森Breker;创始人兼首席执行官Vayavya实验室副总裁和John Goodenough设计技术手臂,谈论其中验证。下面摘录,谈话。

SE:你能先定义其中验证对你意味着什么。

Schirrmeister:有两种类型的软件,软件,离开了房间,是正确的,但越来越多的软件建设和主要用于诊断。离开房间功能需要的软件是正确的,幸运的是在许多产品类别,这可以根据需要更新。诊断软件的数量增长和最大的原因似乎有增加之间的交互设计的块,另一个是包含处理器。这就变得很重要,因为它意味着您可以使用软件所有引擎虚拟样机年代,RTL模拟,模拟、FPGA和硅。在理论验证重用所有。其中验证软件来验证硬件的使用。

Vedam:在英特尔,我们试图转移我们的注意力从一个芯片和硬件集中系统公司。我们现在知道它是重要的系统,而不仅仅是硬件,软件或固件。而不是专注于原料,我们现在关注完整的产品。软件正在成为一个更大的产品的一部分。我们希望能够验证范围限制的地区,可能的用例,描述的方式将使用最终产品。软件可以帮助我们更快地融入这些场景。其中验证是一种理解的最终使用的产品和验证那些在产品生命周期的早期。

安德森我看到三个不同但密切相关的领域。一个是传统的硬件/软件co-verification。这是运行生产软件硬件上以任何形式或陈述,包括最后的硅。这不是其中的验证。人已经这样做了很长时间,很好理解,这是正确的做法。其中验证是关于利用处理器内的力量SoC从内而外的验证。SoC是所有的处理器。他们控制其功能在现实世界中,那么为什么不利用这些处理器。它补充传统testbenches你试图从外面戳让事情发生。这些可以是手动或自动创建。还有其中验证这是当你得到第一个芯片从铸造是常有的事,这不正是你想要的。硬件错误,错误的环境,很多事情可能出错。传统上他们会开始写诊断和这个任务是一样,可自动化的技术被用来取代手工编写的软件验证阶段。一个有趣的问题是他们都可以连接在一起。你可以使用相同的过程,同样的测试,同样的生成工具和如何领带为co-validation生产软件使用。

帕蒂尔:当我们谈论其中的验证,这意味着软件验证流不可分割的一部分。这是一个内部的过程。软件驻留在你的SoC和设计的处理器上运行。验证进行结合的软件驻留在系统。这个软件可以自动生成或手写的。没有必要实现全面验证所有的用例生成和完整报道,而是能够模拟大多数用例反映真实世界的场景中,系统会被使用。如果你能做到,你就获得了其中的意图验证。

前言:首先你必须考虑如果产品确认是硬件,或者产品硬件/软件。作为处理器的公司我们经常运输硬件我们使用软件来帮助我们验证硬件。我们还有一个产品,一个GPU,产品硬件和更重要的部分是软件,如司机。我可以运用其中的验证和区分这两个很重要。这也适用于更复杂的事情比如平台、子系统和出类拔萃。我们可以使用软件来验证集成的硬件和软件产品的一部分。我们使用软件验证加速集成测试,试图将尽可能多的集成测试pre-silicon和最好的知识产权供应商,进入前IP-release世界,pre-SoC集成和加速集成测试。这可能是启动用例。另一种是预料到用例和验证硬件或硬件/软件的组合。当我们发布的硬件或hw / sw平台上运行的软件,是它不是我们测试的软件。其中验证预测用例和强调产品在各种预期的用例。杀死我们的事情是未知的未知。其中验证的真正力量帮助我们加速让已知的未知,探索未知的未知的系统通过更大的压力。我们能做到这一点的原因是,我们在仿真运行相同的载荷,仿真、FPGA然后在硅。它不仅仅是跑得很快,它是关于当你有一个失败能够调试它。

SE:我们现在有两种方法用于验证:UVM块和其中SoC和我们如何确保这不会浪费资源呢?

Schirrmeister:在DVCon,人们讨论如果UVM一去不复返了。其中验证是唯一的选择,当你超越纯块级验证。UVM块水平和可能的是伟大的子系统,但当你把它放在一起,想要调查如何块相互作用,其中正变得越来越重要。

Vedam:UVM非常结构化和分层架构。是软件的下一个前沿的分层?当我们从事务层进入交易的集合好像用例和潜在的软件堆栈将成为下一个水平。

Schirrmeister:UVM,像今天,重点是我们需要的块级别和新事物。一个新图层。UVM不会消失,因为你仍然需要验证模块。

Vedam:他们可能是一致的。它不是有两种不同的方法。有机会来调整和扩展分层架构。

安德森:这是一个有效的思考方法。其中验证可能被视为UVM + +。处理器,改变了一切。UVM伟大工作直到你添加处理器和UVM没有处理器的概念,软件运行在一个处理器或软件和testbench之间的通信。这些存在于UVM。也许会有一个新的图层包含它。但我们不是把很多因为我们利用很多UVM。如果你有一个处理器上运行测试用例,与任何I / O通信芯片,你将利用UVM testbench组件的。您可以利用断言,覆盖。你不需要做的是编写一个顶级UVM序列,联系在一起。 That may be subsumed by the software-driven layer.

前言:当你说UVM,你必须确定你是什么意思。你说重用断言,交易人或重用复杂虚拟交易吗?有一个不同的答案。有些东西可以从单元级提升testbenches等断言和覆盖点。在系统级重用UVM交易人不是那么有用。这往往是因为你已经进入一个加速环境和我什么都不想要,我慢下来。

帕蒂尔:如果你想要运行一个测试用例,并假设它是一个纯粹的基于c的测试用例,你需要一些裸机软件代理上的硬件。这可能是手工编写或你可能有一个机制来生成。这个可能来自一个高级硬件/软件接口机制,可以捕获SystemVerilog等语言。这个捕获测序可以转化为裸机软件。

前言:我们发现,人们开始使用真正的Linux内核中,或管理程序。你想这样做,因为它是可以验证的东西的一部分。

帕蒂尔:我们假设一个内核级验证和测试。除此之外,当你把一个系统外围设备和IP, IPs必须与硬件交互处理器和有一个定义的机制。你需要描述这些交互。这就是我们捕获和硬件/软件界面。从这些规范可以生成软件。当你向上移动,IPs互动如何?

前言:我们会发现,我们的许多软件测试是提前写的硬件。这些都不是验证,软件开发的人。他们不想在中间。

第二部分可以找到在这里



1评论

说:

其次安德森,需要一层包括UVM交互软件,在处理器上运行。ip块UVM组件。他们的配置软件控制和处理器块本身是模拟和运行软件。

留下一个回复


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

Baidu