自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 问答 (2)
  • 收藏
  • 关注

原创 inout信号的连接

UVM::sim_top中inout信号的连接

2023-01-12 21:57:35 627

原创 Gvim使用技巧

各种工具::Gvim

2023-01-12 21:18:10 1295

原创 Systemverilog中static、automatic区别

systemverilog::static、automatic说明

2023-01-01 22:23:00 3264

原创 组合电路、触发器、时序电路、寄存器

verilog::组合电路、触发器、时序电路、触发器基本概念梳理

2022-12-05 22:06:25 1032

原创 竞争-冒险(毛刺)、同步设计和异步设计(亚稳态)

verilog::竞争-冒险(毛刺)、同步设计和异步设计(亚稳态)的基础概念

2022-10-30 13:07:56 906

原创 复位方式、时钟复位流程

verilog::复位方式、时钟复位流程

2022-10-26 21:32:46 2461

原创 067~072 线程简介

线程的使用、线程的控制、线程间的通信1~3(event、semaphore、mailbox)

2022-05-17 22:14:33 259

原创 065~066 UVM简介

UVM简介、UVM组件和环境

2022-05-17 21:51:51 350

原创 Shell与Bash介绍

Linux图形化桌面算不上精美。幸好,Linux提供了更好的与树莓派互动的方式:Shell。1、Shell和Bash:hell是运行在终端中的文本互动程序;bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。即:shell是总称,bash是shell的一个版本。2、原理:Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执

2022-04-30 10:24:07 3009

原创 060~064 验证的方法1~5

验证方法介绍一二

2022-04-28 21:43:57 325

原创 046-验证的收敛、047-问题追踪、048-团队建设、049-验证的专业化

1、回归效率的提升:将一个长的测试tc切分为多个相对短的测试tc,这么做的好处是避免过于冗长复杂的测试,划分为多个tc可以实现并行提交测试,用计算机资源来节省时间;对于一些较难切分测试向量的场景(芯片及仿真中经常会遇到),我们可以考虑快速跳转到特定状态来实现缩短测试时间的要求(意思就是如果仿真刚开始三分之一时间做相同事情,那我们可以提前将前三分之一的结果保存下来,下次直接访问这个结果然后从三分之一之后的地方开始执行,这样回节省三分之一的事件,好像vcs是支持这种使用方式的);对于第二点,三分之一

2022-04-26 21:14:40 208

原创 44-验证的周期、45-验证管理的三要素

1、时间管理之早行动:早开始,提前计划,尽早开展项目的开始;2、时间管理之少依赖:所有的工作需要并行化,例:不能因为dsp模块(dsp之类的处理器一般比较难)没有开发好或者集成好,而阻塞别的模块,所以这时候需要搞一个dsp模块的bb模块(一般使用sv、uvm),这样就不会阻塞别的模块进度;3、时间管理之大局观:每个验证人员不仅要关注自己负责模块验证进度,同时还要清楚共同的关键节点,以及各个模块之间的依赖性;意思就是不仅要关注自己的节点,同时也要关注项目总体的节点;4、人力资源安排之团队建设:比如

2022-04-25 21:07:25 344

原创 40-包的使用

1、包:package,常规模式下我们将不同模块的“类定义”归整到不同的package中;但是package中不能定义硬件相关的模块;package就是一个大盒子,不用进行实例化,直接使用即可;如下,我们将定义的各个组件分别封装在不同的package中:2、`include:纯文本的替换,就是将include的文件平铺到当前文件;import:表示将package中定义的类导入到其他的class或者模块中,如下如果regs_mon不在当前域中定义,会搜寻regs_pkg中定义的类,...

2022-04-16 10:42:50 119

原创 38-类的继承、39-句柄的使用

1、类的继承:包括了继承父类的成员变量和成员方法;2、如果没有使用spure.new():只是说明了没调用父类new函数中初始化的内容,但是父类中的成员变量、方法的空间都是已经开辟好的;或者父类的new函数没有参数.....(如下截图)3、初始化顺序如下,3th中说的剩余的初始化代码见下图2中def的初始化4、子类中出现和父类中相同的成员变量:如下图,其实在t=wr之后,t是父类和子类所有空间的一个句柄,但是它只能访问父类中的def;wr.super.def=10...

2022-04-16 10:38:35 253

原创 37-类的成员

1、class的单一职责原则:即一个class应该尽可能简单,不应当承当过多的职责,更不应该承担不符合它的职责;2、class的开放封闭原则:protected、local3、如果class没有指明访问类型,那么sv中默认类中成员类型是公共的,子类和外部均可以访问成员;local:只有该类可以访问成员,子类和外部均无法访问;protected:该类或者子类可以访问成员,而外部无法访问;4、class与struct异同:二者本身都可以定义数据成员; class变量在声明之后,需要ne

2022-04-16 10:14:26 85

原创 35-类和对象的概念1、36-类和对象的概念2

1、类是将相同的个体抽象出来的描述方式;对象是类的实例。2、类:成员变量和成员方法的集合。3、类的三要素:封装、继承、多态。4、验证为什么需要opp:验证环境的不同组件其功能和所需要处理的数据内容是不相同的;不同环境的同一类型的组件其所具备的功能和数据内容是相似的;基于上两点,验证的各个组件角色明确、功能分立,使用opp合乎情理。5、class、module区别:........6、handle句柄:本质是用来指向对象的指针,sv中索引对象或对象内的成员变量和方法时,需要通过句柄方式来索

2022-04-16 10:01:41 90

原创 Apb总线

APB总线协议 - 简书

2022-02-09 17:21:26 3894

原创 Verilog中常见文件操作($readmemb,$fopen,$fwrite,$fclose)

$readmemb和$readmemh用来从文件中读取数据到存储器中。其中readmemb要求每个数字是二进制数,readmemh要求每个数字必须是十六进制数字。数字中不定值x或X,高阻值z或Z,和下划线(_)的使用方法和代表意义与一般Verilog HDL程序中的用法一致。在Verilog语法中,一共有以下六种用法:(1)$readmemb("<数据文件名>",<存储器名>); (2)$readmemb("<数据文件名>",<存储器名>,&

2022-02-07 16:45:24 3023

原创 I2C协议

I2C协议讲解视频:​​​​​​【韦东山】嵌入式Linux教程_韦东山手把手教你嵌入式Linux快速入门到精通_哔哩哔哩_bilibili1、只有两根线,跟别为:SDA、SCL;2、方向:0表示写、1表示读;3、...

2022-02-07 15:11:09 631

原创 【5】冒烟测试-Smoke Test

smoke test概念介绍。

2022-01-26 10:54:52 911

原创 同步复位、异步复位、同步释放

同步复位、异步复位:同步复位与异步复位的区别 - 格桑花FPGA - 博客园一般来说,同步系统,都使用异步复位。这是因为同步复位的电路实现,比异步复位的电路实现,要浪费更多电路资源。同步释放:异步复位时的rst和clk是异步的,同步释放意思是rst的释放是和clk同步的,在clk的上升沿进行释放。这样可以避免电路亚稳态的输出。异步复位同步释放---关于复位的问题 - 齐威王 - 博客园...

2022-01-26 10:44:56 337

原创 initial、always和function的一些说明

2021-12-22 20:47:17 128

原创 Interface、Clocking Block、BA、NBA

systemverilog::Interface、Clocking Block、BA、NBA

2021-12-20 14:39:26 680

原创 电平、脉冲

电平即数字电路的输入输出端某一时刻电压的高低,高低电平是相对的,人为的,例如可以规定低电平为0V,相应用逻辑"0"表示,高电平为5V,相应用逻辑"1"表示。正脉冲期间为高电平,负脉冲期间为低电平。而脉冲是指电压升高(或降低)后又降低(又升高)这一周期过程,相应称为正脉冲或负脉冲,周期可以无限短(当然受电路的限制,现在也就nS级),也可无限长(几天,几年...),这一周期过程就叫一个脉冲...

2021-12-15 15:02:29 4832

原创 Verilog中wire与reg类型的区别

verilog::wire与reg类型的区别

2021-11-21 11:40:33 8830

原创 SV中关键字的释义

1、函数的形参中加入const关键字:Fun(constType& type);在引用传递的时候,在函数内部改变参数,会改变参数实际值。加上了const就不能被修改。

2021-11-19 09:47:17 1126

原创 【4】寄存器扫描方式

寄存器扫描方法介绍。

2021-11-18 16:53:58 1120 2

原创 仿真的时间单位

1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒)

2021-10-29 16:31:42 538

转载 linux下的解压命令大全

linux下解压命令大全 - eoiioe - 博客园

2021-10-29 14:19:18 103

原创 Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST

卷绕模式为burst=2的情况,包括awburst、arburst,每次进行猝发激励时会计算一个上边界地址和下边界地址(根据start_addr、number_byte、burst_len),每次猝发看地址在[下边界地址,上边界地址)之间,如果猝发地址等于上边界地址则会卷绕会下边界地址,以此类推,上下边界地址计算公式如下:下边界地址:wrapaddr=(int(addr/(number_byte*burst_len))) *(number_byte*burst_len)上边界地址:wrapaddr+(

2021-10-18 15:44:51 7203 7

原创 功能覆盖率的写法

systemverilog::功能覆盖率知识点

2021-10-13 16:53:18 1705 2

原创 【3】寄存器模型高级用法

1、预测功能(predict) 的实现有两种方式: 实现方式1,使用平台中的driver实现,打开方式是set_auto_predice(1); 实现方式2,使用uvm组件predictor来实现,需要实例化predictor组件,然后例化并连接到平台中,实现predict功能; 备注:预测功能主要是为了更新寄存器模型中的镜像值和期望值,详细解释见白皮书P251...

2021-10-13 16:47:44 233

原创 【2】UVM中的ASIC、DFT网表仿真

验证中ASIC、DFT网表仿真说明。

2021-10-13 11:34:26 776

原创 uvm寄存器模型高级用法笔记

1、预测功能(predict) 的实现有两种方式: 实现方式1,使用平台中的driver实现,打开方式是set_auto_predice(1); 实现方式2,使用uvm组件predictor来实现,需要实例化predictor组件,然后例化并连接到平台中,实现predict功能; 备注:预测功能主要是为了更新寄存器模型中的镜像值和期望值,详细解释见白皮书P251...

2021-09-16 09:41:10 290

原创 uvm中的覆盖率分析笔记

1、收集覆盖率可以使用vcs、ius两种工具,vcs对应的覆盖率分析工具是dve,ius对应的覆盖率分析工具是imc;dve的打开方式是;dve -full64 ./simv.vdb/ &其中vdb文件是跑出来的覆盖率收集结果文件

2021-08-26 10:12:44 2192

原创 sv中case语句多个条件执行一个语句

case(A) 0:begin ....... end 1: 2: 3:begin ....... end 4:begin ....... endendcase 如上,条件0、4执行对应的程序内容,条件1、2、3执行相同的程序内容。...

2021-08-11 10:04:39 5054

原创 【99】小技巧

verify work中遇见的一些小技巧。

2021-08-10 15:00:13 601

原创 sv中的随机化

assert (std::randomize(read_tr_max_num) with {read_tr_max_num inside {[1:sequental_tr_max_num]};} );这句的意思是read_tr_max_num的取址范围是 [1:sequental_tr_max_num];std::这个是个类库引用,randomize是它提供的一个function

2021-08-06 09:12:17 1121

原创 for循环的退出、while中的continue和break

退出本次循环,但还要开始下次for循环用 continue;彻底退出for循环用 break;

2021-07-30 10:51:17 2973

原创 【6】class的简单梳理

1、结构体和类的关系(简单说明):结构体:简单地将不同类型的几个数据放在一起,使得它们的集合体具有某种特定的意思(只包含结构体变量);与结构体相对应的是一些函数操作。对于这些函数,如果没有这些定义的结构体变量,它们就无法使用;对于结构体变量来说,如果没有这些函数,那么结构体也没有任何意义。class:由于结构体和函数的关系如此紧密,所以面向对象的开创者们开创了class的概念;class将结构体和它相应的函数集合在一起,成为一种新的数据组织性质。2、类的三大特征:封装、集成、多态。封装:自.

2021-07-11 20:42:34 507

空空如也

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

TA关注的人

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