前言
3-8译码器,就是把3种输入状态翻译成8种输出状态,译码器是将输入的具有特定含义的二进制代码翻译成输出信号的不同组合,实现电路控制功能的逻辑电路。译码器在数字系统中应用广泛,可用于代码的转换、终端数字的显示、数据的分配等等。
一、实验目的
通过简单的3-8译码器的设计,掌握组合逻辑的设计方法。
二、设计规范(需求)
3-8 译码器有 3 个输入和 8 个输出,所以可以指定当输入为 111 时,译码后为指定的状态,即输出00000001,紧接着依次类推,当输入为 110 时,输出 01111111,当输入为 101 时,输出 11011111,当输入为 100 时,输出 11101111,输入 011 时,输出为 11110111,输入为 010 时,输出 11111011,输入为 001 时,输出 11111101,输入为 000 时,输出为 11111110。
三、原理图
四、设计输入
module decoder(
input wire [2:0] a,//输入信号,3位
output reg [7:0] b//输出信号,8位
);
//译码器组合逻辑
always@(*)begin
case(a)
3'b000: b=8'b11111110;
3'b001: b=8'b11111101;
3'b010: b=8'b11111011;
3'b011: b=8'b11110111;
3'b100: b=8'b11101111;
3'b101: b=8'b11011111;
3'b110: b=8'b01111111;
3'b111: b=8'b10000000;
default: b=8'b00000000;
endcase
end
endmodule
五、译码器仿真
5.1 仿真代码
`timescale 1ns/1ns //单位/精度
module decoder_tb();
reg [2:0] a;//输入信号
wire [7:0] b;//输出信号
initial begin
a = 3'b000;
#1 ;//延迟1ns
a = 3'b001;
#1 ;//延迟1ns
a = 3'b010;
#1 ;//延迟1ns
a = 3'b011;
#1 ;//延迟1ns
a = 3'b101;
#1 ;//延迟1ns
a = 3'b110;
#1 ;//延迟1ns
a = 3'b111;
#1 ;//延迟1ns
a = 3'bxxx;
#1 ;//延迟1ns
end
decoder u_decoder(
.a (a),//输入信号,3位
.b (b)//输出信号,8位
);
endmodule
5.2 仿真结果
文章来源:https://www.toymoban.com/news/detail-504442.html
总结
3-8译码器到此结束,代码实现方式有多种,同学们可以借鉴,切忌ctrl+c,比如case可以修改为if,那就行动起来,实现自己的3-8译码器吧!文章来源地址https://www.toymoban.com/news/detail-504442.html
到了这里,关于3-8译码器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!