3-8译码器 vivado 2018.3 同时实现转4-16译码器
一、源程序
- 方法①
module a3_8(
input [2:0] a,
input en,
output reg [7:0] y
);
always @(a or en)
begin
if (en==1)
case(a)
3'b000: y=8'b00000001;
3'b001: y=8'b00000010;
3'b010: y=8'b00000100;
3'b011: y=8'b00001000;
3'b100: y=8'b00010000;
3'b101: y=8'b00100000;
3'b110: y=8'b01000000;
3'b111: y=8'b10000000;
default: y=8'bxxxxxxxx;
endcase
else
y=8'b00000000;
end
endmodule
- 方法② 根据逻辑式直接输出,简单粗暴
module b3_8(
input [2:0] a,
input en,
output [7:0] y
);
assign y[0]=(~a[2]&~a[1]&~a[0])& en;
assign y[1]=(~a[2]&~a[1]&a[0])& en;
assign y[2]=(~a[2]&a[1]&~a[0])& en;
assign y[3]=(~a[2]&a[1]