HDLBits (37) — 三元條件運(yùn)算符
2022-02-12 00:04 作者:僚機(jī)Wingplane | 我要投稿
本題鏈接:
https://hdlbits.01xz.net/wiki/Conditional
Verilog有一個(gè)三元條件運(yùn)算符(??:),很像C:
這可用于根據(jù)條件選擇兩個(gè)值中的一個(gè)(一個(gè)多路復(fù)用器!)不使用 if-then 在組合的 always 塊中。
示例:

題目
給定四個(gè)無符號(hào)數(shù),求出最小值。無符號(hào)數(shù)可以與標(biāo)準(zhǔn)比較運(yùn)算符(a < b)進(jìn)行比較。使用條件運(yùn)算符電路制作雙向最小電路,然后組成一些最小電路來制作一個(gè)四向最小電路。您可能需要一些向量線網(wǎng)來表示中間結(jié)果。
預(yù)期的解決方案長度:大約5行。

答案

輸出波形


條件表達(dá)式有 3 個(gè)操作符,結(jié)構(gòu)描述如下:
計(jì)算時(shí),如果 condition_expression 為真(邏輯值為 1),則運(yùn)算結(jié)果為 true_expression;如果 condition_expression 為假(邏輯值為 0),則計(jì)算結(jié)果為 false_expression。
其實(shí),條件表達(dá)式類似于 2 路(或多路)選擇器,其描述方式完全可以用 if-else 語句代替。當(dāng)然條件操作符也能進(jìn)行嵌套,完成一個(gè)多次選擇的邏輯。
參考資料:
2.4?Verilog 表達(dá)式 | 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-expression.html
標(biāo)簽: