【发布时间】:2013-09-22 14:23:25
【问题描述】:
我刚开始学习一些verilog,遇到了一个问题,在其他语言中通常可以使用for循环来解决。
s2 s1 s0 m
0 0 0 u
0 0 1 v
0 1 0 w
0 1 1 x
1 0 0 y
1 0 1 z
这是问题的真值表,其中 s2,s1,s0 是开关,(u,v,w,x,y,z) 是输入,如果设置了某些开关,则将设置输出 (m)作为输入之一。但是,这只有 1 位宽,如果 s0,s1,s2 匹配,我们可以将每个 m 分配为以下输入之一。如果它是 3 位宽输入和输出 ex:(u0,u1,u2),(m0,m1,m2) 但每个变量仍然遵循相同的逻辑(例如:u0,u1,u2 都将是如果所有开关均为 0,则输出 m0、m1、m2)如何缩短我的代码。我可以这样做吗:
assign m[3:0] = (~s0&~s1&~s2&u[3:0])
【问题讨论】: