1、 集成电路应用 第 40 卷 第 6 期(总第 357 期)2023 年 6 月 51Research and Design 研究与设计 1.1 验证平台架构基于UVM的通用验证平台主要包括待测模块DUT、激励产生模块Sequence、激励仲裁模块Sequencer、驱动模块Driver、监测模块Monitor、参考模型、计分板等组件,平台架构如图1所示。1.2 验证平台的执行流程基于UVM的验证平台中各个组件内部的任务和函数,根据UVM phase机制自动执行。通过build_phase创建和配置验证平台结构时以自顶向下顺序执行的;后续uvm_phase以自底向上顺序执行的,依次完成各组件间
2、的连接和通信。验证平台组件间0 引言在集成电路的不断创新中,电路的集成化与复杂度以指数规律增长1,复杂且庞大IP的功能完备性和正确性难以保证,验证上需要花费大量成本和精力,验证工作逐渐成为芯片设计中的关键环节2。本文从提升验证环境效率、可靠性和可读性的角度,以基于AHB总线的SARM控制器作为待测模块,搭建了基于UVM的通用验证平台,采用受约束的随机测试用例,通过收集测试用例覆盖率,完成对测试进展的度量,根据仿真结果对验证环境进行优化,从而提高UVM验证平台的高重用性、可移植性和可靠性。1 创建UVM通用验证平台验 证 技 术 包 括 验 证 语 言 和 验 证 方 法 学。常用验证语言有Ve
3、rilog、System C和System Verilog3。System Verilog具有封装、继承和多态等面向对象特性,支持约束化随机激励的产生、覆盖率统计和断言验证等功能4。验证方法学是基于验证语言的库函数,包括VA、eRM、RVM、VMM、OVM、UVM。作者简介:梁光胜,华北电力大学电气与电子工程学院,副教授,硕士;研究方向:集成电路及系统芯片设计与应用、嵌入式系统与智能控制、物联网技术及应用。收稿日期:2023-02-09;修回日期:2023-05-27。摘要:阐述AHB总线的SARM控制器运行原理和特点,以System Verilog为验证语言,VCS和DVE为仿真软件,搭建了
4、基于UVM的通用验证平台,针对待测模块设计随机化测试用例,给出基于UVM的AHB总线SRAM控制器的验证结果,检测UVM验证平台的重用性、可移植性和可靠性。关键词:UVM验证方法,AHB总线,静态随机存取存储器,System Verilog,VCS。中图分类号:TN47,TP336 文章编号:1674-2583(2023)06-0051-03DOI:10.19339/j.issn.1674-2583.2023.06.020文献引用格式:梁光胜,李朝洋,梁兆楷,杨松.基于UVM的AHB总线SRAM控制器设计和验证J.集成电路应用,2023,40(06):51-53.基于UVM的AHB总线SRAM
5、控制器设计和验证梁光胜,李朝洋,梁兆楷,杨松(华北电力大学 电气与电子工程学院,北京 102206)Abstract This paper describes the operation principle and characteristics of the AHB bus SARM controller,a universal verification platform based on UVM built with System Verilog as the verification language and VCS and DVE as the simulation software.
6、Randomized test cases are designed for the modules to be tested,and the verification results of the AHB bus SRAM controller based on UVM are given to test the high reusability,portability and reliability of the UVM verification platform.Index Terms UVM,AHB protocol,SRAM,System Verilog,VCS.Design and
7、 Verification of the AHB bus SRAM Controller Based on UVMLIANG Guangsheng,LI Zhaoyang,LIANG Zhaokai,YANG Song(School of Electrical and Electronic Engineering,North China Electric Power University,Beijing 102206,China.)图1 基于UVM的通用验证平台架构52 集成电路应用 第 40 卷 第 6 期(总第 357 期)2023 年 6 月 Research and Design 研究
8、与设计图2 基于AHB总线的SRAM控制器总体设计框图采用TLM通信传输方式,通过事务级端口完成各组件间的通信传输,该端口将各组件通信时所需变量和约束条件打包传输,采用虚拟接口完成DUT与验证组件之间的通信和时序同步。2 SRAM控制器的设计SRAM具有低功耗、高速存取、不需要实时刷新等特点4,被广泛用于处理器的高速缓存、SOC系统、AI加速芯片等系统5。本文利用Quartus软件的SRAM IP核构建了64k(8k8块)SRAM,设计了连接AHB总线的SRAM控制器。主要功能如下:8bit、16bit、32bit、64bit AHB总线数据的读写操作;SRAM单周期读写;在多块SRAM组成的
9、存储器中系统可选择一块或多块SRAM,未被选中的SRAM片处于低功耗模式。基于AHB总线的SRAM控制器总体设计如图2,最外层的顶层模块包括接口模块和数据存储模块。数据存储模块包含两个bank,由8个SRAM实例化组成,SRAM的选择由bank选择信号和仲裁信号决定。接口模块提供读写信号、数据信号和仲裁信号。根据AHB总线基本传输协议和低功耗要求,将主机发来的地址信号、处理后的位宽信号和数据一起存放在SRAM中,实现单周期读写。数据存储时先生成SRAM的bank选择信号,再通过AHB总线的HSIZE信号和低2位地址总线数据,产生AHB-SRAM数据位宽信号,最后根据bank信号和数据位宽选择使
10、用SRAM块,以此实现低功耗功能。3 创建SRAM控制器验证平台UVM验证的主要任务是搭建UVM验证平台,配置测试参数,编译软件启动UVM验证平台,对待测模块自动化验证,打印验证报告与覆盖率统计报告,得出验证结论。3.1 功能验证点规划通过搭建UVM验证平台,检验基于AHB总线的SRAM控制器是否能单周期读写,是否符合AHB总线协议的猝发读写传输,其功能验证点如下:(1)地址和数据的完备性;(2)读写时地址和数据是否丢失;(3)Burst传输中,地址和数据是否丢失、是否符合总线协议;(4)SRAM控制模块是否具备低功耗状态;(5)读写时序是否支持单周期读写。其验证方案是通过采用带约束的随机化激
11、励,监测DUT中输入和输出信号,结合断言语句,收集时序数据,调用覆盖率统计语句,针对读/写数据包的低中高区域进行自动化统计。3.2 SRAM控制器的UVM验证平台实现AHB总线SARM控制器的验证平台复用了UVM通用验证平台中多个组件,个性化处理的组件包括:虚拟接口、Driver、参考模型和计分板。其中虚拟接口中主要信号包括片选信号、写信号、准备完毕信号、传输数据位数信号、传输数据类型信号、地址输入信号、数据输入信号、数据读取信号。Driver是验证平台与DUT交互的组件,在进行Driver设计时,首先通过宏完成工厂注册,将其登记在UVM内部网表;然后进行端口例化,完成自身与待测模块互联;最后
12、在run_phase中完成AHB总线协议的读写信号时序描述,将事务级端口数据转换成信号级输出驱动DUT。参考模型通过接入与DUT相同的激励,观察运行变化与待测模块的区别。因此需要设计支持AHB总线协议的参考模型,首先完成组件的继承和工厂注册,再定义一个my_sram模块和两个端口,其中port端口接受来自Driver的信号作为输入,ap端口则把输出结果发送到计分板,进行数据的比对。4 SRAM控制器的验证结果 4.1 数据报告通过编写多个测试用例来验证不同测试点的完备性,利用VCS编译仿真并产生编译报告、覆盖率结果。通过运行可执行文件,选择不同的测试用例进行仿真,利用“uvm_info”宏打印
13、当前比对的事务信息,比对成功时打印“PASS:ADDR”等信息,比对失败则报错。4.2 DVE界面波形验证平台通过虚拟接口与DUT连接,通过观察虚拟接口信号时序可得到DUT在带约束的随机激励下输入输出情况,如图3所示。将ahb_slv_if.sv中虚 集成电路应用 第 40 卷 第 6 期(总第 357 期)2023 年 6 月 53Research and Design 研究与设计拟接口信号导入DVE波形分析器,选用不同测试用例,即可得到DUT不同的输入输出波形。4.3 覆盖率覆盖率是评估验证工作进度与验证是否完备的指标,包括代码覆盖率和功能覆盖率。代码覆盖率是衡量DUT代码执行情况的标准,
14、包括语句覆盖率、条件覆盖率、决策覆盖率、跳转覆盖率和状态机覆盖率。在仿真过程中EDA软件自动收集代码覆盖率,在参数NUMBER_PACKETS为10000、TEST_MODE为2、+ntb_random_SEED为1651198619时,代码覆盖率报告如图4所示。功能覆盖率是衡量设计模块所实现的各项功能,是否符合设计的功能点要求。通过编写覆盖组和覆盖点建立覆盖率模型,选取hsel、hwrite、hready、hsize、htrans、hwdata、haddr和hrdata等变量作为覆盖点,从而获得面向数据的覆盖率。通过对覆盖组的实例化和sample命令,进行覆盖率采样和分析,功能覆盖率报告如图
15、5所示。5 结语本文以基于AHB总线的SRAM控制器为待测对象,研究并实现了UVM通用验证平台的搭建,通过覆盖率正确反映验证进度,提高验证效果和效率,检测UVM平台的高重用性、可移植性和可靠性。虽然前期搭建UVM验证平台需要耗费很多时间和精力,但该平台具有较强的规范性以及较好的可重用性和可移植性。通过引入带约束的随机激励,能够提高激励的完备性,更全面地测试DUT。参考文献1 刘达,倪伟,徐春琳.基于UVM的AXI总线验证IP设计J.微电子学,2019,49(05):680-685.2 谢峥,王腾,雍珊珊,陈旭,苏吉婷,王新安.一种基于UVM面向RISCCPU的可重用功能验证平台J.北京大学学报
16、(自然科学版),2014,50(02):221-227.3 周正.高覆盖率低电压SRAM测试关键技术研究与实现D.江苏:南京邮电大学,2021.4 Zhiting Lin,Zhongzhen Tong,Jin Zhang,Fangming Wang,Tian Xu,Yue Zhao,Xiulong Wu.A review on SRAM-based computing in-memory:Circuits,functions,and applicationsJ.Journal of Semiconductors,2022,43(03):26-50.5 周方健.基于Verification IP验证方法的AXI总线系统设计与实现D.陕西:西安电子科技大学,2017.图4 基于AHB总线SRAM控制器的代码覆盖率图3 基于AHB总线SRAM控制器的波形监测结果图5 基于AHB总线SRAM控制器的功能覆盖率