自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 问答 (11)
  • 收藏
  • 关注

原创 关于vim编写makefile报错【Makefile:16 ***recope commences before first target。 停止】问题解决

【Makefile:16 ***recope commences before first target。 停止】

2022-08-29 10:34:06 341 1

原创 UVM项目实战3

UVM项目实战3。

2022-07-19 17:31:19 1451

原创 UVM项目实战1(实验1)

UVM项目实战1。

2022-07-19 15:31:15 763

原创 UVM项目实战(1)

UVM项目实战11.MCDF的设计更新slave node的接口发生变化registers的接口发生变化formatter的接口发生变化2.slave node的接口:DATA(31:0):通道数据输入DATA_PARITY:data数据的奇偶校验位VALID:数据有效标志信号WAIT:暂停接收PARITY_ERR:slave node侧发现数据或数据校验位出错接收从上行发来的数据(32bit的data和1bit的奇偶校验位)数据能否被接收的三个条件:数据是否有效(VALID);内部FI

2022-07-04 17:29:51 1062

原创 UVM学习笔记(9)

UVM入门和进阶部分9、101.寄存器是模块之间相互交谈的窗口:通过读出寄存器的状态,获取硬件当前的状况;通过配置寄存器,使得寄存器工作在一定的模式下2.将单个寄存器拆分之后,又可以分为多个域,不同的域往往代表某一项独立的功能,单个域可能由多个/单一比特位构成4.MCDF寄存器模型5.寄存器建模的基本要点和顺序:定义单个寄存器时,需要将各个域整理并创建,创建之后通过uvm_reg_field::configure()函数来进一步配置各自属性;uvm_reg_block可以用来模拟一个功能模块的寄存

2022-06-16 16:36:15 585

原创 UVM学习笔记(8)

UVM入门和进阶部分81.将sequence挂载到sequencer上:uvm_sequence::start(uvm_sequencer_base sequencer,uvm_sequence_base parent_sequence=null,int this_priority=-1,bit call_pre_post=1)用户首先应该指明sequencer的句柄,如果sequence是顶层sequence,则可以省略第二个参数parent_sequence的指定;第三个参数的默认值为-1,会使得

2022-06-10 17:29:52 712

原创 UVM学习笔记(7)

UVM入门和进阶部分7.2.uvm_sequence_item和uvm_sequence都是基于uvm_object;uvm_sequencer和driver都是基于uvm_component3.如果sequence一旦活动起来,它必须挂载到一个sequencer上,这样sequence可以依赖sequencer的结构关系,间接通过sequencer来获取顶层的配置和更多信息4.sequencer作为一个组件,它可以通过TLM端口与driver传送至item对象sequencer在面向多个并行seque

2022-06-09 09:41:32 382

原创 UVM学习笔记(6)

UVM入门和进阶部分61.TLM2.0是SystemC模型之间的核心传输方式:双向的阻塞或者非阻塞接口、时间标记、统一的数据包2.TLM2.0支持blocking和nonblocking两种transport方式:blocking的传输方式要求在一次传输过程中,完成request和response的传输nonblocking的传输方式则将request和reponse的传输分为了两个独立的单向传输,而两次传输整体视为完成一次握手传输3.两种传输方式对应的UVM方法如下:4.UVM将TLM2.0端口类型

2022-06-07 17:03:48 625

原创 UVM学习笔记(5)

学习目标UVM入门和进阶部分5学习内容学习问题

2022-06-02 10:38:22 587

原创 UVM学习笔记(4)

学习目标UVM入门和进阶部分4学习内容1.uvm_top是uvm_root类的唯一实例,它由UVM创建和管理、它所在的域为uvm_pkg2.uvm_top是所有test组件的顶层所有验证环境中的组件在创建时都需要指明它的父一级如果某些组件在创建时指定父一级的参数为null,则它直接隶属于uvm_top(不推荐)3.“test”类是用户自定义类的顶层结构所有的test类都应该继承于uvm_test,否则,uvm_top将不识别,无法启动test4.test的目标包括:提供不同的配置,包括环

2022-05-27 11:24:13 383

原创 UVM学习笔记(3)

学习目标UVM实验0、实验1学习内容学习问题

2022-05-25 10:42:49 516

原创 UVM学习笔记(2)

学习目标UVM入门和进阶部分2学习内容学习问题

2022-05-12 11:29:22 646

原创 UVM学习笔记(1)

学习目标:SV绿皮书第六章:随机化学习内容:问题:

2022-05-11 15:13:03 819 1

原创 SV学习笔记(20)

学习目标:SV实验45学习内容:1.实验4仲裁器(arbiter):可以选择从不同的FIFO中读取数据,进而将数据进一步传送至整形器整形器(formatter):将数据按照一定的接口时序送出至下行接收端控制寄存器(control reg):专用的寄存器读写接口,负责接收命令并且对MCDF的功能做出修改chnl_pkg跟实验3一致,chnl_driver即为chnl_initiator//chnl_agent的构造函数 function new(string name = "ch

2022-05-07 16:57:25 522

原创 SV学习笔记(19)

学习目标:SV实验1-5整理学习内容:问题:学习时间:4/27晚:19.30-22

2022-04-29 17:27:08 1219

原创 SV学习笔记(18)

学习目标:SV面向对象编程的高级技巧学习内容:问题:学习时间:早:9-11.30中:15-17

2022-04-27 17:15:49 242

原创 SV学习笔记(17)

学习目标:SV绿皮书第九章:功能覆盖率学习内容:1.覆盖率是衡量设计验证完备性的一个通用词语2.覆盖率类型:代码覆盖率、断言覆盖率、漏洞率曲线、功能覆盖率3.代码覆盖率:行覆盖率、路径覆盖率、翻转覆盖率、状态机覆盖率仿真器都带有代码覆盖率的工具,当运行完所有测试,代码覆盖率工具便会创建相应的数据库,覆盖率数据也可被转换为可读格式4.代码覆盖率最终的结果是用于衡量你执行了设计中的多少代码,到达100%并不代表验证工作完成5.断言覆盖率需要自己定义,断言最常用于查找错误6.漏洞率曲线,每次漏洞

2022-04-22 17:07:24 1152

原创 SV学习笔记(16)

学习目标:SV实验3 4学习内容:1.2.3.4.问题:学习时间:早:9-11.30中:15-17晚:20-22

2022-04-22 09:45:34 141

原创 SV学习笔记(15)

学习目标:SV绿皮书第八章:面向对象编程的高级技巧指南学习内容:1.继承允许从一个现存的类得到一个新的类,并共享其变量和子程序。原始类被称为基类或者超类,而新类因为它扩展了基类的功能,被称为扩展类。2.扩展类调用基类函数—super.函数(注意:不能多层调用)3.应该将类中的子程序定义为虚拟的(virtual),这样就能在扩展类中重定义,这一点适用于所有任务和函数(除了new函数,SV始终基于句柄类型来调用new函数)4.如果你的基类构造函数带有参数,那么扩展类必须有一个构造函数而且必须在其构造

2022-04-20 22:01:33 1056

原创 SV学习笔记(14)

学习目标:SV绿皮书第七章:线程以及线程间的通信学习内容:1.线程中的自动变量initial begin for(int j=0;j<3;j++) fork automatic int k=j; //创建索引的拷贝 $write(k); //打印拷贝值 join_none #0 $display;end问题:学习时间:下:15-17...

2022-04-16 10:54:44 583 2

原创 SV学习笔记(13)

学习目标:实验1SV绿皮书第四章:连接设计和测试平台第五章:面向对象编程基础学习内容:initial begin #10 rstn<=0; repeat(10) @(posedge clk); rstn<=1;end第10个时钟上升沿变为1(实际只延迟9个半时钟周期,非延迟10个时钟周期)initial begin @(posedge rstn); repeat(5) @(posedge clk);从rstn上升沿开始算起,第5个时钟上升沿变(实际延迟5个时

2022-04-14 22:12:44 833

原创 SV学习笔记(12)

学习目标:SV绿皮书第六章:随机化学习内容:1.数组大小约束class dyn_size; rand logic [31:0]d[]; constraint d_size {d.size() inside {[1:10];}endclass2.约束数组中元素class good_sum5; rand uint_len[]; constraint c_len{ foreach (len[i]) len[i] inside {[1:255]}; len.s

2022-04-12 10:36:44 352

原创 SV学习笔记(11)

学习目标:SV绿皮书第六章:随机化学习内容:1.SV的约束是双向的,它会同时计算所有的随机变量的约束增加或者删除任一变量的约束都会直接或者间接影响所有相关变量的值的选取2.高效地使用位提取的约束rand bit [31:0]addr; constraint near_page_boundry{ addr[11:0] inside {[0:20],[4075:4095]}; }3.关系操作和双向约束class Imp2; rand bit x; //0或1 r

2022-04-01 16:00:32 1835

原创 SV学习笔记(10)

学习目标:SV绿皮书第六章:随机化学习内容:1.在一个约束表达式中最多只能使用一个关系操作符(<、<=、==、>=、>)不正确的排序约束class order; rand bit [7:0]lo,med,hi; constraint bad{lo<med<hi}; //错误endclass首先计算表达式(lo<med),它的结果为0或者1,所以lo和med虽然随机化了,但没有受约束2.随机集合约束可以取反constraint c_ra

2022-03-31 10:37:37 1028

原创 SV学习笔记(9)

学习目标:SV绿皮书第六章:随机化学习内容:问题:学习时间:

2022-03-28 22:02:55 1618

原创 SV学习笔记(8)

学习目标:实验2SV绿皮书第六章:随机化学习内容:问题:学习时间:

2022-03-26 17:30:26 515

原创 SV学习笔记(7)

学习目标:实验2SV绿皮书第六章:随机化学习内容:1.实验012代码整理测试文件tb1'timescale 1ns/1psmodule tb1;reg clk;reg rstn;reg [31:0]ch0_data;reg ch0_valid; //数据有效标志信号wire ch0_ready; //为高可以写入wire [4:0]ch0_margin; //reg [31:0]ch1_data;reg ch1_valid;wire ch1_ready;

2022-03-25 17:09:57 698

原创 SV学习笔记(6)

学习目标:SV绿皮书第五章:面向对象编程基础学习内容:1.简单的静态变量class Transaction; static int count=0; //已创建的对象的数目 int id; //实例的唯一标志 function new(); id=count++; //设置标志,count递增 endfunctionendclassTransaction t1,t2;initial begin t1=new(); t2=new(); $dis

2022-03-23 21:39:32 605

原创 SV学习笔记(4)

学习目标:SV绿皮书第四章:连接设计和测试平台学习内容:1.使用始终块来控制同步信号的时序带时钟块的接口interface arb_if (input bit clk); logic [1:0]grant,request; logic rst; clocking cb @(posedge clk); //声明cb output request; input grant; endclocking modport TEST(clocking cb, //使用cb

2022-03-21 21:23:10 746

原创 SV学习笔记(3)

学习目标:SV绿皮书第四章:连接设计和测试平台学习内容:1.测试平台:各个组件、组件之间的连接关系、测试平台的配置和控制、编译仿真流程、结果分析报告、覆盖率检查2.组件:激励发生器(stimulator/driver/BFM/behavioral/generator)、监测器(monitor)、比较器(checker)激励发生器(initiator发起器+responder响应器):模拟与DUT相邻设计的接口协议监测器:观察DUT的边界或者内部信号,并且经过打包整理传送给其他验证平台的组件内部

2022-03-19 16:43:12 476

原创 SV学习笔记(2)

学习目标:SV绿皮书第三章:过程语句和子程序学习内容:1.函数和任务任务可以消耗时间而函数不能verilog中函数必须有返回值且返回值必须被使用,函数不能调用任务SV中,允许函数调用任务,但只能由fork…join_none语句生成的线程调用不消耗时间的SV任务应该把它定义为void函数(没有返回值),这样方便其被调用2.ref参数只有数据变量可以在形参列表中被声明为ref类型,而线网类型则不能被声明为ref类型ref参数只能被用于带自动存储的子程序中,automatic如果想保护数据

2022-03-18 16:19:49 1691

原创 SV学习笔记(1)

学习目标:SV绿皮书第二章:数据类型学习内容:1.logic 不能有多个结构性驱动2.四值逻辑类型二值逻辑类型integer、logic、reg、net-type(wire、tri)byte、shortint、int、longint、bit有符号无符号byte、shortint、int、longint、integerbit、logic、reg、net-type(wire、tri)byte a=8'b1000_0000;bit [8:0

2022-03-17 21:55:37 2579

LABVIEW上机训练练习

LABVIEW自动售货机程序代码上机训练

2019-04-08

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

TA关注的人

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