<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_37573794的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_37573794</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_37573794]]></copyright><item><title><![CDATA[Interface中input delay&output delay]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/127975449</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/127975449</guid><author>qq_37573794</author><pubDate>Tue, 22 Nov 2022 07:22:00 +0800</pubDate><description><![CDATA[clocking block中input delay及output delay的作用]]></description><category></category></item><item><title><![CDATA[DDR3协议（四）Self-Refresh&Power-Down]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/127479220</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/127479220</guid><author>qq_37573794</author><pubDate>Sun, 23 Oct 2022 19:48:20 +0800</pubDate><description><![CDATA[在DDR3中几乎所有的状态都要求时钟必须处于稳定状态，只有在两个条件下，输入时钟可以进行切换]]></description><category></category></item><item><title><![CDATA[DDR3协议（三）MR寄存器]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/127478995</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/127478995</guid><author>qq_37573794</author><pubDate>Sun, 23 Oct 2022 19:31:20 +0800</pubDate><description><![CDATA[MR(模式寄存器)是用于定义SDRAM的各种可编程模式]]></description><category></category></item><item><title><![CDATA[DDR3协议（二）PowerOn及Reset初始化]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/127379281</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/127379281</guid><author>qq_37573794</author><pubDate>Mon, 17 Oct 2022 23:06:39 +0800</pubDate><description><![CDATA[DDR3 PowerOn及Reset流程]]></description><category></category></item><item><title><![CDATA[DDR3协议（一）概述、信号及状态跳转]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/127378934</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/127378934</guid><author>qq_37573794</author><pubDate>Mon, 17 Oct 2022 22:56:21 +0800</pubDate><description><![CDATA[DDR基础概述]]></description><category></category></item><item><title><![CDATA[DEBUG记录——VCS对Xinlinx FPGA代码仿真]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/126194094</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/126194094</guid><author>qq_37573794</author><pubDate>Sat, 06 Aug 2022 14:15:57 +0800</pubDate><description><![CDATA[vcs仿真xinlinx代码的方法]]></description><category></category></item><item><title><![CDATA[UVM寄存器模型进行field操作]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/125175535</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/125175535</guid><author>qq_37573794</author><pubDate>Tue, 07 Jun 2022 23:39:34 +0800</pubDate><description><![CDATA[uvm寄存器模型，通过函数/任务简化field读写操作]]></description><category></category></item><item><title><![CDATA[DEBUG记录 -- DPI]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/125069898</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/125069898</guid><author>qq_37573794</author><pubDate>Tue, 31 May 2022 17:30:14 +0800</pubDate><description><![CDATA[如上图，仿真过程中出现错误：
[DPI-DIFNF] DPI import function not found
解决方法：
在编译选项，或者elab选项中增加如下语句：
$(UVM_HOME)/src/dpu/uvm_dpi.cc -CFLAGS -DVCS


]]></description><category></category></item><item><title><![CDATA[AMBA VIP基础使用方式（AHB）]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/123320550</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/123320550</guid><author>qq_37573794</author><pubDate>Mon, 07 Mar 2022 00:27:13 +0800</pubDate><description><![CDATA[1. AHB环境配置
1) 基础配置
作为master或者slave使用时，对应的is_active = 1
只作为监测（monitor)使用时，对应的is_active =0
class 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]]></description><category></category></item><item><title><![CDATA[UVM中使用的层次名称]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121646130</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121646130</guid><author>qq_37573794</author><pubDate>Wed, 22 Dec 2021 23:54:42 +0800</pubDate><description><![CDATA[先看代码片段如下：
function new(string name,uvm_component parent=null);
	super.new(name,parent);
endfunction

function void build_phase(uvm_phase phase);
	super.build_phase(phase);
	env1 = enviroment::type_id::create("env",this);
endfunction

function void connect_]]></description><category></category></item><item><title><![CDATA[SV练习（2)]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121667782</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121667782</guid><author>qq_37573794</author><pubDate>Thu, 02 Dec 2021 00:05:35 +0800</pubDate><description><![CDATA[根据如下代码，判断最终打印结果
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);
	end
endprogram
]]></description><category></category></item><item><title><![CDATA[Coresight（六） power requestor]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121667688</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121667688</guid><author>qq_37573794</author><pubDate>Wed, 01 Dec 2021 23:51:34 +0800</pubDate><description><![CDATA[  power requestor属于coresight组件。这个组件用来控制系统的power domain，最多可以控制32个。
  如果没有power requestor，通过DAP，只能对整个coresight系统进行上下电操作，但是有了power requestor，可以对某些关心的组件，进行上下电操作，实现power的精细操作。
  以下是power requestor的框图，通过apb总线访问该组件，该组件通过cpwrupreq信号，向系统power发送请求，通过cpwrupack获取到系统po]]></description><category></category></item><item><title><![CDATA[Coresight（五） rom table]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121667463</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121667463</guid><author>qq_37573794</author><pubDate>Wed, 01 Dec 2021 23:39:39 +0800</pubDate><description><![CDATA[  在一个soc中，有多个coresight组件，但是软件怎么去识别这些coresight组件，去获取这些coresight组件的信息了？这个时候，就需要靠coresight组件中，一个重要的组件，这个组件就是rom table。
  ARM规定，在一个soc中，必须要实现至少1个rom table，该rom table保存了soc中各个coresight组件的信息，包括组件格式以及组件的基地址。
  rom table只会占用一个4K空间大小，也就是PIDR4寄存器的SIZE为0。
1. entry寄存器]]></description><category></category></item><item><title><![CDATA[Coresight（四） channel interface]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121667206</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121667206</guid><author>qq_37573794</author><pubDate>Wed, 01 Dec 2021 23:22:05 +0800</pubDate><description><![CDATA[  channel interface是用来使不同coresight组件之间传递event使用。使用两个组件来实现：

CTM:  cross trigger matrix， 接收CTI的channel信号，然后广播给其他CTI
CTI：cross trigger interface， 接收trigger信号，发送trigger信号，接收channel信号，发送channel信号

  channel interface的典型应用。
)
  每个coresight组件和对应的CTI相连，那这个CTI就可以采]]></description><category></category></item><item><title><![CDATA[Coresight（三）APB&ATB总线]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121666936</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121666936</guid><author>qq_37573794</author><pubDate>Wed, 01 Dec 2021 23:02:34 +0800</pubDate><description><![CDATA[  APB和ATB总线，是coresight中常用的2个总线。
  对于coresight组件的访问，使用debug APB总线进行访问。而对于trace数据的传输，使用ATB总线进行传输。
1. APB总线
  以下是信号列表。


  clamp value，是指当一个组件是power down或者是disabled，输出的固定值。
  APB访问，数据最多是32bit，也就是coresight组件的寄存器的位宽最多是32bit的。
  对于PADDRDBG[31]，地址的最高位，表示当前的访问是int]]></description><category></category></item><item><title><![CDATA[Coresight（二）coresight寄存器]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121645742</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121645742</guid><author>qq_37573794</author><pubDate>Wed, 01 Dec 2021 00:15:29 +0800</pubDate><description><![CDATA[  coresight对于每个coresight组件，规定了一些寄存器，这些寄存器的偏移是固定的，这些寄存器，是必须存在的。但是有的，可以不实现该寄存器功能。
1、寄存器一览
  coresight架构，对于coresight的组件，定义了若干个固定的寄存器。第一个寄存器的偏移从0xf00开始，直到0xffc。以下是寄存器列表：

  以上的寄存器的地址，在coresight的组件中，是不能当作其他功能使用的。如果该寄存器，在该组件没有实现，那么该寄存器地址要保留，读取要返回0，写被忽略（read must]]></description><category></category></item><item><title><![CDATA[Coresight（一）coresight简介]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/121645434</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/121645434</guid><author>qq_37573794</author><pubDate>Tue, 30 Nov 2021 23:55:50 +0800</pubDate><description><![CDATA[  coresight是ARM公司提出的，用于对复杂的SOC，实现debug和trace的架构。该架构，包含了多个coresight组件。众多的coresight组件，构成了一个coresight系统。我们也可以根据coresight架构，实现自己的coresight组件。每个coresight的组件（component），都要遵循coresight架构的要求。
1、 典型的一个coresight的环境
以下是一个典型的coresight环境，包含了两个ARM core，一个DSP，和众多的coresigh]]></description><category></category></item><item><title><![CDATA[Cache的基本原理]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/118722530</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/118722530</guid><author>qq_37573794</author><pubDate>Wed, 14 Jul 2021 11:07:29 +0800</pubDate><description><![CDATA[转自知乎Cache基本原理
对于没有接触过底层技术的朋友来说，或许从未听说过cache。毕竟cache的存在对程序员来说是透明的。在接触cache之前，先为你准备段code分析。
int arr[10][128];

for (i = 0; i &lt; 10; i++)
        for (j = 0; j &lt; 128; j++)
                arr[i][j] = 1;

如果你曾经学习过C/C++语言，这段code自然不会陌生。如此简单的将arr数组所有元素置1。 你有]]></description><category></category></item><item><title><![CDATA[SV中virtual作用]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/118369062</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/118369062</guid><author>qq_37573794</author><pubDate>Wed, 30 Jun 2021 21:07:28 +0800</pubDate><description><![CDATA[1、virtual的作用
关于多态的含义不再做说明，直接来看virtual使用的不同点

代码1如下，不使用virtual

class father;
	function display();
		$display("This is Father!!);
	endfunction
endclass

class son extends father;
	function display();
		$display("This is Son!!");
	endfunction
endclass

modul]]></description><category></category></item><item><title><![CDATA[SV中local vs protected]]></title><link>https://blog.youkuaiyun.com/qq_37573794/article/details/117530044</link><guid>https://blog.youkuaiyun.com/qq_37573794/article/details/117530044</guid><author>qq_37573794</author><pubDate>Thu, 03 Jun 2021 17:49:39 +0800</pubDate><description><![CDATA[区别


local — 限制只在本class中使用，子类以及外部类中不可调用
protected — 限制只在本class以及子类中使用，外部类不可调用


举例


protected demo

class father_protected;
	protected logic [7:0] sig_prote = 'haa;
	function display();
		$display("father_protected sig_prote = 0x%0h",sig_prote);
	endfunc.]]></description><category></category></item></channel></rss>