电子说
前面讲完了编码器,其实不知不觉地,也顺便把译码器也讲了,毕竟,二者是一个相反操作的过程,类似于加减,前进与后退,调制与解调,FFT 和 IFFT 等等。
译码器的逻辑功能就是将每一个输入的二进制代码转为对应的多输出高、低电平信号或另外一个代码,是编码器的逆运算,译码器又可以分为变量译码和显示译码。变量译码器一般是一种较少输入变为较多输出的器件,常见的有 N 线 - 2^N 线译码和 8421BCD 码译码两类;显示译码器用来将二进制数转换成对应的七段码,一般其可分为驱动 LED 和驱动 LCD 两类。
module Decoders(
input wire [2:0] b, // 输入信号_未译码
output reg [7:0] d // 输出信号_已译码
);
reg d = 8'b0000_0000;
always @ ( b ) begin
case ( b )
3'b000 : d <= 8'b0000_0001;
3'b001 : d <= 8'b0000_0010;
3'b010 : d <= 8'b0000_0100;
3'b100 : d <= 8'b0001_0000;
3'b101 : d <= 8'b0010_0000;
3'b110 : d <= 8'b0100_0000;
3'b111 : d <= 8'b1000_0000;
default: d <= 8'b0000_0000;
endcase
end
endmodule
这是一个 3 线 − 8 线变量译码器,基于查找表 LUT(Look Up Table)的方式实现的一个电路,其 RTL 电路图如下所示:
变量译码器的 RTL 电路图
这里的译码器,其实就只是基于 LUT 的译码器,是最简单的,并没有经过复杂的运算操作,其思想只是简单地输入地址,然后输入地址所在的数据即可。
译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象;把代码状态的特定含义 “翻译” 出来的过程叫做译码,实现译码操作的电路称为译码器;或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。
全部0条评论
快来发表一下你的评论吧 !