3-8译码器

前言

  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。

在这里插入图片描述

图1. 3-8译码器真值表

三、原理图

在这里插入图片描述

图2. 3-8译码器原理图

四、设计输入

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 仿真结果

在这里插入图片描述

图3. 3-8译码器仿真结果

总结

  3-8译码器到此结束,代码实现方式有多种,同学们可以借鉴,切忌ctrl+c,比如case可以修改为if,那就行动起来,实现自己的3-8译码器吧!

  • 11
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值