当前位置: 首页 > news >正文

case的使用

1.x和z值

        1.1.定义

                x:表示不定值

                z:表示高阻态,还有一种表达方式“?”

                一个x/z可以用来定义十六进制(h)数的4位二进制的状态,八进制(o)数的3位,二进制(b)数的1位,或者十进制(d)数的整体值。

                举例如下:

                        4'b10x0        //位宽为4的二进制数,其bit1为不定值

                        8'h4z            //位宽为8的十六进制数,其低4bit为高阻态(第1种表达方式)

                        12'd?            //位宽为12的十进制数,其值为高阻态(第2种表达方式)

        1.2.使用注意

                在rtl仿真中,x和z是两个情况,而在综合时被视为一种情况,因此在需要综合的代码中,是不允许出现x和z的

2.case的使用

        2.1.定义

                case  :按位全等比较

                casez:忽略高阻态的bit位,只关注其他位的比较结果

                casex:进一步放松比较范围,忽略高阻态或不定态的bit位

                真值表如下: 

在这里插入图片描述

        2.2.使用规则

                2.2.1.case 分支中不允许出现x、z/?

                        case语句中出现“x”,“z”,“?”,容易导致综合前后不一致。

                2.2.2.可以使用casez或casex,但是不允许使用z和x

                        casez和casex仿真不一样,但都可综合且综合后电路一样,尽量使用casez

                        使用casez(x)语句可以和”?”配合过滤可忽略bit位,但是语句中不能有“x”和“z”。

                        举例正确代码如下:“?”表示可忽略的无关比较位,这里不代表高阻态。

wire [2:0] sel;
always@(posedge clk)casez(sel)3’b001 : data_out <= data_in0 ;3’b01? : data_out <= data_in1 ;3’b1?? : data_out <= data_in2 ;default: data_out <= 4’b0     ;endcase

                2.2.3.default项一定(最好)补齐

                        default项的补齐避免在组合逻辑中出现latch。

http://www.lryc.cn/news/16211.html

相关文章:

  • Mac配置ITerm2
  • JUC并发编程(下)
  • API接口的基础知识
  • 基于Spring Boot的教务管理系统
  • 网页扫描图像并以pdf格式上传到服务器端
  • Airbyte入门
  • 研究人员在野外发现大量的信息窃取者 “Stealc “的样本
  • 数据结构——复杂度讲解(2)
  • 【LeetCode】任务调度器 [M](贪心)
  • Spring代理模式——静态代理和动态代理
  • Anaconda和PyCharm的一些安装问题和命令
  • sql优化建议
  • google hacker语句
  • Spring AOP
  • 【消费战略方法论】认识消费者的恒常原理(一):消费者稳态平衡原理
  • python居然能语音控制电脑壁纸切换,只需60行代码
  • 内存泄露定位手段(c语言hook malloc相关方式)
  • STM32 CAN波特率计算
  • C/C++ 中#define 的妙用,让代码更美一些
  • Linux文件系统操作与磁盘管理
  • 【Python】批量采集原神表情包~
  • C语言基本语法注释类型关键字
  • 【C ++】C++入门知识(二)
  • qt qchart学习
  • 手工布署 java 项目
  • 《设计模式》观察者模式
  • 基于SpringBoot的外卖项目(详细开发过程)
  • ChatGPT 研发传言席卷互联网公司,这会是一门好生意吗?
  • 获取servlet转发和响应重定向的方式是什么?
  • jvm知识点