尽管业界对SystemC或SystemVerilog哪个更适用于体系规划和验证仍有争辩,但现已不需求在两个之间作出挑选。经过互补的办法对它们高效地加以运用能够促进那些高档验证办法的成功运用。这些高档验证办法一般会选用受限随机测验生成、功用掩盖、声明和业务级建模(TLM)功用。
经过支撑面向对象的编程办法,这两种言语都能对更高层的笼统进行建模,而且都包含象随机化这样的验证组件。两者之间也有些差异。例如SystemC彻底支撑TLM,包含在高层笼统进行描绘、记载和业务阅读;而SystemVerilog不彻底支撑TLM,但它支撑声明、功用掩盖和改进的受限随机测验生成功用,因而也具有明显的验证优势。这两种言语在功用上多少有些堆叠,因而用这两种言语树立体系时能够做到滑润转化。
能够在多个笼统层完结的高档验证办法和建模技能能够最佳地发挥TLM的优势。业务常用于建模硬件体系,而体系软件的语义很简略被标明为高层业务。这样体系架构师、软件、验证和硬件工程师之间就能直接进行沟通。更高层笼统和TLM能够使很多软件被用作测验渠道的一部分,并答应在RTL编码完结之前开端测验渠道开发。当RTL规划完结时,验证工程师就能够刺进将RTL业务转化成信号层业务的业务处理器。
别的,规划范畴和学科之间的这种高功用桥梁能够改进公司各个规划与验证团队的一切成员之间的沟通和协作。它答应软件工程师和体系架构师与验证和硬件工程师直接同享数据。这种交叉学科沟通自身也有助于发现和处理规划进程前期呈现的问题,然后进一步进步规划质量和验证的产能。
图1:在多个笼统层作业并运用高档验证办法能够为体系级渠道的树立供给极好的时机,此刻验证杂乱SoC所需的多学科会聚要比曾经早得多。
规范集成可进一步便当高档验证
规划杂乱性意味着验证小组有必要能够发生更多冗余度更少的测验,以便更快地掩盖方针功用。最佳的验证处理方案能够协助工程师运用高档验证技能和办法完结更高的验证产能,例如根据声明的验证、受束缚的随机测验、功用掩盖和测验渠道主动化。
这些办法已被一些前沿规划公司所选用,其间大多数规划公司开发私有东西来支撑这些办法。这些私有东西被证明能够添加验证功率和产能,并能进步规划质量。但是,私有特性也阻止了这些东西的广泛选用。一般这些定制言语的集成以及独立内核和专用接口的整合束缚被证明是适当困难的。
战胜这些妨碍的第一步是由公认的规范安排如OSCI、Accellera和IEEE开宣布规范的验证言语和库。这些新言语也有必要战胜其它HDL言语的规划与验证束缚,由于这些HDL言语短少对更高层笼统的验证支撑。第二步是供给能够全面支撑在单个内核和用户接口中集成这些言语的仿真环境。这种言语的集成能够从根本上改动高档验证办法的布置,使之最佳匹配项目需求,而不受言语或东西的束缚。
SystemVerilog和SystemC是合适高档规划与验证运用的最重要言语。SystemVerilog和SystemC规划结构答应在更高笼统层进行建模,然后有利于下一代规划的创立与验证。
SystemVerilog是许多现成的专有和规范验证与规划言语堆集的效果,因而它能与现有的HDL环境无缝集成。SystemVerilog能够加速高档功用验证的构建,完结缺点检测的主动化和规划的彻底掩盖,包含难以预料的偏远事例。它能改进建模质量,使之具有更好的可视性和更少的缺点,而且能够经过支撑受限随机测验、主动化、声明、掩盖和测验渠道复用改进测验渠道架构的质量。
SystemC能让工程师在更高笼统层捕获规划,并运用包含软件在内的高层测验战略履行验证。体系级测验渠道也能够在RTL级复用,完结验证产能的进步。SystemC包含一个功用强大的并发建模层,十分便当创立无时序、并发的体系级架构模型。由于SystemC是C++的扩展,因而它有许多固有特点,如类、模板和多种承继性,这些特点自己就能树立合适功用验证的可复用业务级组件。用于开发软件的同一可履行渠道常被用于整个体系的验证。这种验证在项目初期就会发生,而业务级模型能够成为整个体系十分好的参阅。
一个全面集成的多言语仿真环境答运用SystemVerilog或SystemC编写的高档测验渠道和规划组件运用任何规划言语。混合和匹配多个言语的才干能够使规划人员在多个笼统层上同享数据,并在单次仿真中集成多个运算模型。不论规划人员处于哪个规划阶段,工程师都能够运用业务器接口从不同笼统层衔接即插即用模型,然后满意不同层的需求。这样不只扩展了经过接口的数据类型,还能对包含VHDL在内的一切规范言语之间的测验渠道复用供给支撑,然后推动高档验证办法的广泛选用。
进一步的功用验证
高效验证需求两个要害要素,而这两个要素都能够由SystemVerilog和SystemC保证。首要,验证环境有必要能够尽或许主动地检测缺点,在这样的环境中象声明、主动化呼应查看器和记分板等功用都会派上用场。其次,验证环境有必要能够发生能引起缺点的正确鼓励信号。鼓励能够经过定向测验或受限随机技能生成,这些技能能以相对较少的代码遍历各种情况。
SystemVerilog和SystemC SCV答运用户在束缚方面描绘鼓励情形,规则驱动规划的信号或业务所需的逻辑值。这样仿真器能够为鼓励发生随机值,并具有能保证所生成的情形有用的束缚条件。新的情形能够经过简略地从头运转具有不同随机种子的仿真器构成,然后发生不同但同等有用的鼓励,因而能够用来查看新的功用。
运用随机化和束缚条件能够在验证产能方面发生许多实质性的改进。其它言语只能经过运用面向对象或面向办法的杂乱编程技能才干供给这些功用。尽管SystemVerilog在其面向对象的架构中包含随机化和束缚条件,但它也能供给多种办法来布置这些功用,而且不需求学习面向对象的编程技能,因而这些先进技能得到了广泛运用。
一旦测验渠道中整合了随机化功用,就需求经过功用掩盖判别实际上或许会发生哪一种情形。SystemVerilog功用掩盖将盯梢规划的哪个功用会被运用,因而不会在同一功用上浪费时刻。
桥接规划和小组层次
由于考虑验证进程的前后总是有所协助,因而高效的办法是把测验渠道的要点放在规划该做什么,而不要放在如何做规划上。最便当的干事办法是在业务级编写测验渠道。进步笼统层次能够添加产能,由于这样能够使高层功用得到验证,而且纠正速度比较低笼统层快。能够经过某种主动办法运用受限随机、声明、方式或其它技能处理细节,也能够在更广泛的规划和验证工程师之间区分细节。
业务是指在受限时刻周期内体系中发生的一切活动调集。感兴趣活动在特定时刻开端,在一段时刻后完毕。在特定规划单元中或在两个单元之间发生的一切操作、状况修正、数据移动和运算都是业务。业务级模型用来在高层笼统描绘杂乱体系,答应规划师在进入完好完结的低层细节之前处理架构问题。在功用验证方面,根据业务的测验渠道答应验证工程师在构思规划的层次验证正确操作。
由于业务级模型供给的细节要比Verilog和VHDL RTL模型少得多,因而与在寄存器传输级建模的可履行渠道比较,它们在仿真时的运转速度十分快。SystemC业务模型也很快,乃至能够用作软件开发渠道,然后支撑前期的软件开发和软硬件协同仿真。别的,业务级和SystemC功用模型也具有足够快的速度,可用于体系级架构化建模和剖析。
业务阅读功用可使SystemC TLM供从事项目的一切工程师运用,然后进一步进步规划和调试的功率。SystemC和TLM能够为体系架构师和编程人员树立多产的公共渠道。业务的可视功用够标明由模型发生和耗费的特别业务序列以及彼此之间的联络。
SystemC和TLM还能为一切等级的规划层次上的复用供给重要的时机。例如,硬件规划师能够在预先界说的接口上用较低层RTL模型替代高层C模型。经过复用不同笼统层上的测验渠道组件能够在多个工程学科之间树立联络途径,添加信息同享,进步功率。
集成言语的价值
将多个先进的编程言语集成在单个环境中能够使硬件规划师挑选复用用SystemC编写的测验渠道,或挑选用SystemVerilog创立的额定验证组件。现在架构师、编程人员和硬件规划师能够充分运用具有SystemVerilog声明、受限随机生成、功用掩盖和测验渠道主动化等功用的可复用测验渠道组件。
有许多理由要求在同一仿真中整合用不同言语编写的以及在不同笼统层次的模块。IP有许多来历,也有许多种方式。而且在集成进程中,很有或许一切的模块不会一同呈现在相同的笼统层次。比方,在自顶向下的流程中,本来一切模块都是业务级模型。在逐渐调整的进程中,一些模块会被RTL所替换。
SystemVerilog直接编程接口(DPI)能够在SystemC和SystemVerilog之间供给必要的高功用、易用性链接。有了SystemVerilog DPI后,体系架构师和软件工程师就能够用SystemC做规划,然后直接移动到SystemVerilog域进行验证,并答应他们充分运用受限随机技能、测验渠道主动化、声明和功用掩盖等功用。
由于是直接衔接,SystemVerilog DPI要比编程言语接口(PLI)等规范运用编程接口(API)更便当更快速。SystemVerilog面向对象的特性也更简略创立可复用测验环境,由于它答应束缚和其它方面经过承继进行操控或掩盖。不过关于不准备或不愿意从事面向对象的编程人员而言,在业务级编写测验和束缚的才干也能明显添加测验功率。
SystemVerilog DPI敞开了一个公共的通讯通道,因而答应跨过许多言语和引擎完结测验渠道的复用。
一致的验证环境
为了充分发挥这种混合言语环境的先进验证功用,规划小组需求一个根据规范的处理方案,以便他们运用每种言语的利益,包含可运用于多个笼统层的可复用验证组件。
仿真仍然是高档验证办法的中心。仿真器应该从根本上支撑SystemVerilog、SystemC、Verilog和VHDL。对单个内核中HDL和高层验证言语的根本性支撑能够取得更快的功用和高度集成的调试和剖析环境。如果在运用公共图形用户接口的一致内核中支撑一切的言语,而且言语的混合是通明的,那么肯定能取得很大的灵活性,言语之间也很简略移植。
仿真器应该将SystemVerilog和SystemC的规划与验证功用集成在一致的环境中,并设定最大化产能的阶段。一个全面的混合言语规划环境答运用SystemVerilog或SystemC编写的高档测验渠道与包含Verilg或VHDL在内的任何规划言语一同运用。
这样,架构师和规划师就能够选用他们所特长的任何言语,然后与项目的其他成员一同同享效果。在不同学科之间的这座桥梁可树立用于敞开通讯线的全体协作进程。效果将构成在线对话,使得许多问题和时机能够在规划开发进程的前期取得评论弄清,而此刻这些问题处理起来会更简略,价值也较低。
高档验证办法和业务级建模的有机结合能够创造出极大的灵活性,明显地进步验证产能和规划质量,一同在体系架构师、软件规划师、硬件规划师和验证工程师之间促进更好的沟通。运用高层SystemC和业务级模型能够加速规划创立,推动架构化挑选的开发。SystemVerilog能够经过声明和功用掩盖等高档验证技能加速体系有用性的承认。