什么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