日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

xilinx FPGA中oddr,idelay的用法詳解

電子設計 ? 來源:CSDN ? 作者:同年紀_ ? 2020-11-25 14:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們知道xilinx FPGA的selectio中有ilogic和ologic資源,可以實現(xiàn)iddr/oddr,idelay和odelay等功能。剛?cè)腴T時可能對xilinx的原語不太熟練,在vivado的tools-> language templates中搜索iddr idelay等關(guān)鍵詞,可以看到A7等器件下原語模板。復制出來照葫蘆畫瓢,再仿真一下基本就能學會怎么用了。

1. oddr

oddr和iddr都一樣,以oddr為例,先去templates里把模板復制出來。


Add simulation source,建立一個簡單的仿真文件。

module simu_oddr(
 
    );
        
    reg clk = 1'd0;
    always
    forever #2 clk = ~ clk;
       ODDR #(
       .DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE" 
       .INIT(1'b0),    // Initial value of Q: 1'b0 or 1'b1
       .SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC" 
    ) ODDR_inst (
       .Q(Q),   // 1-bit DDR output
       .C(clk),   // 1-bit clock input
       .CE(1'd1), // 1-bit clock enable input
       .D1(1'd1), // 1-bit data input (positive edge)
       .D2(1'd0), // 1-bit data input (negative edge)
       .R(1'd0),   // 1-bit reset
       .S(1'd0)    // 1-bit set
    );
    
endmodule

ODDR的使用方法在selectoi中的參考手冊ug471中127頁開始有說明,使用這些資源首先要參考的都是官方的資源手冊。


簡單說明:

CE是使能,C是時鐘,在時鐘的上升沿下降沿分別輸出D1和D2,Q是輸出,S/R是復位,R = 1 Q輸出0,S= 1,Q輸出1,默認情況應該兩個都等于0 ,兩個都等于1時,輸出0。"OPPOSITE_EDGE" or "SAME_EDGE" 手冊中也有說明,指明采樣時刻不同,具體有什么應用上區(qū)別我也不知道。


通過仿真,就可以看到輸出是什么情況,在上升沿輸出1,下降沿輸出0,還可以看到輸出有一點滯后。iddr和oddr在rgmii的接口中就可以方便地接收數(shù)據(jù),轉(zhuǎn)為gmii。一般情況要注意下時鐘和數(shù)據(jù)的對齊問題,采樣時鐘可以相位往后一點,90° 1//4周期,輸出的時候時鐘也相應地滯后一點,就根據(jù)實際情況來,125M的DDR還是很容易采樣穩(wěn)定的。


2.idelay

在ug471告訴我們,只有hp bank才有odelay,在ug475中說明哪些系列有hp bank,簡單說hp bank速度快很多,支持odelay,電壓只能1.2V- 1.8V。其中A7全系是沒有odelay的,K7才有(保留意見,簡單看了一下),所以在language templates中搜索odelay是沒有A系列的原語的。



idelay作用就是實現(xiàn)輸入延遲,實際中應該有更明確的用法,這里只是我自己學習時的一些介紹。同樣在ug471中對idelay也有介紹,有固定延時,可變延時,使用時都要例化idelay ctrl,延時的精度就可idelay ctrl的接入時鐘有關(guān)。一個bank 只有1個idelay ctrl,同一個bank 要用idelay或者odelay,延時精度是一樣的,雖然可以idelay ctrl可以接200Mhz,300Mhz,但同一個bank只能接1個,也只需要例化一次。多個bank要用idelay時,就要例化多次。

`timescale 1ns / 1ps
 
module s(
 
    );
    
    reg clk = 1'd0;
    always
    forever #2.5 clk = ~ clk;
    
    
     (* IODELAY_GROUP = "idelay" *)
       IDELAYCTRL IDELAYCTRL_inst (
       .RDY(),       // 1-bit output: Ready output
       .REFCLK(clk), // 1-bit input: Reference clock input
       .RST(1'd0)        // 1-bit input: Active high reset input
    );
 
    
    reg clk2 = 1'd0;
    always @(posedge clk)
        clk2 <= ~clk2;
    
    
    wire DATAOUT;
    
       (* IODELAY_GROUP = "idelay" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
    
       IDELAYE2 #(
          .CINVCTRL_SEL("FALSE"),          // Enable dynamic clock inversion (FALSE, TRUE)
          .DELAY_SRC("IDATAIN"),           // Delay input (IDATAIN, DATAIN)
          .HIGH_PERFORMANCE_MODE("FALSE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
          .IDELAY_TYPE("FIXED"),           // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
          .IDELAY_VALUE(31),                // Input delay tap setting (0-31)
          .PIPE_SEL("FALSE"),              // Select pipelined mode, FALSE, TRUE
          .REFCLK_FREQUENCY(200.0),        // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
          .SIGNAL_PATTERN("DATA")          // DATA, CLOCK input signal
       )
       IDELAYE2_inst (
          .CNTVALUEOUT(CNTVALUEOUT), // 5-bit output: Counter value output
          .DATAOUT(DATAOUT),         // 1-bit output: Delayed data output
          .C(1'd1),                     // 1-bit input: Clock input
          .CE(1'd0),                   // 1-bit input: Active high enable increment/decrement input
          .CINVCTRL(1'd0),       // 1-bit input: Dynamic clock inversion input
          .CNTVALUEIN(1'd0),   // 5-bit input: Counter value input
          .DATAIN(1'd0),           // 1-bit input: Internal delay data input
          .IDATAIN(clk2),         // 1-bit input: Data input from the I/O
          .INC(1'd0),                 // 1-bit input: Increment / Decrement tap delay input
          .LD(1'd0),                   // 1-bit input: Load IDELAY_VALUE input
          .LDPIPEEN(1'd0),       // 1-bit input: Enable PIPELINE register to load data input
          .REGRST(1'd0)            // 1-bit input: Active-high reset tap-delay input
       );
 
endmodule

這里例化了一個idelay ctrl,是屬于idelay group的,這個聲明還沒有研究過有什么用,不知道是不是指定idelay2和哪個ctrl是綁定的。idelay ctrl端口很簡單,仿真時復位rst接0就好了,實際中推薦接輸入時鐘的pll lock引腳取反,保證在時鐘鎖定前(lock = 0)idelay ctrl處于復位狀態(tài)。

idelay2中按推薦配置,從DATAIN還是從IDATAIN輸入?yún)^(qū)別為是內(nèi)部延時還是從IO輸入,F(xiàn)IXED固定延時,idelay value先輸入0,,時鐘是200M,其他全部接0。此處,idelay的作用就是把IDATAIN的信號接入ilogic中,延時0個tap再從DATAOUT輸出??勺冄訒r的使用說明ug471上都有,還沒學習,有需要了再去看。

idelay 有0-31個tap,分割200M的半個周期2.5ns,每個tap就是2.5ns/32 = 0.078125 ns

value = 0 可以看到輸出延遲了0.6ns,value = 10時,延時了1.38ns。 0.078125 * 10 + 0.6 = 1.38125,大體相近的。



其實oddr,idelay這些資源應該用起來都比較簡單,可能我實際中就用了一下oddr/iddr,也沒有覺得有多少難以調(diào)試的地方,本文簡單介紹了這2個原語的使用方法,從復制原語,看手冊介紹到仿真,其他原語也是類似的,學會如何去學習最重要。

文末再介紹一下generate,一樣的在tools -> language templates中搜索。

   genvar ;
   generate
      for (=0;  <; =+1)
      begin: 

用這個可以很方便地例化出多個相似的模塊。

       genvar i; //genvar i;也可以定義到generate語句里面
       generate
              for(i=0;i<10;i=i+1)
              begin:mymodule
                     assign a[i]=reg[i];
              end
       endgenerate
編輯:hfy

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

    關(guān)注

    1664

    文章

    22509

    瀏覽量

    639578
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2208

    瀏覽量

    131982
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    860

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Xilinx FPGA的混合模式時鐘管理器MMCME2_ADV詳解

    FPGA 的浩瀚宇宙,時鐘系統(tǒng)不僅是驅(qū)動邏輯運轉(zhuǎn)的“心臟”,更是決定系統(tǒng)穩(wěn)定性與性能上限的“指揮棒”。對于 Xilinx 7 系列 FPGA 開發(fā)者而言,如果僅滿足于使用 Clo
    的頭像 發(fā)表于 04-10 11:20 ?238次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的混合模式時鐘管理器MMCME2_ADV<b class='flag-5'>詳解</b>

    賽靈思FPGA電源解決方案全解析

    賽靈思FPGA電源解決方案全解析 在當今的電子設計領域,現(xiàn)場可編程門陣列(FPGA)憑借其出色的設計靈活性和較低的工程成本,在眾多應用和終端市場占據(jù)了重要地位。然而,FPGA的電源設
    的頭像 發(fā)表于 04-02 15:45 ?244次閱讀

    Xilinx器件封裝全方位指南:設計與應用要點解析

    Xilinx器件封裝全方位指南:設計與應用要點解析 在電子設計領域,器件封裝猶如電子設備的“外衣”,不僅影響著器件的性能,還對整個系統(tǒng)的穩(wěn)定性和可靠性起著關(guān)鍵作用。Xilinx作為FPGA領域的領軍
    的頭像 發(fā)表于 03-27 11:00 ?216次閱讀

    深入剖析TPS650864:Xilinx MPSoCs和FPGA的理想電源管理方案

    深入剖析TPS650864:Xilinx MPSoCs和FPGA的理想電源管理方案 在電子設備的設計,電源管理是一個至關(guān)重要的環(huán)節(jié),它直接影響著設備的性能、穩(wěn)定性和效率。今天,我們要深入探討
    的頭像 發(fā)表于 03-16 15:25 ?288次閱讀

    Xilinx FPGA輸入延遲原語介紹

    在高速接口設計,時序收斂往往是工程師面臨的最大“噩夢”。當數(shù)據(jù)傳輸速率突破 800Mbps 時,微小的 PCB 走線差異都足以讓系統(tǒng)崩潰。本文將深度剖析 Xilinx 7 系列(IDELAYE2)與 UltraScale 系列(IDELAYE3)的底層原理,帶你徹底攻克
    的頭像 發(fā)表于 03-11 09:29 ?2339次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>輸入延遲原語介紹

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

    / PMSM)的核心算法。為了幫助開發(fā)者更快落地這一領域,Xilinx 官方維護了一個開源庫——FOC Motor Control Library。
    的頭像 發(fā)表于 03-02 10:51 ?4307次閱讀
    <b class='flag-5'>Xilinx</b>官方開源FOC電機控制工程解析

    Xilinx FPGAIDELAYCTRL參考時鐘控制模塊的使用

    IDELAYCTRL 是 Xilinx FPGA(特別是支持高速 I/O 的系列,如 Virtex-5/6/7、Kintex-7、Artix-7、Spartan-6/7 等)中用于管理和校準輸入延遲模塊(IDELAYE2/IDELAYE3)的必須存在的參考時鐘控制模塊。
    的頭像 發(fā)表于 02-26 14:41 ?5329次閱讀

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

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

    Xilinx FPGA串行通信協(xié)議介紹

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

    請問如何將蜂鳥E203移植到Xilinx NEXYS A7 FPGA 開發(fā)板上?

    如何將蜂鳥E203移植到Xilinx NEXYS A7 FPGA 開發(fā)板上?有參考教程嗎?小白求教 主要是引腳分配,我這邊有移植到Xilinx Artix-7 系列XC7A100T-fgg484的案
    發(fā)表于 11-11 07:44

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

    ,所以我喜歡折騰,因為折騰迫使我不斷去解決問題,在解決問題的過程中會思考很多細節(jié),而且印象更加深刻。當然這是我個人的學習方法。 如果手上有XilinxFPGA板卡,可以一起學習一下怎么將e203
    發(fā)表于 10-31 08:46

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

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

    鴻蒙Stage模型與FA模型詳解

    【HarmonyOS 5】鴻蒙Stage模型與FA模型詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、前言 在HarmonyOS 5的應用開發(fā)
    的頭像 發(fā)表于 07-07 11:50 ?1109次閱讀

    XILINX XCZU67DR FPGA完整原理圖

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

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一個 LogiCORE IP 核,用于在 FPGA 實現(xiàn)高效的移位寄存器(Shift Register)。該
    的頭像 發(fā)表于 05-14 09:36 ?1306次閱讀
    昌邑市| 尉犁县| 开平市| 濮阳县| 资源县| 沙田区| 依安县| 六安市| 沾化县| 白城市| 武邑县| 岢岚县| 鄯善县| 仙游县| 津南区| 仲巴县| 如东县| 平塘县| 四平市| 三门峡市| 开原市| 绍兴市| 平顺县| 嘉义县| 尉犁县| 长岭县| 甘谷县| 丰原市| 赫章县| 太仆寺旗| 平果县| 临城县| 麟游县| 鹤峰县| 靖江市| 东乡县| 瓮安县| 临西县| 阳谷县| 潞城市| 青河县|