|
比较常用的38译码器功能表如下:
【例9.6】3-8译码器
module decoder_38(out,in);
output[7:0] out;
input[2:0] in;
reg[7:0] out;
always @(in)
begin
case(in)
3'd0: out=8'b11111110;
3'd1: out=8'b11111101;
3'd2: out=8'b11111011;
3'd3: out=8'b11110111;
3'd4: out=8'b11101111;
3'd5: out=8'b11011111;
3'd6: out=8'b10111111;
3'd7: out=8'b01111111;
endcase
end
endmodule
module ym_3_8(a,g1,g2,g3,y);
input[2:0] a; //3位2进制编码输入端
input g1,g2,g3; //3个使能输入端
output[7:0] y; //8位编码输出端
reg[7:0] y;
always@(a or g1 or g2 or g3) //电平触发方式
begin
if(g1==0) y=8'b11111111; //如果g1为0,则y输出为11111111
else if(g2==1) y=8'b11111111; //如果g2为1,则y输出为11111111
else if(g3==1) y=8'b11111111; //如果g3为1,则y输出为11111111
else
case(a[2:0]) //判断a的值,并通过a的值来给y设置输出值
3'b000:y[7:0]=8'b11111110;
3'b001:y[7:0]=8'b11111101;
3'b010:y[7:0]=8'b11111011;
3'b011:y[7:0]=8'b11110111;
3'b100:y[7:0]=8'b11101111;
3'b101:y[7:0]=8'b11011111;
3'b110:y[7:0]=8'b10111111;
3'b111:y[7:0]=8'b11111111;
endcase
end
endmodule
|
|