📄 qdr2_clocks.v
字号:
//*****************************************************************************************
//**
//** www.xilinx.com Copyright (c) 1984-2004 Xilinx, Inc. All rights reserved
//**
//** QDR(tm)-II SRAM Virtex(tm)-II Interface Verilog instanciation
//**
//*****************************************************************************************
//**
//** Disclaimer: LIMITED WARRANTY AND DISCLAMER. These designs are
//** provided to you \"as is\". Xilinx and its licensors make and you
//** receive no warranties or conditions, express, implied, statutory
//** or otherwise, and Xilinx specifically disclaims any implied
//** warranties of merchantability, non-infringement, or fitness for a
//** particular purpose. Xilinx does not warrant that the functions
//** contained in these designs will meet your requirements, or that the
//** operation of these designs will be uninterrupted or error free, or
//** that defects in the Designs will be corrected. Furthermore, Xilinx
//** does not warrant or make any representations regarding use or the
//** results of the use of the designs in terms of correctness, accuracy,
//** reliability, or otherwise.
//**
//** LIMITATION OF LIABILITY. In no event will Xilinx or its licensors be
//** liable for any loss of data, lost profits, cost or procurement of
//** substitute goods or services, or for any special, incidental,
//** consequential, or indirect damages arising from the use or operation
//** of the designs or accompanying documentation, however caused and on
//** any theory of liability. This limitation will apply even if Xilinx
//** has been advised of the possibility of such damage. This limitation
//** shall apply not-withstanding the failure of the essential purpose of
//** any limited remedies herein.
//**
//*****************************************************************************************
// This module is the top level architecture for the memory interface design.
// The signals connections are describled in the application note.
// The naming convention is as follows:
// - user side: USER_INSTNAME
// - memory side: QDR_INSTNAME
`timescale 1 ns/1 ps
module qdr2_clocks ( USER_CLK,
USER_CLK_N,
RESET,
CLK_BUF,
GCLK0,
GCLK90,
GCLK180,
GCLK270,
CLKDIV2,
LOCKED_DCM);
input USER_CLK;
input USER_CLK_N;
input RESET;
output CLK_BUF;
output GCLK0;
output GCLK90;
output GCLK180;
output GCLK270;
output CLKDIV2;
output LOCKED_DCM;
wire LOCKED_DCM_SEC;
wire LOCKED_DCM_PRI;
wire GND;
wire HIGH;
wire CLK_BUF;
wire CLK0E_BUF;
wire CLK90E_BUF;
wire CLK180E_BUF;
wire CLK270E_BUF;
wire CLK_DV_BUF;
wire CLK0E;
wire CLK90E;
wire CLK270E;
wire CLK180E;
// Signals assigment
assign GND = 1'b0;
assign GCLK0 = CLK0E;
assign GCLK90 = CLK90E;
assign GCLK180 = CLK180E;
assign GCLK270 = CLK270E;
assign LOCKED_DCM = ( LOCKED_DCM_PRI);
// Clock buffer
IBUFGDS_LVDS_25 IBUFG_GENE (.O(CLK_BUF), .I(USER_CLK), .IB(USER_CLK_N));
// DCM instanciation for the memory controller
DCM INST_DCM_TOMEMORY (.CLK0(CLK0E_BUF),
.CLK90(CLK90E_BUF),
.CLK180(CLK180E_BUF),
.CLK270(CLK270E_BUF),
.CLK2X(),
.CLK2X180(),
.CLKDV(),
.CLKFX(),
.CLKFX180(),
.LOCKED(LOCKED_DCM_PRI),
.PSDONE(),
.STATUS(),
.CLKFB(CLK0E),
.CLKIN(CLK_BUF), //CLK external generated by a frequency generator, at 200 MHz
.DSSEN(GND),
.PSCLK(GND),
.PSEN(GND),
.PSINCDEC(GND),
.RST(RESET)
);
// The test design requires CLK0 /2. The number of direct clock interconnect per DCM is 4,
// and CLK0 through 270 are using these clocks.
// An addition DCM is used to generate CLK0/2 in order to maintain low clock tree skew.
/*DCM INST_DCM_DIV2TEST (.CLK0(),
.CLK90(),
.CLK180(),
.CLK270(),
.CLK2X(),
.CLK2X180(),
.CLKDV(CLK_DV_BUF),
.CLKFX(),
.CLKFX180(),
.LOCKED(LOCKED_DCM_SEC),
.PSDONE(),
.STATUS(),
.CLKFB(CLK0E),
.CLKIN(CLK_BUF), //CLK external generated by a frequency generator, at 200 MHz
.DSSEN(GND),
.PSCLK(GND),
.PSEN(GND),
.PSINCDEC(GND),
.RST(RESET)
);
*/
// BUFG instanciation
BUFG BUFG_Sec_0 (.O(CLK0E), .I(CLK0E_BUF));
BUFG BUFG_Sec_90 (.O(CLK90E), .I(CLK90E_BUF));
BUFG BUFG_Sec_180 (.O(CLK180E), .I(CLK180E_BUF));
BUFG BUFG_Sec_270 (.O(CLK270E), .I(CLK270E_BUF));
BUFG BUFG_CLKDIV2 (.O(CLKDIV2), .I(CLK_DV_BUF));
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -