擦边球网站怎么建设,用php做网站的方法,wpsppt网站链接怎么做,怎么查看域名网站的容量到期写在前面#xff1a;本章将理解编码器与解码器、多路复用器与多路分解器的概念#xff0c;通过使用 Verilog 实现多样的解码器与多路分解器#xff0c;通过 FPGA 并使用 Verilog 实现。 Ⅰ. 前置知识
0x00 解码器与编码器#xff08;Decoder / Encoder#xff09;
解码器…
写在前面本章将理解编码器与解码器、多路复用器与多路分解器的概念通过使用 Verilog 实现多样的解码器与多路分解器通过 FPGA 并使用 Verilog 实现。 Ⅰ. 前置知识
0x00 解码器与编码器Decoder / Encoder
解码器 (Decoder)执行转换和处理过程以将 Encoding 数据恢复到之前的电路。
编码器 (Encoder)将特定数据转换和处理为其他形式或格式的电路以确保安全或缩小数据的大小。
编码器和解码器用于将任意两种符号体系相互转换。 0x01 多路复用器 MUX 与 多路分解器 DeMUX
多路复用器 MUX (Multiplexer)能接收多个输入信号按每个输入信号可恢复方式合成单个输出信号。复用器是一种综合系统通常包含一定数目的数据输入有一个单独的输出。
多路分解器 DeMUX (DeMultiplexer)是从一个输入接收资料根据多条输出线中的输入连接到预先选定的一条输出线的电路。
通常与带有 enable line 的解码器相同。
由于各自的功能特性MUX 也被称为 Data Selctor数据选择器DeMUX 也被称为 Data Distributor数据分配器。 Ⅱ. 练习Assignment
0x00 2 to 4 Decoder
使用 AND 对电路进行 Verilog 编码使用 NAND 结构对电路进行 Verilog 编码通过 Verilog 的模拟结果完成真值表2种并比较两种形式的解码器。 Design source
timescale 1ns / 1psmodule two_to_four_decoder(input A, B,output D1, D2, D3, D4);assign D1 ~A~B;assign D2 ~AB;assign D3 A~B;assign D4 AB;endmoduleTestbench
timescale 1ns / 1psmodule two_to_four_decode_tb;
reg AA, BB;
wire D1, D2, D3, D4;two_to_four_decoder u_two_to_four_decoder(.A(AA),.B(BB),.D1(D2),.D2(D2),.D3(D3),.D4(D4));initial AA 1b0;
initial BB 1b0;always AA #100 ~AA;
always BB #200 ~BB;initial begin#1000$finish;
endendmodule运行结果如下 0x01 4 to 2 Encoder
使用 OR 对电路进行 Verilog 编码通过 Verilog 的仿真结果完成真值表。 Design source
timescale 1ns / 1psmodule four_to_two_encoder(input a, b, c, d,output e0, e1);assign e0 a|b;assign e1 a|c;endmoduleTestbench
timescale 1ns / 1psmodule four_to_two_encoder_tb;
reg aa, bb, cc, dd;
wire e0, e1;four_to_two_encoder u_four_to_two_encoder(.a(aa),.b(bb),.c(cc),.d(dd),.e0(e0),.e1(e1));initial aa 1b0;
initial bb 1b0;
initial cc 1b0;
initial dd 1b0;always aa #100 ~aa;
always bb #200 ~bb;
always cc #400 ~cc;
always dd #800 ~dd;initial begin#1000$finish;
endendmodule运行结果如下 0x02 BCD to Decimal Decoder
通过 Verilog 编码实现A的结构通过 Verilog 的仿真结果完成真值表并确认是否与理论中的Boolean 函数一致。 Design source
timescale 1ns / 1psmodule bcd_decoder(input a3, a2, a1, a0,output o1, o2, o3, o4, o5, o6, o7, o8, o9);assign o1 ~a3~a2~a1a0;assign o2 ~a3~a2a1~a0;assign o3 ~a3~a2a1a0;assign o4 ~a3a2~a1~a0;assign o5 ~a3a2~a1a0;assign o6 ~a3a2a1~a0;assign o7 ~a3a2a1a0;assign o8 a3~a2~a1~a0;assign o9 a3~a2~a1a0;endmoduleTestbench
timescale 1ns / 1psmodule bcd_decoder_tb;
reg aa3, aa2, aa1, aa0;
wire o1, o2, o3, o4, o5, o6, o7, o8, o9;bcd_decoder u_bcd_decoder(.a3(aa3),.a2(aa2),.a1(aa1),.a0(aa0),.o1(o1),.o2(o2),.o3(o3),.o4(o4),.o5(o5),.o6(o6),.o7(o7),.o8(o8),.o9(o9));initial aa3 1b0;
initial aa2 1b0;
initial aa1 1b0;
initial aa0 1b0;always aa3 #100 ~aa3;
always aa2 #200 ~aa2;
always aa1 #400 ~aa1;
always aa0 #800 ~aa0;initial begin#1000$finish;
endendmodule运行结果如下 0x03 4 to 1 line MUX
以A的结构对电路进行 Verilog 编码通过 Verilog 的仿真结果完成真值表。并确认是否与理论中的 Boolean 函数一致。 Design source
timescale 1ns / 1psmodule four_to_one_mux(input a, b, c, d, A, B,output q);assign q (a~B~A)|(bB~A)|(c~BA)|(dBA);endmoduleTestbench
timescale 1ns / 1psmodule four_to_one_mux_tb;
reg aa, bb, cc, dd, AA, BB;
wire q;four_to_one_mux u_four_to_one_mux(.a(aa),.b(bb),.c(cc),.d(dd),.A(AA),.B(BB),.q(q));initial aa 1b0;
initial bb 1b0;
initial cc 1b0;
initial dd 1b0;
initial AA 1b0;
initial BB 1b0;always aa #50 ~aa;
always bb #100 ~bb;
always cc #200 ~cc;
always dd #400 ~dd;
always AA #800 ~AA;
always BB #1600 ~BB;initial begin#2000$finish;
endendmodule运行结果如下 0x04 1 to 4 line deMUX
以A的结构对电路进行 Verilog 编码通过 Verilog 的仿真结果完成真值表确认是否与理论中的 Boolean 函数一致。 Design source
timescale 1ns / 1psmodule one_to_four_mux(input A, B, f,output a, b, c, d);assign a f(~A~B);assign b f(~AB);assign c f(A~B);assign d f(AB);endmoduleTestbench
timescale 1ns / 1psmodule one_to_four_mux_tb;
reg AA, BB, ff;
wire a, b, c, d;one_to_four_mux u_one_to_four_mux(.A(AA),.B(BB),.f(ff),.a(a),.b(b),.c(c),.d(d));initial AA 1b0;
initial BB 1b0;
initial ff 1b0;always AA #100 ~AA;
always BB #200 ~BB;
always ff #400 ~ff;initial begin#1000$finish;
endendmodule运行结果如下 [ 笔者 ] FoxnyAkam[ 更新 ] 2023.3.5
❌ [ 勘误 ] /* 暂无 */[ 声明 ] 由于作者水平有限本文有错误和不准确之处在所难免本人也很想知道这些错误恳望读者批评指正 参考资料 Introduction to Logic and Computer Design, Alan Marcovitz, McGrawHill, 2008 Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. . 百度百科[EB/OL]. []. https://baike.baidu.com/.