<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MoorePlus的博客]]></title><description><![CDATA[后摩尔时代的硅农]]></description><link>https://blog.youkuaiyun.com/MoorePlus</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MoorePlus]]></copyright><item><title><![CDATA[【DDR IP验证】3、Synopsys DDR PHY IIP安装（使用Coretools安装Synopsys IIP）]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/167122653</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/167122653</guid><author>MoorePlus</author><pubDate>Mon, 05 Oct 2026 10:29:10 +0800</pubDate><description><![CDATA[PHY不是本专栏重点，了解其主要是为了配置时序和CTRL和颗粒一致。]]></description><category></category></item><item><title><![CDATA[【DDR IP验证】2、Synopsys DDR Controller IIP安装（使用Coretools安装Synopsys IIP）]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/167086090</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/167086090</guid><author>MoorePlus</author><pubDate>Mon, 05 Oct 2026 09:43:28 +0800</pubDate><description><![CDATA[本次使用到的Synopsys DDR IIP为：dwc_ddr54_ctl_v1.41a。]]></description><category></category></item><item><title><![CDATA[【DDR IP验证】1、课程介绍及后续规划]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/167085946</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/167085946</guid><author>MoorePlus</author><pubDate>Sun, 04 Oct 2026 23:34:49 +0800</pubDate><description><![CDATA[TODO。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第一章：配置UVM环境（以VCS为例），跑通书上的例子（包括清理中间文件方法、使用DVE查看波形方法、命令执行原理探究）]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409309</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409309</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:59:32 +0800</pubDate><description><![CDATA[源码下载地址：http://www.hzcourse.com/web/refbook/detail/5651/229这里我将其保存在win10下的  目录，并解压出文件夹和文件夹，如下图所示：打开虚拟机，依次点击菜单栏中的：虚拟机→设置→选项→共享文件夹→总是启用，然后在“文件夹中”添加书本源码所在目录，如下图：打开终端，输入，就可看到我们刚刚下载的《UVM实战》书本源码，如下图所示：这里我们将该目录下的文件夹和文件夹复制到我们的工作目录下，命令如下：
命令运行情况，如下图所示：需要改的脚本其实就一个，即：]]></description><category></category></item><item><title><![CDATA[【UVM实战】第二章：一个简单的UVM验证平台（1）验证平台组成]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409303</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409303</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:59:01 +0800</pubDate><description><![CDATA[一个简单的验证平台框图如图2-1所示。在UVM中， 引入了agent和sequence的概念， 因此UVM中验证平台的典型框图如图2-2所示。从下一节开始， 将从只有一个driver的最简单的验证平台开始， 一步一步搭建如图2-2所示的验证平台。，这个过程通常是把 DUT 放入一个验证平台中来实现的。图2-2 典型UVM验证平台框图。图2-1 简单验证平台框图。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第二章：一个简单的UVM验证平台（2）只有driver的验证平台【时序解读】]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409298</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409298</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:58:30 +0800</pubDate><description><![CDATA[DUT的基本功能：采集输入端口的RX和RX_EN，打一拍后输出到TX和TX_EN。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第二章：一个简单的UVM验证平台（3）为验证平台加入各个组件【时序解读；使用流操作符解包driver数据的代码；修正原书monitor数据的拼包错误】]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409294</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409294</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:57:59 +0800</pubDate><description><![CDATA[代码清单 2-48。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第二章：一个简单的UVM验证平台（4）UVM 的终极大作：sequence]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409291</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409291</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:57:28 +0800</pubDate><description><![CDATA[代码清单 2-60。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第二章：一个简单的UVM验证平台（5）建造测试用例]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409285</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409285</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:56:57 +0800</pubDate><description><![CDATA[UVM使用的是一种树形结构， 在本书的例子中， 最初这棵树的树根是my_driver， 后来由于要放置其他component， 树根变成了my_env。但是在一个实际应用的UVM验证平台中， my_env并不是树根， 通常来说， 树根是一个基于uvm_test派生的类。无论是在my_env中设置default_sequence， 还是在base_test中或者top_tb中设置，在把my_env放入base_test中之后， UVM树的层次结构变为如图2-11所示的形式。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第三章：UVM基础（2）UVM的树形结构]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409279</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409279</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:56:27 +0800</pubDate><description><![CDATA[读者可能会说， 因为A是自己写出的， 它就只有一个孩子， 并且孩子的名字叫b_inst， 所以可以直接使用a_inst.b_inst就可以了。（ 而且也是唯一的一个实例 [1]， 它的实现方式非常巧妙） ， 而uvm_root派生自uvm_component， 所以uvm_top本质上是一个uvm_component， 它是树的根。关于叶子的判断是正确的， 但是关于树根的推断是错误的。b_inst是A的成员变量， 自然而然的， A就是b_inst的parent了， 无需再在调用new函数的时候指定。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第三章：UVM基础（3）field automation机制]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409270</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409270</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:55:55 +0800</pubDate><description><![CDATA[在这个17bit的数字中， bit0表示copy， bit1表示no_copy， bit2表示compare， bit3表示no_compare， bit4表示print， bit5表示no_print， bit6表示record， bit7表示no_record， bit8表示pack， bit9表示no_pack。这样， 在post_randomize中计算CRC前先检查一下crc_err字段， 如果为1， 那么直接使用随机值， 否则使用真实的CRC。在这一系列uvm_field系列宏中，出现的。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第五章：UVM验证平台的运行（1）phase机制（上）]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409264</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409264</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:55:21 +0800</pubDate><description><![CDATA[对于图3-2中的scoreboard及driver的build_phase的执行顺序， i_agt实例化时名字为“i_agt”，而scb为“scb”， 那么i_agt的build_phase先执行， 在执行完毕后， 接下来执行driver、 monitor及sequencer的build_phase。无论是run-time phase之间的同步， 还是run_phase与post_shutdown_phase之间的同步， 或者是run_phase与run_phase之间的同步，]]></description><category></category></item><item><title><![CDATA[【UVM实战】第五章：UVM验证平台的运行（1）phase机制（下）]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409262</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409262</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:54:51 +0800</pubDate><description><![CDATA[但是，reference_model.connect（ scoreboard） 的要求则没有那么高， 只需要在上述代码中reference_model=new之后任何一个地方编写即可。可以看出，]]></description><category></category></item><item><title><![CDATA[【UVM实战】第五章：UVM验证平台的运行（2）objection机制]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409257</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409257</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:54:20 +0800</pubDate><description><![CDATA[代码清单 5-33。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第七章：UVM中的寄存器模型（1）寄存器模型简介]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409250</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409250</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:53:41 +0800</pubDate><description><![CDATA[就目前读者所掌握的知识来说， 只能先通过使用bus_driver向总线上发送读指令， 并给出要读的寄存器地址来查看一个寄存器的值。当寄存器模型使用前门访问方式来实现读或写操作时， uvm_reg_map就会将地址转换成绝对地址， 启动一个读或写的sequence， 并将读或写的结果返回。uvm_reg_block： 它是一个比较大的单位， 在其中可以加入许多的uvm_reg， 也可以加入其他的uvm_reg_block。在本书以前所有的例子中， 使用的DUT几乎都是基于2.2.1节中所示的最简单的DUT，]]></description><category></category></item><item><title><![CDATA[【UVM实战】第七章：UVM中的寄存器模型（2）简单的寄存器模型]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409229</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409229</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:50:44 +0800</pubDate><description><![CDATA[因此， 必须要定义好一个转换器。一个转换器要定义好两个函数， 一是reg2bus， 其作用为将寄存器模型通过sequence发出的uvm_reg_bus_op型的变量转换成bus_sequencer能够接受的形式， 二是bus2reg， 其作用为当监测到总线上有操作时， 它将收集来的transaction转换成寄存器模型能够接受的形式， 以便寄存器模型能够更新相应的寄存器的值。add_reg函数的第一个参数是要加入的寄存器， 第二个参数是寄存器的地址， 这里是16’h9， 第三个参数是此寄存器的存取方式。]]></description><category></category></item><item><title><![CDATA[【UVM实战】第七章：UVM中的寄存器模型（3）后门访问与前门访问]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146409222</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146409222</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 23:50:13 +0800</pubDate><description><![CDATA[为了讲述后门访问操作， 从本节开始， 将在7.1.1节的DUT的基础上引入一个新的DUT， 如附录B的代码清单B-3所示。这个DUT中加入了寄存器counter。它的功能就是统计rx_dv为高电平的时钟数。带计数器的DUT：代码清单 B-3文件： src/ch7/section7.3/dut/dut.svendmodulerst_n,bus_op,bus_addr,rxd,rx_dv,txd,tx_en);input clk;reg tx_en;]]></description><category></category></item><item><title><![CDATA[【UVM基础】仿真时间与运行时间]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146384402</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146384402</guid><author>MoorePlus</author><pubDate>Thu, 20 Mar 2025 00:00:11 +0800</pubDate><description><![CDATA[【代码】【UVM基础】仿真时间与运行时间。]]></description><category></category></item><item><title><![CDATA[【UVM基础】UVM各个组件功能]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146384391</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146384391</guid><author>MoorePlus</author><pubDate>Wed, 19 Mar 2025 23:59:41 +0800</pubDate><description><![CDATA[while(1)]]></description><category></category></item><item><title><![CDATA[【UVM基础】uvm_info 宏介绍]]></title><link>https://blog.youkuaiyun.com/MoorePlus/article/details/146384382</link><guid>https://blog.youkuaiyun.com/MoorePlus/article/details/146384382</guid><author>MoorePlus</author><pubDate>Wed, 19 Mar 2025 23:59:09 +0800</pubDate><description><![CDATA[在验证平台中， 某些信息是非常关键的， 这样的信息可以设置为UVM_LOW；而有些信息可有可无， 就可以设置为UVM_HIGH；介于两者之间的就是UVM_MEDIUM，UVM默认只显示UVM_MEDIUM或者UVM_LOW的信息。uvm_info宏的功能与Verilog中display语句的功能类似，但是它比display语句更加强大。]]></description><category></category></item></channel></rss>