色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

考慮x和z在verilog條件語句中的使用情況

全棧芯片工程師 ? 來源:全棧芯片工程師 ? 2023-11-02 09:40 ? 次閱讀

首先,考慮x和z在verilog條件語句中的使用情況,然后我們再考慮在verilog中用x和z給其他reg/wire賦值的情況。

(一)首先,考慮x和z在verilog條件語句中的使用情況。


Verilogcase語句中,2'b1x和2’b0x造成的仿真器、綜合器的mismatch,

舉個例子:

Simulators:

match2'b1xto11or10

match2’b0xto01or00

HDLCompilertool

both2'b1xand2’b0xareevaluatedtofalse. Becauseofthesimulationandsynthesismismatches,theHDLCompilertoolissuesanELAB-310warning.

case(A)
2'b1x:...//Youwant2'b1xtomatch11and10but
//HDLCompileralwaysevaluatesthiscomparisontofalse
2'b0x:...//youwant2'b0xtomatch00and01but
//HDLCompileralwaysevaluatesthiscomparisontofalse
default:...
endcase

官方說明:我們可以得到兩點信息

98dd139e-78c9-11ee-939d-92fbcf53809c.png



第一點:


Asimulatorevaluatesanunknown(x)orhighimpedance(z)asadistinctvaluedifferentfrom0or1;however,anxorzvaluebecomesa0or1duringsynthesis.



第二點:



DC工具會直接將verilog比較判斷語句中的xorz直接理解為false。所以禁止在verilog比較判斷語句中使用xorz。


參見如下代碼,DC工具會理解if(A==1'bx)為false,因此DC會直接assigns1toregB并且報ELAB-310warning.

moduletest(
inputA,
outputregB
);
always@(*)begin
if(A==1'bx)
B=0;
else
B=1;
end
endmodule



實際綜合如下,果不其然,有意思哇!后面幾個稍微復雜點的代碼更有趣!

99049b62-78c9-11ee-939d-92fbcf53809c.png




再補充z的使用:

990c9556-78c9-11ee-939d-92fbcf53809c.png

結論:仿真工具可以理解x、z、0、1狀態(tài),但是綜合工具遇到帶x、z的比較判斷條件時,直接理解該條件為false。



(二)然后我們再考慮在verilog中用x和z給其他reg/wire賦值的情況。




案例1:z賦值是沒問題的,會綜合出來三態(tài)門,參見如下代碼1:

modulethree_state(ENABLE,IN1,OUT1);
inputIN1,ENABLE;
outputregOUT1;


always@(ENABLEorIN1)begin
if(ENABLE)
OUT1=IN1;
else
OUT1=1'bz;//assignshigh-impedancestate
end
endmodule

99341a40-78c9-11ee-939d-92fbcf53809c.png

994c588a-78c9-11ee-939d-92fbcf53809c.png

Logicalbufferofasingleinputwithanactive-highoutputenable.Theoutputis3-statedwhentheenableislow.




真值表:

9959323a-78c9-11ee-939d-92fbcf53809c.png



案例2:z賦值是沒問題的,會綜合出來三態(tài)門,參見如下代碼2:

modulex_state(IN1,OUT1);
input[1:0]IN1;
outputreg[1:0]OUT1;


always@(*)begin
case(IN1)
2'b00:OUT1=2'b00;
2'b01:OUT1=2'b01;
2'b10:OUT1=2'b10;
default:OUT1=2'bzz;//assignshigh-impedancestate
endcase
end
endmodule

995e6890-78c9-11ee-939d-92fbcf53809c.png

9971e6c2-78c9-11ee-939d-92fbcf53809c.png




再看X賦值是什么情況。


案例1:利用DC綜合工具實測如下代碼綜合效果:

modulex_state(IN1,OUT1);
input[1:0]IN1;
outputreg[1:0]OUT1;


always@(*)begin
case(IN1)
2'b00:OUT1=2'b01;
2'b11:OUT1=2'b00;
default:OUT1=2'bxx;
endcase
end
endmodule

997c693a-78c9-11ee-939d-92fbcf53809c.png

可見,x賦值直接被DC工具省略,也沒有l(wèi)atch出現(xiàn)。

案例2:

modulex_state(IN1,OUT1);
input[1:0]IN1;
outputreg[1:0]OUT1;


always@(*)begin
case(IN1)
2'b00:OUT1=2'b00;
2'b01:OUT1=2'b01;
2'b10:OUT1=2'b10;
default:OUT1=2'bxx;//assignshigh-impedancestate
endcase
end
endmodule

999f6e08-78c9-11ee-939d-92fbcf53809c.png

可見,x賦值直接被DC工具省略,也沒有l(wèi)atch出現(xiàn)。

案例3:注釋掉default,非full_case,必然出現(xiàn)latch!

modulex_state(IN1,OUT1);
input[1:0]IN1;
outputreg[1:0]OUT1;


always@(*)begin
case(IN1)
2'b00:OUT1=2'b00;
2'b01:OUT1=2'b01;
2'b10:OUT1=2'b10;
endcase
end
endmodule

99a42da8-78c9-11ee-939d-92fbcf53809c.png

因此,盡管x賦值直接被DC工具省略,也沒有l(wèi)atch出現(xiàn),但是仍然建議不要使用x賦值,除非full_case情況下,不會執(zhí)行default條件下的x賦值分支,寫x賦值可以用于仿真查看波形,如下代碼所示:

always@(*)begin
case(pmu_state)
//Duringpowerdownsequence,shiftingpatterntoactive
//ISOLATE->RETAIN->PWRDOWN
//andstayunchangeduringpowereddownstate
`ARM_POWERING_DOWN,`ARM_POWERED_DOWN:begin
nxt_isolate_n=1'b0;
nxt_retain_n=ISOLATEn;
nxt_pwrdown=~RETAINn;
end


//Duringpowerupsequence,shiftingpatterntoactive
//PWRDOWN->RETAIN->ISOLATE
`ARM_POWERING_UP,`ARM_POWERED_UP:begin
nxt_pwrdown=1'b0;
nxt_retain_n=~PWRDOWN;
nxt_isolate_n=RETAINn;
end


//PropagateX
default:begin
nxt_isolate_n=1'bX;
nxt_retain_n=1'bX;
nxt_pwrdown=1'bX;
end
endcase
end

審核編輯:湯梓紅

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

    關注

    14

    文章

    1017

    瀏覽量

    83721
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110074
  • HDL
    HDL
    +關注

    關注

    8

    文章

    327

    瀏覽量

    47377
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68524
  • 綜合器
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6449

原文標題:Verilog中,2'b1x和2’b0x造成的仿真器、綜合器的mismatch?!

文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CUBEIDE運行完可以看RAM的使用情況,運行中可以實時查看RAM的使用情況嗎?

    CUBEIDE運行完可以看RAM的使用情況,運行中可以實時查看RAM的使用情況嗎?以及負載情況? 圖片是運行完可以看RAM使用情況,是否可以運行中實時查看?是不是cubemonito
    發(fā)表于 03-12 07:56

    如何查看RAM使用情況?

    嗨, 我正在使用STM32L053 Nucleo,我已經(jīng)為它運行了一些代碼,我希望做一個RAM估計來查看當前固件的RAM使用情況。如何查看RAM使用情況? 問候#記憶
    發(fā)表于 08-05 10:08

    Android應用的內存使用情況檢查方法

    如何檢查 Android 應用的內存使用情況
    發(fā)表于 03-30 13:36

    電池使用情況統(tǒng)計信息

    電池使用情況信息根據(jù)電池使用情況統(tǒng)計信息和電源配置文件中的值計算得出。電池使用情況統(tǒng)計信息框架可通過跟蹤設備組件不同狀態(tài)下維持的時間來自動確定電池
    發(fā)表于 12-31 07:01

    如何檢查imx6中的GPU使用情況

    板上運行 Qt6 應用程序,想觀察該 Qt6 應用程序對 GPU 的使用情況。 如何檢查應用程序的 GPU 使用情況或該應用程序是否真的使用 GPU?我們可以查看和確認該
    發(fā)表于 05-22 07:04

    SoC如何查看內存使用情況

    查看系統(tǒng)內存: free -h 查看ION內存 NPU內存使用情況: cat /sys/kernel/debug/ion/bm_npu_heap_dump/summary | head -2VPU
    發(fā)表于 09-19 07:23

    主流GPS芯片使用情況

    主流GPS芯片使用情況
    發(fā)表于 11-27 14:34 ?13次下載

    Linux系統(tǒng)下使用top命令查看CPU使用情況

    Linux系統(tǒng)下,使用top命令查看CPU使用情況
    發(fā)表于 07-10 11:46 ?4394次閱讀
    <b class='flag-5'>在</b>Linux系統(tǒng)下使用top命令查看CPU<b class='flag-5'>使用情況</b>

    STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情況

    STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情況
    發(fā)表于 12-02 09:06 ?13次下載
    STM32/KEIL/MDK 查看 FLASH 和 RAM <b class='flag-5'>使用情況</b>

    SAS運算符in語句中的應用

    前面通過對SAS Base的學習,我想大家對in運算符并不陌生,它廣泛的應用于數(shù)據(jù)步或SQL條件語句中,進行條件判斷或數(shù)據(jù)篩選,進而訪問特定觀測值。
    的頭像 發(fā)表于 05-19 14:38 ?2282次閱讀
    SAS運算符in<b class='flag-5'>在</b>宏<b class='flag-5'>語句中</b>的應用

    LPC86x上的開關矩陣使用情況

    電子發(fā)燒友網(wǎng)站提供《LPC86x上的開關矩陣使用情況.pdf》資料免費下載
    發(fā)表于 08-17 10:48 ?0次下載
    LPC86<b class='flag-5'>x</b>上的開關矩陣<b class='flag-5'>使用情況</b>

    LPC86x ACMP使用情況

    電子發(fā)燒友網(wǎng)站提供《LPC86x ACMP使用情況.pdf》資料免費下載
    發(fā)表于 08-17 10:34 ?0次下載
    LPC86<b class='flag-5'>x</b> ACMP<b class='flag-5'>使用情況</b>

    LPC86x ADC使用情況

    電子發(fā)燒友網(wǎng)站提供《LPC86x ADC使用情況.pdf》資料免費下載
    發(fā)表于 08-16 10:42 ?0次下載
    LPC86<b class='flag-5'>x</b> ADC<b class='flag-5'>使用情況</b>

    python if語句多個條件怎么用

    Python中,可以使用多個條件來編寫if語句。這些條件可以使用邏輯運算符進行組合,包括and、or和not。 當if語句中有多個
    的頭像 發(fā)表于 11-21 16:45 ?3027次閱讀

    TMS320C64x高性能DSP應用中的高速緩存使用情況

    電子發(fā)燒友網(wǎng)站提供《TMS320C64x高性能DSP應用中的高速緩存使用情況.pdf》資料免費下載
    發(fā)表于 10-21 09:43 ?0次下載
    TMS320C64<b class='flag-5'>x</b><b class='flag-5'>在</b>高性能DSP應用中的高速緩存<b class='flag-5'>使用情況</b>
    主站蜘蛛池模板: 交video| 用震蛋调教女性下面视频| 国产99精品在线观看| 全黄h全肉短篇禁乱np| thermo脱色摇床安卓下载| 欧美黑人巨大xxxxx| 99久久免费精品| 蜜桃视频无码区在线观看| 97国产成人精品视频| 嫩小xxxxbbbb| np高h肉文| 日韩精品a在线视频| 高清无码中文字幕影片| 撕开美女的衣服2| 国产人妻人伦精品无码.麻豆| 亚洲成在人线视频| 九九热在线视频观看这里只有精品| 一本之道高清www在线观看| 久久性综合亚洲精品电影网| 4388成人| 秋霞在线看片无码免费| 广播电台在线收听| 亚洲AV无码乱码A片无码蜜桃| 黑人强伦姧人妻日韩那庞大的| 亚洲热在线视频| 久久伊人中文字幕有码| 99热这里只有 精品| 上原结衣快播| 国内精品久久影视免费| 伊人久久精品AV无码一区| 免费A级毛片无码无遮挡| yellow在线观看免费高清的日本| 色欲AV精品人妻一区二区三区 | 三叶草成人| 久久AV国产麻豆HD真实乱| 成人性生交大片免费看中文| 2019午夜福利757视频第12集| 白丝女仆被强扒内裤| 特级淫片大乳女子高清视频 | 色狗综合网| 国产亚洲999精品AA片在线爽|