![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sv
斐非韭
这个作者很懒,什么都没留下…
展开
-
sv program module
为了避免races,在验证中引入program;原创 2024-01-30 16:45:04 · 844 阅读 · 0 评论 -
【sv】 pack/unpack stream
https://www.amiq.com/consulting/2017/05/29/how-to-pack-data-using-systemverilog-streaming-operators/https://www.amiq.com/consulting/2017/06/23/how-to-unpack-data-using-the-systemverilog-streaming-operators/原创 2023-10-16 11:10:17 · 211 阅读 · 0 评论 -
【uvm】参数化Class中的静态属性
上面的例子中S1、S2、S3、S4、S5中的参数T分别被覆盖成byte、byte、int、bit[2:0]、real,所以只有S1(s_byte)和S2(s_byte)中的静态属性counter彼此共享。参数化类中的静态属性(参数化)是在参数初始化的时候才会分配。上面是一个参数化类的扩展类示例,class1是一个参数化类,参数T默认为"int"。static属性一般是在编译的时候就已经分配了内存,并被这个类的所有实例共享,class2增加了一个参数P,此时参数T为默认的"int"原创 2022-12-02 10:34:03 · 786 阅读 · 0 评论 -
[sv] class parameter specialization static
【代码】[sv] class parameter specialization static。原创 2022-10-27 15:35:09 · 108 阅读 · 0 评论 -
【sv】 class parameter specialization
https://verificationacademy.com/forums/systemverilog/parameterized-class-specializationSystemVerilog Parameterized ClassesDig a Pool of Specialized SystemVerilog ClassesDesign patterns in SystemVerilog OOP for UVM verificationSystemVerilog: Creating an arr原创 2022-10-26 15:45:05 · 114 阅读 · 0 评论 -
【sv】 covergroup
覆盖率测试原创 2022-10-21 12:57:18 · 216 阅读 · 0 评论 -
【无标题】硅芯思见:【137】SystemVerilog中的生命周期lifetime
Ø 声明于module/program/interface/checker中,但是位于task/function之外,则变量是module/program/interface/checker中的局部变量,具有静态生命周期,并且不能声明为automatic;Ø 对module/program/interface/checker中的方法直接进行动态或者静态生命周期的声明,可以影响方法中变量的生命周期的属性;Ø 对方法直接进行静态或者动态生命周期声明,从而可以影响方法中所有变量的生命周期属性;原创 2022-10-11 08:33:02 · 217 阅读 · 0 评论 -
sva 断言资料
sva原创 2022-08-01 15:18:46 · 186 阅读 · 0 评论 -
modelsim的TCL脚本的define incdir命令解析
vlog常用参数解析原创 2022-06-28 14:46:07 · 1162 阅读 · 0 评论 -
vlog常用参数解析
vlog常用参数解析原创 2022-06-28 14:23:08 · 770 阅读 · 0 评论 -
【sv】$isunknown判断值为x或者z
若把双状态变量连接到待测设计,务必小心,如果待测设计产生了X或者Z,这些值会被转换为双状态值,而测试代码可能永远也察觉不了。这些值被转换为了0还是1并不重要,重要的是要随时检查未知值的传播。使用 $isunknown 操作符,可以在表达式的任意位出现X或者Z时返回1,如下例所示:if ($isunknown(iport) == 1)$display(“@%0t: 4-state value detected on iport %b”, $time, iport);...原创 2022-06-17 11:12:04 · 2378 阅读 · 0 评论 -
【sv 】reg logic bit初始值
原创 2022-05-20 19:00:13 · 364 阅读 · 0 评论 -
【sv】 assign force区别
assignassign和deassign语句构成了一类过程性连续赋值语句,只能用于对寄存器类型变量的连续赋值操作,不能用来对线网类型数据进行连续赋值操作。①assign语句语法:assign <寄存器类型变量> = <赋值表达式>;assign在执行时,寄存器类型变量将由赋值表达式进行连续驱动,即进入连续赋值状态。如果此时有普通的过程赋值语句对该寄存器变量进行过程赋值操作,由于过程连续赋值语句assign的优先级高于普通过程赋值语句,所以出于连续赋值状态的寄存器...原创 2022-04-21 16:26:45 · 1478 阅读 · 0 评论 -
【sv】函数返回值是可变矩阵 parameterized 参数化函数
virtual class wrapper #(parameter WIDTH = 32); typedef bit[29:0] data_Wx30_30p_t [WIDTH][5]; static function data_Wx30_30p_t calc(); data_Wx30_30p_t data; //whatever logic you need.. return data; endfunctionendclass module test();原创 2022-04-20 15:38:42 · 381 阅读 · 0 评论 -
【siemens】 验证论坛 问问题
https://verificationacademy.com/forumssiemens 问问题原创 2022-04-19 16:40:56 · 282 阅读 · 0 评论 -
【sv-路科v0 验证结构及编译仿真步骤】 查看覆盖率
open ucdbcovergroup 功能覆盖率index.html原创 2022-04-18 16:11:58 · 376 阅读 · 0 评论 -
【sv】for循环+fork-join_none结构的坑
来源| 杰瑞IC验证(ID:Jerry_IC) 1. 回忆下fork-join_nonefork-join_none相信大家应该熟悉了,新来的朋友可以回顾下jerry之前的文章,就是之前jerry提到的那个“暴脾气”的哥们,他不会去等别人,直接会着急做自己的事情。前文回顾(点击查看):fork-join挺好用的了,fork-join_any、fork-join_none有什么用?回顾下那篇文章中我们举的一个例子,这个暴脾气可以这么用:fork aa( );原创 2022-04-13 09:23:40 · 942 阅读 · 0 评论 -
【sv】验证工程师经常犯的错误(4)---符号位扩展问题
https://mp.weixin.qq.com/s?__biz=MzUyODYzMjY3NA==&mid=2247484445&idx=1&sn=94287cedae21d7858a4e2c8349640b67&chksm=fa6c1a10cd1b9306f32965f4953bd1abae89d97d7f3cc89f88559f4fb2a8f048f57bc543eb79&scene=21#wechat_redirect在用SystemVerilog码代码的时候原创 2022-03-30 09:28:46 · 306 阅读 · 0 评论 -
【sv】 $display/$write
$display 自动插入换行原创 2022-03-28 17:04:18 · 1175 阅读 · 0 评论 -
[sv] 运算符优先级 -2**14
task my_scoreboard::main_phase(uvm_phase phase); my_transaction get_expect, get_actual, tmp_tran; bit result; //fortest begin-------- real a_r = -1.5; //1.5-->2 -1.5-->-2 real b_r = -1.4; //1.4-->1 -1.4-->-1 real c_r = -1.6原创 2022-03-26 15:46:41 · 1106 阅读 · 0 评论 -
【sv】 负数 -‘6d12
https://www.runoob.com/w3cnote/verilog-number.html原创 2022-03-26 15:10:26 · 520 阅读 · 0 评论 -
【sv】 systemverilog运算符及运算符优先级
原创 2022-03-22 13:11:41 · 1485 阅读 · 0 评论 -
[sv] int real 是否有符号
int real 是有符号原创 2022-03-17 19:13:28 · 453 阅读 · 0 评论 -
【sv】【wait fork】SYSTEMVERILOG在FOR循环中使用FORK_JOIN和FORK_JOIN_NONE的区别
原文我想在一个for循环中fork_join或者fork_join_none语句实现多线程, 假如我使用经典的方法:for(int index=0;index<14;index++)begin automatic int idx=index; fork begin `uvm_do_on(sequence_inst,p_sequencer.my_sqr[idx]); end join_none;end上图中例子是正原创 2022-03-11 18:25:59 · 499 阅读 · 0 评论 -
[questasim]直接打开波形文件
vsim vsim.wlf&原创 2022-03-10 15:41:12 · 764 阅读 · 0 评论 -
sv输出系统时间
如果只是要类似显示在terminal和log里,可以用SV的$system函数,如:initial$system(“date +%Y-%m-%d’ '%H:%M:%S”);原创 2022-03-09 15:25:47 · 1570 阅读 · 0 评论 -
[questasim] 直接跟新.coe文件, 这个新coe文件在验证环境是不生效的,还是用的老的coe
直接跟新.coe文件, 验证环境是不认的,还是用的老的coe需要重新例化工程原创 2022-03-04 17:07:04 · 261 阅读 · 0 评论 -
【questasim】保存波形信号 wave.do
原创 2022-03-04 14:21:10 · 829 阅读 · 0 评论 -
【sv】force 不能被包含在generate中
force 不能被包含在generate中原创 2022-03-03 16:11:31 · 773 阅读 · 1 评论 -
【挖坑】 sv中 wait fork 和 fork join 区别
//case 1forkjoin nonewait fork//case 2forkjoin区别???原创 2022-03-03 13:37:44 · 640 阅读 · 0 评论 -
【sv】 parameterized task/functions
function algorithm is same.but just input return data type different.I want to parameterizd the function.May someone give me a demo to show how to parameterizedfunction bit[5:0] a0(input bit[9:0] data); bit[5:0] dout; dout = data>>4; //just a原创 2022-03-03 08:25:18 · 172 阅读 · 0 评论 -
[sv]非强制类型转换 int‘() real‘() 28‘()
/*//使用二进制实现function bit[27:0] chopper_iq_ref_base_model::ul_add_round33_28(input bit[32:0] data, input bit[3:0] exp_shift); //round for ul add logic signed[27:0] round_res, round_res_tmp; bit[32:0] data_tmp; bit point_right; bit signed_bit; bit原创 2022-03-02 13:47:06 · 853 阅读 · 0 评论 -
verilog多比特数下划线 underscore
原创 2022-03-02 11:32:48 · 552 阅读 · 0 评论 -
[questasim] add wave
add wave -position insertpoint原创 2022-02-23 14:15:14 · 472 阅读 · 0 评论 -
【sv】getenv 【import “DPI-C“】
//在 global_definition.sv中定义import "DPI-C" function string getenv(input string env_name);在 source.me 文件中export PROJECT_HOME=/home/$USER/proj/xxx_auto/xx_xx/xxxtask _iq_ref_base_model::get_weights_from_regs2(input bit dl_ul, output weights_qi_512_32p_t原创 2022-02-23 13:19:54 · 916 阅读 · 0 评论 -
[sv] define路径
define路径./top_tb/src/global_definition.sv:`define CORE_PATH tb_top.dut.GEN_CORE.top_core_inst./top_tb/src/tb_top.sv: assign i_er_iq_tx_if[i].clk = `CORE_PATH.clk_C_245;./top_tb/src/tb_top.sv: assign i_er_iq_tx_if[i].rst = ~`CORE_PATH.rst_C_245原创 2022-02-22 17:01:00 · 506 阅读 · 0 评论 -
【sv】复制/拼接操作符
concatenationreplication原创 2022-02-21 16:06:47 · 2573 阅读 · 0 评论 -
再谈systemverilog中automatic与static
前段时间写过一篇关于automatic的文章,最近又看到总结一下:本次仿真器是questa sim 10.6c。如果变量被声明为automatic,那么进入该方法后,就会自动创建,离开该方法后,就会被销毁;而static则是在仿真开始时就会被创建,直到仿真结束,可以被多个方法/进程共享。通过几个栗子看其区别:ex1: function automatic int auto_cnt(input a); int cnt = 0; cnt += a; return cnt;原创 2022-02-11 14:37:32 · 949 阅读 · 0 评论 -
【sv】task
task mytask0(output bit[31:0] bw); logic[31:0] data_temp; m_reg_block.get_reg_by_name("bw").read(status, data_temp); check_status(read_e); bf_bw = data_temp; `uvm_info(get_type_name(), $sformatf("Read bf_bw :0x%h",bf_bw), UVM_LOW) endtask.原创 2022-01-24 15:13:22 · 515 阅读 · 0 评论 -
【sv】局部数据存储: 自动存储vs静态存储
局部数据存储Verilog-1995里面,如果你试图在测试程序里的多个地方调用同一个任务,由于任务里的局部变量会使用共享的静态存储区,所以在不同的线程之间会窜用这些局部变量。Verilog-2001里面,可以指定任务,函数和模块使用自动存储,从而迫使仿真器使用堆栈区存储局部变量。SV里面,模块(module)和program块中的子程序缺省情况下仍然使用静态存储。如果使用自动存储,则必须在程序语句中加入automatic关键词。在软件领域class类中默认动态存储。原文链接...原创 2022-01-06 19:30:09 · 911 阅读 · 0 评论