module seg_dec(select_out,tmp_dec_out,tmp_data_fix,clk_div,rst); output [1:0]select_out; output [7:0]tmp_dec_out; input [15:0]tmp_data_fix; input clk_div; input rst; // reg [11:0]select_r; reg [3:0]select_r; reg [7:0]dec_r; reg[1:0]select_out; // parameter DEC_2 = 12'b111111111111; // parameter DEC_1 = 12'b011111111111; parameter DEC_2 = 4'b0110; parameter DEC_1 = 4'b1111; always @ ( posedge clk_div or posedge rst ) begin if ( rst == 1'b1 )begin select_r <= 4'b000; end else begin select_r <= select_r + 1'b1; end end always @ ( posedge clk_div or posedge rst ) begin if ( rst == 1'b1 )begin select_out <= 2'b00; end else if (select_r==DEC_1) begin select_out <= 2'b01; end else if (select_r==DEC_2)begin select_out <= 2'b10; end end ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// always @ ( posedge clk_div or posedge rst ) begin if ( rst == 1'b1 )begin dec_r <= 1'b0; end else if (select_r==4'b1110)begin case (tmp_data_fix[14:7]) 8'b00001010 : dec_r <= 8'b11111100;//0→10 8'b00001011 : dec_r <= 8'b01100000;//1//11 8'b00001100 : dec_r <= 8'b11011010;//2//12 8'b00001101 : dec_r <= 8'b11110010;//3//13 8'b00001110 : dec_r <= 8'b01100110;//4//14 8'b00001111 : dec_r <= 8'b10110110;//5//15 8'b00010000 : dec_r <= 8'b10111110;//6//16 8'b00010001 : dec_r <= 8'b11100000;//7//17 8'b00010010 : dec_r <= 8'b11111110;//8//18 8'b00010011 : dec_r <= 8'b11110110;//9//19 8'b00010100 : dec_r <= 8'b11111100;//0//20 8'b00010101 : dec_r <= 8'b01100000;//1//21 8'b00010110 : dec_r <= 8'b11011010;//2//22 8'b00010111 : dec_r <= 8'b11110010;//3//23 8'b00011000 : dec_r <= 8'b01100110;//4//24 8'b00011001 : dec_r <= 8'b10110110;//5//25 8'b00011010 : dec_r <= 8'b10111110;//6//26 8'b00011011 : dec_r <= 8'b11100000;//7//27 8'b00011100 : dec_r <= 8'b11111110;//8//28 8'b00011101 : dec_r <= 8'b11110110;//9//29 8'b00011110 : dec_r <= 8'b11111100;//0//30 8'b00011111 : dec_r <= 8'b01100000;//1//31 8'b00100000 : dec_r <= 8'b11011010;//2//32 8'b00100001 : dec_r <= 8'b11110010;//3//33 8'b00100010 : dec_r <= 8'b01100110;//4//34 8'b00100011 : dec_r <= 8'b10110110;//5//35 8'b00100100 : dec_r <= 8'b10111110;//6//36 8'b00100101 : dec_r <= 8'b11100000;//7//37 8'b00100110 : dec_r <= 8'b11111110;//8//38 default : dec_r <= 8'b11111111; endcase end else if (select_r==4'b0110)begin case (tmp_data_fix[14:7]) 8'b00001010 : dec_r <= 8'b01100000;//0→10 8'b00001011 : dec_r <= 8'b01100000;//1//11 8'b00001100 : dec_r <= 8'b01100000;//2//12 8'b00001101 : dec_r <= 8'b01100000;//3//13 8'b00001110 : dec_r <= 8'b01100000;//4//14 8'b00001111 : dec_r <= 8'b01100000;//5//15 8'b00010000 : dec_r <= 8'b01100000;//6//16 8'b00010001 : dec_r <= 8'b01100000;//7//17 8'b00010010 : dec_r <= 8'b01100000;//8//18 8'b00010011 : dec_r <= 8'b01100000;//9//19 8'b00010100 : dec_r <= 8'b11011010;//0//20 8'b00010101 : dec_r <= 8'b11011010;//1//21 8'b00010110 : dec_r <= 8'b11011010;//2//22 8'b00010111 : dec_r <= 8'b11011010;//3//23 8'b00011000 : dec_r <= 8'b11011010;//4//24 8'b00011001 : dec_r <= 8'b11011010;//5//25 8'b00011010 : dec_r <= 8'b11011010;//6//26 8'b00011011 : dec_r <= 8'b11011010;//7//27 8'b00011100 : dec_r <= 8'b11011010;//8//28 8'b00011101 : dec_r <= 8'b11011010;//9//29 8'b00011110 : dec_r <= 8'b11110010;//0//30 8'b00011111 : dec_r <= 8'b11110010;//1//31 8'b00100000 : dec_r <= 8'b11110010;//2//32 8'b00100001 : dec_r <= 8'b11110010;//3//33 8'b00100010 : dec_r <= 8'b11110010;//4//34 8'b00100011 : dec_r <= 8'b11110010;//5//35 8'b00100100 : dec_r <= 8'b11110010;//6//36 8'b00100101 : dec_r <= 8'b11110010;//7//37 8'b00100110 : dec_r <= 8'b11110010;//8//38 default : dec_r <= 8'b11111111; endcase end end//always assign tmp_dec_out = ~(dec_r); endmodule