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

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

3天內(nèi)不再提示

如何在應用程序中實現(xiàn) IDELAY 功能

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-10-12 09:04 ? 次閱讀

FPGA項目開發(fā)之 7 系列 FPGA 高級 SelectIO 邏輯資源

IO 靈活性是FPGA 最大的優(yōu)點之一。如果我們設計的 PCB 信號走線不完美,IO的靈活性使我們能夠?qū)R進入設備的高速數(shù)據(jù),幫助我們擺脫困境。

設備 IO 結構中一個經(jīng)常被忽視的功能是 IDELAY2 和 ODELAY2 原語。這些原語為開發(fā)人員提供了一個由 32 個抽頭組成的可編程延遲線,可提供可調(diào)節(jié)或固定的延遲。

實際可用的原語取決于我們正在使用的 IO bank 的類型。High Performance IO (HP IO) 為用戶提供 IDELAY2 和 ODELAY2 原語,而 High-Range IO (HR IO) 僅提供 IDELAY2 原語。

我們可以同時使用 IDELAY 和 ODELAY 來消除信號之間的小延遲。抽頭之間的分辨率取決于FPGA的時鐘頻率和速度等級,7 系列 AC/DC 數(shù)據(jù)表如下所示:

95788e6e-49c6-11ed-a3b6-dac502259ad0.png

當我們提供 200 MHz 參考時鐘時,每個抽頭增量都會將延遲增加 78 ps。這意味著總延遲約為 2.469 ns。

IDELAY 和 ODELAY 原語可以在四種模式下運行:

FIXED——延遲在此模式下是固定的,不能在運行時更改。

VARIABLE – 這是一個可變延遲,其中抽頭值可以使用簡單的界面增加或減少。

VAR_LOAD – 與變量模式類似,可以通過輸入向量設置抽頭延遲。

VAR_LOAD_PIPE – 這與 VAR_LOAD 類似,但是可以流水線化未來的延遲。

IDELAY2 模塊能夠延遲來自邏輯結構或 IO 輸入的信號。

現(xiàn)在讓我們看下如何在應用程序中實現(xiàn) IDELAY 功能,并創(chuàng)建一個不同模式下的實例。

要開始使用 IDELY 或 ODELAY,我們需要實現(xiàn)一個 IDELAYCNTRL 模塊。該模塊不斷校準其區(qū)域內(nèi)的各個延遲抽頭。該模塊非常簡單,需要參考時鐘和復位,RDY 輸出低時表示 IDELAYCNTRL 模塊需要復位。

959ce8a4-49c6-11ed-a3b6-dac502259ad0.png

這些可以使用 Vivado 文本編輯器中提供的語言模板來實例化我們需要的模塊。

95b521f8-49c6-11ed-a3b6-dac502259ad0.png

我們也可以使用相同的語言模板來實例化 IDELAYCNTRL2。我們將要演示的設計將使用一個 IDELAYCNTRL 和兩個 IDELAY2 原語。這就能測試不同配置 IDELAY2 時信號延遲之間的差異。

兩個 IDELAY2 原語都將以 VAR_LOAD 模式運行。允許使用 CNTVALUEIN 和簡單的 CE 和 INC 信號接口調(diào)整抽頭延遲。

95cca666-49c6-11ed-a3b6-dac502259ad0.png

測試平臺將執(zhí)行以下步驟:

重置 IDELAYCNTRL。

將兩個輸入信號 IDELAY2 設置為 0 延遲。

設置兩個 IDELAY 延遲 2,將兩個信號。

將第二個 IDELAY2 延遲增加 1 ,同時將第一個 IDELAY 保留為 2。

將第二個 IDELAY2 減 1 ,讓兩者具有相同的延遲。

將第二個 IDELAY2 設置為具有 31 的最大可能延遲。

可以在下面看到整體仿真延遲比較小,無法看到該級別延遲的影響。然而,隨著仿真執(zhí)行不同的測試,我們將看到控制信號和抽頭值發(fā)生變化。

95ea211e-49c6-11ed-a3b6-dac502259ad0.png

測試一的波形如下所示。盡管沒有計算延遲,但輸入信號和輸出信號之間存在大約 60 ps 的延遲。

96200220-49c6-11ed-a3b6-dac502259ad0.png

當延遲設置為 2 時,延遲為 756 ns,即 156 ps(兩個 78 ps 的抽頭延遲)加上原來的 0.6 ns 延遲。

96362e74-49c6-11ed-a3b6-dac502259ad0.png

第三個測試顯示信號一和信號二之間有 78 ps 的延遲。對應于接頭設置的差異,這也顯示在計數(shù)值輸出信號上。

96637550-49c6-11ed-a3b6-dac502259ad0.png

第四個測試將兩個信號路徑設置為具有相同的延遲。測試三和四演示了簡單的遞增和遞減接口是如何工作的。我們啟用 IDELAY2,并根據(jù) INC 的狀態(tài),增加或減少抽頭延遲。如果 INC 設置為與 CE 一致,則增加抽頭延遲,否則減少抽頭延遲。

最后的測試將第二個信號路徑設置為最大延遲。在這里可以看到信號 2 延遲了 3.018 ns。這是2.469 ns 的抽頭延遲加上原來的 0.6 ns。

9679975e-49c6-11ed-a3b6-dac502259ad0.png

IDELAY 在我們的工具箱中是一個非常有用的工具,它提供了對 FPGA 中的輸入信號進行細粒度對齊的能力。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1625

    文章

    21637

    瀏覽量

    601315
  • IO
    IO
    +關注

    關注

    0

    文章

    434

    瀏覽量

    39051
  • 應用程序
    +關注

    關注

    37

    文章

    3238

    瀏覽量

    57550

原文標題:FPGA項目開發(fā)之 7 系列 FPGA 高級 SelectIO 邏輯資源

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    xilinx FPGAoddr,idelay的用法詳解

    idelay2按推薦配置,從DATAIN還是從IDATAIN輸入?yún)^(qū)別為是內(nèi)部延時還是從IO輸入,F(xiàn)IXED固定延時,idelay value先輸入0,,時鐘是200M,其他全部接0。
    的頭像 發(fā)表于 11-25 14:35 ?1.1w次閱讀

    何在應用程序實現(xiàn) IDELAY 功能

    可以在下面看到整體仿真延遲比較小,無法看到該級別延遲的影響。然而,隨著仿真執(zhí)行不同的測試,我們將看到控制信號和抽頭值發(fā)生變化。
    的頭像 發(fā)表于 10-09 17:42 ?2000次閱讀

    何在ModusToolbox?檢查和設置應用程序的內(nèi)存地址?

    何在ModusToolbox?檢查和設置應用程序的內(nèi)存地址?
    發(fā)表于 03-01 10:16

    何在Ubuntu linux寫一個應用程序

    何在Ubuntu linux寫一個應用程序?
    發(fā)表于 04-18 10:02

    何在應用程序調(diào)用ROM bootlaoder

    何在應用程序調(diào)用ROM bootlaoder
    發(fā)表于 06-13 11:47

    嵌入式應用程序的USB 3.0鏈路共享怎么實現(xiàn)?

    USB 3.0 端口可通過分離超高速端口和標準 USB 2.0 端口來實現(xiàn)鏈路共享功能。目前,鏈路共享是賽普拉斯 HX3 USB 3.0 集線器控制器的獨有功能。本文將介紹如何在擴展塢
    發(fā)表于 08-08 08:01

    何在應用程序“CyMeCube”查看端點?

    FX3 USB Struts示例設備”。CySCORE的應用程序是干凈的(沒有顯示)。如何在應用程序“CyMeCube”查看端點?也許,我忘了在復合項目中插入一些代碼了嗎?我的第二
    發(fā)表于 10-15 11:00

    CH32F103如何在應用程序響應中斷?

    = execution address*.o (RESET, +First)*(InRoot$$Sections).ANY (+RO).ANY (+XO)}RW_IRAM1 0x20000000 0x00005000{; RW data.ANY (+RW +ZI)}}請問,如何在
    發(fā)表于 06-16 06:14

    何在應用程序實現(xiàn)IDELAY功能并創(chuàng)建一個不同模式下的實例

    。IDELAY2 模塊能夠延遲來自邏輯結構或 IO 輸入的信號。現(xiàn)在讓我們看下如何在應用程序實現(xiàn) ID
    發(fā)表于 10-09 16:00

    FPGA高級SelectIO邏輯資源簡析

    。IDELAY2 模塊能夠延遲來自邏輯結構或 IO 輸入的信號?,F(xiàn)在讓我們看下如何在應用程序實現(xiàn) ID
    發(fā)表于 10-12 14:19

    何在linux應用程序中使用pwm捕獲?

    /402e4000.pwm/pwm/pwmchip6/pwm0# cat capture cat: capture: 函數(shù)未實現(xiàn) 那么,如何在 linux 應用程序中使用 pwm 捕獲?
    發(fā)表于 05-10 07:05

    何在uclinux添加自己應用程序的詳細過程

    何在uclinux添加自己應用程序的詳細過程
    發(fā)表于 03-28 09:48 ?20次下載

    用Delphi實現(xiàn)基于SAPI的電腦語音控制應用程序

    介紹了語音功能的基本概念,討論了開發(fā)具有語音控制功能應用程序的條件和步驟。并用Delphi 實現(xiàn)了一個基于微軟SAPI 的語音控制應用程序,
    發(fā)表于 09-11 16:13 ?43次下載

    何在軟件實現(xiàn)TI的觸摸屏控制器提供的各種功能詳細概述

    這個應用報告展示了幾個例子,展示了如何從TI的觸摸屏控制器(TSC)提供各種功能,如圖形,滾動條,壓力按鈕,和模擬撥號。一個簡單的電阻TSC可以用來實現(xiàn)所有這些功能,只要它們不被同時激活。此
    發(fā)表于 05-25 11:27 ?10次下載
    如<b class='flag-5'>何在</b>軟件<b class='flag-5'>中</b><b class='flag-5'>實現(xiàn)</b>TI的觸摸屏控制器提供的各種<b class='flag-5'>功能</b>詳細概述

    何在Spring Boot應用程序整合ZXing庫

    在數(shù)字化時代,二維碼已經(jīng)成為了信息交流的一種常見方式。它們被廣泛用于各種應用,從產(chǎn)品標簽到活動傳單,以及電子支付。本文將向您展示如何在Spring Boot應用程序整合ZXing庫,以創(chuàng)建和解析QR碼。
    的頭像 發(fā)表于 12-03 17:39 ?1049次閱讀