自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 Driver Sequencer Handshake

目录sequencerDriver Sequencer HandshakeUsing get_next_item()Using get() and put()sequencersequencer控制着sequence与driver之间的sequence item流向,一个sequence必须挂载在一个sequencer上运行;uvm_sequencer派生自uvm_...

2019-05-31 10:51:08 941

原创 config机制

目录Understanding the resource databaseuvm_resource_dbuvm_config_dbuvm_config_db examples常见的uvm_config_db使用Understanding the resource database资源(resource)是参数化的容器(container,可以保存任意的数据。资源...

2019-05-30 10:27:11 2007 1

原创 UVM Phase

UVM Phases所有testbench的组件都是继承uvm_component来的,每一个组件都包括一些预定义的同名phase,在没有执行完所有组件的当前phase之前绝对不会去执行所有组件的下一个phase,这就保证了所有组件之间是同步的!UVM就是利用phase机制实现了各个组件之间的同步!因为所有的phase都被定义为回调(callback)方法,因此各个组件可以自动执行回调p...

2019-05-29 19:48:43 7242 5

原创 Testbench Hierarchy

目录UVM Testbench TopUVM Test [uvm_test]UVM Environment [uvm_env]UVM Driver [uvm_driver]Sequencer [uvm_sequencer]UVM Sequence [uvm_sequence]UVM Monitor [uvm_monitor]UVM Agent [uvm_age...

2019-05-29 16:28:23 1242

原创 UVM Object

目录Base ClassesUVM utility & field macrosUVM Object PrintUVM Object Copy/CloneUVM Object compareUVM Object Pack/Unpackuvm_object与uvm_component的比较UVM树Base Classes验证环境的基本组件...

2019-05-27 20:03:19 4768

原创 初识UVM

What is UVM ?SV是一门语言有自己的语法和结构,而UVM是SV类的结构框架,从中可以建立完整功能的testbench.简单来说,UVM就是由一系列基本类(类中定义了一系列的方法)组成的类库,SV的验证环境可以通过继承这些基本类来搭建.Why do we need UVM ?UVM列举了一系列的指导准则用于testbench的搭建,这保证了不同验证团队之间、不同验证IP之间...

2019-05-27 12:51:12 936

原创 SV的testbench例子-加法器

下图是一个加法器的框图:输入管脚包括a、b、valid和clk、reset,以及一个输出管脚c。TestBench Without Monitor, Agent and Scoreboard不带monitor、agent和scoreboard的结构如下:(1)定义transactiontransaction的作用主要是定义随机化的输入输出管脚,并输出显示....

2019-05-26 21:11:56 4868 5

原创 SV之testbench概述

What is the purpose of a testbench ?testbench允许我们通过仿真来验证设计的功能,它包括了设计以及驱动设计的激励.(1)产生不同类型的输入激励;(2)利用产生的激励驱动设计;(3)设计处理输入产生输出;(4)对比设计的输出与期望的输出;(5)如果发现功能bug则修改设计以修复bug;Components of a testben...

2019-05-25 22:27:29 1966

原创 SV之其他

目录Dynamic CastingPackagefile operationsParameters and `defineDynamic Casting如果在两种不同的数据类型之间赋值,这一般是不允许的,必须添加关键字$cast.$cast可以是任务或者函数,两者之间的差别在于函数$cast当赋值成功时会返回1;如果赋值失败,则返回0.语法格式如下:functi...

2019-05-25 21:59:09 1521

原创 SV之流程控制

目录loop循环'break' and 'continue'选择语句Blocking & Non-BlockingEventfunctiontaskfinal blocksequenceloop循环(1)while and do-whiledo...while与while的区别就是前者至少会执行一次.格式如下:while ...

2019-05-24 10:06:10 11125 1

原创 SV之覆盖率

目录Coverage 覆盖率Functional Coverage 功能覆盖率Cross Coverage 交叉覆盖Coverage Options 覆盖率选项Coverage methods 覆盖率方法Coverage system task 覆盖率系统任务Coverage 覆盖率覆盖率用来衡量设计中已经被测部分和未测部分的比例,通常被定义为已达到所需验证部分...

2019-05-22 21:01:29 26552 15

原创 SV之Assertions 断言

目录SV中的断言Building blocks of SVA SV断言中的内建块SVA Sequence 和 propertyImplication operator 关联操作SVA built in methodsdisable iff and ended constructVariable delay in SVA SVA中的可变延时多时钟Mul...

2019-05-22 15:29:12 44818 10

原创 SV之随机化和约束

目录Randomization 随机化Randomization Methods 随机化方法Array Randomization 数组随机化Constraint Blocks约束块External Constraint blocks 外部约束块Constraint Inheritance约束的继承inside操作符Weighted Distribu...

2019-05-20 22:39:00 36625 7

原创 SV之class

目录class类的定义方式类的实例化和对象的创建类的构造方法newthis关键字类的静态属性和静态方法Class Assignment 类的赋值Shallow Copy 简单复制对象deep copy 深层复制Parameterised Classes 常数类Classes Inheritance 类的继承Overriding ...

2019-05-20 18:46:14 7642 5

原创 SV之task和function

目录taskfunctionArgument Passing 参数传递task任务可以包含参数声明、输入参数、输出参数、输入参数、寄存器、事件和零或多个行为语句.任务可以是static(静态的)也可以是automatic(动态的)。静态任务为所有任务调用共享相同的存储空间,动态任务为每个任务调用分配唯一的堆叠存储空间。SV允许:在静态任务中声明动态变量,也可以在动态任...

2019-05-20 14:08:08 15099 1

原创 SV之fork语句

目录fork joinfork join_anyfork join_nonewait forkdisable forkalways_comboalways_latchalways_fffork joinfork...join内部的线程都会并行执行,直至处理完内部所有线程后才会结束块语句。fork join 例子:module fork...

2019-05-20 12:57:29 4189 1

转载 数字IC设计笔试问题系列--1(50题)

1、如何将XOR门转换为buffer和inverter(仅使用一个XOR门)?2、使用2x1 MUX实现2输入AND门3、什么是多路复用器(mux)?多路复用器是一种组合电路,它从许多输入信号中选择一个作为输出;4、什么是环形振荡器?环形计数器是一种由循环移位寄存器组成的计数器。最后一个移位寄存器的输出被馈送到第一个寄存器的输入。例如,在4寄存器计数器中,初始寄存...

2019-05-20 00:28:09 24111

原创 第七章-线程以及线程间的通信

目录7.1线程的使用7.1.1使用fork...join和begin...end7.1.2使用fork...join_none来产生线程7.1.3使用fork...join_any来实现线程同步7.1.4在类中创建线程7.1.5动态线程7.1.6线程中的自动变量7.1.7等待所有的衍生线程7.1.8在线程间共享变量7.2停止线程7.2.1停止单个线程...

2019-05-19 22:31:19 1593

转载 IC前端设计工程师

IC前端设计指逻辑设计,前端主要负责逻辑实现,通常是使用verilog/VHDL之类语言,进行行为级的描述,当然,也会要使用一些仿真软件;IC后端设计指物理设计,主要负责将前端的设计变成真正的schematic&layout,流片,量产;后端设计需要的则会更加多一些了,包括综合,到P&R,以及最后的STA,这些工具里candence和synopsys都有一整套系统的。打个比喻来说,前端就...

2019-05-18 10:57:04 8928

原创 第十一章-类的高级特性

11.1java类包在java中定义好一个类,通过java编译器进行编译后,都会生成一个扩展名为.class的文件,当程序的规模逐渐扩大时,很容易发生类名冲突的现象。java中提供了一种管理类文件的机制,就是类包。11.1.1类名冲突java中的每个接口或类都来自不同的类包,无论是java API中的类与接口还是自定义的类与接口都需要隶属于某一个类包,这个类包包含了一些类和接口。如果...

2019-05-18 10:24:42 283

原创 第十章-接口、继承与多态

目录10.1类的继承10.2Object类10.3对象类型的转换10.3.1向上转型10.3.2向下转型10.4 使用instanceof操作符判断对象类型10.5 方法的重载10.6 多态10.7 抽象类与接口10.7.1抽象类10.7.2接口继承机制的使用可以复用一些定义好的类,减少重复代码的编写。多态机制的使用可以动态调整对象的调用,降低对...

2019-05-17 10:40:24 415

原创 第九章-数字处理类

目录9.1数字格式化9.2数字运算9.2.1Math类9.2.2常用数学运算方法9.3随机数9.3.1Math.random()方法9.3.2Random类9.4大数字运算9.4.1BigInteger类9.4.2BigDecimal在解决实际问题时,对数字的处理时十分普遍的,如数字问题、随机问题、商业货币问题、科学计数问题等。为了应对上述问题,jav...

2019-05-16 21:15:23 110

原创 第八章-包装类

目录8.1Integer8.2Boolean8.3Byte8.4Character8.5Double8.6Numberjava是一种面向对象的语言,通过类把方法和数据封装在一起,构成了自包含式的处理单元。但是在java中不能定义基本类型对象,为了能将基本类型视为对象处理,java为每个基本类型都提供了包装类,如int类数值的包装类Integer、boolean型数值的包...

2019-05-16 19:52:15 140

原创 第七章-类和对象

目录7.1面向对象概述7.1.1对象7.1.2类7.1.3封装7.1.4继承7.1.5多态7.2类7.2.1成员变量7.2.2成员方法7.2.3权限修饰符7.2.4局部变量7.2.5局部变量的有效范围7.2.6 this关键字7.3类的构造方法7.4静态变量、常量和方法7.5类的主方法7.6对象7.6.1对象的创建7....

2019-05-16 11:25:58 312

转载 一些时序题计算

已知:输入延时:T(in_delay)=1nsInverter的延时:T(inv_max)=1ns T(inv_min)=0.5nsBuffer的延时:T(buf_max)=2ns T(buf_min)=1nsNAND2的延时:T(nan_max)=1.8ns T(nan_min)=0.9nsNOR2的延时:T(nor_max)=2ns T(nor_min)=1ns...

2019-05-15 16:26:07 1555

原创 第六章-数组

目录6.1数组概述6.2一维数组的创建和使用6.2.1创建一维数组6.2.2初始化一维数组6.2.3使用一维数组6.3二维数组的创建和使用6.3.1二维数组的创建6.3.2二维数组初始化6.3.3使用二维数组6.4数组的基本操作6.4.1遍历数组6.4.2填充替换数组元素6.4.3对数组进行排序6.4.4复制数组6.4.5数组查询...

2019-05-15 09:50:04 299

原创 第五章-字符串

目录5.1String类5.1.1声明字符串5.1.2创建字符串5.2连接字符串5.2.1连接多个字符串5.2.2连接其他类型数据5.3获取字符串信息5.3.1获取字符串长度5.3.2字符串查找5.3.3获取指定索引位置的字符5.4字符串操作5.4.1获取子字符串5.4.2去除字符串中的空格5.4.3字符串替换5.4.4判断字符串...

2019-05-14 17:17:20 270

原创 第四章-流程控制

目录4.1复合语句4.2条件语句4.2.1if条件语句4.2.2switch多分支语句4.3循环语句4.3.1while循环语句4.3.2 do...while循环语句4.3.3for循环语句4.4循环控制4.4.1break4.4.2continue语句4.1复合语句java语言的复合语句是以整个块区为单位的语句,又称块语句。复合语句包含在...

2019-05-14 00:09:11 276

原创 第三章-JAVA语言基础

目录3.1 java主类结构3.1.1包声明3.1.2全局变量和局部变量3.1.3主方法3.1.4导入API类库3.2 基本数据类型3.2.1整数类型3.2.2浮点类型3.2.3字符型3.2.4布尔类型3.3变量与常量3.3.1标识符与关键字3.3.2声明变量3.3.3声明常量3.3.4变量的有效范围3.4运算符3.4.1赋值...

2019-05-13 22:04:48 306

转载 AMBA总线协议AHB、APB、AXI对比分析

一、AMBA概述 AMBA (Advanced Microcontroller Bus Architecture) 高级微处理器总线架构定义了高性能嵌入式微控制器的通信标准,可以将RISC处理器(精简指令集处理器)集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件;它不是芯片与外设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。比如X...

2019-05-13 11:26:10 3118

转载 一文看懂arm架构和x86架构有什么区别

本文主要介绍的是arm架构和x86架构的区别,首先介绍了ARM架构图,其次介绍了x86架构图,最后从性能、扩展能力、操作系统的兼容性、软件开发的方便性及可使用工具的多样性及功耗这五个方面详细的对比了arm架构和x86架构的区别,具体的跟随小编一起来了解一下.什么叫arm架构ARM架构过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachin...

2019-05-11 20:28:30 172776 10

原创 第六章-随机化

目录6.1介绍6.2什么需要随机化6.2.1器件配置6.2.2环境配置6.2.3原始输入数据6.2.4封装后的输入数据6.2.5协议异常、错误(error)和违规(violation)6.2.6延时6.3SV中的随机化6.3.1带有随机变量的简单类6.3.2检查随机化(randomise)的结果6.3.3约束求解6.3.4什么可以被随...

2019-05-08 20:46:01 5880 1

原创 第四章-连接设计和测试平台

验证一个设计需要经过几个步骤:生成输入激励、捕获输出响应、决定对错和衡量进度。但是首先你需要一个合适的测试平台,将它连接到设计上,如下图:测试平台包裹着设计,发送激励并且捕获设计的输出。测试平台组成了设计周围的“真实世界”,模仿设计的整个运行环境。由于verilog的端口描述繁琐,代码常会长达数页,并且容易产生连接错误,所以测试平台需要一种更高层次的方法来跟设计建立通信。你需要一种可靠的描...

2019-05-05 21:02:25 2573 1

原创 第五章-面向对象编程基础

目录5.1概述5.2考虑名词而非动词5.3编写第一个类(class)5.4在哪里定义类5.5OOP术语5.6创建新对象5.6.1没有消息就是好消息5.6.2定制构造函数5.6.3将声明和创建分开5.6.4new( )和new[ ]的区别5.6.5为对象创建一个句柄5.7对象的解除分配5.8使用对象5.9静态变量和全局变量5.9.1简...

2019-05-03 20:40:22 1361 1

原创 第三章-过程语句和子程序

目录3.1过程语句3.2任务、函数和void函数3.3任务和函数概述3.3.1在子程序中去掉begin...end3.4子程序参数3.4.1C语言风格的子程序参数3.4.2参数的方向3.4.3高级的参数类型3.4.4参数的缺省值3.4.5采用名字进行参数传递3.4.6常见的代码错误3.5子程序的返回3.5.1返回语句return​3.5....

2019-05-01 20:14:29 1144

原创 verilog中的任务、函数

目录1.任务1.1任务的定义1.2任务的调用2.函数2.1函数的定义2.2函数的调用2.3常数函数3.系统函数和系统任务3.1显示任务3.1.1显示和写任务(display and write)3.1.2选通任务strobe3.1.3 监控任务monitor3.2文件输入输出任务3.2.1文件的打开和关闭3.2.2输出到...

2019-05-01 15:30:21 6695 3

verilog新手入门资料

主要分为三个模块,verilog建模,时序,整合篇。FPGA 的逻辑资源,好比乐高 的积木,要组合乐高就是需要工具,那 Verilog HDL 就是 FPGA 建模的工具。

2017-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除