ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:134.98KB ,
资源ID:16722926      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16722926.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通用验证方法学在核安全级仪控平台的应用Word下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通用验证方法学在核安全级仪控平台的应用Word下载.docx

1、C; systems of NPP,adequate testing and validation is essential. To promote the development of FPGA technology in nuclear power industry, a widely recognized FPGA verification method is critical. However, current international standards and research reports, like IEC 62566 and NUREG/CR-7006, which ha

2、ve demonstrated the development life circle of FPGA-based safety critical DI& in NPPs, dont cover specific FPGA validation methods. As a result, this paper introduces the application of Universal Verification Methodology (UVM) on Nuclear Advanced Safety Platform of Instrumentation and Control (NASPI

3、C), to provide a technical reference for peer engineers. Firstly, this paper describes the structure of UVM and the construction process of the UVM verification platform. Secondly, this paper details the test flow of the high-speed serial transceiver of NASPIC. Finally, this paper shows the strength

4、s and weaknesses of UVM by comparing UVM and traditional FPGA verification method.【Key words】UVM; NASPIC; FPGA; Test Automation0 引言与基于微处理器的数字化仪控系统相比,基于现场可编程控制门阵列(FPGA)技术的系统可以做的更简单,更易于测试,不依赖于复杂软件(比如操作系统)使得其更适用于执行安全功能。在全球范围内,FPGA技术在核电数字化仪控系统方面的应用受到了越来越高的关注,尤其是安全功能方面。除此之外,FPGA的开发可以独立于硬件,具有高度可移植性,对于核电仪控

5、系统的长期维护具有巨大的好处。基于FPGA的系统和设备已经开始出现在新建核电厂的仪控系统和在运核电站仪控系统的改造当中1。近些年来,中国核电行业迅速发展。国内的一些核电研究机构和公司已经开始在新建电厂仪控系统中使用FPGA技术。当前,FPGA在核电仪控系统的应用方式主要有两种:第一种方式为纯FPGA技术方案,比如国核自仪开发的NuPAC平台;第二种方式是FPGA与微处理器技术相结合,比如中国核动力研究设计院研发的NASPIC平台。现有的标准和导则,比如IEC 625662、NUREG/CR-70063和IEEE 10124等,能够指导制定FPGA测试计划,但并不能具体指导FPGA测试方案的设计

6、、测试步骤的执行。由于这些标准各有侧重点,IEC 62566对FPGA的开发和V&V;提出了许多需求,但并未提及具体做法。NUREG/CR-7006对FPGA的设计开发提出了具体要求(包括硬件描述语言的编码风格和典型模块的设计方式等),提出FPGA要有可测试性,但测试方法并未涵盖。IEEE 1012则是对软件、硬件、系统的V&过程提出了具体要求。因此,提出一种切实可行、高效可信的FPGA测试方法对于FPGA技术在核仪控领域的发展至关重要。当前核电领域的FPGA测试主要依赖直接测试用例,对每个功能特性设计一个测试用例,测试结果须人为查看和判断。除此之外,测试人员要多次修改直接测试用例进行仿真测试

7、,直到HDL代码覆盖率达到100%为止。由于这些因素使得传统的验证方法往往需要测试人员花费大量的时间和精力在修改测试用例和观察测试结果上。通用验证方法学(Universal Verification Methodology)提出了一种基于自动化、随机化测试激励生成机制的HDL代码验证平台。在此平台上,测试激励能够按照测试人员设定的约束条件自动、随机地生成,待测设计的结果能够自动与参考模型的结果进行对比,能够节省测试人员的时间和精力,提高测试效率和正确率。由于通用验证方法学已经在其他高可靠性行业(汽车、航空航天、医疗)以及IC设计行业得到充分的应用,因此该方法是成熟的。本文具体介绍了通用验证方法

8、学在NASPIC平台的使用情况,具体分为四部分。第一部分,介绍UVM测试平台架构及其搭建流程;第二部分,对NASPIC高速串行收发器的测试流程进行详述;第三部分,对比传统FPGA测试方法和UVM,阐述其优劣;第四部分,结束语。1 基于UVM的验证平台UVM的前身是OVM,由Mentor和Cadence于2008年联合发布。2010年,Accellera(System Verilog语言标准最初的制定者)把OVM采纳为标准,并在此基础上着手推出新一代验证方法学UVM。目前最新的UVM代码库为UVM 1.2,2014年6月发布。UVM的特性主要表现在以下几个方面:(1)功能模块化UVM定义了HDL

9、验证平台的基础功能组件,使得验证平台的搭建像搭积木一样方便。具体包括uvm_driver、uvm_scoreboard、uvm_agent、uvm_monitor、uvm_env、uvm_test等基类;(2)测试用例的随机化与自动化UVM的测试用例生成依赖于测试人员定义的随机化对象以及其随机约束条件,会根据这些定义好的特性自动、随机生成;(3)参考模型UVM中的参考模型具有和待测设计相同的功能,可以用SystemVerilog语言编写,也可以C语言编写并使用DPI接口导入到验证平台;(4)测试结果自动对比UVM的自动对比机制在计分板中实现,可使待测设计的结果与参考模型进行自动化对比,实时记录

10、测试结果,打印、保存定制的错误信息,便于设计人员分析错误原因;(5)覆盖率为导向的测试流程UVM的随机化运行的同时会统计代码覆盖率与功能覆盖率,直到多次运行之后的测试覆盖率均达到覆盖率目标为止。这些UVM的特性使得FPGA的验证变得更加简单、省时、高效,也是将其应用到核仪控领域FPGA验证的主要原因。1.1 UVM平台架构UVM是一个库,在这个库中,几乎所有的东西都是用类(class)来实现的。类有函数(function)和任务(task),通过函数和任务来实现每个平台组件的功能。验证平台所有组件应该派生自UVM中的类。图1展示了基于UVM的验证平台架构。其中:top顶层模块,在其中例化了te

11、st_case对象和DUT(待测设计);test_case测试用例对象,sequence和env兩个对象的容器类;sequence测试序列对象,根据约束条件,随机创建测试激励;env测试环境对象,测试平台组件(i_agt,o_agt,model和scoreboard)的容器;o_agt输出代理对象,读取DUT的测试结果并将其发送到scoreboard;i_agt输入代理对象,在其中例化sequencer和driver,用于将测试数据写入DUT的输入端口;sequencer测试序列发生器,用于从sequence对象接收测试数据序列,随机化后将数据传输到driver对象;driver驱动器对象,顺

12、序地接收测试数据,并按照接口时序将测试数据驱动到DUT输入端口;model参考模型对象,具有与DUT相同的功能,接收相同的测试数据并将其结果传递给scoreboard对象;scoreboard计分板对象,用于将DUT结果和model结果进行对比,记录并打印错误的测试数据。这些组件结合在一起完成FPGA的验证工作。1.2 高速串行收发器在NASPIC平台中,高速串行收发器执行链路层通信功能,由收发器传送和收发器接收两个子模块构成。收发器传送模块负责发送待发出的数据,给外部提供交互接口;收发器接收模块负责接收外部接口传输过来的数据,并对数据做基本逻辑处理和判断,保障数据传输的正确和可靠。其输入输出

13、端口如表1所示。1.3 UVM测试平台搭建流程UVM测试平台与待测对象(Design Under Test)之间是一一对应的关系,不同的待测对象对应的测试平台虽有差异,其大体的功能组件是相同的。本小节以收发器测试平台为例说明测试平台的搭建流程。1.3.1 接口UVM验证平台与DUT是通过虚接口(Virtual Interface)进行交互交互数据的,因此每个待测设计都有一个对应的接口定义文件*_if.sv。根据如表1的收发器接口列表,定义了transceiver_if.sv,如图2所示,接口输入为DUT需要的是时钟信号,接口内为DUT其他输入输出端口。1.3.2 驱动器与监视器UVM验证平台通

14、过驱动器向DUT接口发送数据,通过监视器从DUT接口读取数据,在这两个组件内根据待测设计功能特性列表定义功能覆盖组。不同的DUT对应不同的驱动器和监视器,其大体功能相同,差异在于不同的接口时序。收发器的驱动器和监视器的定义文件分别为transceiver_driver.sv和transceiver_monitor.sv。由于驱动器和监视器的时序正好相反,在此仅讨论驱动器的搭建。图3展示了transceiver_driver.sv,可看出此驱动器类带有transceiver_trans(数据帧)参数,且扩展自UVM类库中的uvm_driver。由于数据帧在下文中讨论,在此不做赘述。其第2行为虚接

15、口的声明,用于连接待测设计,第3行为邮箱声明,用于发送数据帧,第4行为UVM宏,用于注册此功能组件到UVM树中。此驱动器类中定义了两个函数new、build_phase,以及两个任务main_phase、drive_transceiver。new函数为生成函数,每个System Verilog类中均存在。build_phase、main_phase为UVM平台运行过程中的两个阶段,所有扩展自uvm_driver的驱动器类均包含。drive_transceiver任务将每个transaction数据帧按照接口时序驱动到收发器的接口上,也是不同驱动器之间的差异之处。1.3.3 参考模型UVM验证平

16、台中参考模型组件与DUT有着相同的功能,用于产生DUT结果的对比对象。收发器测试平台的参考模型定义文件为transceiver_model.sv,如图4所示。如下图所示,参考模型类扩展自uvm_component类,其实所有的UVM平台的组件类均扩展自此类。参考模型类的第2行接收邮箱定义,用于接收transaction数据包;第3行为发送邮箱定义,用于发送transaction数据包。第4行为UVM宏,用于将参考模型注册到UVM树。参考模型类中有两个函数new和build_phase,一个任务main_phase。new函数为构造函数,有两个参数name和parent,用于指明该类在UVM树中

17、位置。build_phase用于UVM平台运行时创建邮箱、接口等组件。main_phase为UVM运行时的主进程,参考模型在此任务中实现DUT的功能。1.3.4 计分板计分板组件用于比较来自于参考模型组件的transaction和来自检测器组件的transaction,可在此功能组件内定义错误打印信息。收发器UVM测试平台的计分板定义为transceiver_scoreboard.sv,如图5所示。如图中代码所示,参考模型类扩展自uvm_scoreboard。第2行定義了transaction数据包对列,用于存放来自参考模型组件的transaction。第3、4行定义了两个接收邮箱,分别用于接

18、收来自参考模型组件和监视器组件的transaction。第5行为UVM树组件注册。计分板类中有两个函数new和build_phase,实现功能与参考模型相同,在此不做赘述。main_phase任务为UVM运行时的主进程,计分板在此任务中实现期望transaction与实际transaction对比功能。1.3.5 数据包与序列发生器在UVM平台各组件之间传递的transaction数据包,是根据待测设计的协议格式来定义的,在其中声明随机化对象。序列发生器用于自动生成随机化的transaction序列。收发器的transaction数据包定义为transcerver_trans.sv,序列发生器

19、定义为transceiver_sequence.sv,如图6所示。由于不同协议的数据包内容不同,在此不再具体展开transaction_tran.sv的代码,仅讨论序列发生器。序列发生器类扩展自UVM类库中的uvm_sequence。第2行声明了一个transaction对象指针,用于指向自动化生成的transaction对象。其new函数只有一个参数name,表明序列发生器并非UVM平台组件。此类中的body任务是完成随机化生成transaction序列的主体任务,在代码的第10行调用UVM宏uvm_do_with,用于根据约束条件生成一个随机化transaction。1.3.6 环境与代理

20、UVM平台的环境类为容器类,在其中例化各功能组件。代理类同为容器类,在其中例化与DUT接口相关的功能组件。环境类与代理类对于大部分待测设计是相同的,因此定义一次即可,在不同的测试平台可以重复使用。收发器UVM验证平台的环境组件定义为transceiver_env.sv,代理组件定义为transceiver_agent.sv。这两个类的例化关系在1.1小节已讨论,其代码不再展开。1.3.7 测试用例及其测试平台的运行当完成了所有UVM验证平台的组件定以后,就需要定义测试用例了。在测试用例中例化测试环境,指定使用哪个序列发生器作为测试激励。收发器的测试用例为transceiver_test.sv,

21、如图7所示。测试用例代码第2行声明了测试环境的对象指针,第3行为外部new函数声明,第4行为外部build_phase函数声明,在此函数阶段中建立序列发生器与测试平台的连接关系。定义完成测试用例后需在仿真环境中启动测试平台,一般使用如下指令: +UVM_TESTNAME=transceiver_test。这条指令会告诉仿真环境要使用哪个测试用例搭建UVM验证平台。2 收发器的测试流程UVM验证平台可以用于FPGA的RTL级行为仿真、门级仿真以及时序仿真。本小节将按照三类仿真类型进行阐述,说明收发器模块的仿真测试流程。2.1 RTL级行为仿真使用HDL语言完成RTL级行为描述后,要进行RTL级行

22、为仿真。此类仿真往往需要达到100%测试覆盖率(包括代码覆盖率和功能覆盖率)。整个测试流程是以测试覆盖率为导向,只有当测试覆盖率达到目标才能结束测试。功能覆盖率体现在功能覆盖点上,当所有的功能覆盖点全被覆盖后,功能覆盖率达到100%。代码覆盖率由仿真环境进行统计,包括表达式、分支、条件、有限状态机(分支,状态迁移)等的覆盖率。在RTL级行为仿真开始前,在sequence类中设定UVM测试激励数量,激励生成的约束条件。运行UVM测试平台,若测试中断则查看错误打印信息。修复错误后继续运行UVM测试平台,平台自动运行结束后,保存覆盖率信息到ucdb文件中。重新运行UVM测试平台,并保存覆盖率信息。如

23、此反复多次后,将所有生成的覆盖率文件合并,查看分析有哪些代码没有运行到,或者哪些功能覆盖点没有被覆盖。根据分析结果,调整测试激励约束条件,重新运行UVM测试平台。如此反复,直到达到测试覆盖率目标位置。表2为收发器模块最终的测试覆盖率报告。2.2 门级仿真与时序仿真在HDL代码经过综合后生成门级网表,对于门级网表的仿真称为门级仿真。门级网表经过编译、布局布线后可以生成反标注文件,对于添加凡标注文件的门级仿真称为时序仿真。时序仿真和门级仿真主要以功能覆盖率为目标。其测试流程与RTL级行为仿真类似,在此不做赘述。3 UVM的优势与不足与传统的FPGA验证方法相比,UVM的优势主要体现在:3.1 测试

24、激励随机化生成与测试人员定义的直接测试用例相比,随机生成的测试用例可以使得测试覆盖率导向的测试流程更快地达到测试覆盖率目标,所用的测试时间更短。3.2 测试激励自动化生成直接测试用例的定义需要测试人员去修改测试代码,特别是对于大的工程而言,在修改、调试测试代码上花费的劳动力是巨大的。自动化的好处在于解放了测试人员,让他们专心于查看测试过程中的异常情况,发现代码漏洞,大大提高了测试效率。3.3 测试结果自动对比传统的FPGA验证方法,测试结果需要测试人员去查看核对。难免会出现遗漏,并且效率相对较低。自动化对比测试结果可以使得测试结果更可信,更具有说服力,并且能够令测试工作效率更高。3.4 功能覆

25、盖率自动统计传统的FPGA测试方法每个功能特性均需要编写直接测试用例进行测试,并且要人工统计是否通过,计算功能覆盖率情况。在UVM平台,测试人员只需要在起始阶段定义好了功能覆盖点,测试平台就可以自动的帮助测试人员统计功能覆盖率的情况。降低了时间成本、人工成本,提高了测试效率。3.5 DUT与参考模块相互印证,测试结果可靠传统的FPGA测试方法,需要测试人员去查看波形图,人为判断测试结果是否正确。效率低的情况下,还有可能引起误判断。UVM平台引入了参考模型,由测试人员编写,使得待测设计的结果与参考模型进行对比,使得测试结果进行相互印证,测试结果更可靠。3.6 测试过程的错误记录功能传统的测试方法

26、往往需要测试人员多次暂停测试流程去查看波形图,人工记录错误信息。而UVM平台有着强大的错误信息打印和记录功能,可以实时记录测试过程中的错误信息,方便测试人员在测试结束后进行分析,同样节省了测试人员的时间,提升的测试效率。和传统的FPGA验证方法相比,UVM有着巨大的优势,但是其应用也有一定的局限性。其不足之处主要体现在UVM测试平台的搭建比较复杂,用时较多。相比于直接测试用例,UVM学习成本更高、搭建测试平台的时间更多。因此,对于较简单的设计,传统的FPGA验证方法更能节省时间。4 结束语本文中以高速串行收发器为例较为详细地介绍了UVM测试平台的搭建以及测试流程。在核电行业FPGA验证方面推广

27、使用UVM,能够使基于FPGA的仪控系统更加的可靠和安全。希望经验分享能够为同行的工程师提供一些建議和启发。【参考文献】1ELECTRIC POWER RESEARCH INSTITUTE,Guidelines on the Use of Field Programmable Gate Arrays (FPGAs) inNuclear Power Plant I& Systems,Rep.EPRI TR-1019181,EPRI,Palo Alto,CA(2009).2BOBREK,M.,BOULDIN,D.,HOLCOMB,D.E.,KILLOUGH,S.M.,SMITH,S.F.,WARD

28、,C.,WOOD,R.T.,ReviewGuidelines for FPGAs in NPP Safety Systems,Rep.NUREG/CR-7006,Office of Nuclear Regulatory Research,Washington,DC(2010).3INTERNATIonAL ELECTROTECHNICAL COMMISSION, Nuclear Power PlantsInstrumentation and Controlimportant to SafetyDevelopment of HDL-Programmed Integrated Circuits for Systems Performing Category A Functions,IEC Standard 62566, IEC, Geneva (2012).4INSTITUTE OF ELECTRICAL AND ELECTRonICS ENGINEERS,IEEE Standard for System andSoftware Verification and Validation,IEEE Standard 1012-2012,IEEE,New York (2012).-全文完-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1