欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > FPGA基础 -- Verilog门级模型之2-4编码器

FPGA基础 -- Verilog门级模型之2-4编码器

2025/6/18 10:39:33 来源:https://blog.csdn.net/sz66cm/article/details/148720582  浏览:    关键词:FPGA基础 -- Verilog门级模型之2-4编码器

一、什么是 2-4 编码器(2-to-4 Decoder)?

注意,这里你提到的是 2-4 编码器,而通常2-4结构是 解码器(decoder),因为:

  • 输入 2 位,表示 $2^2 = 4$ 个可能的状态;
  • 输出 4 位,每个位表示某一状态是否激活;
  • 所以,应该是 2-4 decoder(解码器)

编码器(Encoder) 是从多输入中“编码”出某个激活信号,方向是反的,如 4-2 编码器


二、先讲:2-4 解码器(decoder)门级建模

✦ 真值表:

输入 A1输入 A0输出 Y3Y2Y1Y0
000001
010010
100100
111000

即输出 $Y_i = 1$ 当且仅当输入是 $i$。


✦ 门级建模实现(使用 andnot 门)

module decoder_2to4 (output Y0, Y1, Y2, Y3,input A0, A1
);wire nA0, nA1;not G1(nA0, A0);not G2(nA1, A1);and G3(Y0, nA1, nA0); // 00and G4(Y1, nA1,  A0); // 01and G5(Y2,  A1, nA0); // 10and G6(Y3,  A1,  A0); // 11
endmodule

三、再讲:4-2 编码器(encoder)门级建模

✦ 真值表(假设只有一个输入为 1):

输入 I3I2I1I0输出 A1A0
000100
001001
010010
100011

✦ 逻辑表达式:

  • A0 = I1 | I3
  • A1 = I2 | I3

✦ 门级建模实现:

module encoder_4to2 (output A1, A0,input I0, I1, I2, I3
);or G1(A0, I1, I3);or G2(A1, I2, I3);
endmodule

四、完整可选输出例子(带 valid 输出)

在实际编码器中,为防止多输入为 1 引发歧义,一般会加一个 validenable 信号。

module encoder_4to2_valid (output reg [1:0] A,output reg valid,input [3:0] I
);always @(*) beginvalid = 1'b1;case (I)4'b0001: A = 2'b00;4'b0010: A = 2'b01;4'b0100: A = 2'b10;4'b1000: A = 2'b11;default: beginA = 2'b00;valid = 1'b0;endendcaseend
endmodule

五、门级与行为级的比较

对比项门级建模行为级建模
语法使用基本门(and、or、not)使用 always, case, if
可综合性
可读性
灵活性
时序建模更贴近真实硬件可控制但不直观
应用场景教学、后仿、标准元件库建模日常功能设计

六、练习建议(Verilog 门级建模)

你可以练习:

  • 3-8 decoder(3个输入,8个输出)门级建模
  • 8-3 encoder + priority encoder
  • 1-4 demux(解复用器)门级建模
  • N-bit comparator(大小比较器)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词