注意:文章是本人学习笔记,如有错误可以留言指出。
原理:一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象。在这里3-8译码器则将3位二进制代码翻译为8位只有一位为高电平其余全为高电平的对象。
设计思路:3位二进制输入,8位二进制输入
if程序编写:
module decoder3_8
(
input reg [2:0] in,
output reg [7:0] out
);
always @(*)
if(in == 3'b000)
out <= 8'b0000_0001;
else if(in == 3'b001)
out <= 8'b0000_0010;
else if(in == 3'b010)
out <= 8'b0000_0100;
else if(in == 3'b011)
out <= 8'b0000_1000;
else if(in == 3'b100)
out <= 8'b0001_0000;
else if(in == 3'b101)
out <= 8'b0010_0000;
else if(in == 3'b110)
out <= 8'b0100_0000;
else
out <= 8'b1000_0000;
endmodule
case程序编写:
module decoder3_8
(
input reg [2:0] in,
output reg [7:0] out
);
always @(*)
begin
case (in)
3'b000:out <= 8'b0000_0001;
3'b000:out <= 8'b0000_0010;
3'b000:out <= 8'b0000_0100;
3'b000:out <= 8'b0000_1000;
3'b000:out <= 8'b0001_0000;
3'b000:out <= 8'b0010_0000;
3'b000:out <= 8'b0100_0000;
3'b000:out <= 8'b1000_0000;
default:out <= 8'b0000_0001;
endcase
end
endmodule
仿真波形: