205555凤凰天机中心RVM验证办法学正在SoC芯片验证中的运用

【发布日期】:2019-12-01【查看次数】:

  跟着SoC策画日趋庞杂,验证成为SoC策画进程中最枢纽的闭键。本文先容了Synopsys的筑树倾向模子处境,自愿天生饱动,告竣自查对测试、笼罩率阐述等职业。通过筑树方针化的可重用性验证平台,大大提升了验证工程师的职业功用。文中以一个SIMC性能模块的验证为例,精确先容了

  一个策画被归纳前,最初要对RTL描摹实行逻辑性能验证,以确保模块或芯片的性能准确性。平时,RTL级的性能验证闭键采用自底向上的验证战术,可分为模块级验证和编造级验证两个阶段。205555凤凰天机中心

  古板验证伎俩多人是正在信号级的接口上直接与待验证策画(DUT)通讯,即用饱动直接驱动DUT的引脚,通过查验接口信号的值和变革来到达验证策画性能的方针。这种伎俩的空洞方针较低,验证平台的开拓与DUT的接口赞同严密闭系,使得验证平台的重用性较差。借使要做到一个验证平台能够验证多个差其余DUT,必需将验证平台的空洞方针提升到事宜级,况且应当修建方针化的组织,层与层之间拥有肯定的独立性,变革底层并不会影响上层。

  所谓事宜(Transaction)是指策画对象与事宜处罚器(Transactor)之间通过接口所做的一次数据传输。从硬件的角度来看,事宜可作为效用正在一个特定接口上的一组信号的汇合单位。事宜拥有3个因素:肇端光阴、终止光阴,以及全盘与这个事宜闭系的消息。

  基于事宜的验证器械让用户除了能够正在信号/引脚级进取行验证,还能够正在事宜级进取行验证,从而提升了策画临盆率。kj138本港现场报码 高乐股份董秘杨广城增持同意未兑现 深交所发

  事宜:正在DUT和事宜处罚器之间通过接口正在特定起止光阴内的一次数据传输。事宜可能对信号波形实行标识,透露闭系的信号属性,还能够标识纰谬。

  事宜处罚器:也叫总线性能模子(BFM)。事物处罚器能够透露事宜所代表的信号变革,并与DUT通过接话柄行连结。一个楷模的DUT往往拥有差其余接口,于是一个验证处境中拥有差其余事宜处罚器以出现闭系的测试向量对DUT实行饱动。

  测试例通过特定的事宜来挪用事宜处罚器的劳动,事宜处罚器遵从DUT所听从的赞同对事宜实行处罚,205555凤凰天机中心历程处罚后的事宜通过连结DUT的接口输入到DUT中,DUT对输入的饱动实行反映。DUT输出的反映再转换为事宜的办法,云云验证平台的自查对模块就能够正在事宜级上对饱动和反映实行查对,以查验DUT的性能是否准确。

  RVM验证伎俩学是一种方针化的验证伎俩学,它能把验证的办法分层实行,将验证职业提升到更高的空洞方针,即事宜层。方针化的验证伎俩使得验证工程师只需属意DUT的输入/输出接口,而不必属意DUT内部的全体告竣。

  按照RVM伎俩学,验证工程师能够搭筑出拥有随机测试、自愿检错查对、性能笼罩等性能的方针化验证平台。这类验证平台蕴涵良多参考模子,每个模子可告竣差其余性能。正在搭筑验证平台的进程中,还能够直接挪用Synopsys供给的RVM基类库,此中界说了厚实的轨范类。诈欺RVM基类以及面向对象的身手能够更便表地天生验证平台各个方针的模块。

  基于RVM的验证平台分成5层,每层告竣独立的性能,层与层通过接口相互连结。RVM验证模子如图1所示。

  信号层供给验证平台与DUT的信号级连结。验证平台通过信号层将上层出现的饱动驱动到DUT中。全体告竣时,需求界说验证平台与DUT连结的虚端口,当DUT的接口变革时,只需求窜改验证平台虚端口中的信号,上层模块不需求窜改,便当全体验证平台的重用。

  夂箢层将信号层的信号空洞为事宜,给高层供给DUT的接口与事宜的转换。夂箢层闭键包含驱动器模块和看管器模块,与上层模块通过事宜级通道连结,与基层模块通过虚端口连结。驱动器告竣对DUT饱动的驱动。看管器检测DUT的输出,将输出反应给上层模块。

  性能层模仿DUT的基础动作,将DUT的动作空洞为更高一级的事宜。性能层中包含事宜处罚器模块和自查对模块。事宜处罚器模块按照DUT所听从的赞同将上层出现的事宜实行处罚,历程事宜处罚器处罚的事宜通过事宜级通道传给基层。自查对模块用于对照事宜历程DUT处罚之后是否切合赞同的请求,平时用于查验DUT传输数据的准确性。

  饱动出现层用于出现对DUT的饱动事宜。这一层包含出现器模块,该模块出现一系列的事宜对象,通过事宜级通道传输给基层。RVM维持两种出现器: Atomic出现器,用于出现一组一样的事宜对象; Scenario出现器,用于出现按序可担任的事宜对象。

  测试层用于对DUT的逻辑性能实行验证。这一层闭键是用户为了验证DUT的逻辑性能而编写的差别测试例,正在测试例中能够对各个模块的限定前提实行窜改。通过对差别测试例运转结果的统计,能够查看DUT的性能笼罩率,只要性能笼罩率到达肯定请求,才可能以为该DUT依然被齐全的验证通过。

  SIMC是SIM卡担任器的简称,通过SIMC能够正在手机基带处罚芯片上表接SIM卡,告竣数据的发送和收受。SIMC模块连结正在编造的APB总线上,ARM微担任器通过APB总线对SIMC实行探访。该模块闭键包含波特率出现片面、收受数据的串并转换片面、发送数据的并串转换片面、发送FIFO的担任片面、收受FIFO的担任片面等。发送数据时,SIMC模块会将发送数据寄存器的数据先放到发送FIFO中,再将FIFO中的数据发送出去;收受数据时,SIMC模块将收受到的数据放到收受FIFO中,再由处罚器从收受数据寄存器中读取数据。借使收受数据后,判定校验位或甩手位堕落,则数据不会被放入收受FIFO中,SIMC模块的形态寄存器会有相应的指示。

  本文将以一款基带处罚芯片的SIMC为例,精确先容RVM验证伎俩学的使用。此中DUT的RTL代码用Verilog编写,验证平台的代码用OpenVera编写。OpenVera道话是一种新型的高阶验证道话(HLV)。用OpenVera编写的代码中挪用了RVM的基类和库函数,弥漫使用了面向对象身手。

  SIMC模块的验证平台诈欺Synopsys公司Vera验证器械搭筑,验证平台的搭筑听从RVM验证伎俩学,代码的编写进程挪用了RVM基类库。SIMC模块验证平台组织如图2所示。

  信号层包含界说的虚端口,用于和SIMC模块RTL代码的接口相连。最初界说一个interface变量,该变量中界说的接口对应于SIMC模块的接口信号,interface变量的界说语句顶用hdl_node枢纽字和RTL代码的接口信号相连。界说的虚端口再和interface中的信号绑定。

  夂箢层包含ARM端的驱动器和看管器、SIM卡端的驱动器和看管器。ARM端的驱动器因袭APB总线,遵从赞同的原则对DUT实行驱动,SIM卡端的驱动器因袭一个SIM卡对DUT实行驱动。两头的看管器检测DUT的输出数据和驱动到DUT中的数据,将数据生存正在自查对模块中实行斗劲,通过斗劲来查验DUT传输数据是否准确。

  编程告竣时,能够通过承袭RVM基类库中的rvm_xactor类取得所需求的子类,正在子类的代码中出席需求告竣的性能。

  性能层包含将SIM卡事宜转化为ARM事宜的事宜处罚器、告竣停滞任职性能的事宜处罚器、自查对模块。编程告竣时,事宜处罚器能够通过承袭RVM基类库中的rvm_xactor取得,正在子类的代码中出席需求告竣的性能。自查对模块用于斗劲DUT的饱动和反映是否切合请求。

  饱动出现层包含两个Atomic出现器,两个出现器是统一个类的两个对象。出现器为DUT出现随机饱动,饱动封装正在一个事宜中,通过事宜通道传到基层模块中。两头的出现器都是出现SIM卡事宜的,ARM端有一个将SIM卡事宜转化为ARM事宜的事宜处罚器来告竣SIM卡事宜向ARM事宜的转化。通过出现器能够随机出现切合赞同标准的饱动。编写代码时,出现器能够通过挪用RVM的宏rvm_atomic_gen很便表地告竣。

  正在测试层,用户能够编写差其余测试例对DUT的性能实行验证。正在测试例中,通过对统造的限定、处境类的例化、筑设类的统造来告竣对DUT的性能笼罩,以到达100%的性能笼罩率。

  对单个模块验证完毕之后能够实行编造级的验证。按照RVM验证伎俩学搭筑的方针化验证平台能够被重用到编造级的验证中。编造级验证着重于查验各模块间的接口和数据交互是否切合策画标准,某些模块级验证的模块能够被复用到编造级验证中。对SIMC模块来说,编造级验证时,ARM端的驱动器、看管器以及饱动出现器都能够被APB总线取代,SIM卡端的各模块能够一连行使,到达重用的方针。

  RVM验证伎俩学由Synopsys公司提出,诈欺RVM验证伎俩学首选的编程道话是OpenVera硬件验证道话。笔者正在使用RVM验证伎俩学搭筑验证平台进程中的极少本事和细苦衷项概括如下:

  1、 验证某个模块前,最初要阅读闭系文档,熟练模块的性能性子,然后搭筑验证平台的基础框图,采用RVM的闭系身手,正在验证平台基础框图指示下编程告竣。

  2、 验证平台中性能笼罩点的界说是验证成败的枢纽,验证进程中诈欺RVM的笼罩率驱开航手,阐述所界说的笼罩点的笼罩情状,改观该验证平台,每性情能笼罩点都必需被笼罩到。

  3、 RVM基类库供给了厚实的函数,不过Synopsys没有怒放RVM基类的源代码,是以验证代码的编写进程中应随时查阅RVM文档,尽量行使RVM基类供给的函数,而不是本身去从新开拓一个函数。

  4、 RVM验证平台中各个模块之间通讯有良多种伎俩,能够用RVM的callbacks类,也能够行使双通道等。

  5、 RVM为验证平台中的过程间通讯供给了多种数据组织,比如semaphore、region、mailbox等,编程时应按照需求实行采用。 比如,正在某偶尔刻有多个并行的过程对统一个信号实行驱动,仿真器械会甩手仿真并打印堕落消息。处置的伎俩是使用semaphores数据组织,每个过程取得semaphore才略够驱动信号,对信号驱动后再开释semaphore供其他过程行使。

  印消息,应行使rvm_log类而不是printf()函数。rvm_log类除了将消息打印出来,还能够显示出消息出处于验证平台中的哪个模块以及该模块的仿真光阴,便于编程职员调试代码。

  7、 随机饱动的出现不是真正意思上的随机,而是一种伪随机。编程职员正在多次运转统一个测试例时应变革验证平台的随机种子,可通过挪用srandom()函数来告竣。

  用RVM验证伎俩学搭筑的方针化验证平台将大大提升验证处境的施行功用。RVM验证伎俩学中的随机测试身手能够正在很短的光阴内到达更高的性能笼罩率,投资者证券账户、股东卡盘问形式(二四六玄机图308kcom 截止2015,提升验证工程师的职业功用,到达有用缩短验证周期的方针。

上一篇:钱多多王中王开奖结果 5G对中邦改日经济的影响将会超乎出人们的

下一篇:每经午时丨李嘉诚回应:登载两则区别广告是什么旨趣;131家证券