3_8译码器与4_16译码器对比

本文详细介绍了如何设计一个4-16的译码器,并通过与3-8译码器的资源消耗对比,揭示了译码器规模扩大带来的资源需求增加。通过Verilog代码实现,展示了不同规模译码器的设计方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验要求:编写一个4-16的译码器,编译,和3-8译码器对比资源开销,看RTL View
3_8译码器(已知代码)

// module  decoder3_8, 4 input priority encoder with zero input check
module decoder3_8(
  IN        ,   // input  
  OUT       );  // output 

input [2:0] IN;
output[7:0] OUT;

reg   [7:0] OUT;
// get the OUT
always @ (IN)
 begin                                                       
  case(IN)
    3'b000: OUT = 8'b0000_0001;
    3'b001: OUT = 8'b0000_0010;
    3'b010: OUT = 8'b0000_0100;
    3'b011: OUT = 8'b0000_1000;
    3'b100: OUT = 8'b0001_0000;
    3'b101: OUT = 8'b0010_0000;
    3'b110: OUT = 8'b0100_0000;
    3'b111: OUT = 8'b1000_0000;
    //  full case 不需要写default,否则一定要有default
  endcase
end
endmodule

3_8译码器资源消耗图
在这里插入图片描述
3_8译码器RTL View
在这里插入图片描述
4_16译码器(仿写3_8译码器代码)

module decoder4_16(IN,OUT);  
input [3:0] IN;
output[15:0] OUT;
reg   [15:0] OUT;
always @ (IN) 
	begin
		case(IN)
		3'b0000: OUT = 8'b0000_0000_0000_0001;
		3'b0001: OUT = 8'b0000_0000_0000_0010;
		3'b0010: OUT = 8'b0000_0000_0000_0100;
		3'b0011: OUT = 8'b0000_0000_0000_1000;
		3'b0100: OUT = 8'b0000_0000_0001_0000;
		3'b0101: OUT = 8'b0000_0000_0010_0000;
		3'b0110: OUT = 8'b0000_0000_0100_0000;
		3'b0111: OUT = 8'b0000_0000_1000_0000;
		3'b1000: OUT = 8'b0000_0001_0000_0000;
		3'b1001: OUT = 8'b0000_0010_0000_0000;
		3'b1010: OUT = 8'b0000_0100_0000_0000;
		3'b1011: OUT = 8'b0000_1000_0000_0000;
		3'b1100: OUT = 8'b0001_0000_0000_0000;
		3'b1101: OUT = 8'b0010_0000_0000_0000;
		3'b0110: OUT = 8'b0100_0000_0000_0000;
		3'b0111: OUT = 8'b1000_0000_0000_0000;
											
  endcase
end
endmodule

4_16译码器资源消耗图
在这里插入图片描述
将两者的资源消耗图做对比会发现4-16译码器的资源消耗约是3-8译码器的2倍。
4_16译码器RTL View
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值