国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Xilinx FPGA中IDELAYCTRL參考時鐘控制模塊的使用

FPGA技術江湖 ? 來源:FPGA開源工作室 ? 2026-02-26 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以下文章來源于FPGA開源工作室,作者Leee

IDELAYCTRL 是 Xilinx FPGA(特別是支持高速 I/O 的系列,如 Virtex-5/6/7、Kintex-7、Artix-7、Spartan-6/7 等)中用于管理和校準輸入延遲模塊(IDELAYE2/IDELAYE3)的必須存在的參考時鐘控制模塊。

1 核心功能

IDELAYCTRL 的主要功能是為 IDELAY 模塊提供精確的延遲校準。

IDELAY(輸入延遲單元)是一個可以以 ~78ps(32 步進)或 ~11ps(512 步進) 的精度對輸入信號進行延遲調整的硬件原語。

但是這種延遲的精度依賴于一個參考時鐘(REFCLK),該時鐘的頻率決定了每一步延遲的實際時間。

IDELAYCTRL 模塊的作用就是持續監控和校準 IDELAY 的延遲步進,使其不隨 PVT(工藝、電壓、溫度)變化而漂移。

簡單說:沒有 IDELAYCTRL,IDELAY 的延遲量將不可預測。

2 工作原理

IDELAYCTRL 需要一個穩定且頻率匹配的參考時鐘 REFCLK

REFCLK 頻率要求:

對于 IDELAYE2(7系列、Virtex-6等):

REFCLK 必須為 200 MHz(如果延遲步進為 78ps) 或 300 MHz(如果延遲步進為 52ps,僅部分型號支持)。

通常 200 MHz 對應 78ps 步進,300 MHz 對應 52ps 步進。

但 7 系列中,實際步進為 78ps(200MHz) 或 ~52ps(300MHz),具體需查手冊。

對于 IDELAYE3(UltraScale/UltraScale+):

支持更多頻率,步進可為 ~10ps 到 ~50ps,需根據選擇的步進配置對應頻率。

校準機制:

IDELAYCTRL 內部包含一個環形振蕩器和校準電路,它通過比較 REFCLK 周期與延遲鏈的傳播時間,動態調整 IDELAY 單元的步進,使其保持恒定。

3 使用場景

IDELAYCTRL 用于以下場合:

高速源同步接口(如 DDR、LVDS 接收)

比特對齊(通過調整不同 bit 的延遲實現通道對齊)

時序收斂(調整建立/保持時間余量)

通常與 IDELAYE2/IDELAYE3 和 ISERDESE2/ISERDESE3 結合使用。

4 使用規則

一個 IDELAYCTRL 可服務多個 IDELAY:

在同一個區域(通常是一個 Bank 或幾個相鄰 Bank)內的所有 IDELAY 可以共享一個 IDELAYCTRL 實例。

跨區域需多個 IDELAYCTRL:

不同時鐘區域(Clock Region)或不同 IDELAY 類型可能需要獨立的 IDELAYCTRL。

必須提供穩定 REFCLK:

REFCLK 必須來自全局時鐘資源(如 MMCM/PLL 輸出),并且頻率精確。

上電后需等待 RDY 信號:

IDELAYCTRL 啟動后需要一段時間校準,完成后輸出 RDY 信號為高,之后才能使用 IDELAY。

5 原語示例(7系列)

IDELAYCTRL#(
 .SIM_DEVICE("7SERIES") // 對于7系列,Virtex-6 為"VIRTEX6"
)
idelayctrl_inst(
 .RDY(rdy_out),   // 輸出:校準就緒信號,高有效
 .REFCLK(refclk),  // 輸入:參考時鐘(200 MHz)
 .RST(rst)     // 輸入:復位,高有效,初始化校準
);
idelayctrl_inst:IDELAYCTRL
generic map(
 SIM_DEVICE=>"7SERIES"
)
port map(
 RDY  =>rdy_out,
 REFCLK=>refclk,
 RST  =>rst
);

6 連接方式

在典型設計中:

使用一個 MMCM/PLL 產生精確的 200 MHz 參考時鐘。

將該時鐘連接到 IDELAYCTRL 的 REFCLK。

將 IDELAYCTRL 的 RDY 信號作為系統中 IDELAY 模塊使能的條件(或作為系統復位釋放條件)。

同一區域的所有 IDELAYE2 共享此 IDELAYCTRL。

必須使用 IDELAYCTRL:

只要使用了 IDELAYE2/IDELAYE3,就必須例化并正確連接 IDELAYCTRL,否則延遲值會隨環境變化,導致接口不穩定。

REFCLK 頻率必須精確:

如果 REFCLK 頻率偏差大,校準后的延遲步進誤差也會增大。

復位和就緒:

上電或復位后,需等待 RDY 變高才能使用 IDELAY。

7 與 IDELAYE2 的連接示例

//1. 先產生200MHz 參考時鐘(例如從100MHz 系統時鐘倍頻)
clk_wiz_inst(
 .clk_in1(sys_clk),
 .clk_out1(refclk_200m)//200MHz
);

//2. 實例化 IDELAYCTRL
IDELAYCTRL idelayctrl_inst(
 .RDY(rdy),
 .REFCLK(refclk_200m),
 .RST(~pll_locked) // PLL 鎖定時釋放復位
);

//3. 使用 IDELAYE2(需要延遲的輸入信號)
IDELAYE2#(
 .DELAY_SRC("IDATAIN"),
 .IDELAY_TYPE("VAR_LOAD"), // 或"FIXED","VARIABLE"
 .IDELAY_VALUE(0),
 .REFCLK_FREQUENCY(200.0)
)
idelaye2_inst(
 .IDATAIN(data_in),
 .DATAOUT(data_delayed),
 .C(refclk_200m),    // 時鐘,用于加載新延遲值
 .CE(ce),
 .INC(inc),
 .LD(load),
 .LDPIPEEN(1'b0),
 .CNTVALUEIN(cntvaluein), // 動態加載的延遲值
 .CNTVALUEOUT(cntvalueout),
 .REGRST(1'b0)
);

//4. 在系統中,確保在 rdy 為高后才使能 IDELAY 操作
// 時鐘生成
clk_wiz_inst u_clk_wiz(
  .clk_in1(sys_clk),
  .clk_out1(refclk_200m),
  .locked(pll_locked)
);

// IDELAYCTRL 實例化
wire idelayctrl_rdy;
IDELAYCTRL u_idelayctrl(
  .RDY(idelayctrl_rdy),
  .REFCLK(refclk_200m),
  .RST(~pll_locked)
);

// 等待 IDELAYCTRL 就緒
reg idelay_ready;
always @(posedge refclk_200m)begin
  idelay_ready<=?idelayctrl_rdy;
end

// IDELAYE2 實例化
wire?[4:0]?cntvalueout;
IDELAYE2?#(
? ? .DELAY_SRC("IDATAIN"),
? ? .IDELAY_TYPE("VAR_LOAD"),
? ? .IDELAY_VALUE(0),
? ? .REFCLK_FREQUENCY(200.0)
)?u_idelaye2?(
? ? .IDATAIN(data_in),
? ? .DATAOUT(data_delayed),
? ? .C(refclk_200m),
? ? .CE(idelay_ready ? ce_signal?:1'b0), ? ? ?// 門控 CE
? ? .INC(inc_signal),
? ? .LD(idelay_ready ? load_signal : 1'b0), ? ?// 門控 LD
? ? .LDPIPEEN(1'b0),
? ? .CNTVALUEIN(cntvaluein),
? ? .CNTVALUEOUT(cntvalueout),
? ? .REGRST(~idelay_ready) ? ? ? ? ? ? ? ? ? ? // 未就緒時復位
);

// 示例:在就緒后加載初始延遲值
reg load_init;
always @(posedge refclk_200m) begin
? ? if (~idelay_ready) begin
? ? ? ? load_init <= 1'b0;
? ? ? ? cntvaluein?<=5'b0;
? ? end else if (idelay_ready && ~load_init) begin
? ? ? ? // 第一次就緒時加載默認延遲
? ? ? ? load_init <= 1'b1;
? ? ? ? cntvaluein?<=5'b01000; ?// 8個步進,約624ps
? ? ? ? load_signal <= 1'b1;
? ? end?else?begin
? ? ? ? load_signal?<=1'b0;
? ? ? ? //?... 正常操作
? ? end
end

必須等待 RDY:在 RDY 為高之前,不應操作 IDELAYE2

門控控制信號:CE、LD 等信號應在 RDY 有效后才使能

位管理:可以使用 ~RDY 作為 REGRST 或系統復位條件

上電時序:整個系統應等待 PLL_LOCKED + IDELAYCTRL_RDY 后才開始工作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22408

    瀏覽量

    636240
  • Xilinx
    +關注

    關注

    73

    文章

    2200

    瀏覽量

    131124
  • 時鐘控制
    +關注

    關注

    0

    文章

    19

    瀏覽量

    7180

原文標題:詳細解釋xilinx源語的使用:IDELAYCTRL

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Xilinx官方開源FOC電機控制工程解析

    近年來,隨著嵌入式控制與功率電子的融合,基于 FPGA/SoC 的電機控制越來越受到關注。特別是 矢量控制(Field Oriented Control, FOC),它是高性能電機驅動
    的頭像 發表于 03-02 10:51 ?3305次閱讀
    <b class='flag-5'>Xilinx</b>官方開源FOC電機<b class='flag-5'>控制</b>工程解析

    基于FPGA的I2C控制模塊設計

    。I2C_HDMI_Config.v 是頂層模塊,該模塊例化了I2C_Controller模塊,對系統時鐘進行了分頻,并控制寄存器的配置。
    的頭像 發表于 12-26 09:48 ?4891次閱讀
    基于<b class='flag-5'>FPGA</b>的I2C<b class='flag-5'>控制</b><b class='flag-5'>模塊</b>設計

    使用Xilinx 7系列FPGA的四位乘法器設計

    (Shinshu University)研究團隊的最新設計,一個專為 Xilinx 7 系列 FPGA 量身打造的 4 位乘法器使用了僅 11 個 LUT + 2 個 CARRY4 塊,關鍵路徑延遲達到 2.75 ns。這是一
    的頭像 發表于 11-17 09:49 ?3462次閱讀
    使用<b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b>的四位乘法器設計

    Xilinx FPGA串行通信協議介紹

    Xilinx FPGA因其高性能和低延遲,常用于串行通信接口設計。本文深入分析了Aurora、PCI Express和Serial RapidIO這三種在Xilinx系統設計關鍵的串
    的頭像 發表于 11-14 15:02 ?2532次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>串行通信協議介紹

    基于FPGA的高效內存到串行數據傳輸模塊設計

    本文介紹了一個基于FPGA的內存到串行數據傳輸模塊,該模塊設計用來高效地處理存儲器的數據并傳輸至串行接口。項目中自定義的“datamover_mm2s_
    的頭像 發表于 11-12 14:31 ?4328次閱讀
    基于<b class='flag-5'>FPGA</b>的高效內存到串行數據傳輸<b class='flag-5'>模塊</b>設計

    開源RISC-V處理器(蜂鳥E203)學習(二)修改FPGA綜合環境(移植到自己的Xilinx FPGA板卡)

    約束文件的外設,可以將其注釋掉,比如我將RGB LED和GPIO注釋掉。當然后面就需要修改FPGA頂層文件,這個后面會說。但是板卡有相應外設,自己修改管腳號就可以了 4)修改時鐘 其次就是
    發表于 10-31 08:46

    時鐘移項電路加速模塊的設計

    FPGA引腳,在基于邏輯的邊沿變化采集時并不能對準數據穩定的時刻,而不能正確采集到數據。為了在時鐘跳變時能對準數據的穩定時刻,通常在設計時可以采用以下方法:專用IP核延遲、鎖相環移相和門電路延遲。邏輯
    發表于 10-29 07:38

    E203工程源碼時鐘樹解析

    我們使用的是芯來科技提供的hbirdv2_E203軟核以及芯來科技MCU200T開發板,板上的FPGA芯片是XILINX的XC7A200T-FBG484。 通過分析頂層模塊MCU200T
    發表于 10-29 07:25

    基于FPGA的DDR控制器設計

    器可以在Xilinx公司MIG(Memory Interface Generators)IP核的基礎上設計得到的。IG IP核是Xilinx公司針對DDR存儲器開發的IP,里面集成存儲器控制
    發表于 10-21 14:30

    FPGA搭建DDR控制模塊

    ,DDR SDRAM的最大特點是雙邊沿觸發,即在時鐘的上升沿和下降沿都能進行數據采集的發送,同樣的工作時鐘,DDR SDRAM的讀寫速度可以比傳統的SDRAM快一倍。 DDR3讀寫控制器可以在
    發表于 10-21 10:40

    FPGA實現DDR控制模塊介紹

    Xilinx公司MIG(Memory Interface Generators)IP核的基礎上設計得到的。IG IP核是Xilinx公司針對DDR存儲器開發的IP,里面集成存儲器控制模塊
    發表于 10-21 08:43

    一文詳解xilinx 7系列FPGA配置技巧

    本文旨在通過講解不同模式的原理圖連接方式,進而配置用到引腳的含義(手冊上相關引腳含義有四、五頁,通過本文理解基本上能夠記住所有引腳含義以及使用場景),熟悉xilinx 7系列配置流程,以及設計原理圖時需要注意的一些事項,比如flash與FPGA的上電時序。
    的頭像 發表于 08-30 14:35 ?1.1w次閱讀
    一文詳解<b class='flag-5'>xilinx</b> 7系列<b class='flag-5'>FPGA</b>配置技巧

    XILINX XCZU67DR FPGA完整原理圖

    電子發燒友網站提供《XILINX XCZU67DR FPGA完整原理圖.pdf》資料免費下載
    發表于 05-30 15:29 ?26次下載

    Xilinx Ultrascale系列FPGA時鐘資源與架構解析

    Ultrascale是賽靈思開發的支持包含步進功能的增強型FPGA架構,相比7系列的28nm工藝,Ultrascale采用20nm的工藝,主要有2個系列:Kintex和Virtex
    的頭像 發表于 04-24 11:29 ?2604次閱讀
    <b class='flag-5'>Xilinx</b> Ultrascale系列<b class='flag-5'>FPGA</b>的<b class='flag-5'>時鐘</b>資源與架構解析

    EPSON實時時鐘模塊RA8000CE在智能座艙域控制的應用

    ,對系統的可靠性和精準性提出了極高要求。其中,精準的時間管理是確保智能座艙系統高效運行的基礎。EPSON推出的RA8000CE實時時鐘模塊,憑借其高精度、低功耗和車規級可靠性,成為智能座艙域控制
    的頭像 發表于 03-13 14:21 ?999次閱讀