OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [trunk/] [fpga/] [mc/] [boards/] [s3e-500/] [src/] [clk_rst/] [clk_rst.v] - Diff between revs 288 and 290

Show entire file | Details | Blame | View Log

Rev 288 Rev 290
Line 1... Line 1...
//
//
// clk_rst.v -- clock and reset generator
// clk_rst.v -- clock and reset generator
//
//
 
 
 
 
module clk_rst(clk_in, reset_in,
`timescale 1ns/10ps
 
`default_nettype none
 
 
 
 
 
module clk_rst(clk_in, rst_in,
               ddr_clk_0, ddr_clk_90, ddr_clk_180,
               ddr_clk_0, ddr_clk_90, ddr_clk_180,
               ddr_clk_270, ddr_clk_ok, clk, reset);
               ddr_clk_270, ddr_clk_ok, clk, rst);
    input clk_in;
    input clk_in;
    input reset_in;
    input rst_in;
    output ddr_clk_0;
    output ddr_clk_0;
    output ddr_clk_90;
    output ddr_clk_90;
    output ddr_clk_180;
    output ddr_clk_180;
    output ddr_clk_270;
    output ddr_clk_270;
    output ddr_clk_ok;
    output ddr_clk_ok;
    output clk;
    output clk;
    output reset;
    output rst;
 
 
  wire clk50_in;
  wire clk50_in;
  wire clk50_out;
  wire clk50_out;
  wire clk50_ok;
  wire clk50_ok;
  wire clk100_out;
  wire clk100_out;
Line 25... Line 29...
  wire clk100_90;
  wire clk100_90;
  wire clk100_180;
  wire clk100_180;
  wire clk100_270;
  wire clk100_270;
  wire clk100_ok;
  wire clk100_ok;
 
 
  reg reset_p;
  reg rst_p;
  reg reset_s;
  reg rst_s;
  reg [23:0] reset_counter;
  reg [23:0] rst_counter;
  wire reset_counting;
  wire rst_counting;
 
 
  //------------------------------------------------------------
  //------------------------------------------------------------
 
 
  IBUFG clk_in_buffer(
  IBUFG clk_in_buffer(
    .I(clk_in),
    .I(clk_in),
Line 125... Line 129...
 
 
  assign ddr_clk_ok = clk100_ok;
  assign ddr_clk_ok = clk100_ok;
 
 
  //------------------------------------------------------------
  //------------------------------------------------------------
 
 
  assign reset_counting = (reset_counter == 24'hFFFFFF) ? 0 : 1;
  assign rst_counting = (rst_counter == 24'hFFFFFF) ? 0 : 1;
 
 
  always @(posedge clk) begin
  always @(posedge clk) begin
    reset_p <= reset_in;
    rst_p <= rst_in;
    reset_s <= reset_p;
    rst_s <= rst_p;
    if (reset_s | ~clk50_ok | ~clk100_ok) begin
    if (rst_s | ~clk50_ok | ~clk100_ok) begin
      reset_counter <= 24'h000000;
      rst_counter <= 24'h000000;
    end else begin
    end else begin
      if (reset_counting == 1) begin
      if (rst_counting == 1) begin
        reset_counter <= reset_counter + 1;
        rst_counter <= rst_counter + 1;
      end
      end
    end
    end
  end
  end
 
 
  assign reset = reset_counting;
  assign rst = rst_counting;
 
 
endmodule
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.