3-8译码器(非常好的代码)
可以选择用原理图输入的方式。下面具体一个很精简的代码:
G1为1,G2和G3为0时解码器正常工作。
module decoder3_8(y,a,g1,g2,g3);
output[7:0] y ;
input[2:0] a;
input g1,g2,g3;
reg[7:0] y;
always@(a or g1 or g2 or g3)
begin
if(g1==0) y=8`b11111111;
else if (g2==1) y =8`b11111111;
else if (g3==1) y = 8`b11111111;
else
begin
y = 8`b00000001<<a;
y =~y;
end
end
endmodule
对照真值表这个算法非常精简。