zoukankan      html  css  js  c++  java
  • verilog分频

    //------------------------------------------------------------------------------
    // File       : gig_ethernet_pcs_pma_0_johnson_cntr.v
    // Author     : Xilinx Inc.
    //------------------------------------------------------------------------------
    // (c) Copyright 2004-2008 Xilinx, Inc. All rights reserved.
    //
    // This file contains confidential and proprietary information
    // of Xilinx, Inc. and is protected under U.S. and
    // international copyright and other intellectual property
    // laws.
    //
    // DISCLAIMER
    // This disclaimer is not a license and does not grant any
    // rights to the materials distributed herewith. Except as
    // otherwise provided in a valid license issued to you by
    // Xilinx, and to the maximum extent permitted by applicable
    // law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
    // WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
    // AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
    // BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
    // INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
    // (2) Xilinx shall not be liable (whether in contract or tort,
    // including negligence, or under any other theory of
    // liability) for any loss or damage of any kind or nature
    // related to, arising under or in connection with these
    // materials, including for any direct, or any indirect,
    // special, incidental, or consequential loss or damage
    // (including loss of data, profits, goodwill, or any type of
    // loss or damage suffered as a result of any action brought
    // by a third party) even if such damage or loss was
    // reasonably foreseeable or Xilinx had been advised of the
    // possibility of the same.
    //
    // CRITICAL APPLICATIONS
    // Xilinx products are not designed or intended to be fail-
    // safe, or for use in any application requiring fail-safe
    // performance, such as life-support or safety devices or
    // systems, Class III medical devices, nuclear facilities,
    // applications related to the deployment of airbags, or any
    // other applications that could lead to death, personal
    // injury, or severe property or environmental damage
    // (individually and collectively, "Critical
    // Applications"). Customer assumes the sole risk and
    // liability of any use of Xilinx products in Critical
    // Applications, subject only to applicable laws and
    // regulations governing limitations on product liability.
    //
    // THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
    // PART OF THIS FILE AT ALL TIMES. 
    // 
    // 
    //------------------------------------------------------------------------------
    //  Description:  This logic describes a standard johnson counter to
    //                create divided down clocks.  A divide by 10 clock is
    //                created.
    //
    //                The capabilities of this Johnson counter are extended
    //                with the use of the clock enables - it is only the
    //                clock-enabled cycles which are divided down.
    //
    //                The divide by 10 clock is output directly from a rising
    //                edge triggered flip-flop (clocked on the input clk).
    
    
    `timescale 1 ps/1 ps
    
    
    //------------------------------------------------------------------------------
    // Module declaration.
    //-----------------------------------------------------------------------------
    
    module gig_ethernet_pcs_pma_0_johnson_cntr
      (
        input  reset,           // Synchronous Reset
        input  clk,             // Input clock (always at 125MHz)
        input  clk_en,          // Clock enable for rising edge triggered flip flops
        output clk_div10        // (Clock, gated with clock enable) divide by 10
      );
    
    
    
      //----------------------------------------------------------------------------
      // internal signals used in this top level wrapper.
      //----------------------------------------------------------------------------
    
    
      reg reg1;            // first flip flop
      reg reg2;            // second flip flop
      reg reg3;            // third flip flop
      reg reg4;            // fourth flip flop
      reg reg5;            // fifth flip flop
    
    
    
      // Create a 5-stage shift register
      always @(posedge clk)
      begin
        if (reset == 1'b1) begin
          reg1 <= 1'b0;
          reg2 <= 1'b0;
          reg3 <= 1'b0;
          reg4 <= 1'b0;
          reg5 <= 1'b0;
        end
        else begin
          if (clk_en == 1'b1) begin
            if (reg5 == 1'b1 && reg4 == 1'b0) begin  // ensure that LFSR self corrects on every repetition
              reg1 <= 1'b0;
              reg2 <= 1'b0;
              reg3 <= 1'b0;
              reg4 <= 1'b0;
              reg5 <= 1'b0;
            end
            else begin
              reg1 <= !reg5;
              reg2 <= reg1;
              reg3 <= reg2;
              reg4 <= reg3;
              reg5 <= reg4;
            end
          end
        end
      end
    
    
    
      // The 5-stage shift register causes reg3 to toggle every 5 clock
      // enabled cycles, effectively creating a divide by 10 clock
      assign clk_div10 = reg3;
    
    
    
    endmodule
    
    
  • 相关阅读:
    G
    O
    M
    K-Hero
    J
    G
    F
    Codeforces Round #327 (Div. 2) A Wizards' Duel (水题)
    C++各大有名科学计算库(转)
    矩阵算法 高斯消元 行列式 矩阵的秩
  • 原文地址:https://www.cnblogs.com/time93/p/13246404.html
Copyright © 2011-2022 走看看