frequency5x2.v
上传用户:saul_905
上传日期:2013-11-27
资源大小:184k
文件大小:2k
源码类别:

VHDL/FPGA/Verilog

开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //This module is used to change the 50Mhz frequency to 20Mhz./////////////////
  3. //Xiaoming,Chen,31,july,2002./////////////////////////////////////////////////
  4. /////////////////////////////////////////////////////////////////////////////
  5. `timescale 1ns/100ps
  6. module frequency5x2(in,out,rst);
  7. input in,rst;
  8. output out;   
  9. reg out;
  10. reg mid;
  11. integer counter;
  12. parameter delaytime=25;
  13. always@(posedge rst )
  14.  
  15.           begin
  16.           counter=0;
  17.           out=0;
  18.           mid=0;
  19.           end
  20. always@(posedge in)
  21.           begin
  22.              if(counter==4)
  23.                 begin
  24.                 mid=~mid;
  25.                 counter=0;
  26.                 end
  27.               else
  28.                counter=counter+1;
  29.            end
  30.            
  31.   always@(negedge in)
  32.           begin
  33.              if(counter==4)
  34.                 begin
  35.                 mid=~mid;
  36.                 counter=0;
  37.                 end
  38.               else
  39.                counter=counter+1;
  40.            end
  41.        
  42. always@(posedge mid )
  43.         begin
  44.           out=~out;
  45.           #delaytime out=~out;
  46.         end
  47. always@(negedge mid)
  48.          begin
  49.           out=~out;
  50.           #delaytime out=~out;
  51.          end                                                 
  52. endmodule
  53.  //////test module///////////////////////////////////////////////////////
  54. //this module is used to test module frequency5x2.v////////////////////////
  55.  `timescale 1ns/100ps                          
  56.     module test;
  57.       
  58.       reg clock,reset; 
  59.                          
  60.        frequency5x2 t(clock,out,reset);
  61.        
  62.        initial
  63.          begin
  64.              clock=0;
  65.             reset=0;
  66.             
  67.             #10 reset=1;
  68.          end
  69.        always #10 clock=~clock;
  70.    endmodule                            //generate 20Mhz waveforme square wave
  71.                
  72. //////////////////////////////////////////////////////////////////////////////