UVM实战系列--第一讲


第一讲

0 概述目标

1.掌握ASIC设计流程
* 设计、验证、中端、后端主要解决哪些问题
* 主流的EDA工具
* 验证工程师的基本技能需求
2. 掌握ASIC验证的基本概念
* Verilog Testbench和testcase
3. 掌握ASIC验证策略
* 随机化策略
* 覆盖率驱动
4.如何验证一个加法器–lab01
预学知识:数字电路+Verilog/VHDL语法基础

问题1:验证为什么使用验证方法学,有什么好处?

1 芯片设计流程

芯片设计流程
设计和验证基本是同步的。
DE:规格书–>分层—>RTL coding(基本是Verilog)–>IP设计集成;
DV:Plan(验证计划:测试功能点,输入 预期)–>Testbench和Testcase(两者之间区别是什么)–>Regression(回归测试)–>Intergration Verification.
RTL freeze:sign-off 定好了,不能再动了;
Logic Synthesis:Map RTL to gate-level netlist.
STA:静态时序分析
DFT:测试
PD:布局布线

1.1 相关设计技能

DE:Verilog Synthesis SoC/IP
DV:SystrmVerilog UVM
STA/DFT:
PD: CTS P&R

环境:Linux+DEA+FPGA

1.2 主流EDA

DE:逻辑仿真工具:VCS/IUS/QuestaSim
代码产看/规则检查:Verdi Spyglass

DV: 逻辑仿真工具:VCS/IUS/QuestaSim
查看波形:Verdi DVE
STA/DFT:Tessent,DesignCompiler, PrimerTime,Formaily
PD:IC compiler,SOC encounter, Olympus Calobre,StarRC

1.3 对应的要求

DV:UVM,Verilog/SV C++ Perl makefile ;AMBA总线;IP(I2C UART);PCI-E
DE:

2 Verilog TestBench

  • 产生激励Generate stimulus
  • 将激励输入到待测设计:DUT
  • 获取响应
  • 检查响应的正确性
  • 根据验证目标评估项目进度(覆盖率)

2.1 lab01-全加器

在这里插入图片描述

功能:真值表表示
验证:a. 功能完整性 b.穷举法 c.代码覆盖率
lab01: 编译 仿真 GUI

assign 等价于always中的组合逻辑,两者可互相重写。

如何写一个testbench:
S1. 顶层文件 fu_adder_tb,在tb中例化module,进行连线
S2:产生时钟和复位信号
S3:产生驱动,并把输出拉出来

自动化编译makefile–直接在Linux terminal中输入make run即可做仿真。
永远切记:EDA工具书永远都是用来查阅的,而不是从头读到尾的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值