论文部分内容阅读
集成电路技术的快速发展使得市场对电子设备的需求趋于更快、更小的方向。尽管集成电路设计和生产所消耗的成本和时间在降低,但鉴于芯片的复杂度不断提高,如何保障芯片功能可靠实现则显得尤为重要。因此需要花费更多的时间来进行芯片的功能验证,这就对验证的技术和方法学提出了一定的要求。SDRAM控制器是控制SDRAM正常工作不可或缺的设计,对于应用了SDRAM以及SDRAM控制器的工程项目,通过功能验证确保SDRAM控制器的功能设计正确非常重要。采用传统的定向验证方法对SDRAM控制器进行验证将很难遍历到所有情况,总会存在意料之外的漏洞。基于SystemVerilog语言的UVM(universal verification methodology,通用验证方法学)作为新兴的验证方法学,吸取了OVM、VMM等验证方法学优点,能够产生受约束的随机激励信号,并能自动收集功能覆盖率并且分析验证结果。在SDRAM控制器的验证工作中,应用UVM验证方法学能够更有效地发现设计中的缺陷,大大缩短了验证的时间。本文通过参与实际的SoC芯片项目,对该芯片项目中用到的SDRAM控制器模块进行较为全面的模块级验证,尽可能使模块功能符合设计规范。本文首先分析了功能验证的基本理论,研究了验证平台、验证流程及覆盖率类型;其次,针对当前验证所面临的问题提出了UVM验证方法学,并且对UVM验证平台的结构及主要特性进行了分析;之后根据SDRAM控制器模块的功能架构和应用环境,对SDRAM存储器原理以及SDRAM控制器子模块的功能进行研究;对SDRAM控制器模块的外部接口信号、工作流程及参数配置进行分析;根据模块的功能和时序特性进行分析并提取出相应的验证点;然后对SDRAM控制器UVM验证平台的总体架构进行了分析,通过架构中各个组件功能代码的编写与连接,完成了UVM验证平台的搭建;最后编写测试用例并启动验证平台进行仿真验证。本文的仿真验证工作是在Linux环境下使用NC-sim仿真工具完成的,通过定向激励和随机激励相结合来对模块进行验证。在仿真过程中,对SDRAM控制器的典型功能仿真波形进行了分析。通过仿真器覆盖率信息收集,最终得到了97%的代码覆盖率和100%的功能覆盖率,达到了预期目标。验证结果表明,使用UVM验证方法学对SDRAM控制器进行功能验证效率高且完备性好。