01 2022 档案
日常记录(50)timeformat与ntb_opts
摘要:https://blog.csdn.net/qq_38791897/article/details/107870029 timeformat 的四个参数:时间精度,小数位数,输出后缀字符串,时间显示宽度 $timeformat(units_number, precision_number, suf
日常记录(49)回顾TLM2.0socket通信
摘要:后期还是搞几个项目练练手吧。 TLM2.0 出现了socket通信。具体的使用还是优先于port等1.0TLM方式。 以下是2.0的一些信息 组件同步 uvm也存在,但是sv里提供的也不错 barrier scb的乱序、多数据流、数据格式、覆盖率、
日常记录(48)回顾uvm_sequence的函数、seq中的randc、uvm_config_db
摘要:1 uvm_sequence的函数 uvm_sequence_item相当于一个pkt,seq用于随机化该pkt等。sqr用于发送。 另外uvm_do不仅可以发送item,也可以发送seq。seq支持嵌套。 start_phase start_phase常常存在seq的task body中,它是在正
日常记录(47)回顾通信、uvm的基类树、verdi \vpd文件
摘要:uvm的打印信息有info、warning、error、fatal,只有info有信息等级。 uvm的phase有build、connect、end_of_eleboration、start_of_simulation、run、extract、check、report。 只有build自顶向下,其它
日常记录(46)寄存器模型、工厂、回调
摘要:寄存器模型 前门访问 通过协议进行数据正规访问 定义seq class reg_access_sequence extends uvm_sequence#(bus_transaction); string tID = get_type_name(); bit[15:0] addr; bit[15:0
日常记录(45)寄存器模型demo
摘要:寄存器模型 寄存器模型DUT 这里面只有与bus_*有关,与my_*,如my_transaction,my_sqr等无关。 DUT UVM的寄存器模型适合于具有地址和数据总线之类的DUT,以下是一个可以使用寄存器模型的DUT 第二段always为写操作,当可写时,且写入地址为9号,则将bus_wr_
日常记录(44)seq部分
摘要:Sequence Virtual Sqr 在my_vsqr.sv中 class my_vsqr extends uvm_sequencer; my_sequencer p_sqr0; my_sequencer p_sqr1; function new(string name, uvm_compone
日常记录(43)phase、seq部分
摘要:phase的 跳转 在drv中,phase.jump控制了跳转。当线程中发现了复位信号,则跳转到reset相位(task_phase族中的)。 可跳转的phase包括12个动态运行的phase(task_phase)以及随后的phase(不包括和task_phase并行运行的run_phase) t
日常记录(42)TLM事务级模型、
摘要:TLM的put my_case的main_phase中设定了raise_objection,并延时1000仿真单位后,drop,后续代码中的main_phase不设定raise和drop。 TLM的demo,(port->export->imp) 在A和B之间通信,首先在env中构建对应的实例(在不
日常记录(41)UVM打印冗余度设置\config_db\执行顺序
摘要:field的automation部分 取消trans的部分字段被打包的效果。并提供if语句。 `uvm_object_utils_begin(my_transaction) `uvm_field_int(dmac, UVM_ALL_ON) `uvm_field_int(smac, UVM_ALL_O
日常记录(40)UVM框架构建要点
摘要:https://gitee.com/bai-mengwei/uvm_practive_first 顶层连接与通信 顶层,是top_tb.sv,包括了interface、dut、和testbatch,驱动时钟、复位。 并包含uvm的宏文件svh、导入uvm的包。以及包含其它各个模块的文件。 引入uvm
日常记录(39)sformatf、问答
摘要:$sformatf sformat是sformatf(format,args); sformat相似,除了其返回字符串结果。字符串作为$sfo
日常记录(38)package与import
摘要:https://www.cnblogs.com/YanRuoChuanFPGA/p/9585361.html 定义package package PA; `include "AA.sv" endpackage :PA import引用 package PB ; inport PA::AA ; AA
日常记录(37)NEADTree的切换目录、UVM环境构建
摘要:切换到当前打开文件的目录下: :NERDTree % cd: 将CWD改为当前目录 https://www.cnblogs.com/gaoxiaoyuan/p/3832016.html Makefile FILES = top_tb.sv FLAGS = -sverilog -R -debug_al
日常记录(35)UVM的phase
摘要:公说公有理,婆说婆有理。我就直接用。 用build phase创建实例,用connect phase建立通信,然后经过两个phase后,进入仿真时间域中。run phase与另外的12个phase 并行。12个phase主要是reset、config、main、shutdown。 处理完以后,退出仿
日常记录(34)UVM框架初始搭建、grep命令
摘要:来源 《UVM实战》的第二章 代码统计 find . -name "*.py" |xargs cat|grep -v ^$|wc -l 编译选项 top_tb为顶层,dut为待测设计。 vcs -sverilog -f filelist.f -timescale=1ns/1ps 其中的filelis
日常记录(33)虚接口
摘要:虚接口 没有虚接口,那interface无法接入到class中。 interface SBus (); // nets logic req, grant; logic [7:0] addr, data; endinterface : SBus class SBusTrans; // data or
日常记录(32)验证计划与TB、NEADTree、TAB管理
摘要:验证计划参照 # 验证计划 根据验证计划安排testcase进行验证。 ## 1 时钟 ### 1.1 时钟频率 最小值、典型值、最大值、随机值(可选) ### 1.2 复位 上电复位,运行中复位、检查fifo是否复位(如果有) ## 2 DUT相关 ### 2.1 读写 #### 2.1.1)si
日常记录(31)vim配置内容
摘要:SystemVerilog的ctags 目前使用仓库的内容即可: ctags需要更换软件。https://gitee.com/bai-mengwei/vimrc --exclude=.SOS --exclude=.git --exclude=nobackup --exclude=nobkp --la
日常记录(29)断言property
摘要:断言测试代码 module taa (); reg clk1, clk2, clk3; reg a,b,c,d,e,f,g,h; initial begin fork begin clk1=0; forever #2 clk1=~clk1; end begin clk2=0; forever #3
日常记录(28)杂项、断言
摘要:fork join的label(tag) https://bbs.eetop.cn/thread-883536-1-1.html 其中只要有任何一个线程结束,都退出并行运行块,并打印DONE。要求分别用fork-join、fork-join_any,fork-join_none来实现. 实现基于la