首页 > 其他分享 >SystemVerilog -- 3.8 SystemVerilog case

SystemVerilog -- 3.8 SystemVerilog case

时间:2024-05-05 21:11:19浏览次数:13  
标签:case abc -- Found unique ncsim display SystemVerilog

SystemVerilog case

SystemVerilog语句检查表达式是否与多个表达式和分支中的一个匹配。该行为与Verilog中的行为相同。case

unique, unique0 case

所有case语句都可以由or关键字限定,以执行违规检查,就像我们在if-else-if构造中看到的那样。unique unique0

unique并确保没有重叠的案例项,因此可以并行评估。如果存在重叠的案例项,则报告违规行为。unique

  • 如果发现多个事例项与给定表达式匹配,则报告违规并执行第一个匹配表达式。
  • 如果未发现与给定表达式匹配的案例项,则仅报告冲突。unique
unique0 dose not report a violation if no items match the expression

unique: No items match for given expression

module tb;
  bit [1:0] abc;
  
  initial begin
    abc = 1;
    // None of the case items match the value in "abc"
    // A violation is reported here
    unique case (abc)
      0 : $display ("Found to be 0");
      2 : $display ("Found to be 2");
    endcase
  end
endmodule

模拟日志

ncsim> run
Found to be 0
ncsim: *W,MCONDE: Unique case violation: Every case item expression wa false.
        File: ./testbench.sv, line = 9, pos = 14
        Scope: tb
        Time: 0 FS + 1
ncsim: *W,RNQUIE: Simulation is complete.

unique: More then one case item match

module tb;
  bit [1:0] abc;

  initial begin
    abc = 0;

    // Multiple case items match the value in "abc"
    // A violation is reported here
    unique case (abc)
      0 : $display ("Found to be 0");
      0 : $display ("Again found to be 0");
      2 : $display ("Found to be 2");
    endcase
  end
endmodule

模拟日志

ncsim> run
Found to be 0
ncsim: *W,MCONDE: Unique case violation: Multiple matching case item expressions at {line=10:pos=6 and line=11:pos=6}.
        File: ./testbench.sv, line = 9, pos = 14
        Scope: tb
        Time: 0 FS + 1
ncsim: *W,RNQUIE: Simulation is complete.

priority case

module tb;
  bit [1:0] abc;

  initial begin
    abc = 0;
    
    // First match is executed
    priority case (abc)
      0 : $display ("Found to be 0");
      0 : $display ("Again found to be 0");
      2 : $display ("Found to be 2");
    endcase
  end
endmodule

模拟日志

ncsim> run
Found to be 0
ncsim: *W,RNQUIE: Simulation is complete.

标签:case,abc,--,Found,unique,ncsim,display,SystemVerilog
From: https://www.cnblogs.com/sys-123456/p/18173855

相关文章

  • 架构每日一学 3:架构师六个生存法则之一:如何找到唯一且正确的架构目标?(二)
    本文首发于公众号:腐烂的橘子上一篇文章中,我们讨论了架构师第一个生存法则:必须有且仅有一个目标。今天我们主要讨论下如何找到这个目标。确认一个正确目标且要试图逼近它每一个企业的第一任务首先是活下来,然后再盈利。那么想活下来就得保证,架构活动是能为企业带来长期生存优势......
  • Mysql权限管理,备份与三大范式
    mysql访问权限系统表mysql的权限由四个表来控制权限,分别是user表,db表,tables_priv表,columns_priv表表名作用user存放用户账号、密码、主机信息和全局权限db数据库级别的权限表tables_priv表级别的权限表columns_priv列级权限表procs_priv函数/存储过......
  • 最大似然估计
    什么是最大似然估计?先定义几个常用的术语。1.什么是参数?在统计学中,参数是指用来描述一个统计模型的未知特征或属性。这些特征可以是概率分布的位置、形状、尺度等方面的性质,也可以是用于描述数据生成过程中的固定参数。参数通常是我们感兴趣的、要从数据中推断或估计的量。举......
  • 危机-危中有机
    信息1大脑思考决策信息2信息3信息x人的大脑应该是用于思考,独立决策的,而不是直接吃现成的,如果没有思考能力,一味的想要从别人口中获取现成的,简直是痴人说梦,不现实。没有思考能力的大脑无异于智障,乃至残疾,是废人。不要躺平,应该积极思考,反复咀嚼信息,不要过于在乎......
  • 08.异常机制
    1.什么是异常简单分类:检查性异常:最具代表的是用户错误或问题引起的异常,无法预见。如要打开一个不存在文件时。运行时异常:运行时异常是可能被程序员避免的异常。错误:错误不是异常,而是脱离程序员控制的问题。2.Java异常处理机制Application.javapublicclassApplication......
  • SystemVerilog -- 3.7 SystemVerilog 'unique' and 'priority' if-else
    SystemVerilog'unique'and'priority'if-else条件语句用于决定是否执行语句。ifelseSystemVerilog引入了一下用于违规检查的构造。ifelseunique-ifunique0-ifpriority-ifunique-if,unique0-ifunique-if按任意顺序评估条件,并执行以下操作:当所有条件都不匹配时,报......
  • NVIDIA机器人仿真环境 —— NVIDIA Isaac Sim 的headless模式/无头模式 —— 非桌面模
    相关:https://developer.nvidia.com/isaac-sim可视化模式,也就是在桌面系统上直接安装软件,具体地址:https://developer.nvidia.com/isaac-sim无头模式则是使用docker安装,该种情况下不使用可视化界面,所有操作均在docker容器内,地址:https://catalog.ngc.nvidia.com/orgs/nvid......
  • 树上求一个点邻域信息的一种简单求法
    有人说,直接点分树,力大砖飞,非常不错!实际上这种做法非常的垃圾,很多时候我们使用点分树,一定是不得不使用点分树,比如模板题,强制在线,非常的恶心,所以我们使用点分树。而点分树是否必要呢?既然你能看到这篇blog,他肯定是不必要的!我们今天来发掘dsuontree的美妙性质,让他求解这个问题!然......
  • spring项目创建
    从springinitializer下载一个demoSpringboot 在idea中需要配置java版本和maven版本之后:mvnpackage不需要下载tomcat,Spring里面pom中包含内置tomcat<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star......
  • [省选联考 2021 A 卷] 矩阵游戏
    如果直接构造的话由于有a范围的限制,同时还要满足b的性质,非常恶心。考虑将两个性质分开考虑。首先如果我们确定了矩阵的第一行和第一列,那么我们就可以确定这个矩阵了。我们先构造出一个合法的矩阵,然后再对矩阵的第一行和第一列进行微调,是所有数都没满足范围。容易想到,比如要将\(a_......