数字电路3-8译码器
Posted Ice丨shine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字电路3-8译码器相关的知识,希望对你有一定的参考价值。
本程序实现3-8译码器的功能并级联成4-16译码器
每个3-8译码器有三个使能端
module sanba(
input [2:0]A,
input G1,
input _G2A,
input _G2B,
output reg [7:0]_Y
);
always @(*)
begin
if(G1,_G2A,_G2B==3'b100)//G1、_G2A、_G2B 输入 100 时译码器才工作
begin
case(A)
3'b000:_Y=8'b1111_1110;
3'b001:_Y=8'b1111_1101;
3'b010:_Y=8'b1111_1010;
3'b011:_Y=8'b1111_0110;
3'b100:_Y=8'b1110_1110;
3'b101:_Y=8'b1101_1110;
3'b110:_Y=8'b1011_1110;
3'b111:_Y=8'b0111_1110;
endcase
end
else _Y=8'b1111_1111;
end
接下来进行级联的操作
module si(
input [3:0]A,
input _EN,
output [15:0]_Y
);
sanba u1(
.A(A),
.G1(A[3]),
._G2A(_EN),
._G2B(_EN),
._Y(_Y[15:8])
);
sanba u2(
.A(A),
.G1(1),
._G2A(_EN),
._G2B(A[3]),
._Y(_Y[7:0])
);
endmodule
测试文件:
module SITEST;
// Inputs
reg [3:0] A;
reg _EN;
// Outputs
wire [15:0] _Y;
// Instantiate the Unit Under Test (UUT)
si uut (
.A(A),
._EN(_EN),
._Y(_Y)
);
initial begin
// Initialize Inputs
A = 0;
_EN = 0;
// Wait 100 ns for global reset to finish
repeat(256)
#10 A,_EN=A,_EN+1;
// Add stimulus here
end
endmodule
波形图
电路图
以上是关于数字电路3-8译码器的主要内容,如果未能解决你的问题,请参考以下文章
AS5047P磁编码器应用设计大全解:硬件电路设计SPI通信时序逻辑波形分析注意事项
如何用双2-4线译码器转换为3-8线译码器?电路图怎么设计?求图及解释。。。
如何用双2-4线译码器转换为3-8线译码器?电路图怎么设计?