verilog语法-浅谈case casez casex
来源:
责编:
时间:2023-09-04 10:17:00
404观看
导读1、语法说明在rtl仿真中,有四种状态,分别是0、1、x(unknown values)和z(high-impedance values)。 case 结构体中:0,1,X与Z是四种不同的状态,case条件比较时会检测比较双方每个bit是否完全相等。casez 结构体中:把Z当做don’
在rtl仿真中,有四种状态,分别是0、1、x(unknown values)和z(high-impedance values)。case 结构体中:0,1,X与Z是四种不同的状态,case条件比较时会检测比较双方每个bit是否完全相等。casez 结构体中:把Z当做don’t care conditions,case条件比较时,比较双方存在Z值的bit位不参与比较 ,其他比特位相等则视为条件命中casex 结构体中:把Z和X当做don’t care conditions,case条件比较时,比较双方存在Z或者X的bit位不参与比较,其他比特位相等则视为条件命中- 在casex、casez中推荐使用 ?来替换Z和X
- case、casex、casez语句中,如果命中多个case条件,则执行命中的第一个case
1Cn28资讯网——每日最新资讯28at.com
2、案例解析
1Cn28资讯网——每日最新资讯28at.com
always@(*) begin case(sel[1:0]) 2'b00: data1 = 3'd0 ; 2'b01: data1 = 3'd1 ; 2'b10: data1 = 3'd2 ; 2'b11: data1 = 3'd3 ; 2'b1z: data1 = 3'd4 ; 2'b1x: data1 = 3'd5 ; default: data1 = 3'd7 ; endcase end always@(*) begin casez(sel[1:0]) 2'b00: data2 = 3'd0 ; 2'b01: data2 = 3'd1 ; 2'b10: data2 = 3'd2 ; 2'b11: data2 = 3'd3 ; 2'b1z: data2 = 3'd4 ; 2'b1x: data2 = 3'd5 ; default: data2 = 3'd7 ; endcase end
always@(*) begin casex(sel[1:0]) 2'b00: data3 = 3'd0 ; 2'b01: data3 = 3'd1 ; 2'b10: data3 = 3'd2 ; 2'b11: data3 = 3'd3 ; 2'b1z: data3 = 3'd4 ; 2'b1x: data3 = 3'd5 ; default: data3 = 3'd7 ; endcase end
always@(*) begin casez(sel[1:0]) 2'b00: data4 = 3'd0 ; 2'b01: data4 = 3'd1 ; 2'b10: data4 = 3'd2 ; 2'b11: data4 = 3'd3 ; 2'b1?: data4 = 3'd4 ; 2'b1x: data4 = 3'd5 ; default: data4 = 3'd7 ; endcase end
always@(*) begin casex(sel[1:0]) 2'b00: data5 = 3'd0 ; 2'b01: data5 = 3'd1 ; 2'b10: data5 = 3'd2 ; 2'b11: data5 = 3'd3 ; 2'b1?: data5 = 3'd4 ; 2'b1x: data5 = 3'd5 ; default: data5 = 3'd7 ; endcase end
- sel[1:0]为1’b1z时,命中了[2'b1z: data2 = 3'd4 ;],data1被赋值3’d4
- sel[1:0]为1’b1x时,命中了[2'b1x: data2 = 3'd5 ;],data1被赋值3’d5
casez语句中Z状态会被忽略,不做比较,X依旧进行比较- sel[1:0]为1’b1z时,实际仅比较sel[1],命中了[2'b10: data2 = 3'd2 ;]和[2'b1z: data2 = 3'd4; ],根据优先级原则, data2被赋值3’d2
- sel[1:0]为1’b1x时,依旧比较sel[1:0],命中了[2'b1x: data2 = 3'd5 ;], data2被赋值3’d5
- sel[1:0]为1’b1z时,实际仅比较sel[1],命中了[2'b10: data2 = 3'd2 ;], data3被赋值3’d2
- sel[1:0]为1’b1x时,实际仅比较sel[1],命中了[2'b10: data2 = 3'd2 ;], data3被赋值3’d2
- sel[1:0]为1’b1z时,实际仅比较sel[1],命中了[2'b10: data2 = 3'd2 ;], data4被赋值3’d2
- sel[1:0]为1’b1x时,同时命中了[2'b1?: data4 = 3'd4 ;]和[2'b1x: data4 = 3'd5 ;],根据优先级原则,data4被赋值3’d4
- sel[1:0]为1’b1z时,实际仅比较sel[1],命中了[2'b10: data2 = 3'd2 ;]、[2'b1?: data5 = 3'd4 ;]、[2'b1x: data5 = 3'd5 ;],根据优先级原则,data5被赋值3’d2
- sel[1:0]为1’b1x时,实际仅比较sel[1],命中了[2'b10: data2 = 3'd2 ;]、[2'b1?: data5 = 3'd4 ;]、[2'b1x: data5 = 3'd5 ;],根据优先级原则,data5被赋值3’d2
1Cn28资讯网——每日最新资讯28at.com
3、Do-not-care values 参考说明
1Cn28资讯网——每日最新资讯28at.com
1Cn28资讯网——每日最新资讯28at.com
SystemVerilog(IEEE Std 1800-2017)和verilog(IEEE P1364-2005)标准关于casez、casex的描述是一致的:截图如下: 1Cn28资讯网——每日最新资讯28at.com
End1Cn28资讯网——每日最新资讯28at.com
1Cn28资讯网——每日最新资讯28at.com
1Cn28资讯网——每日最新资讯28at.com
标签:
-
近日,上海青浦区法院判决轿车从天而降电动车主被撞身亡案,轿车车主被判有期徒刑一年。案件显示当时男子驾驶轿车在上海某路段行驶,前车忽然转弯提速超车,
-
作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对“势”的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
-
来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
-
来源 | 价值星球Planet作者 | 归去来自己“当家”的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
-
7月29日消息,根据市场调查机构Counterpoint Research公布的最新报告,2023年第2季度中国智能手机销量同比下降4%,创新自2014年以来第2季度销量新低。报
-
7月25日,OPPO正式发布K系列新品—— OPPO K11 。此次 K11 在中端手机市场长期被忽视的影像板块发力,突破性地搭载索尼 IMX890 旗舰大底主摄,支持 OIS
-
一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
-
距离 Windows 11 发布已经过去一周,在过去一周里,很多数码爱好者围绕其对 Android 应用的支持、对老机型的升级问题展开了激烈讨论。与以往不同的是,在这次大
-
据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支