摘要:很多现代 IDE 都有自动补全配对括号的功能,比如输入了左括号“(”,IDE 就自动在后面添加一个对应的右括号“)”,并且将光标移到括号中间。VIM 虽然没有直接提供这个功能,但要实现其实非常简单,只要在你的 .vimrc 文件中添加下面的内容就可以了: ``` " 插入匹配括号 inoremap
阅读全文
摘要:在验证环境中,会经常使用uvm的后门操作系列函数,uvm_hdl_force, uvm_hdl_read, uvm_hdl_deposit等。使用后门操作可以直接通过信号的字符串hierarchy路径,进行对RTL内部信号的读取和赋值。 使用uvm_hdl_read常见的写法可能是这样: ``` b
阅读全文
摘要:环境中后门获取DUT内部信号的3种方法: 信号的Hierarchy读取 interface连接 VPI访问 其中前两种方式,借助systemverilog种阻塞等待操作,可以精确地捕获信号的跳变,比如@和wait: ``` //信号Hierarchy读取 @(tb_top.dut.cnt) @(po
阅读全文
摘要:在UVM寄存器模型的操作中,寄存器用于设置DUT状态和芯片状态信息的上报,有前门和后门读写两种方式。 推而广之,其他的DUT内部信号,由于验证的需要,有时也需要进行后门读写。这些信号除了包含前门可读的寄存器以外,还会包含reg/wire信号、状态机的状态值、memory内容等。总的来看,获取DUT内
阅读全文
摘要:对于code coverage,在编译和仿真需要加额外参数。对于function coverage,编译和仿真不需要加额外参数; ##1、覆盖率选项 使用的较多的是-cm, -cm_name, -cm_dir 这三个选项编译和仿真过程都要加上。 ``` -cm:指定使能覆盖率的类型,包括:line、
阅读全文
摘要:第一种是vim内置的自动补全功能; 自动补全 自动补全可以在插入模式下触发,当我们触发补全功能的时候,vim会根据当前编辑会话中所有缓冲区的内容建立一张补全列表,然后根据当前光标左侧的字符进行检测,看在表中能否找到单词的一部分,能找到则会用这个未完成的单词对补全列表进行过滤,所以不是以它为开头的单词
阅读全文
摘要:VIM自动补全快捷键 ` : `使用来自补全列表中的下一项内容(next) ` : `使用来自补全列表中的上一项内容(prev) ` : `与 相同 `: `与 相同 ` : `确认使用当前选中的匹配项 ` : `还原最初的输入项 ` : `从当前匹配项中删除一个字符 ` : `从当前匹配项中增加一
阅读全文
摘要:ahb1结构图  ahb5结构图  { builtin cd "
1" && ls } 提示符显示完整目录 export PS1=’[\u@\hPWD]
′提示符显示最后一个目录exportPS1=′[\u@\h\W]’ ``` csh
阅读全文
摘要:uvm_top = uvm_root::type_id::create("__top__", null); uvm_top= new("__top__", null); uvm_test_top = my_casen::type_id::create("uvm_test_top", this); u
阅读全文
摘要:引子 开始本文讨论之前我们先来以一个具体的例子来引出我们今天将要讨论的问题。 put_response/get_response的常规用法实例 图1是apb_master_driver中的一段代码,106-109行是关于driver中将transaction信息通过response的方式返回给发起这
阅读全文
摘要:``` .PHONY: cov_merge cov_view cov_merge: imc -execcmd "merge cov_work/scope/*/* -overwrite -out merged_cov" -logfile cov_merge.log cov_view: imc -loa
阅读全文
摘要:相信大多数朋友在打印类中数组成员时都遇到过数组打印信息不全的困扰:  假如图中pload[5]到pload[194]中
阅读全文