[問題] verilog中if else和case合成後的差別
假設可能的a只有0~10000之間
case(a)
0:---------------\
. \
. 執行ins1
. /
. /
10:---------------/
11:----------------\
. \
. 執行ins2
. /
. /
100:----------------/
101:--------------\
. \
. \
. 執行ins3
. /
1000:--------------/
1001:------------\
. \
. \
. 執行ins4 假設是個nmos
. / 這個gate電壓為:
10000:------------/ 1:如果a=0
0:elsewhere
↓
以上我可以想像每個case合成後變 以a=0的來說 ins1 ----| ̄ ̄|----->執行的內容
共有一萬個像這樣的transmitting gate組成一個超大多工器
各各平行 即同一時間只有一個transister會通
那寫成
if(a>1000) 執行ins4
else if(a>100) 執行ins3
else if(a>10) 執行ins2
else 執行ins1
應該也是合出上面同義(function上同義)case敘述所合成出的電路吧?
那這樣的話兩種寫法差在哪?寫code的方便性嗎?(如果要寫case就要寫一大堆)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.239.249
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):