当前位置: 代码迷 >> 综合 >> Systemverilog 第一课
  详细解决方案

Systemverilog 第一课

热度:11   发布时间:2023-12-18 22:42:19.0

P9 课程概述

  • 课程内容
    在这里插入图片描述

  • Verilog Testbench功能
    算法需要用C/C++进行描述

· 产生激励 Generate stimulus
· 将激励输入到待测设计 (DUV-Design Under Verification)
· 获取响应 Capture response
· 检查响应的正确性 Check the response for correctness
· 根据验证目标评估验证进度 Measure the progress against the overall verification goals

前四步是验证的主要功能

Q:验证的难点在哪里?
A: 1.如何产生正确的激励?
2.如何知道正确的期望输出?→知道正确的输出才能正确地验证
搭建testbench以后还需要写testcase,根据不同的场景产生不同的sequence施加在DUT上面,让DUT运行

  • 实例
    如何验证一个全加器?
    *严格的时序检查需要用SVA去写,并且最难写的是不唯一的时序关系
    *可怕的不是出现错误,而是错误不确定
    · 功能——真值表
    · 验证——功能完整性、穷举法、代码覆盖率

Q:UVM和VMM有什么区别?
A:在这里插入图片描述
eRM方法是由cadence发明的,并专门使用e语言设计。
Synopsys基于SV研究出VMM,Cadence和Mentor基于SV研究出OVM,后来将三个公司的方法学整合在一起研究出UVM。因此UVM包含了OVM/VMM的特性,并且自身还发展出了新的特性(sequence callback RAL jump report等等)。总结:从2000年开始验证语言逐渐统一为SV,方法学统一为UVM。

  • SOC架构
    在这里插入图片描述

芯片的架构大致可以分为两种:
在这里插入图片描述
一种是由总CPU管理AHB/APB总线,并在总线上挂上外设;第二种是线性结构,信号通过一层层模块处理向下传递。
两种结构在验证时会有所区别。