数字电路验证方法学讲诉

上传人:最**** 文档编号:116900628 上传时间:2019-11-17 格式:PPT 页数:69 大小:1.71MB
返回 下载 相关 举报
数字电路验证方法学讲诉_第1页
第1页 / 共69页
数字电路验证方法学讲诉_第2页
第2页 / 共69页
数字电路验证方法学讲诉_第3页
第3页 / 共69页
数字电路验证方法学讲诉_第4页
第4页 / 共69页
数字电路验证方法学讲诉_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《数字电路验证方法学讲诉》由会员分享,可在线阅读,更多相关《数字电路验证方法学讲诉(69页珍藏版)》请在金锄头文库上搜索。

1、数字集成电路验证方法学 2013年12月31日 *2 主要内容 n验证的必要性 n验证方法学介绍 n验证工具介绍 n演示 共69页 *3 主要内容 n验证的必要性 n验证方法学介绍 n验证工具介绍 n演示 共69页 *4 验证的必要性 n验证的概念,验证与测试的区别。 n经验表明,验证已经占到整个产品开发周期的 70%以上,它已经成为复杂SOC(System on- Chip)开发中的 重要壁垒。 n制造、设计和验证能力之间的鸿沟 共69页 *5 典型流程 时序 不满足 动态仿真正确 Verification is not just very hard, it is very, very ha

2、rd没有一个简单的工具可以解决你所有的验证 问题。(VSIA,Virtual Socket Interface Alliance) 系统功 能 不满足 系统规划满足 功能 不正确 系统结构 不合理 时序 不满足 动态仿真正确 功能正确 共69页 *6 主要内容 n验证的必要性 n验证方法学介绍 n验证工具介绍 n演示 共69页 *7 验证方法学 n方法学:又称方法论,是一门学问采用的方法、规 则与公理;一种特定的做法或一套做法。 n验证方法学:指完成验证过程中的一系列方法、技 术和规范。 n 1.仿真技术 n 2.静态技术 n 3.物理验证 共69页 *8 仿真技术 n基于事件的仿真-任何一个

3、输入的变化都被 标记为事件,即常说的功能仿真,精度高 ,速度慢。比如Modelsim, VCS。 n基于周期的仿真-单周期内只检查一次输入 并计算设计的输出逻辑值。速度快,无时 序、毛刺。比如Cyclone。 n事务级仿真-一堆事件的集合即为事务,即 常说的验证平台。 n软硬件协同验证-需要专门的软硬件,成本 高 。 共69页 传统验证系统 *9 nDUT:Design Under Test n适用于基于事 件的仿真和基 于周期的仿真 。 n适用于简单的 设计。 缺点: 1.可扩展性差 2.可重用性差 共69页 层次化的验证系统 *10 适用于事务级仿真 优点: 1.可扩展性好 2.可重用性好

4、 共69页 为什么要用事务级仿真? *11 基于事件的仿真事务级仿真 Testbench代码可读性,可 维护性 差强 仿真速度慢快 Testbench结构DUT复杂时,结构混乱DUT复杂时,结构清晰 Testbench代码量DUT简单时,代码量尚可 DUT复杂时,代码量巨大 DUT简单时,代码量略多 DUT复杂时。代码量较少 与待测设计联系程度非常紧密行为级与DUT联系紧密 事务级具有自身独立性 可复用性无强 抽象层次无有 参考模型无有 基于事件的仿真与事务级仿真的比较 共69页 事务级仿真 nRVM: Reference Verification Methodology, Synopsys公

5、司。 nVMM:Verification Methodology Manual, ARM公司和Synopsys公司。 nAVM:Advanced Verification Methodology, Mentor公司。 nOVM:Open Verification Methodology, Cadence公司和Mentor公司 nUVM: Universal Verification Methodology, Cadence公司 *12共69页 为什么选用OVM? 验证方法学侧重点EDA验证工具支持的验证语言基类库是否 开源 RVM层次化验证VCSOpenVera否 VMMRTL级模块VCSSy

6、stemVerilog是 AVM层次化验证QuestasimSystemC/Syste mVerilog 是 OVM开源和不同 仿真器之间 的透明性 支持不同验证 工具 支持 SystemVerilog 等多种语言 是 UVM开源和快速 入门 Questasim NC-verilog 支持 SystemVerilog 等多种语言 是 *13 各种验证方法学比较 共69页 SystemVerilog介绍 nSystemVerilog结合了Verilog和C+的概念 ,具有如下新功能: n1.面向对象编程(OOP) 、 n2.随机约束(Constraint Random)、 n3.断言(Asser

7、tion) 、 n4.功能覆盖率(Functional Coverage) 。 *14共69页 nOOP:Object-oriented programming n类:定义实物的抽象特点, 包含方法和属性。 n对象:类的实例。 n方法:类的行为。 n继承:子类包含类的特性。 *15 SystemVerilog介绍-面向对象编程 共69页 CRT:Constraint Random Test class my_transaction extends ovm_transaction; rand int data_i; constraint c_data_i data_i = 0; data_i =

8、 0; data_i 262144; virtual function void randomize_(); data_i = $random endfunction ovm_object_utils_begin(my_transaction)/在程序中 ovm_field_int(data_i, OVM_ALL_ON + OVM_DEC) ovm_object_utils_end endclass: my_transaction *33共69页 OVM平台驱动器 class my_driver extends ovm_driver;/ ovm_component_utils(my_drive

9、r)/注册本类,这个宏的结尾没有符号 ; virtual io_if v_io;/装载虚拟接口 ovm_get_port #(my_transaction) get_port;/装载与激励发生器通信的通 道接口: function new(string name, ovm_component parent); super.new(name, parent); /建议验证程序中可写一些ovm_report_info的语句供提示用: ovm_report_info(“, “Called my_driver:new“);/在测试结果显示此函数 被调用 endfunction: new *34共69页

10、 function void build; super.build(); ovm_report_info(“, “Called my_driver:build“); get_port = new(“get_port“, this);/初始化 endfunction : build virtual task run; ovm_report_info(“, “Called my_driver:run“); forever begin my_transaction tx; #1600 get_port.get(tx);/从通道中取一个事件 ovm_report_info(“,$psprintf(“d

11、ata_i = %2h“,tx.data_i); v_io.dut_if.data_i = tx.data_i; end endtask: run endclass: my_driver *35共69页 OVM平台验证环境 class my_env extends ovm_env;/ ovm_component_utils(my_env)/注册本类 ovm_random_stimulus #(my_transaction) env_stimulus;/装载激励器 tlm_fifo #(my_transaction) env_fifo;/装载通道 my_driver env_driver;/装载

12、驱动器 function new(string name = “my_env“, ovm_component parent = null); super.new(name, parent); ovm_report_info(“, “Called my_env:new“); endfunction: new *36共69页 virtual function void build; super.build(); ovm_report_info(“, “Called my_env:build“); env_stimulus = new(“env_stimulus“, this);/初始化激励器 env_fifo = new(“env_fifo“, this);/初始化通道

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号