基于UVM的自适应验证平台设计与实现
发布时间:2021-08-21 06:08
近年来,集成电路的工艺尺寸已经发展到5nm工艺,芯片的集成度也是不断的提高,规模越来越大,功能更是十分丰富。然而正是由于其复杂的功能,在硬件设计时可能会存在理解上的偏差,正是由于这些可能存在的偏差,将会导致流片失败,投入的资金付之东流,因此验证的重要性显而易见。然而传统的验证方法存在一些弊端,会耗费大量的资源,并且在需要进行类似验证时,平台往往复用性不高,需要大量的更改。UVM验证方法学是解决这一问题的不二方法,其有着许多的优点,例如效率高,复用性强等,使得UVM得到大规模的使用,因此,开发出一款基于UVM验证方法学的存储控制器验证平台是十分必要的。本文将项目中的基于DDR4的原始数据存储控制器与中间数据存储控制器作为待测设计,分析其在芯片运行时各个功能场景给出验证点与DDR4设置参数对功能的影响,给出搭建UVM验证平台的设计过程与方法,并且实现用一个UVM验证平台同时验证原始数据存储控制器和中间数据存储控制器,包括平台中各个组件的编写、通信方式、数据传输的路径等,同时设计激励生成器,使得激励的生成更为简单,仅仅通过txt文件输入数据,可自动生成各个层次验证时的头文件等,例如模块级的s...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:80 页
【学位级别】:硕士
【部分图文】:
DDR4状态转换如图
第三章DDR4存储控制器功能架构研究21MCU模块发送一个控制信号r_RCTL2OMC_StartRun信号,PRE_PAUSE状态则是预暂停状态,这是在收到Pause信号或者是设置中的断点信号时会进入此状态,这是存储控制器内处于暂停准备状态,当处理完本次数据传输后就会停下接下来的数据传输,进入到PAUSE状态,此状态需要MCU发送来的Continue信号才会使状态回到AL_RUN状态,进行正常的数据传输功能。下图3-5是运行控制模块的时序图。图3-5运行控制模块时序图其中RCTL2OMC_StartRun来自MCLK时钟域,其余均处在SCLK时钟域。当发送RCTL2OMC_StartRun信号之后,需要等待o_ClearBeforeRun信号到来之后,o_OMC_ALRunning信号才会跳变为1,这时才会进入算法阶段,算法阶段收到Pause信号会等待内部悬挂的请求以及队列里的请求全部排空后进入暂停状态,当收到CTRL模块发来Continue信号之后回到算法运行状态,继续进行算法的读写,这时若是运行到我们在寄存器配置阶段设置好的断点地址,那也会进入到暂停状态,等待Continue信号来恢复运行3.2中间数据存储控制器相较于原始数据存储控制器,中间数据存储控制器在运行模块上是更为复杂,运行控制模块的状态数量更多,所以要遍历的情况也更多,需要考虑的错误情况也更多,想要充分的验证,必须考虑更多的情况。在图3-1中,我们可以得知,中间数据存储控制器数量为4,但因为其都是相同的功能,所以本文仅例化一个存储控制器即可。3.2.1中间数据存储控制器主要功能与性能指标根据模块功能的详细划分,中间数据存储控制器实现的功能如下:1、保存两个算法计算模块的第一阶段处理数据,即算法计算模块的中间结果,
第三章DDR4存储控制器功能架构研究25MCU_STAGE其他WRITE_STAGE写状态ST1_W_DONE第一阶段写完成WRITE_STAGE其他ST1_W_DONE第一阶段写完成WRITE_DONE存储控制器内部请求和队列中全部请求为空ST1_W_DONE其他WRITE_DONE写完成MCU_STAGEREAD_STAGE读状态WAIT_FOR_READ完成一次读操作WAIT_FOR_REREADA完成所有读操作R_PRE_PAUSERCTL发送暂停信号或存储控制器内部发送断点请求READ_STAGE其他WAIT_FOR_READ等待读完成READ_DONE_ONCE第一次读完成根据上表我们就可以清晰明了的了解各状态的实际意义,跳转方向及条件等,极大的方便了后期的验证工作,不过仅有这个仍然不足以让我们对运行模块的功能了如指掌,我们还必须了解读写阶段的时序图,下图3-9是第一阶段写状态时序图。图3-9第一阶段写状态时序图此图为第一阶段运行过程,图中的①②③④处可能存在多个时钟,RCTL2MMC_WriteStartRun来自CCLK时钟域,在⑤这个阶段中,ST12MMC_WriteDone起来之前,此过程的i_DataEmpty可能会起来多次(每次保持一拍),而每次的间隔可能为16拍,即①过程,o_WstageRunning信号起来
【参考文献】:
期刊论文
[1]中国集成电路产业现状分析[J]. 谢宗懿. 计算机产品与流通. 2018(04)
[2]采用UVM方法学实现验证的可重用与自动化[J]. 徐金甫,李森森. 微电子学与计算机. 2014(11)
[3]覆盖率驱动的芯片功能验证设计与实现[J]. 罗莉,何鸿君,窦强,徐炜遐. 计算机工程与科学. 2013(01)
[4]基于覆盖率驱动的SoC验证技术研究[J]. 朱车壮,陈岚,冯燕. 微电子学与计算机. 2011(11)
[5]下一代芯片设计与验证语言:SystemVerilog(验证篇)[J]. 钟文枫. 电子设计应用. 2008(12)
[6]SoC验证环境搭建方法的研究[J]. 何伟,张多利,周萌,高明伦. 中国集成电路. 2006(08)
博士论文
[1]存储控制系统性能优化技术研究[D]. 李文.中国科学院研究生院(计算技术研究所) 2005
硕士论文
[1]基于UVM的1553B总线协议验证平台设计[D]. 刘魁玉.哈尔滨工业大学 2019
[2]基于UVM的车载MCU验证平台设计[D]. 徐文健.西安电子科技大学 2019
[3]兼容DDR3和DDR4存储器标准的接口电路设计[D]. 刘紫璇.辽宁大学 2019
[4]一种特殊应用场景下的DDR4写缓冲设计与验证[D]. 汪继友.安徽大学 2019
[5]基于UVM的FPGA代码功能验证技术研究[D]. 鞠志敏.哈尔滨工业大学 2018
[6]基于层次组合抽象的能源共享系统形式化分析与验证[D]. 周益龙.江苏科技大学 2018
[7]基于UVM的MC-SOC中可重用验证平台的设计与实现[D]. 李世超.电子科技大学 2018
[8]DDR3控制器的设计与验证[D]. 马志超.西安电子科技大学 2013
本文编号:3355033
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:80 页
【学位级别】:硕士
【部分图文】:
DDR4状态转换如图
第三章DDR4存储控制器功能架构研究21MCU模块发送一个控制信号r_RCTL2OMC_StartRun信号,PRE_PAUSE状态则是预暂停状态,这是在收到Pause信号或者是设置中的断点信号时会进入此状态,这是存储控制器内处于暂停准备状态,当处理完本次数据传输后就会停下接下来的数据传输,进入到PAUSE状态,此状态需要MCU发送来的Continue信号才会使状态回到AL_RUN状态,进行正常的数据传输功能。下图3-5是运行控制模块的时序图。图3-5运行控制模块时序图其中RCTL2OMC_StartRun来自MCLK时钟域,其余均处在SCLK时钟域。当发送RCTL2OMC_StartRun信号之后,需要等待o_ClearBeforeRun信号到来之后,o_OMC_ALRunning信号才会跳变为1,这时才会进入算法阶段,算法阶段收到Pause信号会等待内部悬挂的请求以及队列里的请求全部排空后进入暂停状态,当收到CTRL模块发来Continue信号之后回到算法运行状态,继续进行算法的读写,这时若是运行到我们在寄存器配置阶段设置好的断点地址,那也会进入到暂停状态,等待Continue信号来恢复运行3.2中间数据存储控制器相较于原始数据存储控制器,中间数据存储控制器在运行模块上是更为复杂,运行控制模块的状态数量更多,所以要遍历的情况也更多,需要考虑的错误情况也更多,想要充分的验证,必须考虑更多的情况。在图3-1中,我们可以得知,中间数据存储控制器数量为4,但因为其都是相同的功能,所以本文仅例化一个存储控制器即可。3.2.1中间数据存储控制器主要功能与性能指标根据模块功能的详细划分,中间数据存储控制器实现的功能如下:1、保存两个算法计算模块的第一阶段处理数据,即算法计算模块的中间结果,
第三章DDR4存储控制器功能架构研究25MCU_STAGE其他WRITE_STAGE写状态ST1_W_DONE第一阶段写完成WRITE_STAGE其他ST1_W_DONE第一阶段写完成WRITE_DONE存储控制器内部请求和队列中全部请求为空ST1_W_DONE其他WRITE_DONE写完成MCU_STAGEREAD_STAGE读状态WAIT_FOR_READ完成一次读操作WAIT_FOR_REREADA完成所有读操作R_PRE_PAUSERCTL发送暂停信号或存储控制器内部发送断点请求READ_STAGE其他WAIT_FOR_READ等待读完成READ_DONE_ONCE第一次读完成根据上表我们就可以清晰明了的了解各状态的实际意义,跳转方向及条件等,极大的方便了后期的验证工作,不过仅有这个仍然不足以让我们对运行模块的功能了如指掌,我们还必须了解读写阶段的时序图,下图3-9是第一阶段写状态时序图。图3-9第一阶段写状态时序图此图为第一阶段运行过程,图中的①②③④处可能存在多个时钟,RCTL2MMC_WriteStartRun来自CCLK时钟域,在⑤这个阶段中,ST12MMC_WriteDone起来之前,此过程的i_DataEmpty可能会起来多次(每次保持一拍),而每次的间隔可能为16拍,即①过程,o_WstageRunning信号起来
【参考文献】:
期刊论文
[1]中国集成电路产业现状分析[J]. 谢宗懿. 计算机产品与流通. 2018(04)
[2]采用UVM方法学实现验证的可重用与自动化[J]. 徐金甫,李森森. 微电子学与计算机. 2014(11)
[3]覆盖率驱动的芯片功能验证设计与实现[J]. 罗莉,何鸿君,窦强,徐炜遐. 计算机工程与科学. 2013(01)
[4]基于覆盖率驱动的SoC验证技术研究[J]. 朱车壮,陈岚,冯燕. 微电子学与计算机. 2011(11)
[5]下一代芯片设计与验证语言:SystemVerilog(验证篇)[J]. 钟文枫. 电子设计应用. 2008(12)
[6]SoC验证环境搭建方法的研究[J]. 何伟,张多利,周萌,高明伦. 中国集成电路. 2006(08)
博士论文
[1]存储控制系统性能优化技术研究[D]. 李文.中国科学院研究生院(计算技术研究所) 2005
硕士论文
[1]基于UVM的1553B总线协议验证平台设计[D]. 刘魁玉.哈尔滨工业大学 2019
[2]基于UVM的车载MCU验证平台设计[D]. 徐文健.西安电子科技大学 2019
[3]兼容DDR3和DDR4存储器标准的接口电路设计[D]. 刘紫璇.辽宁大学 2019
[4]一种特殊应用场景下的DDR4写缓冲设计与验证[D]. 汪继友.安徽大学 2019
[5]基于UVM的FPGA代码功能验证技术研究[D]. 鞠志敏.哈尔滨工业大学 2018
[6]基于层次组合抽象的能源共享系统形式化分析与验证[D]. 周益龙.江苏科技大学 2018
[7]基于UVM的MC-SOC中可重用验证平台的设计与实现[D]. 李世超.电子科技大学 2018
[8]DDR3控制器的设计与验证[D]. 马志超.西安电子科技大学 2013
本文编号:3355033
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3355033.html