什麼Verilog的?運算符在下面的代碼中做了什麼?Verilog HDL?運營商
input first_din;
input [7:0] din;
output [127:0] parity;
reg [127:0] parity;
wire [7:0] feedback;
assign feedback = din^(first_din ? 8'b0 : parity[127:120]);
什麼Verilog的?運算符在下面的代碼中做了什麼?Verilog HDL?運營商
input first_din;
input [7:0] din;
output [127:0] parity;
reg [127:0] parity;
wire [7:0] feedback;
assign feedback = din^(first_din ? 8'b0 : parity[127:120]);
在此代碼,?
是 「條件運算符」(?:
)的一部分。是指遊離IEEE標準1800至2012年,表11-1運營商和數據類型。它用於模擬多路複用器。在你的情況,first_din
是選擇和8'b0
和parity[127:120]
是數據輸入。
類似? :C中的運算符,該運算符在else塊中工作簡單。
b = exp. a ? value_1 : value_2
等於
if (exp. a)//if true
b = value_1;
else
b = value_2;
這就如同一個典型的多路轉換器2對1。
輸入:A,B,SEL
輸出:OUT
功能:
IF (SEL = 1) THEN OUT = B , ELSE OUT = A
OUT = SEL ? B : A ;
警告:如果SEL = Z(高阻抗或浮動)THEN OUT = A
這是與典型多路複用器2到1的主要區別是:
(典型多路複用器2到1的功能是:
IF (SEL = 1) THEN OUT = B , ELSE IF(SEL = 0) OUT = A ;
嗨,我如何可以模擬由「條件運算符」解複用器(?)。 – vapham