HDLBits (35) — casez實(shí)現(xiàn)的優(yōu)先級(jí)編碼器
2022-02-10 00:15 作者:僚機(jī)Wingplane | 我要投稿
本題鏈接:
https://hdlbits.01xz.net/wiki/Always_casez
為8位輸入構(gòu)建優(yōu)先級(jí)編碼器。給定8位向量,輸出應(yīng)返回向量中的最高位,即1。如果輸入向量沒有高位,則返回0。例如,輸入8'b10010000應(yīng)該輸出3'd4,因?yàn)槲籟4]是最高位。
上一個(gè)case項(xiàng)練習(xí)(always_case2)中有 256 cases。如果case語句中的case項(xiàng)支持無關(guān)位,我們可以減少case(減少到9個(gè)case)。這就是casez的作用:它在比較中將值為z的位視為無關(guān)。
例如,這將實(shí)現(xiàn)上一練習(xí)中的4輸入優(yōu)先級(jí)編碼器:
case語句的行為就像是按順序檢查每個(gè)項(xiàng)(實(shí)際上,它更像是生成一個(gè)巨大的真值表,再生成門電路)。請(qǐng)注意,某些輸入(例如,4‘ b1111)將匹配多個(gè) case 項(xiàng)。選擇第一個(gè)匹配項(xiàng)(因此4‘ b1111匹配第一個(gè)項(xiàng),out = 0,但不匹配后面的任何項(xiàng))。
還有一個(gè)類似的例子,把 x 和 z 都當(dāng)作不在乎。我看不出有什么目的要用它來對(duì)付 casez。
符號(hào) ? 與 z 作用相同,所以2'bz0?和2'b?0是一樣的

題目
提示:
在這里必須使用二進(jìn)制文字,因?yàn)槟枰獮槟承┪恢付▃。

答案

輸出波形

標(biāo)簽: