VL13. 优先编码器电路①
描述
下表是某优先编码器的真值表。输入描述
输出描述
Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06
`timescale 1ns/1ns module encoder_0( input [8:0] I_n , output reg [3:0] Y_n ); always @(*) begin // case(I_n) // 9'b0_0000_0000: begin Y_n=4'b0000; end // 9'b1_xxxx_xxxx: begin Y_n=4'b1001; end // 9'b0_1xxx_xxxx: begin Y_n=4'b1000; end // 9'b0_01xx_xxxx: begin Y_n=4'b0111; end // 9'b0_001x_xxxx: begin Y_n=4'b0110; end // 9'b0_0001_xxxx: begin Y_n=4'b0101; end // 9'b0_0000_1xxx: begin Y_n=4'b0100; end // 9'b0_0000_01xx: begin Y_n=4'b0011; end // 9'b0_0000_001x: begin Y_n=4'b0010; end // 9'b0_0000_0001: begin Y_n=4'b0001; end // default: begin Y_n<=4'b1111; end casex (I_n) 9'b1_1111_1111: Y_n = 4'b1111; 9'b0_xxxx_xxxx: Y_n = 4'b0110; 9'b1_0xxx_xxxx: Y_n = 4'b0111; 9'b1_10xx_xxxx: Y_n = 4'b1000; 9'b1_110x_xxxx: Y_n = 4'b1001; 9'b1_1110_xxxx: Y_n = 4'b1010; 9'b1_1111_0xxx: Y_n = 4'b1011; 9'b1_1111_10xx: Y_n = 4'b1100; 9'b1_1111_110x: Y_n = 4'b1101; 9'b1_1111_1110: Y_n = 4'b1110; default: Y_n = 4'b1111; endcase end endmodule
Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06
`timescale 1ns/1ns module encoder_0( input [8:0] I_n , output reg [3:0] Y_n ); always@(*)begin if(I_n[8]==1'b0) Y_n=4'b0110; else if(I_n[7]==1'b0) Y_n=4'b0111; else if(I_n[6]==1'b0) Y_n=4'b1000; else if(I_n[5]==1'b0) Y_n= 4'b1001; else if(I_n[4]==1'b0) Y_n= 4'b1010; else if(I_n[3]==1'b0) Y_n= 4'b1011; else if(I_n[2]==1'b0) Y_n= 4'b1100; else if(I_n[1]==1'b0) Y_n= 4'b1101; else if(I_n[0]==1'b0) Y_n= 4'b1110; else Y_n= 4'b1111; end endmodule
Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06
`timescale 1ns/1ns module encoder_0( input [8:0] I_n , output reg [3:0] Y_n ); always@(*) begin casez(I_n) 9'b1_1111_1111:Y_n<=4'b1111; 9'b0_????_????:Y_n<=4'b0110; 9'b1_0???_????:Y_n<=4'b0111; 9'b1_10??_????:Y_n<=4'b1000; 9'b1_110?_????:Y_n<=4'b1001; 9'b1_1110_????:Y_n<=4'b1010; 9'b1_1111_0???:Y_n<=4'b1011; 9'b1_1111_10??:Y_n<=4'b1100; 9'b1_1111_110?:Y_n<=4'b1101; 9'b1_1111_1110:Y_n<=4'b1110; endcase end endmodule
Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-05
`timescale 1ns/1ns module encoder_0( input [8:0] I_n , output reg [3:0] Y_n ); always @(*) begin casex(I_n) 9'b0xxxxxxxx: Y_n = 4'd6; 9'b10xxxxxxx: Y_n = 4'd7; 9'b110xxxxxx: Y_n = 4'd8; 9'b1110xxxxx: Y_n = 4'd9; 9'b11110xxxx: Y_n = 4'd10; 9'b111110xxx: Y_n = 4'd11; 9'b1111110xx: Y_n = 4'd12; 9'b11111110x: Y_n = 4'd13; 9'b111111110: Y_n = 4'd14; 9'b111111111: Y_n = 4'd15; default: ; endcase end endmodule
Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-05
`timescale 1ns/1ns module encoder_0( input [8:0] I_n , output reg [3:0] Y_n ); always@(*)begin casex (I_n) 9'b111111111 : Y_n = 4'b1111; 9'b0???????? : Y_n = 4'b0110; 9'b10??????? : Y_n = 4'b0111; 9'b110?????? : Y_n = 4'b1000; 9'b1110????? : Y_n = 4'b1001; 9'b11110???? : Y_n = 4'b1010; 9'b111110??? : Y_n = 4'b1011; 9'b1111110?? : Y_n = 4'b1100; 9'b11111110? : Y_n = 4'b1101; 9'b111111110 : Y_n = 4'b1110; default : Y_n = 4'b1111; endcase end endmodule