三目運算符
需要看對應的視頻,請點擊視頻編號:001100000065
1、本視頻詳解verilog語言中條件運算符之一的三目運算符以及使用方法。
2、這是ALTERA和VIVADO視頻
5.8?條件運算符

5.8.1三目運算符
Verilog HDL語法中條件運算符(?:)帶有三個操作數(shù)(即三目運算符),其格式一般表達為:

其含義為:當“條件表達式”為真(即邏輯1),執(zhí)行“真表達式”;當“條件表達式”為假(即邏輯0),
執(zhí)行“假表達式”。即當condition_expr為真(即值為1),選擇true_expr;如果condition_expr為假(值為0),
選擇false_expr。如果condition_expr為x?或z?,
結(jié)果將是按以下邏輯true_expr和false_expr按位操作的值:?0與0得0,1與1得1,其余情況為x?。
應用舉例如下:

在上面的表達式中s如果為真,則把t賦值給r;如果s為假,則把u賦值給r。
對應硬件電路圖如下所示。

條件運算符的使用有以下幾點需要注意的地方:
(1)條件表達式的作用實際上類似于多路選擇器,如圖1.3-8所示。同時,其可以用if-else語句來替代。

(2)條件運算符可用在數(shù)據(jù)流建模中的條件賦值,這種情況下條件表達式的作用相當于控制開關(guān)。例如:

其中,表達式Marks > 18如果為真,則Grade_A賦值為student;如果Marks > 18為假,則Grade_C賦值為Student。
對應硬件電路圖如下所示。

(3)條件運算符也可以嵌套使用,每個“真表達式”和“假表達式”本身就可以是一個條件表達式。例如:

上面代碼所代表的含義是:表達式M == 1如果為真,則判斷CTL是否為真,如果CTL為真就將A賦值給OUT,
如果為假就將B賦值給OUT;如果M = = 1為假,則判斷CLT是否為真,如果CLT為真就將C賦值給OUT,
如果為假就將D賦值給OUT。
對應硬件電路圖如下所示。

相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=19