Advertisement
JayAurabind

counter unexpected behaviour

Jan 22nd, 2013
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module clock_test(clk_in,seven_seg,led,rst);
  2.    input wire clk_in;
  3.    input wire rst;
  4. //   output wire clk_out;
  5.    output reg [7:0] seven_seg;
  6.    output wire [7:0] led;
  7.  
  8.    wire         clk_int;
  9.    
  10.    wire         CLKIN_IN;
  11.    wire         CLKDV_OUT;
  12.  
  13.    assign CLKIN_IN = clk_in;
  14.    assign clk_int = CLKDV_OUT;
  15.  
  16.    wire         CLKIN_IBUFG;
  17.    wire         CLK0_BUF;
  18.    wire         CLKFB_IN;
  19.    wire         CLKDV_BUF;
  20.  
  21.  
  22. IBUFG CLKIN_IBUFG_INST (
  23.     .I(CLKIN_IN),
  24.         .O(CLKIN_IBUFG)
  25. );
  26.  
  27. BUFG CLK0_BUFG_INST (
  28.     .I(CLK0_BUF),
  29.         .O(CLKFB_IN)
  30. );
  31.  
  32. BUFG CLKDV_BUFG_INST (
  33.     .I(CLKDV_BUF),
  34.         .O(CLKDV_OUT)
  35. );
  36.    DCM_SP #(
  37.     .CLKDV_DIVIDE(4),       // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
  38.                         //   7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
  39.     .CLKFX_DIVIDE(1),               // Can be any integer from 1 to 32
  40.     .CLKFX_MULTIPLY(4),             // Can be any integer from 2 to 32
  41.     .CLKIN_DIVIDE_BY_2("FALSE"),        // TRUE/FALSE to enable CLKIN divide by two feature
  42.     .CLKIN_PERIOD(10),          // Specify period of input clock
  43.     .CLKOUT_PHASE_SHIFT("NONE"),        // Specify phase shift of NONE, FIXED or VARIABLE
  44.     .CLK_FEEDBACK("1X"),            // Specify clock feedback of NONE, 1X or 2X
  45.     .DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"),   // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
  46.                         //   an integer from 0 to 15
  47.     .DLL_FREQUENCY_MODE("LOW"),         // HIGH or LOW frequency mode for DLL
  48.     .DUTY_CYCLE_CORRECTION("TRUE"),     // Duty cycle correction, TRUE or FALSE
  49.     .PHASE_SHIFT(0),                // Amount of fixed phase shift from -255 to 255
  50.     .STARTUP_WAIT("FALSE")          // Delay configuration DONE until DCM LOCK, TRUE/FALSE
  51. ) DCM_SP_inst (
  52.     .CLK0(CLK0_BUF),                // 0 degree DCM CLK output
  53.     .CLK180(),              // 180 degree DCM CLK output
  54.     .CLK270(),              // 270 degree DCM CLK output
  55.     .CLK2X(),                   // 2X DCM CLK output
  56.     .CLK2X180(),                // 2X, 180 degree DCM CLK out
  57.     .CLK90(),                   // 90 degree DCM CLK output
  58.     .CLKDV(CLKDV_BUF),              // Divided DCM CLK out (CLKDV_DIVIDE)
  59.     .CLKFX(),                   // DCM CLK synthesis out (M/D)
  60.     .CLKFX180(),                // 180 degree CLK synthesis out
  61.     .LOCKED(),              // DCM LOCK status output
  62.     .PSDONE(),              // Dynamic phase adjust done output
  63.     .STATUS(),              // 8-bit DCM status bits output
  64.     .CLKFB(CLKFB_IN),               // DCM clock feedback
  65.     .CLKIN(CLKIN_IBUFG),            // Clock input (from IBUFG, BUFG or DCM)
  66.     .PSCLK(1'b0),               // Dynamic phase adjust clock input
  67.     .PSEN(1'b0),                // Dynamic phase adjust enable input
  68.     .PSINCDEC(1'b0),            // Dynamic phase adjust increment/decrement
  69.     .RST(1'b0)                  // DCM asynchronous reset input
  70. );
  71.  
  72.    reg [23:0] counter = 24'b0;
  73.    
  74.    assign led = counter[23:16];
  75.  
  76. //   always @(posedge clk_int)  
  77.    always @(posedge clk_int or posedge rst)
  78.      begin
  79.         if(rst)
  80.       begin
  81.          counter <= 0;
  82.          //led <= 8'b1;
  83.          seven_seg <= 8'b1;
  84.       end
  85.    
  86.     else
  87.       begin
  88.          counter <= counter +1;
  89.          seven_seg <= seven_seg + 1;
  90.          
  91.       end  
  92.      end
  93. endmodule // clock_test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement