verilog语法-浅谈case casez casex
来源:
责编:
时间:2023-09-04 10:17:00
208观看
导读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
84O28资讯网——每日最新资讯28at.com
2、案例解析
84O28资讯网——每日最新资讯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
84O28资讯网——每日最新资讯28at.com
3、Do-not-care values 参考说明
84O28资讯网——每日最新资讯28at.com
84O28资讯网——每日最新资讯28at.com
SystemVerilog(IEEE Std 1800-2017)和verilog(IEEE P1364-2005)标准关于casez、casex的描述是一致的:截图如下: 84O28资讯网——每日最新资讯28at.com
End84O28资讯网——每日最新资讯28at.com
84O28资讯网——每日最新资讯28at.com
84O28资讯网——每日最新资讯28at.com
标签:
-
小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
-
旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
-
旭日森林无糖仙草乌龙茶510ml*15瓶平时要卖为79.9元,今日下单领取50元优惠券,到手价为29.9元。产品规格:0糖0卡0脂,添加草本仙草汁,清凉爽口,富含茶多酚,保留
-
8月5日消息,此前就有爆料称,一加首款折叠屏手机将会在第三季度上市,如今随着时间临近,新机的各种消息也开始浮出水面。据悉,这款新机将会被命名为“On
-
转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
-
场景码猿慢病云管理系统中其实高并发的场景不是很多,没有必要每个接口都去考虑并发高的场景,比如添加住院患者的这个接口,具体的业务代码就不贴了,业务伪代码如下:图片上述代码有
-
Tenstorrent是一家由芯片行业资深人士Jim Keller领导的加拿大初创公司,专注于开发人工智能芯片,该公司周三表示,已经从现代汽车集团和三星投资基金等
-
距离 Windows 11 发布已经过去一周,在过去一周里,很多数码爱好者围绕其对 Android 应用的支持、对老机型的升级问题展开了激烈讨论。与以往不同的是,在这次大
-
2022年第一季度临近尾声,在该季度内,许多品牌陆续发布自己的最新产品,让大家从全新的角度来了解当今的手机技术。手机是电子设备中,更新迭代十分迅速的一款产品,基