module ex10(CLOCK_50, LEDR, PB,
HEX0, HEX1, HEX2, HEX3);
input CLOCK_50;
input [3:0] PB;
output [6:0] HEX0, HEX1, HEX2, HEX3;
output [9:0] LEDR;
parameter N = 20_000_000;
//-------function bcdto7seg ------
function [6:0] bcdto7seg; //(bcd);
input [3:0] bcd;
case (bcd)
0: bcdto7seg = 7'b1000000;
1: bcdto7seg = 7'b1111001;
2: bcdto7seg = 7'b0100100;
3: bcdto7seg = 7'b0110000;
4: bcdto7seg = 7'b0011001;
5: bcdto7seg = 7'b0010010;
6: bcdto7seg = 7'b0000010;
7: bcdto7seg = 7'b1111000;
8: bcdto7seg = 7'b0000000;
9: bcdto7seg = 7'b0010000;
default: bcdto7seg = 7'b0111111;
endcase
endfunction
assign HEX0 = bcdto7seg(LEDR[3:0]); //7'b1000000; //=gfedcba common anode
assign HEX1 = bcdto7seg(LEDR[7:4]); //1
assign HEX2 = bcdto7seg(LEDR[9:8]); //2
assign HEX3 = 7'b0110000; //3
wire [25:0] q;
mycnter #26 cntXXM(CLOCK_50, PB[0], q, 1, N);
reg [9:0] LEDR;
initial LEDR =8'b00000000;
always @(posedge CLOCK_50)
if (q == N) LEDR <= LEDR + 1;
endmodule