列表

详情


VL13. 优先编码器电路①

描述

下表是某优先编码器的真值表。
①请用Verilog实现此优先编码器



输入描述

①输入描述:
input      [8:0]         I_n

输出描述

①输出描述:
output reg [3:0]         Y_n

原站题解

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

上一题