基于UVM高速SERDES的数字系统验证

上传人:众众****夺宝 文档编号:40517591 上传时间:2021-11-16 格式:DOCX 页数:3 大小:14.93KB
收藏 版权申诉 举报 下载
基于UVM高速SERDES的数字系统验证_第1页
第1页 / 共3页
基于UVM高速SERDES的数字系统验证_第2页
第2页 / 共3页
基于UVM高速SERDES的数字系统验证_第3页
第3页 / 共3页
资源描述:

《基于UVM高速SERDES的数字系统验证》由会员分享,可在线阅读,更多相关《基于UVM高速SERDES的数字系统验证(3页珍藏版)》请在装配图网上搜索。

1、基于UVM高速SERDES的数字系统验证摘要:本文主要基于UVM验证方法学,对高速SERDES串行器/解串器中的数字系统局部进行验证。本文首先对UVM验证方法学以及高速SERDES的工作原理做了简要介绍,结合验证方案以及功能覆盖率搭建了UVM验证平台,并对高速SERDES中的数字系统局部进行验证并给出了验证过程与结果。关键词:UVM;SERDES;功能覆盖率中图分类号:TN47文献标识码:A文章编号:2095-8595202105-032-005电子科学技术URL:/china-est DOI:10.16453/j.issn.2095-8595.2021.05.008Abstract:This

2、papermainlypresentstheverificationmethodofdigitalsystemofhighspeedSERDEScorewhichisbasedonUVMverificationplatform.TheuniversalverificationmethodologyUVMandtheprincipleofhighspeedSERDEScoreareintroducedinthispaperfirstly,ThentheUVMverificationplatformofdigitalsystemofhighspeedtransceivercoreisbuilt,a

3、nditalsodescribestheverificationprocessofthedigitalsystemofhighspeedtransceivercoreindetail,whichincludestheautomaticcalculatingoffunctioncoverage.Theverificationresultsaregivenattheendofthispaper.Keywords:UVM;SERDES;FunctionCoverage引言依据摩尔定律,随着半导体制造工艺由0.18m、0.13m、90nm、45nm、28nm逐步演进到现在的14nm/16nmFinFE

4、T技术,专用集成电路ASIC设计的复杂度以指数形式增长,因而使得验证成为了芯片设计流程中最为复杂、也是最耗时间的工作。有统计数据说明,验证在整个芯片设计流程中大约要花去60%80%的时间。而目前大规模集成电路动辄上亿门,甚至数亿门的规模,设计复杂度变得越来越高,这使得功能验证方面必须有新的方法学來提高验证效率1,2。验证方法学的开展往往和设计复杂度相关联。多年来,各公司、高校和科研机构对验证语言的不断推陈出新,而SystemVerilog基于其自身面向对象等特点,该语言迅速成为业界最流行验证语言之一。VMMVerificationMethodologyManual验证方法学是Synopsys公

5、司在2021年推出,OVMOpenVerificationMethodology是由Cadence公司和MentorGraphics公司在2021年联合推出的完全开放的验证方法学。该方法学引入丰富的类库和高级验证技术,但是OVM的缺陷在于没有存放器解决方案,为了弥补这个短板,Cadence又提出了RGM,但是RGM不属于OVM,需要额外下载使用【3】。为了实现验证方法的标准化,Accellera于2021年2月提出通用验证方法学UVM,该方法学得到了三大主流EDA公司的共同支持。UVM主要继承自OVM,同时又融合了VMM中存放器抽象层的解决方案。1通用验证方法学UVMUVM验证平台的根本结构如

6、图1示,该验证平台由下面几局部组成:现对各个局部的功能作一简要说明:1sequence组件的主要功能是用于产生各种鼓励,而鼓励通常根据验证的需要封装成transaction类,各组件之间的通信那么通常基于这些transaction类。2sequencer组件的主要功能那么是将sequence产生的鼓励各种transaction类传递给驱动器driver。3dirver是验证平台的最根本组件,在构建一个最小验证系统时,往往先从设计driver开始;driver的主要功能是对待测对象添加各种鼓励。4monitor组件是由uvm_monitor类派生。该组件的主要功能用于监测待测对象的行为,当待测对

7、象的输入信号或者输出信号在发生改变,可以根据这个改变来判断待测对象的行为是否正确。5referencemodel即参考模型组件,该组件通常用C/C+等高级语言实现,同时和DUT添加相同的鼓励。6scoreboard组件由uvm_scoreboard类派。该组件的功能用于收集monitor得到的实际输出结果和referencemodel得到的预期输出结果,然后对两个结果进行比对,最后确定输出结果是否符合预期。7agent组件由uvm_agent类派生。UVM常将driver和monitor放在agent组件中,在实际使用过程中到底创立driver那么需要根据uvm_agent的is_active

8、取值进行确定。UVM各个组件的嵌套关系如图2示。从运行机制上,UVM采用多种机制来保证验证平台的运行,其中factory机制完成的功能相对较多。该机制先利用宏完成其内部表格上的注册,注册后就实现了类的自动创立,同时可随意调用该类中的函数function和任务task等,对函数和任务的功能进行扩展时,可利用多种语句实现类的重载。其他几种常用的机制,其中object机制主要用来完成验证平台的启动和关闭;config_db机制主要用于在UVM验证平台间传递数据;phase机制主要用来管理各个组件之间的执行顺序等。2验证对象分析本次验证的对象为SERDES高速串行/解串器中的数字系统局部。高速串行收发

9、器利用两对收/发差分线路来传送数据,通过数据时钟恢复等技术来实现数据的可靠性传输。高速串行收发器的结构如图3所示。发送方向上,它接收外部送来的16位并行数据和同步时钟,高8位和低8位数据分别送给8B/10B编码器产生便于信道可靠传输的10位码字,高速时钟提供给并串转换电路,将10位并行数据转换成高速串行数据流并通过差分线输出;接收方向上,高速串行数据经收发器内部的阻抗匹配、均衡器处理、整形等处理后,实现输入数据的正确采样,同时将采样数据送入字对准模块找到数据的起始点,最后将数据送给8B/10B译码器后输出。同时参加了PRBS的4种图形生成/校验单元用于系统的自测试。本设计总共包含11种工作模式

10、,如表1所示。这11种工作模式决定了需要验证的根本功能,验证要求在传输数据随机的情况下遍历各种传输模式,并能随时监控数据传输的正确性。同时参加了各种异常场景的测试,因此我们必须寻找一种更加自动化、更加高效的验证方法。3验证平台的搭建3.1串行收发器验证策略通过以上的描述分析,并结合高速串行收发器的工作特点,搭建了系统的UVM验证环境,如图4所示,图中个组件的根本功能和1中介绍的根本一致,不再赘述。该系统验证的根本思路是在发送方向上添加随机约束鼓励和对输出数据进行自动比较,同时结合環回测试并监测输出状态。3.2测试鼓励的产生高速串行收发器测试鼓励利用systemverilog语言产生随机变量,并

11、采用约束语句对其取值范围进行约束,其程序如下:classserdes_transactionextendsuvm_sequence_item;randlogictx_en;randlogictx_ctrl;randlogicprbs_en;randlogic1:0prbs_sel;randlogicloop_en;randlogic9:0trans_data;constraintmode_selprbs_en,prbs_sel,tx_en,tx_ctrlinside5b00000,5b00001,5b00010,5b00011,5b00100,5b00100,5b01100,5b10000,5

12、b10100,5b11000,5b11100;functionnewstringname=serdes_transaction;super.new;endfunctionuvm_object_utils_beginserdes_transactionuvm_field_inttx_en,UVM_ALL_ON;uvm_field_inttx_ctrl,UVM_ALL_ON;uvm_field_intprbs_en,UVM_ALL_ON;uvm_field_intprbs_sel,UVM_ALL_ON;uvm_field_intloop_en,UVM_ALL_ON;uvm_field_inttra

13、ns_data,UVM_ALL_ON;uvm_object_utils_endendclass其中约束mode_sel将数据传输的11种模式限定在有效范围内,在transaction随机的过程中不会出现无效的状态。3.3覆盖率统计在Scoreboard类中利用systemverilog语言针对高速串行收发器功能编写覆盖率统计程序。功能覆盖率测试主要用于统计设计人员定义的所有功能集合有多少状态到达过,在这里首先确定DUT中的采样点,采样点有效取值范围,以及采样点取值序列变化等。例如在验证中选择3个采样信号,分别为prbs_pass、rx_pass、rx_err,分别代表prbs环回测试通过,接收

14、数据正确,接收数据错误。其采样点的有效取值集合分别为:1,0,0、0,0,1、0,1,0,该段功能覆盖率测试程序如下:covergroupcg0posedgegtx_clk;PRBS_PASS:coverpointprbs_pass;binsPRBS_PASS0=0;binsPRBS_PASS1=1;RX_PASS:coverpointrx_pass;binsRX_PASS0=0;binsRX_PASS1=1;RX_ERROR:coverpointrx_err;binsRX_ERROR0=0;binsRX_ERROR1=1;SERDES_RESULT:crossPRBS_PASS,RX_PAS

15、S,RX_ERRORbinsSERDES_RESULT0=binsofPRBS_PASS.PRBS_PASS1;binsSERDES_RESULT1=binsofPRBS_PASS.PRBS_PASS0&binsofRX_PASS.RX_PASS1&binsofRX_PASS.RX_ERROR0;binsSERDES_RESULT2=binsofPRBS_PASS.PRBS_PASS0&binsofRX_PASS.RX_PASS0&binsofRX_PASS.RX_ERROR1;endgroup4仿真結果SERDES验证结果包括传输数据的自动比对测试报告、局部异常测试的波形输出和功能覆盖率统计

16、报告三局部。其中传输数据的自动比比照较直观,直接在输出错误结果记录列表中观察。局部异常测试如模拟断线、数据错位等通过波形确认,代码覆盖率到达预期,局部条件没有覆盖也经过确认,功能覆盖率到达100%。5结束语文章介绍了利用UVM验证方法学通过平台搭建、鼓励产生、功能覆盖率统计等几个方面实现了高速SERDES的数字系统局部的验证,同时该平台组件已运用于其他相关工程工程中,有效的实现了验证平台的重用。参考文献【1】钟文枫.SystemVerilog与功能验证M.北京:机械工业出版社,2021.8.【2】JanickBergeron.WritingTestbenchesUsingSystemVerilogM.NewYork:Springer,2021.【3】张强.UVM实战卷1M.北京:机械工业出版社,2021.9.【4】田劲,王小力.基于UVM验证方法学的AES模块级验证J.微电子学与计算机,2021.8.【5】谢峥等.一种基于UVM面向RISCCPU的可重用功能验证平台.北京大学学报自然科学版,第50卷,第2期,2004.3.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!