⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idelayctrl.v

📁 DDR2源代码 DDR2源代码 DDR2源代码
💻 V
字号:
///////////////////////////////////////////////////////////////////////////////// Copyright (c) 1995/2005 Xilinx, Inc.// All Right Reserved./////////////////////////////////////////////////////////////////////////////////   ____  ____//  /   /\/   /// /___/  \  /    Vendor : Xilinx// \   \   \/     Version : 10.1//  \   \         Description : Xilinx Functional Simulation Library Component//  /   /                  Input Delay Controller// /___/   /\     Filename : IDELAYCTRL.v// \   \  /  \    Timestamp : Thu Mar 11 16:43:51 PST 2005//  \___\/\___\//// Revision://    03/23/04 - Initial version.//    03/11/05 - Initialized outpus.//    07/23/07 - Initialized outpus.//    04/10/07 - CR 436682 fix, disable activity when rst is high// End Revision`timescale 1 ps / 1 ps module IDELAYCTRL (RDY, REFCLK, RST);    output RDY;    input REFCLK;    input RST;    wire refclk_in;    wire rst_in;    time clock_edge;    reg [63:0] period;    reg clock_low, clock_high;    reg clock_posedge, clock_negedge;    reg lost, rdy_out = 0;    buf b_rdy (RDY, rdy_out);    buf b_refclk (refclk_in, REFCLK);    buf b_rst (rst_in, RST);        always @(rst_in, lost) begin	if ((rst_in == 1'b1) || (lost == 1))	    	    rdy_out <= 1'b0;	else if (rst_in == 1'b0 && lost == 0)	    rdy_out <= 1'b1;    end    /*   always @(posedge lost) begin	rdy_out <= 1'b0;    end*/    	    initial begin	clock_edge <= 0;	clock_high <= 0;	clock_low <= 0;	lost <= 1;	period <= 0;    end    always @(posedge refclk_in) begin      if(rst_in == 1'b0) begin	clock_edge <= $time;	if (period != 0 && (($time - clock_edge) <= (1.5 * period)))	    period <= $time - clock_edge;	else if (period != 0 && (($time - clock_edge) > (1.5 * period)))	    period <= 0;	else if ((period == 0) && (clock_edge != 0))	    period <= $time - clock_edge;      end     end        always @(posedge refclk_in) begin	clock_low <= 1'b0;	clock_high <= 1'b1;	if (period != 0)	    lost <= 1'b0;	clock_posedge <= 1'b0;	#((period * 9.1) / 10)	if ((clock_low != 1'b1) && (clock_posedge != 1'b1))	    lost <= 1;    end        always @(posedge refclk_in) begin	clock_negedge <= 1'b1;    end        always @(negedge refclk_in) begin	clock_posedge <= 1'b1;    end        always @(negedge refclk_in) begin	clock_high  <= 1'b0;	clock_low   <= 1'b1;	if (period != 0)	    lost <= 1'b0;	clock_negedge <= 1'b0;	#((period * 9.1) / 10)	if ((clock_high != 1'b1) && (clock_negedge != 1'b1))	    lost <= 1;    end    specify	(REFCLK => RDY) = (100, 100);	specparam PATHPULSE$ = 0;        endspecifyendmodule // IDELAYCTRL

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -