HDLBits Day6
Always case2 ?
没明白这题问什么 : 第一个高电位出现在什么位置,输出该位置
0010 第一个高电位在1点 所以输出1
0101 第一个高电位在0点 所以输出0
1000 第一个高电位在3点 所以输出3
用z代替无关项
case 和casez 要区分开
case语句要加 default项
case语句前加初始化
对比两种判断语句
1、
assign min = (a<b) ?
((a<c) ? ((a<d) ? a:d) : ((c<d)? c:d)) : ((b<c) ? ((b<d) ? b:d) : ((c<d)?c:d));
(1) a<b ((a<c) ? ((a<d) ? a:d) : ((c<d)? c:d))
1.1 a<c ((a<d) ? a:d)
1.1.2 a<d a
1.1.3 a>d d
1.2 a>c ((c<d)? c:d)
1.2.1 c<d c
1.2.2 c>d d
(2) a>b ((b<c) ? ((b<d) ? b:d) : ((c<d)?c:d))
2.1 b<c (b<d) ? b:d
2.1.1 b<d b
2.1.2 b>d d
2.2 b>c (c<d) ? c:d
2.2.1 c<d c
2.2.2 c>d d
a<b<c<d
d<a<b<c
c<d<a<b
d<c<a<b
b<(a,b,c)
d<b<(a,c)
c<(b<a,d)
d<c<b<a
还是有点问题
2、
wire [7:0] min1,min2,min3;
always @(*)
begin
if(a < b)
min1 = a;
else
min1 = b;
if(min1 < c)
min2 = min1;
else
min2 = c;
if(min2 < d)
min3 = min2;
else
min3 = d;
end
assign min = min3;
Reduction
2022/7/26/22:31