- 博客(23)
- 收藏
- 关注
原创 Interface中input delay&output delay
clocking block中input delay及output delay的作用
2022-11-22 07:22:00 931 1
原创 DDR3协议(四)Self-Refresh&Power-Down
在DDR3中几乎所有的状态都要求时钟必须处于稳定状态,只有在两个条件下,输入时钟可以进行切换
2022-10-23 19:48:20 3565
原创 DEBUG记录 -- DPI
如上图,仿真过程中出现错误:[DPI-DIFNF] DPI import function not found解决方法:在编译选项,或者elab选项中增加如下语句:$(UVM_HOME)/src/dpu/uvm_dpi.cc -CFLAGS -DVCS
2022-05-31 17:30:14 1434
原创 AMBA VIP基础使用方式(AHB)
1. AHB环境配置1) 基础配置作为master或者slave使用时,对应的is_active = 1只作为监测(monitor)使用时,对应的is_active =0class ahb_cfg extends svt_ahb_system_configuration; `uvm_object_utils(ahb_cfg) function new(string name="ahb_cfg"); super.new(name); this.num_masters=2; this.n
2022-03-07 00:27:13 4946 11
原创 UVM中使用的层次名称
先看代码片段如下:function new(string name,uvm_component parent=null); super.new(name,parent);endfunctionfunction void build_phase(uvm_phase phase); super.build_phase(phase); env1 = enviroment::type_id::create("env",this);endfunctionfunction void connect_
2021-12-22 23:54:42 443
原创 SV练习(2)
根据如下代码,判断最终打印结果program t_test; class Thing; logic [3:0] data; endclass Thing t1,t2,t3; initial begin t1 = new(); t1.data = 3; t2 = new(); t2.data = 4; t2 = t1; t3 = new t2; t2.data = 8; $display(t1.data,t3.data); endendprogram
2021-12-02 00:05:35 373
转载 Coresight(六) power requestor
power requestor属于coresight组件。这个组件用来控制系统的power domain,最多可以控制32个。 如果没有power requestor,通过DAP,只能对整个coresight系统进行上下电操作,但是有了power requestor,可以对某些关心的组件,进行上下电操作,实现power的精细操作。 以下是power requestor的框图,通过apb总线访问该组件,该组件通过cpwrupreq信号,向系统power发送请求,通过cpwrupack获取到系统po
2021-12-01 23:51:34 324
转载 Coresight(五) rom table
在一个soc中,有多个coresight组件,但是软件怎么去识别这些coresight组件,去获取这些coresight组件的信息了?这个时候,就需要靠coresight组件中,一个重要的组件,这个组件就是rom table。 ARM规定,在一个soc中,必须要实现至少1个rom table,该rom table保存了soc中各个coresight组件的信息,包括组件格式以及组件的基地址。 rom table只会占用一个4K空间大小,也就是PIDR4寄存器的SIZE为0。1. entry寄存器
2021-12-01 23:39:39 1119
转载 Coresight(四) channel interface
channel interface是用来使不同coresight组件之间传递event使用。使用两个组件来实现:CTM: cross trigger matrix, 接收CTI的channel信号,然后广播给其他CTICTI:cross trigger interface, 接收trigger信号,发送trigger信号,接收channel信号,发送channel信号 channel interface的典型应用。) 每个coresight组件和对应的CTI相连,那这个CTI就可以采
2021-12-01 23:22:05 1177
转载 Coresight(三)APB&ATB总线
APB和ATB总线,是coresight中常用的2个总线。 对于coresight组件的访问,使用debug APB总线进行访问。而对于trace数据的传输,使用ATB总线进行传输。1. APB总线 以下是信号列表。 clamp value,是指当一个组件是power down或者是disabled,输出的固定值。 APB访问,数据最多是32bit,也就是coresight组件的寄存器的位宽最多是32bit的。 对于PADDRDBG[31],地址的最高位,表示当前的访问是int
2021-12-01 23:02:34 1758
转载 Coresight(二)coresight寄存器
coresight对于每个coresight组件,规定了一些寄存器,这些寄存器的偏移是固定的,这些寄存器,是必须存在的。但是有的,可以不实现该寄存器功能。1、寄存器一览 coresight架构,对于coresight的组件,定义了若干个固定的寄存器。第一个寄存器的偏移从0xf00开始,直到0xffc。以下是寄存器列表: 以上的寄存器的地址,在coresight的组件中,是不能当作其他功能使用的。如果该寄存器,在该组件没有实现,那么该寄存器地址要保留,读取要返回0,写被忽略(read must
2021-12-01 00:15:29 1775
转载 Coresight(一)coresight简介
coresight是ARM公司提出的,用于对复杂的SOC,实现debug和trace的架构。该架构,包含了多个coresight组件。众多的coresight组件,构成了一个coresight系统。我们也可以根据coresight架构,实现自己的coresight组件。每个coresight的组件(component),都要遵循coresight架构的要求。1、 典型的一个coresight的环境以下是一个典型的coresight环境,包含了两个ARM core,一个DSP,和众多的coresigh
2021-11-30 23:55:50 2987 3
转载 Cache的基本原理
转自知乎Cache基本原理对于没有接触过底层技术的朋友来说,或许从未听说过cache。毕竟cache的存在对程序员来说是透明的。在接触cache之前,先为你准备段code分析。int arr[10][128];for (i = 0; i < 10; i++) for (j = 0; j < 128; j++) arr[i][j] = 1;如果你曾经学习过C/C++语言,这段code自然不会陌生。如此简单的将arr数组所有元素置1。 你有
2021-07-14 11:07:29 346
原创 SV中virtual作用
1、virtual的作用关于多态的含义不再做说明,直接来看virtual使用的不同点代码1如下,不使用virtualclass father; function display(); $display("This is Father!!); endfunctionendclassclass son extends father; function display(); $display("This is Son!!"); endfunctionendclassmodul
2021-06-30 21:07:28 4540 1
原创 SV中local vs protected
区别local — 限制只在本class中使用,子类以及外部类中不可调用protected — 限制只在本class以及子类中使用,外部类不可调用举例protected democlass father_protected; protected logic [7:0] sig_prote = 'haa; function display(); $display("father_protected sig_prote = 0x%0h",sig_prote); endfunc.
2021-06-03 17:49:39 2546 2
原创 SV练习(1)
条件要求如下:给定俩信号a和b检查在a的上升沿10ns内必须监测到b的上升沿,否则报错a\b为完全异步信号不使用assert判断while(1) begin @(posedge sig_a); fork begin fork begin #10ns; $display("sig check error!"); end begin @(posedge sig_b); $display("sig check pass!"
2021-05-31 10:39:40 703
原创 AMBA VIP基础使用方式(AXI)
AXI环境配置1)基础配置作为master或者slave使用时,对应的is_active = 1只作为i监测(monitor)使用时,对应slave_cfg的is_active = 0(对应端口连接也有所区别)class smu_axi_cfg extends svt_axi_system_configuration; `uvm_object_utils(smu_aix_cfg) function new(string name="smu_axi_cfg); super.new(n..
2021-05-25 10:26:35 6479
原创 AMBA VIP基础使用方式(APB)
apb中的xact_type操作支持3种类型xact_type类型0WR1RD2IDLE例化配置如下class smu_apb_cfg extends uvm_objects; svt_apb_system_configuration master; svt_apb_system_configuration slave; `uvm_object_utils(smu_apb_cfg) function new(string name="smu.
2021-05-24 17:38:51 4908 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人