chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

verilog語(yǔ)法說明之case casez case

sanyue7758 ? 來源: IC的世界 ? 2023-09-20 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、語(yǔ)法說明

在rtl仿真中,有四種狀態(tài),分別是0、1、x(unknown values)和z(high-impedance values)。

case 結(jié)構(gòu)體中:0,1,X與Z是四種不同的狀態(tài),case條件比較時(shí)會(huì)檢測(cè)比較雙方每個(gè)bit是否完全相等。

casez 結(jié)構(gòu)體中:把Z當(dāng)做don’t care conditions,case條件比較時(shí),比較雙方存在Z值的bit位不參與比較 ,其他比特位相等則視為條件命中

casex 結(jié)構(gòu)體中:把Z和X當(dāng)做don’t care conditions,case條件比較時(shí),比較雙方存在Z或者X的bit位不參與比較,其他比特位相等則視為條件命中

在SystemVerilog和Verilog中,

case、casex、casez都是可綜合的

在casex、casez中推薦使用 ?來替換Z和X

case、casex、casez語(yǔ)句中,如果命中多個(gè)case條件,則執(zhí)行命中的第一個(gè)case

2、案例解析

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
case語(yǔ)句中4種狀態(tài)都會(huì)比較匹配

sel[1:0]為1’b1z時(shí),命中了[2'b1z: data2 = 3'd4 ;],data1被賦值3’d4

sel[1:0]為1’b1x時(shí),命中了[2'b1x: data2 = 3'd5 ;],data1被賦值3’d5

casez語(yǔ)句中Z狀態(tài)會(huì)被忽略,不做比較,X依舊進(jìn)行比較
sel[1:0]為1’b1z時(shí),實(shí)際僅比較sel[1],命中了[2'b10: data2 = 3'd2 ;]和[2'b1z: data2 = 3'd4; ],根據(jù)優(yōu)先級(jí)原則, data2被賦值3’d2

sel[1:0]為1’b1x時(shí),依舊比較sel[1:0],命中了[2'b1x: data2 = 3'd5 ;], data2被賦值3’d5

casex語(yǔ)句中Z和X狀態(tài)會(huì)被忽略,不做比較

sel[1:0]為1’b1z時(shí),實(shí)際僅比較sel[1],命中了[2'b10: data2 = 3'd2 ;], data3被賦值3’d2

sel[1:0]為1’b1x時(shí),實(shí)際僅比較sel[1],命中了[2'b10: data2 = 3'd2 ;], data3被賦值3’d2

casez語(yǔ)句中采用?替換Z狀態(tài)

sel[1:0]為1’b1z時(shí),實(shí)際僅比較sel[1],命中了[2'b10: data2 = 3'd2 ;], data4被賦值3’d2

sel[1:0]為1’b1x時(shí),同時(shí)命中了[2'b1?: data4 = 3'd4 ;]和[2'b1x: data4 = 3'd5 ;],根據(jù)優(yōu)先級(jí)原則,data4被賦值3’d4

casex語(yǔ)句中采用?替換Z狀態(tài)

sel[1:0]為1’b1z時(shí),實(shí)際僅比較sel[1],命中了[2'b10: data2 = 3'd2 ;]、[2'b1?: data5 = 3'd4 ;]、[2'b1x: data5 = 3'd5 ;],根據(jù)優(yōu)先級(jí)原則,data5被賦值3’d2

sel[1:0]為1’b1x時(shí),實(shí)際僅比較sel[1],命中了[2'b10: data2 = 3'd2 ;]、[2'b1?: data5 = 3'd4 ;]、[2'b1x: data5 = 3'd5 ;],根據(jù)優(yōu)先級(jí)原則,data5被賦值3’d2

0727b422-56e6-11ee-939d-92fbcf53809c.png


3、Do-not-care values 參考說明


SystemVerilog(IEEE Std 1800-2017)和verilog(IEEE P1364-2005)標(biāo)準(zhǔn)關(guān)于casez、casex的描述是一致的:截圖如下:

07437068-56e6-11ee-939d-92fbcf53809c.png

0757441c-56e6-11ee-939d-92fbcf53809c.png   


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真
    +關(guān)注

    關(guān)注

    52

    文章

    4400

    瀏覽量

    137628
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1370

    瀏覽量

    114082
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    393

    瀏覽量

    62371
  • 語(yǔ)法
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    10474
  • 結(jié)構(gòu)體
    +關(guān)注

    關(guān)注

    1

    文章

    131

    瀏覽量

    11296

原文標(biāo)題:verilog語(yǔ)法-淺談case casez casex

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    零基礎(chǔ)學(xué)FPGA(四)Verilog語(yǔ)法基基礎(chǔ)基礎(chǔ)(中)

    表達(dá)式位寬必須相等,例如上圖都是16位整型,如果不加以說明,系統(tǒng)會(huì)以默認(rèn)值32位控制表達(dá)式位寬。下面是case,casez,case語(yǔ)句的真值表這個(gè)表其實(shí)還是很好記的
    發(fā)表于 04-07 17:43

    新人求教關(guān)于case語(yǔ)法問題:case里2個(gè)端口是什么意思?

    四選一多路選擇器其中一部分case ({S1, S0})2'b00: out=io;2'b01: out=i1;2'b10: out=i2;2'b11: out=i3;case里2個(gè)端口是什么意思? 是s1=s0=2'b00嗎?謝謝!
    發(fā)表于 09-18 12:07

    在SpinalHDL中關(guān)于casez的使用

    為:沒什么大的問題。但我們知道,在Verilog中,存在case,casez,casex三種語(yǔ)法(本篇不做三種語(yǔ)法的區(qū)分與討論,對(duì)此感興趣的
    發(fā)表于 07-06 10:59

    verilog中if與case語(yǔ)句不完整產(chǎn)生鎖存器的原因分析

      在很多地方都能看到,verilog中if與case語(yǔ)句必須完整,即if要加上else,case后要加上default語(yǔ)句,以防止鎖存器的發(fā)生,下載內(nèi)容中就談到了其中原因。
    發(fā)表于 09-16 09:29 ?24次下載

    關(guān)于verilog的學(xué)習(xí)經(jīng)驗(yàn)簡(jiǎn)單分享

    學(xué)習(xí)verilog最重要的不是語(yǔ)法,“因?yàn)?0%的語(yǔ)法就能完成90%的工作”,verilog語(yǔ)言常用語(yǔ)言就是always@(),if~else,ca
    發(fā)表于 03-26 14:06 ?3161次閱讀
    關(guān)于<b class='flag-5'>verilog</b>的學(xué)習(xí)經(jīng)驗(yàn)簡(jiǎn)單分享

    FPGA代碼經(jīng)驗(yàn) case,casez,casex語(yǔ)句

    使用case語(yǔ)句代替嵌套的if-else將會(huì)產(chǎn)生更易讀的代碼,更好的邏輯利用率和更高的性能。
    的頭像 發(fā)表于 12-11 10:42 ?7000次閱讀

    Verilog語(yǔ)法進(jìn)階

    Verilog語(yǔ)法進(jìn)階說明。
    發(fā)表于 05-06 16:14 ?30次下載

    一文淺析case、casex、casez區(qū)別

    先,case的描述,匹配都是從上到下進(jìn)行的,如果使用了casez,看上面的casez的列表,只要輸入有z/?的話,就能和任意匹配。
    發(fā)表于 09-30 14:56 ?4832次閱讀

    Verilog語(yǔ)法generate for、generate if、generate case

    Verilog-2005中有3個(gè)generate 語(yǔ)句可以用來很方便地實(shí)現(xiàn)重復(fù)賦值和例化(generate for)或根據(jù)條件選擇性地進(jìn)行編譯(generate if和generate case)等功能。接下來就一起看下這3個(gè)語(yǔ)句的應(yīng)用場(chǎng)景和應(yīng)用方法吧。
    的頭像 發(fā)表于 12-28 15:21 ?3861次閱讀

    Verilog中的If語(yǔ)句和case語(yǔ)句介紹

    。這些語(yǔ)句統(tǒng)稱為順序語(yǔ)句。case 語(yǔ)句和 if 語(yǔ)句都是 verilog 中順序語(yǔ)句的示例。在這篇文章的其余部分,我們將討論如何在verilog中使用這兩個(gè)語(yǔ)句。然后,我們考慮這兩個(gè)結(jié)構(gòu)的簡(jiǎn)短示例,以
    的頭像 發(fā)表于 05-11 15:37 ?6341次閱讀
    <b class='flag-5'>Verilog</b>中的If語(yǔ)句和<b class='flag-5'>case</b>語(yǔ)句介紹

    CASE:創(chuàng)建多路分支

    CASE:創(chuàng)建多路分支 說明 使用“創(chuàng)建多路分支”指令,可以根據(jù)表達(dá)式的值執(zhí)行多個(gè)指令序列中的一個(gè)。 表達(dá)式的值必須為整數(shù)或位字符串。執(zhí)行 CASE 指令時(shí),會(huì)將表達(dá)式(變量)的值與多個(gè)常數(shù)的值進(jìn)行
    的頭像 發(fā)表于 06-27 11:46 ?1546次閱讀
    <b class='flag-5'>CASE</b>:創(chuàng)建多路分支

    Switch case中的case順序

    Switch case中的case順序 Switch 可能轉(zhuǎn)化成多種不同算法的代碼。其中最常見的是跳轉(zhuǎn)表和比較鏈/樹。當(dāng)switch用比較鏈的方式轉(zhuǎn)化時(shí),編譯器會(huì)產(chǎn)生if-else-if的嵌套代碼
    的頭像 發(fā)表于 11-20 18:16 ?1507次閱讀

    java switch case語(yǔ)法規(guī)則

    在Java中,switch case語(yǔ)句是一種用于多分支選擇的控制流語(yǔ)句。它允許根據(jù)某個(gè)表達(dá)式的值來執(zhí)行不同的代碼塊。下面是關(guān)于switch case語(yǔ)法規(guī)則的詳細(xì)解釋。 基本語(yǔ)法 s
    的頭像 發(fā)表于 11-30 14:40 ?3750次閱讀

    java中的switch語(yǔ)句 case的取值

    Java中的switch語(yǔ)句是一種用于多重條件判斷的語(yǔ)句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊。在switch語(yǔ)句中,case關(guān)鍵字用來指定不同的取值。 在Java中,switch語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下
    的頭像 發(fā)表于 11-30 16:05 ?1857次閱讀

    oracle case when 語(yǔ)法介紹

    Oracle的CASE WHEN語(yǔ)法是一種在數(shù)據(jù)庫(kù)查詢中使用的條件語(yǔ)句,它提供了一種在SELECT語(yǔ)句中根據(jù)條件對(duì)結(jié)果進(jìn)行轉(zhuǎn)換或篩選的方法。在本文中,我們將詳細(xì)介紹Oracle的CASE WHEN
    的頭像 發(fā)表于 12-06 10:21 ?3442次閱讀