【正文】
10010 。 HIGH = 139。b1 。 end 839。b00000100 : begin TONE0 = 1036 。 CODE = 739。b0000110 。 HIGH = 139。b1 。 end 839。b00001000 : begin TONE0 = 1116 。 CODE = 739。b1001100 。 HIGH = 139。b1 。 end 839。b00010000 : begin TONE0 = 1197 。 CODE = 739。b0100100 。 HIGH = 139。b1 。 end 839。b00100000 : begin TONE0 = 1290 。 CODE = 739。b0100000 。 HIGH = 139。b0 。 end 839。b01000000 : begin TONE0 = 1372 。 CODE = 739。b0001111 。 HIGH = 139。b0 。 end 839。b10000000 : begin TONE0 = 1410 。 CODE = 739。b0000000 。 HIGH = 139。b0 。 end default : begin TONE0 = 2047 。 CODE = 739。b0000001 。 HIGH = 139。b0 。 end endcase end endmodule附錄3:數(shù)控分頻源程序清單module FENPIN (CLK1, TONE1, SPKS)。 input CLK1。 input[10:0] TONE1。 output SPKS。 reg SPKS。 reg PRECLK。 reg FULLSPKS。 always @(CLK1) begin : xhdl_1 reg[3:0] COUNT。 if (CLK1 == 139。b1) begin COUNT = COUNT + 1。 if (COUNT == 2) begin PRECLK = 139。b1 。 end else if (COUNT == 4) begin PRECLK = 139。b0 。 COUNT = 0。 end end end always @(PRECLK or TONE1) begin : xhdl_3 reg[10:0] COUNT11。 if (PRECLK == 139。b1) begin if (COUNT11 TONE1) begin COUNT11 = COUNT11 + 1。 FULLSPKS = 139。b1 。 end else begin COUNT11 = 0。 FULLSPKS = 139。b0 。 end end end always @(FULLSPKS) begin : xhdl_5 reg COUNT2。 COUNT2 = 139。b0。 if (FULLSPKS == 139。b1) begin COUNT2 = ~COUNT2。 if (COUNT2 == 139。b1) begin SPKS = 139。b1 。 end else begin SPKS = 139。b0 。 end end end endmodule