我试图弄清楚基于组合逻辑分配电线的基础知识。
I have:
wire val;
wire x;
wire a;
wire b;
always @*
begin
if(val == 00)
//I want to assign x = a
if(val == 01)
//I want to assign x = b
end
where a
and b
是带有值的电线 - 和x
是一条进入寄存器的电线。
如果您能指出我需要改变的正确方向,我将不胜感激。
wire
s 只能由assign
语句,不能与 if 语句一起使用。
如果你改变x
to reg
类型,然后您将能够将其分配到始终块中。
这将合成完全相同,一个常见的误解是reg
类型变量意味着一个寄存器,但它只是改变了值的分配方式。
或者,您可以使用带有三元运算符的赋值语句?:
,如果您希望它保留为电线类型:
assign x = (val==0) ? a :
(val==1) ? b :
'bx ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)