systemVerilog语法
狮子座硅农(Leo ICer)
努力成为卓越的芯片研发人员!
展开
-
systemVerilog中casez和casex语句
8’bx0x0x0x0异或8’b01100110=8’bx1x0_x1x0,与statement2可以对应。当field=8’b01100110时,casex选择分支statement2执行。原创 2022-11-15 16:12:25 · 470 阅读 · 0 评论 -
systemVerilog过程语句:for循环语句控制/跳转 continue break return
仿真命令:vcs -R -sverilog continue_loop.sv当i的值在(i>=5)&&(i=5)&&(i原创 2022-11-15 15:49:48 · 2542 阅读 · 1 评论 -
systemVerilog的变量类型转换
if(unsigned’(a-b)原创 2022-11-15 15:18:35 · 2047 阅读 · 0 评论 -
sv中case语句多个条件执行一个语句
如上,条件0、4执行对应的程序内容,条件1、2、3执行相同的程序内容。原创 2022-09-07 14:15:34 · 992 阅读 · 0 评论 -
March C+算法
March C+算法是改进后的March C算法,在每个状态中增加了一次读操作,使它能够覆盖开路故障(Stuck-open故障),在每步增加一次读操作可大大提高对此故障的覆盖率。原创 2022-08-13 18:24:25 · 3133 阅读 · 0 评论 -
systemVerilog中bind使用方法
代码】systemVerilog中bind使用方法。原创 2022-08-11 08:58:59 · 2751 阅读 · 0 评论 -
systemVerilog中automatic用法
/没有automic。原创 2022-07-23 10:23:29 · 375 阅读 · 0 评论 -
systemverilog中function和task区别
要调用function,则使用functiontask均可;要调用task,只能用task调用。原创 2022-07-23 10:16:50 · 757 阅读 · 0 评论 -
SystemVerilog中$write与$display区别
display是普通的显示函数(是的,我觉得它更像一个函数,而不像是一个任务。类似于C/C++、matlab和python等对应的控制台打印函数),它在任何它被调用的地方被即时执行。$write与$display几乎相同,差异仅在于后者缺省第带换行符,而前者不带。所以当你需要将多次调用的语句打印的内容显示在同一行,那就是应该用$write的地方。如果不带任何参数调用$display()的话,就相当于一个单纯的换行,而不带任何参数调用$write()的话则什么都不会发生。$write()函数。...原创 2022-07-23 09:37:33 · 1487 阅读 · 0 评论 -
SystemVerilog中interface(接口)介绍
当在两个模块中增加一个新的信号的时候,不但需要编辑模块代码以增加新的端口,还需要编辑上一层次中连接器件的网单代码,任何一层次出现错误都会导致设计无法正常工作。如果你希望在一个接口放入一个新的信号,你只需要在接口定义和实际使用这个接口的模块中做修改。如果不能对符合Verilog-2001的旧的源代码进行修改,将其中的端口改为接口,你可以将接口的信号直接连接到每个端口上。===================不符合Verilog-2001的旧代码处理办法================...原创 2022-07-22 16:32:15 · 778 阅读 · 0 评论 -
case语句,systemVerilog语法
代码】case语句,systemVerilog语法。原创 2022-07-21 16:35:07 · 354 阅读 · 0 评论 -
测试多时钟频率-systemVerilog
代码】测试多时钟频率-systemVerilog。原创 2022-07-21 15:29:32 · 605 阅读 · 0 评论 -
this用法,systemVerilog语法
使用class里面的变量,需要前面this进行标记。原创 2022-07-21 10:48:49 · 452 阅读 · 0 评论 -
约束constrain,SystmVerilog语法
上面的代码中构建了一个约束块addr_c,约束快的修饰符是constrain,约束的内容是地址的低2bit为0,在调用randomize()函数随机时,随机出的地址,低2bit一直为0;原创 2022-07-21 10:13:00 · 279 阅读 · 0 评论 -
断言$fatal()-systemVerilog语法
fatal()可以单独使用,也可以assert...else$fatal()原创 2022-07-20 10:49:53 · 1721 阅读 · 0 评论 -
$display-SystemVerilog
代码】$display-SystemVerilog。原创 2022-07-20 10:21:42 · 490 阅读 · 0 评论 -
$value$plusargs()-systemVerilog内建函数
测试的时候,平台会打印出来。原创 2022-07-19 21:23:25 · 289 阅读 · 0 评论 -
systemverilog中fork...join用法
fork...join使内部所有线程同时开始运行,直到内部所有线程运行完毕后才跳出fork...join块儿。原创 2022-07-19 20:30:25 · 429 阅读 · 0 评论 -
systemVerilog测试频率
initial begin real stime, duration; forever begin @(posedge clk_nic0) stime = $realtime; @(posedge clk_nic0) duration = $realtime - stime; clk_nic_freq+ 1000.0/duration; endend原创 2022-03-25 15:03:37 · 539 阅读 · 0 评论 -
Verilog和systemVerilog中force和release语法
force和release在程序中经常会遇到force和release,如下:add u_add(.a(a1),.b(b1),.c(c1));initialbegin a1 = 2'b1; b1 = 2'b1; #20 force u_add.a = 2'd2; #10 release u_add.a ;end对force和release的作用进行说明:在u_add模块中,a接口与a1相连,b接口与b1相连,c接口与c1相连,那么就有如下两种情况:...原创 2022-03-04 16:48:59 · 7484 阅读 · 1 评论 -
验证过程中,check模块的0时刻出现错误
always @(posedge clk or negedge rst_n) if(rf1_ren == 1'b1 & rst_n) begin if (rf1_data_out != rf1_data_out_m) begin $error("read is not match") ; end end解决办法, 判决条件中加入 “& rst_n”...原创 2021-12-27 19:59:34 · 398 阅读 · 0 评论 -
验证中,信号无法往下一拍传
always_ff @(posedge clk or rst_n) begin if(~rst_n) begin rf1_a<=1'b0; end else begin rf1_a<= rf0_a; endend错误波形如下:原因:数据从文件读入测试文件(TB)时候,应该在之前加个延迟,否则会出现这个问题case(input_type)4'b00: begin #1p...原创 2021-12-27 19:54:27 · 1128 阅读 · 0 评论 -
case调试思路
always @(posedge clk or negedge rst_n) begin if(~rst_n) begin result <=0; end else begin case ({A,B}) 2'b00: result <= 4'b0001; 2'b01: result <= 4'b0010; 2'b10: result <= 4'b0100; 2'b11: .原创 2021-12-16 19:40:25 · 294 阅读 · 0 评论 -
systemVerilog硬件电路多驱动问题?
logic a;logic b;logic c;always @ (posedge clk_1) begin if(b > 0) a <= 1'b1; endendalways @ (posedge clk_1) begin if(c > 0 && b < 0) begin a <= 1'b0; endend解决办法logic a;logic b;logic c;al.原创 2021-12-16 14:58:51 · 1442 阅读 · 0 评论 -
SystemVerilog LRM全称
SystemVerilog LanguageReferenceManual原创 2021-12-10 14:50:42 · 508 阅读 · 0 评论 -
systemverilog中数组索引 [(8*i) + : 8]是什么意思
+:表示由8*i向上增长8位,也就是(8*i+7 : 8*i)原创 2021-12-02 14:28:24 · 5585 阅读 · 0 评论 -
SystemVerilog中$feof()和$fscanf()抓取文本
$feof是用来检测文件结束符EOF的函数,如果文件结束,则返回非0值,所以用来判断文件是否便利结束。$fscanf的作用是将指针指向的文件按照所规定的类型进行逐个扫描并暂存到word中。在使用时,也可以用void'($fscanf(file, "%s", word))以忽略这个函数的返回值。...原创 2021-11-05 15:12:19 · 6156 阅读 · 0 评论 -
systemVerilog中$fopen()函数
获取文件句柄代码:fd_xxx = $fopen("test_log.txt",`F_PARA);参数功能:原创 2021-11-05 15:03:43 · 3324 阅读 · 3 评论 -
systemverilog中$test$plusargs和$value$plusargs的用法
VERILOG的参数可以用define和parameter的方式定义,这种方法要求我们在编译前将变量必须定义好,编译完成之后再也不能修改;然而,有时候我们在进行仿真时,需要从外部传递参数,这个要求怎么满足呢?我们来看下 $test$plusargs和$value$plusargs的功能,首先来看一个简单的例子:`timescale 1ns/1psmodule tb;reg[255:0] testname;initial begin$display("*********原创 2021-11-05 14:51:03 · 1382 阅读 · 0 评论 -
systemVerilog中case语句
always_comb beginx='0;y='0;z='0;case (1'b1) s1: begin x='1; y='1; z='1; end s2: begin x='2; y='2; z='2; end s3: begin x='3; y='3; z='3; end default: begin x='0; y='0; .原创 2021-10-15 11:54:11 · 5007 阅读 · 0 评论