DreamCll

博客园 首页 联系 订阅 管理

2021年7月12日

摘要: https://seisman.github.io/how-to-write-makefile/introduction.html 阅读全文
posted @ 2021-07-12 09:25 DreamCll 阅读(123) 评论(0) 推荐(0) 编辑

2021年6月5日

摘要: ###### error code fork ... join_any disable fork; 如果需要在fork-join_any后使用disbale fork,为了防止误杀线程,需要添加fork begin - join将原代码保住 ###### right code fork begin 阅读全文
posted @ 2021-06-05 14:45 DreamCll 阅读(412) 评论(1) 推荐(0) 编辑

2019年12月20日

摘要: 常用 | 正则表达式 : :| : | 用户名 |/^[a z0 9_ ]{3,16}$/ 密码 | /^[a z0 9_ ]{6,18}$/ 十六进制值 |/^ ?([a f0 9]{6}|[a f0 9]{3})$/ 电子邮箱 | /^( "a z0 9_\. ]+)@([\da z\. ]+) 阅读全文
posted @ 2019-12-20 09:49 DreamCll 阅读(265) 评论(0) 推荐(0) 编辑

2019年12月11日

摘要: 1.在.vimrc配置文件中添加以下命令行 syntax on "确定vim打开语法高亮 filetype on "打开文件类型检测 filetype plugin on "为特定的文件类型允许插件文件的载入 filetype indent on "为特定的文件类型载入缩进文件 2.在.vimrc配 阅读全文
posted @ 2019-12-11 11:38 DreamCll 阅读(1130) 评论(0) 推荐(0) 编辑

2019年11月21日

摘要: 对于一名芯片验证师而言,他可能面临的任务可能是模块级(module level)、子系统级(subsystem level)或者系统级(chip level)的验证。但是俗话说"条条大路通罗马",它们用得方式是一样的,当前业界通常采用 systemverilog 和 UVM 来验证 DUT。 UVM 阅读全文
posted @ 2019-11-21 19:48 DreamCll 阅读(8368) 评论(0) 推荐(1) 编辑

摘要: uvm环境工作流程主要包含以下几个步骤: module test_top module test 模板 module test_top; ... initial begin run_test(); end endmodule uvm 环境是在 module 中通过调用 run_test()<UVM 阅读全文
posted @ 2019-11-21 19:34 DreamCll 阅读(1622) 评论(0) 推荐(0) 编辑

2019年11月3日

摘要: ####1.phase机制 uvm 验证环境通过 phase 机制,引入了一套自动化的运行流程,通过该机制我们可以清晰的了解 UVM 仿真阶段的层次化,因为 verilog 中有阻塞和非阻塞赋值,相应的仿真平台中,也要实现 NBA 区域 和 Actice 区域,在不同的 phase 区域中做不同的事 阅读全文
posted @ 2019-11-03 17:18 DreamCll 阅读(4210) 评论(0) 推荐(0) 编辑

2019年10月30日

摘要: ####1. uvm_objection 和 uvm_component 基础 uvm_objection 和 uvm_component 是 uvm 中两大基础类,刚开始学习的时候,对两个东西认识不深,以为它们俩差不多,谁知道它两是一个是“爷爷”,一个是孙子的关系,两者贯穿整个 uvm 验证方法学 阅读全文
posted @ 2019-10-30 13:28 DreamCll 阅读(3046) 评论(0) 推荐(1) 编辑

2019年10月29日

摘要: 写过 verilog 硬件代码的同学应该都知道 DUT 会包含很多寄存器,它们是模块间交互的接口,其用途大致可以分为两类: a. 通过读出寄存器当前的值获取 DUT 当前的状态,该类寄存器称为状态寄存器; b. 通过对寄存器进行配置,可以使得 DUT 工作在一定模式下,该类寄存器称为配置寄存器。 在 阅读全文
posted @ 2019-10-29 09:29 DreamCll 阅读(9236) 评论(0) 推荐(1) 编辑

摘要: 一个基本的 uvm 验证环境结构如下图所示,包含两个 agent,其中 in_agent 用于驱动 DUT ,同时将驱动数据同时传递给 reference model, out_agent 用于按照协议采集 DUT 的输出数据,并将数据传递给 scoreboard,在 scoreboard 收集到 阅读全文
posted @ 2019-10-29 09:08 DreamCll 阅读(4749) 评论(0) 推荐(0) 编辑