📄 special_clk_div.v
字号:
// XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"
// SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR
// XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION
// AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION
// OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS
// IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,
// AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE
// FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY
// WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE
// IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
// REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF
// INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE.
//
// (c) Copyright 2004 Xilinx, Inc.
// All rights reserved.
//
/*
-------------------------------------------------------------------------------
-- Title : CLOCK DIVIDER
-- Project : XUP Virtex-II Pro Demonstration System
-------------------------------------------------------------------------------
-- File : special_clk_div.v
-- Company : Xilinx Inc
-- Created : 2001/03/15
-- Last update: 2001/03/15
-- Copyright : (c) Xilinx Inc 2001
-------------------------------------------------------------------------------
-- Uses :
-------------------------------------------------------------------------------
-- Used by : onewire_master.v
-------------------------------------------------------------------------------
-- Description: divide clock input by 32
-------------------------------------------------------------------------------
*/
// use this clock divider until the SRL16 fix works
module SPECIAL_CLK_DIVIDER (reset,clk_in,clk_out);
input reset;
input clk_in;
output clk_out;
reg [15:0] shifter;
reg clk;
wire toggle;
wire clk_out;
wire clock_out;
assign toggle = shifter[15];
always @ (posedge clk_in or posedge reset) begin
if (reset) begin
shifter <= 16'h0001;
end
else begin
shifter [15:1] <= shifter [14:0];
shifter [0] <= shifter[15];
end
end
always @ (posedge toggle or posedge reset) begin
if (reset) begin
clk <=1'b1;
end
else begin
clk <=!clk_out;
end
end
BUFG SPECIAL_CLOCK_BUFFER (
.O (clk_out),
.I (clk)
);
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -