0x00 编码器(Encoder)
编码器与解码器相反。当多台设备向计算机提供输入时,编码器会为每一个输入生成一个与设备相对应的信号,因此有多少比特就有多少输出,以数字形式表示输入的数量。
例如,如果有四个输入,就需要一个两位二进制数来表示 0 至 3,这样就有四个输出。编码器用于转换和标准化表格或格式、提高安全性、加快处理速度或压缩数据。
编码器的应用:文件压缩 在计算机上生成视频、图像和声音等数据时,编码器用于编码和压缩数据,以减少数据量。
解码器 | |||||||||||||||||||||||||||||||
|
0x01 4 到 2 编码器的实现
解释 4 到 2 编码器的结果和仿真过程。(包括真值表和 k 映射图的创建)
0x02 真值表
输入 | 输出 | ||||
A | B | C | D | E0 | E1 |
0 | 0 | 0 | 1 | 1 | 1 |
0 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 0 | 0 |
0x03 卡诺图
E0 | E1 |
0x04 代码演示
💬 Design source:
`timescale 1ns / 1psmodule enc(input A,input B,input C,input D,output E0,output E1);assign E0 = C | D;
assign E1 = B | D;endmodule
💬 Testbench:
`timescale 1ns / 1psmodule enc_tb;
reg A,B,C,D;
wire E0,E1;enc u_enc (.A(A ),.B(B ),.C(C ),.D(D ),.E0(E0 ),.E1(E1 )
);initial beginA = 1'b0;B = 1'b0;C = 1'b0;D = 1'b0;
endalways@(A or B or C or D) beginA <= #10 ~A;B <= #20 ~B;C <= #40 ~C;D <= #80 ~D;
endinitial begin#160$finish;
endendmodule
🚩 运行结果如下:
在实践中,实现的 4 到 2 编码器将来自解码器的输出作为输入,并将来自解码器的输入作为输出返回。换句话说,对于 4 位输入值,如果 A 是最高有效位(MSB),则对于输入值 0001,它将返回输出 11;对于输入值 0010,它将返回输出 10;对于输入值 0100,它将返回输出 01;对于输入值 1000,它将返回输出 00。
0x05 Schematic
📌 [ 笔者 ] 취역우
📃 [ 更新 ] 2023.12.14
❌ [ 勘误 ] /* 暂无 */
📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!
📜 参考资料 Introduction to Logic and Computer Design, Alan Marcovitz, McGrawHill, 2008 Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. . 百度百科[EB/OL]. []. https://baike.baidu.com/. |