【正文】
算法:module PLJ (clk, tclk, start, alarm0, alarm1, dian, data1)。 input clk。 input tclk。 input start。 output alarm0。 reg alarm0。 output alarm1。 reg alarm1。 output[3:0] dian。 reg[3:0] dian。 output[13:0] data1。 reg[13:0] data1。 reg[13:0] q。 reg[13:0] q1。 reg[14:0] q2。 reg en。 reg en1。 reg[27:0] qq。 reg[27:0] qqq。 reg[13:0] data0。 always @(clk) begin if (clk == 139。b1) begin if (start == 139。b1) begin q = 0 。 en = 139。b0 。 end else if (q == 9999) begin q = 9999 。 en = 139。b0 。 end else begin q = q + 1 。 en = 139。b1 。 end end end always @(tclk) begin if (tclk == 139。b1) begin if (start == 139。b1) begin q1 = 0 。 en1 = 139。b0 。 end else if (en == 139。b1) begin q1 = q1 + 1 。 en1 = 139。b1 。 end else begin en1 = 139。b0 。 end end end always @(tclk) begin if (tclk == 139。b1) begin if (start == 139。b1) begin q1 = 0 。 en1 = 139。b0 。 end else if (en == 139。b1) begin q1 = q1 + 1 。 en1 = 139。b1 。 end else begin en1 = 139。b0 。 end end end always @(clk) begin if (clk == 139。b1) begin if (start == 139。b1) begin q2 = 0 。 end else if (en1 == 139。b1) begin if (q2 == 20000) begin q2 = 20000 。 end else begin q2 = q2 + 1 。 end end end end always @(clk) begin if (clk == 139。b1) begin if (start == 139。b1) begin data0 = 0 。 dian = 439。b0000 。 alarm0 = 139。b0 。 alarm1 = 139。b0 。 qqq = 0 。 qq = 00 。 end else if (en1 == 139。b0) begin if (q1 = 1000) begin qq = q1 * 10000 。 if (qqq qq) begin qqq = qqq + q2 。 data0 = data0 + 1 。 dian = 439。b0000 。 end else if (data0 = 10000) begin alarm0 = 139。b1 。 end else begin data1 = data0 。 end end else if (q1 = 100) begin qq = q1 * 100000 。 if (qqq qq) begin qqq = qqq + q2 。 data0 = data0 + 1 。 end else if (data0 = 10000) begin data1 = 1000 。 dian = 439。b0000 。 end else begin data1 = data0 。 dian = 439。b0010 。 end end else if (q1 = 10) begin qq = q1 * 1000000 。 if (qqq qq) begin qqq = qqq + q2 。 data0 = data0 + 1 。 end else if (data0 = 10000) begin data1 = 1000 。 dian = 439。b0010 。 end else begin data1 = data0 。 dian = 439。b0100 。 end end else if (q1 = 1) begin qq = q1 * 10000000 。 if (qqq qq) begin qqq = qqq + q2 。 data0 = data0 + 1 。 end else if (data0 = 10000) begin data1 = 1000 。 dian = 439。b0100 。 end else begin data1 = data0 。 dian = 439。b1000 。 end end end else begin alarm1 = 139。b0 。 end end end endmodul