《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > Verilog語(yǔ)言中case、casex、casez的用法和區(qū)別

Verilog語(yǔ)言中case、casex、casez的用法和區(qū)別

2022-10-01
來(lái)源:FPGA設(shè)計(jì)論壇
關(guān)鍵詞: Verilog case casex

  Verilog語(yǔ)言中casecasex、casez的用法和區(qū)別

  casez與casex語(yǔ)句是case語(yǔ)句的兩種變體, 在寫testbench時(shí)用到。

  一、case、casex、casez的區(qū)別

  下表給出case、casex、casez的真值表:

  1.png

  在case語(yǔ)句中,敏感表達(dá)式中與各項(xiàng)值之間的比較是一種全等比較,每一位都相同才認(rèn)為匹配。

  在casez語(yǔ)句中,如果分支表達(dá)式某些位的值為高阻z,那么對(duì)這些位的比較就會(huì)忽略,不予考慮,而只關(guān)注其他位的比較結(jié)果。

  在casex語(yǔ)句中,則把這種處理方式進(jìn)一步擴(kuò)展到對(duì)x的處理,即如果比較雙方有一方的某些位的值是z或x,那么這些位的比較就不予考慮。

  二、case/casez/casex 在simulation/synthesis的區(qū)別

  有的網(wǎng)上說(shuō)casex和casez屬于不可綜合語(yǔ)句,這是針對(duì)一般電路不會(huì)出現(xiàn)x狀態(tài)來(lái)說(shuō)的,但是綜合工具并不會(huì)對(duì)x,z認(rèn)識(shí)這個(gè)狀態(tài),所以綜合出來(lái)的電路是一樣的。

  使用過(guò)程中許需要注意的問(wèn)題:

  1)一般經(jīng)常使用到的是casez語(yǔ)句,最好少用casex

  2)case/casez/casex其實(shí)都是可綜合的

  3)在電路中,可以用?來(lái)表示無(wú)關(guān)值的z

  4)case的描述,匹配都是從上到下進(jìn)行的

  仿真的不同

  1)對(duì)于case

  case (sel)

  2'b00:      y = a;

  2'b01:      y = b;

  2'bx0:      y = c;

  2'b1x:      y = d;

  2'bz0:      y = e;

  2'b1?:      y = f;

  default :   y = g;

  endcase

  對(duì)于case來(lái)說(shuō),每一種情況都會(huì)識(shí)別(1/0/z/x)

  當(dāng)sel的狀態(tài)是一下情況時(shí),會(huì)出現(xiàn)以下結(jié)果

  2.png

  2)對(duì)于casez

  casez (sel)

  2'b00:      y = a;

  2'b01:      y = b;

  2'bx0:      y = c;

  2'b1x:      y = d;

  2'bz0:      y = e;

  2'b1?:      y = f;

  default:    y = g;

  endcase

  首先,case的描述,匹配都是從上到下進(jìn)行的,如果使用了casez,看上面的casez的列表,只要輸入有z/?的話,就能和任意匹配。

  3.png

  3)對(duì)于casex

  casex (sel)

  2'b00   :   y = a;

  2'b01   :   y = b;

  2'bx0   :   y = c;

  2'b1x   :   y = d;

  2'bz0   :   y = e;

  2'b1?   :   y = f;

  default :   y = g;

  endcase

  casex也是從上到下匹配,當(dāng)出現(xiàn)x/z/?的輸入的時(shí)候,都不會(huì)care,只管不是大大情況來(lái)匹配

  4.png

  綜合的不同

  綜合的時(shí)候,因?yàn)榫C合工具其實(shí)都不會(huì)管你什么x/z/?,對(duì)于綜合工具來(lái)說(shuō)是一樣的,所以case/casez/casex不同寫法的綜合結(jié)果,例子都是同樣的。

  例一:

  case (sel)

  2'b00   :   mux_out = mux_in[0];

  2'b01   :   mux_out = mux_in[1];

  2'b1?   :   mux_out = mux_in[2];

  default :   mux_out = mux_in[3];

  endcase

  例二:

  case (sel)

  2'b00   :   mux_out = mux_in[0];

  2'b01   :   mux_out = mux_in[1];

  2'b1x   :   mux_out = mux_in[2];

  default :   mux_out = mux_in[3];

  endcase

  這倆個(gè)例子的結(jié)果是一樣的。

  case(不是casez/casex的時(shí)候)的列表里面的x和z,都被綜合工具認(rèn)為是不可達(dá)到的狀態(tài)就被去掉了。casez和casex里面的x/z都被認(rèn)為是don’t care。

  對(duì)于綜合、仿真的結(jié)果

  1)在實(shí)際寫代碼的時(shí)候,如果使用case的時(shí)候,盡量不要用x/z/?,綜合工具也會(huì)不care

  2)casez和casex綜合的結(jié)果是一致的。

  3)casez稍好用一些,因?yàn)樗梢杂脕?lái)代表don’t care的值

  4)最重要的一點(diǎn)就是,casez和casex其實(shí)沒(méi)有孰優(yōu)孰劣

  5)casez語(yǔ)句用來(lái)處理不考慮高阻值z(mì)的比較過(guò)程,casex語(yǔ)句則將高阻值z(mì)和不定值都視為不必關(guān)心的情況。所謂不必關(guān)心的情況,即在表達(dá)式進(jìn)行比較時(shí),不將該位的狀態(tài)考慮在內(nèi)。這樣在case語(yǔ)句表達(dá)式進(jìn)行比較時(shí),就可以靈活地設(shè)置以對(duì)信號(hào)的某些位進(jìn)行比較。




更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

圖片.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 免费一级黄色片 | 亚洲国产精品+制服丝袜 | 亚洲高清视频免费 | 波多野结衣 一区二区 | 欧美精品在欧美一区二区 | 亚洲宅男天堂a在线 | 日韩中文字幕在线播放 | 国产91激情对白露脸全程 | 奇米影视777四色米奇影院 | 韩国色网| 直接观看黄网站免费视频 | 久操色| 狠狠香蕉 | 午夜影院伦理 | 男生插女生阴道视频 | 欧美成人免费全部色播 | 亚洲色图综合在线 | 2020年精品国产午夜福利在线 | 91久久人澡人人添人人爽 | 中文字幕第一页国产 | 男人的天堂色偷偷亚洲京东 | 日韩一区二区三区四区区区 | 亚洲成a人片在线播放观看国产 | a级毛片免费完整视频 | 亚洲欧美在线免费 | 妞干网在线播放 | 日韩免费视频播播 | 天天草夜夜爽 | 在线播放影院 | 制服丝袜在线看 | 国产成人aa免费视频 | 一级国产黄色片 | 91短视频版高清在线观看免费 | 国产在线不卡免费播放 | 亚洲天堂免费观看 | 亚洲国产精久久久久久久 | 未满十八18勿进黄网站免费看 | 亚洲国产最新在线一区二区 | 欧美性猛交xxx猛交 欧美性生交xxxxx久久久 | 亚洲精品午夜aaa级久久久久 | 免费人成大片在线观看播放 |