verilog語法-淺談case casez casex
來源:
責編:
時間:2023-09-04 10:17:00
353觀看
導讀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
pVX28資訊網——每日最新資訊28at.com
2、案例解析
pVX28資訊網——每日最新資訊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
pVX28資訊網——每日最新資訊28at.com
3、Do-not-care values 參考說明
pVX28資訊網——每日最新資訊28at.com
pVX28資訊網——每日最新資訊28at.com
SystemVerilog(IEEE Std 1800-2017)和verilog(IEEE P1364-2005)標準關于casez、casex的描述是一致的:截圖如下: pVX28資訊網——每日最新資訊28at.com
EndpVX28資訊網——每日最新資訊28at.com
pVX28資訊網——每日最新資訊28at.com
pVX28資訊網——每日最新資訊28at.com
標簽:
-
在vivo S15系列新機的發布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發布,本次就這款耳機新品給大家帶來一個簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產
-
8月5日消息,云存儲服務商Backblaze發布了最新的硬盤故障率報告,年故障率有所上升。Backblaze發布的硬盤季度統計數據,其中包括故障率等重要方面。這些結
-
旭日森林無糖仙草烏龍茶510ml*15瓶平時要賣為79.9元,今日下單領取50元優惠券,到手價為29.9元。產品規格:0糖0卡0脂,添加草本仙草汁,清涼爽口,富含茶多酚,保留
-
模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。可以用來發現應用程序、操作系統和網絡協議等中的漏洞或
-
記者丨寧曉敏 見習生丨汗青出品丨鰲頭財經(theSankei) 前不久,愛奇藝發布了一份亮眼的一季報,不僅營收和會員營收創造歷史最佳表現,其運營利潤也連續6個月實現增長。自去年年初
-
來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、“Ringdoll戒之人形”淘寶店鋪有關外貌的評價,黃山已經聽累了。生于1985年的他,哪
-
作者:無銹缽來源:財經無忌7月16日晚,上海1862時尚藝術中心。伴隨著幻象的精準命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰隊以絕對的優勢戰勝了BLG戰隊,拿下了總決
-
據官方此前宣布,三星將于7月26日在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
-
喜逢開學季,各大商家開始推出自己的新產品,進行打折促銷活動。對于忠實的端游愛好者來說,能夠擁有一款夢寐以求的筆記本電腦是一件十分開心的事。但是現在的