自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Future Chaser的博客

温故知新

  • 博客(33)
  • 收藏
  • 关注

原创 uvm寄存器模型

寄存器模型中的,适配器,提供了reg2bus和bus2reg的接口,充当uvm_reg_map(寄存器信息)和uvm_sequencer中的转换器。uvm_reg_map操作uvm_reg_bus_op类型的item,而uvm_sequencer操作uvm_sequence_item类型的item。

2024-11-01 16:08:24 36

原创 UVM仿真的运行(四)—— objection 机制

前面介绍了uvm仿真的启动,按照domain中指定的DAG的phase node 顺序执行各个组件的phase。在执行run_phase node的Executing 状态时,以fork...join_none的方式在后台调用run_phase imp的traverse方法去并行执行各个component的run_phase方法,同时会等待task运行结束。结束有三种方式: JUMP,等待所有objection撤销,和超时。

2024-09-16 19:12:52 96

原创 UVM仿真的启动(三)—— execute_phase()

execute_phase的详细内容,根据图结构中的phase顺序执行,phase node的状态跟随特定事件进行变更,并执行相应的内容。比如,执行某个节点的imp对应的父类的traverse方法,调用其中execute,再执行imp的exec_func。traverse中递归component中分为topdown,bottomup两种形式,task的execute是通过fork join_none进行,所以执行run_phase的component不分先后。

2024-08-29 13:49:34 70

原创 UVM仿真的启动(二)—— uvm_phase::m_run_phase()

否则,如果添加的phase 是UVM_PHASE_SCHEDULE或UVM_PHASE_DOMAIN,即添加一个已经创建的phase schedule node,则begin_node设置为当前要添加的phase,end_node设置为添加phase的m_end_node,要添加的phase的parent设置为当前调用的phase(如果是在uvm_domain中添加uvm_schedule,则设置为uvm_domain;在uvm_root创建的时候,就已经创建了m_common_domain实例。

2024-08-29 13:48:41 75

原创 UVM仿真的启动(一)—— run_test()

我们都知道uvm环境是通过在tb顶层调用run_test方法来启动的,但它具体完成了什么呢?怎么样启动整个环境的呢?本专题则是围绕这两点学习源码,主要是m_run_phase方法,该方法按照设定的phase节点顺序调用了各个组件的phase。本文主要介绍run_test。

2024-08-29 13:47:53 156

原创 浅探UVM冰山一角

uvm中,仿真的结束主要依赖于uvm_phase中 一个 uvm_objection类型的 test_done 实例,通过它来raise_objection,以及drop_objection,这些方法具体做了什么。在每次创建一个component的时候, 我们都会定义 build_phase, connect_phase,run_phase...这些是怎么被调用起来的?uvm_event:在分离的object,component中可以共享同一个uvm_event/barrier,实现object间的同步。

2024-08-24 21:16:52 51

原创 UVM同步通信2 - uvm_callback详解

uvm_callback源码 分析

2024-08-18 15:32:14 167

原创 UVM同步通信 - sv event, uvm_event, uvm_barrier详解

systemverilog中介绍了semapahore,event和mailbox,以进行线程间的通信,而它们的实例需要同处一个对象中。而在uvm中,涉及多个组件,组件间的同步线程不再只局限于在同一个对象中。hierarchy name索引的方式与tb间的耦合极为紧密,为将来环境变动,环境复用带来很大的麻烦。为此,uvm定义了uvm_event和uvm_barrier来解决此问题。

2024-08-11 17:31:41 218

原创 AXI握手 handshake process

明确概念:Master与Slave之间的握手信号valid和ready起于Source端和Destination端。当D端检测到有拉高的Valid信号时,当D端空闲,可以接受数据时,即拉高Ready。S和D端在相同的周期内分别拉高Valid和Ready,可以立即传输。复位初始状态,可以保持ready一直置1,当检测到S端的Valid 高电平信号,开始传输数据。Write : Data信息可以出现在相应的Address信息之前,或相同周期。单箭头表示信号的发出可以发生在指向的信号的之前或之后。

2023-04-18 17:16:17 685

原创 四值信号,包含x z的与或、逻辑与或,&、&&区别;队列的即时更改

&、|| 是逻辑与或,两边以真假判定,非0为真。在四值信号中,x和z 会被认为是x,与0或是x,与1与是x。&、| 是按位与或。

2022-09-10 14:03:45 423

原创 sv 继承的同名constraint会覆盖

SV 约束

2022-09-04 20:25:05 497

原创 perl - grep map stat的用法

上面一行代码即得到 500 个奇数。它是怎样工作的呢?grep 第一个参数是一个块,其中$_依次为列表中的每一个值,返回 一个Boolean(true/false)值。剩下的参数是相应的列表。grep 会首先计算表达式的值,这和 foreach 循环一致。如果块中最后 一个表达式的返回值为 true,则这个元素会被返回。当 grep 运行时,$_会被设为列表中的值,一个接一个。

2022-08-20 15:34:24 212

原创 AXI 总线

目录 综述AXI通道简述综述读地址与写地址通道读数据通道写数据通道写响应通道AXI互联结构AXI中使用寄存器切片AXI术语AXI组件与拓扑AXI传输与存储器类型AXI信号描述公共信号写地址通道信号写数据通道信号写响应通道信号读地址通道信号读数据通道信号低功耗接口信号单接口需求时钟复位基本读写事务握手过程通道信号需求写地址通道:写数据通道:写响应通道:读地址通道:读数据通道:通道间的关系通道握手信号依赖关系读传输依赖写传输依赖:AXI4写响应依赖事务结构地址结构 突发长度: 突发大

2022-08-11 13:55:34 2128

原创 抽空从零开始写简略的AXI-VIP

AXI VIP

2022-08-10 00:04:05 170

原创 C 数组与指针

c语言

2022-08-05 11:59:52 127

原创 寄存器模型后门访问

在uvm_reg_。block中添加 dut 中寄存器(表现为寄存器的值,不一定是v中mem的形式寄存器后门访问阻塞:如果同一个地址寄存器的访问sequence排队或者进行时,此时后门访问会阻塞至该地址空闲。

2022-07-31 23:43:42 1564

转载 AXI 总线问答

只有在burst传输的最后一拍才能拉高WLAST,在burst传输的中间拉高WLAST是违反协议的行为。VALID/READY握手机制只允许一个方向的数据流,所以对于读事务,数据(data和resp)从slave流向master,而对于写事务,数据从master流向slave,所以就需要单独的响应通道。所有的AXI信道只在1个方向传递信息,所以才需要一个单独的写响应通道。AR总线和AW总线是独立的,不管读写请求的地址是否顺序发出的,响应的数据都可能是无序的,他们之间是通过awid和arid对应配对的。...

2022-07-17 17:42:46 1872

原创 uvm_config_db::set一次能get多次吗?

uvm_config_db::set一次能get多次吗?在顶层test创建c1和c2组件,test中set到c1一次int变量,c1任务get两次。可以看到c1get的两次都成功了。

2022-07-17 16:44:46 807

原创 SV 循环里的fork...join_none 解析

strobe命令会在当前时间部结束时完成;而$display是只要仿真器看到就会立即执行。$monitor用于持续监测指定变量,只要这些变量发生了变化,就会立即显示对应的输出语句。#0时延阻塞了当前线程,并且把它重新调度到当前时间片后启动。fork...join_none的执行时间。......

2022-07-17 12:42:34 4202

转载 [转]AHB APB 总线问答

它们两者的不同在于SPLIT响应告诉仲裁器可以将总线使用优先级交给所有其他主设备直到SPLIT传输可以结束(实际上是忽略该主设备以后所有的传输请求直到发出SPLIT的那个从设备表示它可以完成SPLIT传输),而RETRY响应仅仅告诉仲裁器将总线使用权交给最高优先级的主设备。虚拟主设备只进行IDLE传输,这在锁定传输中式允许的,如果将总线分配给其它任何主设备都将违背锁定传输协议,如果仲裁器忽略SPLIT相同将违背SPLIT协议,所以虚拟主设备是唯一的选择。对于另一些从设备,存在多项选择。.........

2022-07-17 10:45:04 6772

原创 ---IC---

目录#include和#< >的区别?vlitate关键词开辟空间在哪个阶段?.C语言的vilotate关键词的特点?ref和inout的区别?ref的优点和缺点?run_test(string name):传进去的是字符串,他是如何进行创建的呢?1-100素数、1-10000找6、100MHZ时钟发生器、100MHZ的时钟抖动发生器,上升沿时刻中断的概念?中断的应用场景?中断的向量地址?异步FIFO和同步器的使用场合?脉冲同步器的介绍,展宽电路的时钟是哪个?前仿真可以检查亚稳态的问题吗?综合的输出有SDF

2022-07-10 22:51:50 462

原创 perl 脚本跑回归测试【IC】

参考狗蛋大佬。目录1.脚本文件说明2.命令行传参 use Getopt::Long3.case : 跑case。脚本: 3.1 生成编译命令 3.2 生成仿真命令 3.3 生成终端命令 3.4 运行更新中,写完,放代码。 包含vcs 的编译和仿真命令。...............

2022-07-05 22:24:02 2283 1

原创 SV 小练习(找质数、找包含特定数字的数)

目录使用sv,对一个1000以内的数做判定:如果包含数字6,则输出。使用sv,打印1-100的所有质数。

2022-07-04 20:44:25 485

原创 AMBA

目录1 .APB1.1 APB3.0Mapping of Pslverr2.AHB(2.0 转自某兴)传送状态HTRANS BUSY传送AHB对传送范围规定不能超过1KB,防止越界。从机大小至少为1KB。地址译码From AXI to APB:APB 错误映射回 RRESP/BRESP = SLVERR。 这是通过将 PSLVERR 映射到用于读取的 AXI 信号 RRESP[1] 和用于写 入的 BRESP[1] 来实现的。From AHB to APB:对于读取和写入,PSLVERR 映射回 HRES

2022-07-03 15:41:55 496

原创 UVM 碎记

domainsequencer的仲裁机制

2022-07-02 17:33:24 496

原创 SV 断言,使用if的注意事项

在property 或者 sequence 中,进入if语句时,如果使用了局部变量,在编译命令要加入-assert svaext 选项,否则出现如下错误。if 的分支语句 不能加分号。

2022-06-27 20:58:54 1701

原创 AHB2APB Bridge

1.连续读写的问题:按照之前ahb_mst_driver的写法,发送一个single的写操作后,再发送一个single的读操作会有以下问题。在ahb_mst_driver 拿到第二个req,即开始第一个transcation的data 传输时,hwrite会同时拉低,无法保证apb传输时pwrite稳定。修改driver,与上一个transaction的读写比较,不同的话 ,当等待hready拉高,开始传输:monitor中,当data phase完成时,才对hwrite信号采样。AHB协议中应该有规定,H

2022-06-08 23:36:59 2929 5

原创 SyestemVerilog Assertion

提示:文章写完后,目录可以自动生成,如何生成可目录1 Assertion介绍1.1 类型划分1.2 并行断言的执行阶段1.3 assertion property sequence1.4 蕴含Implication操作符1.4.1 |-> 交叠交错符号:1.4.2 |=> 是非交叠蕴含操作符2 Sequence定义2.1 基本操作符号参考右边的帮助文档1 Assertion介绍断言是设计的属性的描述。如果一个在模拟....

2022-05-29 23:20:33 735

原创 异步FIFO的UVM验证(VCS+Verdi 附源代码)

异步FIFO的UVM 验证环境,详细介绍,结合波形,更好理解异步fifo的工作过程。VCS+verdi Makefile 附代码,包含覆盖率收集目录1.DUT 设计2.UVM 验证2.1 环境搭建2.2 功能仿真测试2.2.x 写满及读空 异常测试2.2.x1 带有复位的读写测试1.DUT 设计本设计框图如下,经典asyn_fifo2.UVM 验证结合波形,更好理解异步fifo的读写过程!初入门的野路子verifier,不规范的地方请指正。也不知是否正确完整。

2022-05-17 11:26:31 10031 70

原创 Verilog经典题

1.快时钟到慢时钟 检测单时钟脉冲信号2.跨时钟与3.同步复位异步释放4.任意小数分频5.状态机 Mealy Moore

2022-04-01 18:11:45 2859

原创 verilog(三) HDLBits

文章目录CircuitsSequential LogicFSMSimple one-hot state transitions 3*********5.3CircuitsSequential LogicFSMSimple one-hot state transitions 3module top_module( input in, input [3:0] state, output [3:0] next_state, output out); // .

2021-05-03 11:23:19 43

原创 verilog(二) HDLBits

文章目录CircuitsCombinational LogicMultiplexersMux256to1vArithmetic Circuitsxxx adder3-bit binary adderAdderSigned addition overflow4-digit BCD adderKarnaugh Map to Circuit3-variableCircuitsCombinational LogicMultiplexers4.14****************************.

2021-04-14 18:55:51 202

原创 Linux(CentOs7)

2021.04.03**查看文件**1. cat :显示文本文件的内容cat /etc/redhat-release 系统的版本号cat -n 显示行号uname -a: kernal 版本号.sh 绿色 可执行文件,windows是.exe .bat .com/bin 二进制文件2. more : 回车一行一行,空格 一页页,只能看后面3. less: 不能退出 ,能上下翻页 q4. head:默认 前10行 head (-n) 3 3行tail:后几行 -f 实时echo ‘

2021-04-03 21:02:05 235

空空如也

空空如也

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

TA关注的人

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