随笔分类 -  SystemVerilog/UVM

( 转)UVM验证方法学之一验证平台
摘要:在现代IC设计流程中,当设计人员根据设计规格说明书完成RTL代码之后,验证人员开始验证这些代码(通常称其为DUT,Design Under Test)。验证工作主要保证从设计规格说明书到RTL转变的正确性,它包括但不限于以下几点: DUT的行为表现是否与设计规格说明书中的要求一致 DUT是否实现了设计规格说明书中的所有功能 DUT对于异常状况的反应是否与设计规格说明书中的一致 DUT是否... 阅读全文

posted @ 2016-08-22 07:16 dpc525 阅读(14979) 评论(0) 推荐(1)

Gate level Simulation(门级仿真)
摘要:1 什么是后仿真? 后仿真也成为时序仿真,门级仿真,在芯片布局布线后将时序文件SDF反标到网标文件上,针对带有时序信息的网标仿真称为后仿真。 2 后仿真是用来干嘛的? 检查电路中的timing violation和 test fail,一般都是已知的问题。一般后仿真花销2周左右的时间。 网标仿真的目的是检查RTL仿真和综合后的一致性(logic Equivalence check),由于网标仿... 阅读全文

posted @ 2016-08-10 06:52 dpc525 阅读(11169) 评论(1) 推荐(0)

(转)IC验证概述
摘要:验证是确保设计和预定的设计期望一致的过程,设计期望通常是通过设计规范来定义的。对于芯片设计,在不同的阶段可以分为:寄存器传输级(RTL)的功能验证、门级的仿真验证、形式验证以及时序验证。我们通常所说的验证一般是指RTL验证。 验证工作根据设计规范进行,详细的设计规范是RTL编码的依据,也是验证工作的依据。当验证过程发现被测设计(DUT)的响应与验证平台(Testb... 阅读全文

posted @ 2016-07-24 11:46 dpc525 阅读(3082) 评论(0) 推荐(0)

一个功能覆盖率的简单例子
摘要:功能覆盖率的类型 在验证计划中编写test case时,需要编写功能覆盖率计划。一般而言,在验证环境中有4个地方可以编写coverage points. F1 : Functional coverage points are very near the randomization F2 : Func 阅读全文

posted @ 2016-05-29 09:47 dpc525 阅读(1715) 评论(0) 推荐(1)

UART UVM验证平台平台搭建总结
摘要:tb_top是整个UVM验证平台的最顶层;tb_top中例化dut,提供时钟和复位信号,定义接口以及设置driver和monitor的virual interface,在intial中调用run_test() UVM入口函数。在基于uvm_test扩展出base_test,根据测试用例再基于base_test扩展出各种各样的test.在扩展后的test中call sequenc... 阅读全文

posted @ 2016-05-15 17:57 dpc525 阅读(7164) 评论(0) 推荐(0)

UVM的factory机制
摘要:在UVM中使用工厂模式基本上分为三个步骤: 1. 注册 当定义一个类的时候,它的类型必须要注册,UVM已经提供了专用的宏。 `uvm_component_utils(class_type_name) `uvm_component_param_utils(class_type_name #(params)) `uvm_object_utils(class_type_name) `uvm_object... 阅读全文

posted @ 2016-05-06 06:25 dpc525 阅读(2926) 评论(0) 推荐(0)

SystemVerilog的历史
摘要:随着软件的功能需求越来越复杂,C语言不足以解决现有的问题,于是C++被发明了;C++的指针漫天飞,对内存的处理过于复杂,于是Java被发明了;芯片的功能不断地扩大,Verilog不足以应对日益复杂的芯片设计和验证,于是SystemVerilog被发明了。 SystemVerilog结合了来自 Verilog、VHDL、C++的概念,还有验证平台语言(OpenVera和e... 阅读全文

posted @ 2016-04-24 21:43 dpc525 阅读(1459) 评论(0) 推荐(0)

UVM Top Testbench
摘要:top testbench在top_tb中包含进所有的文件,将DUT放在top_tb中(例化DUT),连接好各个端口,提供clk时钟和rst_n复位信号。最主要的是要给组件中的虚接口设置接口,一般是给driver和monitor的虚接口例化接口。初始化run_test()使其自动启动UVM仿真。用c 阅读全文

posted @ 2016-04-21 20:35 dpc525 阅读(1440) 评论(0) 推荐(0)

Cadence UVM基础视频介绍(UVM SV Basics)
摘要:Cadence关于UVM的简单介绍,包括UVM的各个方面。有中文和英文两种版本。 UVM SV Basics 1 – Introduction UVM SV Basics 2 – DUT Example UVM SV Basics 3 – UVM Environment UVM SV Basics 4 – Interface UVC UVM SV Basics 5 – Collector UVM ... 阅读全文

posted @ 2016-04-21 20:09 dpc525 阅读(1042) 评论(0) 推荐(0)

(转)UVM内容梗概
摘要:1. 类: 面向对象基础传统的面向对象编程与systemverilog类的特点,类的定义,成员与方法,构造函数,对象的复制和深/浅拷贝,父类/子类关系,类的继承,作用域的规则,对象的句柄以及赋值,方法的扩展和重写,local/protected关键字,虚基类,虚方法,虚接口。 2. UVM基础 :UVM的发展历史,可配置的测试组件,类库结构,UVM核心基类的介绍,include/macro,U... 阅读全文

posted @ 2016-04-18 21:43 dpc525 阅读(569) 评论(0) 推荐(0)

功能覆盖率
摘要:随着各种设计变得越来越复杂,采用受约束的随机测试方法(CRT)是对它们进行全面验证的唯一有效途径。无论是随机的还是定向的激励,都要使用覆盖率来度量测试进行的程度。 覆盖率的类型 覆盖率是衡量设计验证完成程度的一个通用词。随着测试逐步覆盖各种合理的组合,仿真过程会慢慢勾画出你的设计情况,覆盖率工具会在仿真过程中收集信息,然后进行后续处理并得倒覆盖率报告。通过覆盖率报告找出覆盖率盲区,然后修改现有测试... 阅读全文

posted @ 2016-04-17 17:23 dpc525 阅读(3585) 评论(0) 推荐(0)

UVM之uvm_phase
摘要:UVM中的phase机制很有意思,它能让UVM启动之后,自动执行所有的流程。UVM 的user guide 中对uvm_phase的定义如下: This base class defines everything about a phase: behavior, state, and context. To define behavior, it is extended by UVM or the... 阅读全文

posted @ 2016-03-25 07:18 dpc525 阅读(703) 评论(0) 推荐(0)

Verilog 参数化设计
摘要:为了提高模块的重复利用,关键就在于避免硬编码(hard literal),使模块参数化。参数化建模的好处是可以使代码清晰,便于后续维护和修改。只需要修改参数,不用修改其他代码就可以适用于不同的环境中。具体的参数化建模方法有 3 种: `define 宏定义 parameter,localparam 模块参数化 `ifdef 等条件编译 使用define,parameter和loc... 阅读全文

posted @ 2016-03-15 23:10 dpc525 阅读(2235) 评论(0) 推荐(0)

(转)新手学习System Verilog & UVM指南
摘要:从刚接触System Verilog以及后来的VMM,OVM,UVM已经有很多年了,随着电子工业的逐步发展,国内对验证人才的需求也会急剧增加,这从各大招聘网站贴出的职位上也可以看出来,不少朋友可能想尽快掌握这些知识,自学是一个好办法,我结合自己的亲身经历和大家谈谈初学者如何能尽快入门,继而成为一名合格的IC验证师。 1.首先来谈谈仿真工具,无非就是Synopsys, Cacence Mentor三... 阅读全文

posted @ 2015-12-15 06:47 dpc525 阅读(8656) 评论(2) 推荐(1)

VCS filelist 文件格式
摘要:VCS在运行仿真一般都会加仿真参数 –f filelist,filelist 是包含其他的仿真参数和整个工程的文件列表。具体格式如下: //file list format, just for example +v2k -sverilog +define+USE_ASYNC_FIFO +incdir+../rtl/ +incdir+../sv/ +incdir+../tb/ //RTL file ... 阅读全文

posted @ 2015-12-06 10:38 dpc525 阅读(6768) 评论(0) 推荐(0)

(转载)验证方法学的历史及比较
摘要:2000年, Verisity Design(现在的Cadence Design System公司)引进了Verification Advisor(vAdvisor)采用了e语言,包含了激励的产生,自动比对的策略,覆盖率模型。e语言是面向对象语言,这是业界开始使用面向对象语言进行测试平台的建立。20... 阅读全文

posted @ 2015-11-22 23:28 dpc525 阅读(717) 评论(0) 推荐(0)

导航