在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

xilinx FPGA中oddr,idelay的用法詳解

電子設(shè)計(jì) ? 來源:CSDN ? 作者:同年紀(jì)_ ? 2020-11-25 14:35 ? 次閱讀

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

1. oddr

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


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

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是時(shí)鐘,在時(shí)鐘的上升沿下降沿分別輸出D1和D2,Q是輸出,S/R是復(fù)位,R = 1 Q輸出0,S= 1,Q輸出1,默認(rèn)情況應(yīng)該兩個(gè)都等于0 ,兩個(gè)都等于1時(shí),輸出0。"OPPOSITE_EDGE" or "SAME_EDGE" 手冊中也有說明,指明采樣時(shí)刻不同,具體有什么應(yīng)用上區(qū)別我也不知道。


通過仿真,就可以看到輸出是什么情況,在上升沿輸出1,下降沿輸出0,還可以看到輸出有一點(diǎn)滯后。iddr和oddr在rgmii的接口中就可以方便地接收數(shù)據(jù),轉(zhuǎn)為gmii。一般情況要注意下時(shí)鐘和數(shù)據(jù)的對齊問題,采樣時(shí)鐘可以相位往后一點(diǎn),90° 1//4周期,輸出的時(shí)候時(shí)鐘也相應(yīng)地滯后一點(diǎn),就根據(jù)實(shí)際情況來,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作用就是實(shí)現(xiàn)輸入延遲,實(shí)際中應(yīng)該有更明確的用法,這里只是我自己學(xué)習(xí)時(shí)的一些介紹。同樣在ug471中對idelay也有介紹,有固定延時(shí),可變延時(shí),使用時(shí)都要例化idelay ctrl,延時(shí)的精度就可idelay ctrl的接入時(shí)鐘有關(guān)。一個(gè)bank 只有1個(gè)idelay ctrl,同一個(gè)bank 要用idelay或者odelay,延時(shí)精度是一樣的,雖然可以idelay ctrl可以接200Mhz,300Mhz,但同一個(gè)bank只能接1個(gè),也只需要例化一次。多個(gè)bank要用idelay時(shí),就要例化多次。

`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

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

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

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

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



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

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

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

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

       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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1644

    文章

    21991

    瀏覽量

    615254
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2184

    瀏覽量

    124575
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    834

    瀏覽量

    68366
收藏 人收藏

    評論

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

    XILINX XCZU67DR FPGA完整原理圖

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

    詳解Xilinx的10G PCS PMA IP

    如果要在XilinxFPGA上使用萬兆以太網(wǎng)通信,大致有三種方法構(gòu)建協(xié)議棧。第一種使用GTX等Serdes作為底層的PHY,上層通過HDL實(shí)現(xiàn)構(gòu)建MAC和IP層,這種方式難度會(huì)比較大,底層需要完成PHY層的設(shè)計(jì),最終我想通過這種方式實(shí)現(xiàn)萬兆以太網(wǎng)的搭建。
    的頭像 發(fā)表于 04-18 15:16 ?711次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>Xilinx</b>的10G PCS PMA IP

    電力電子的坐標(biāo)變換詳解

    電力電子的坐標(biāo)變換詳解 clark變換&park變換
    發(fā)表于 02-17 15:28 ?1次下載

    xilinx FPGA IOB約束使用以及注意事項(xiàng)

    xilinx FPGA IOB約束使用以及注意事項(xiàng) 一、什么是IOB約束 在xilinx FPGA,IOB是位于IO附近的寄存器,是
    的頭像 發(fā)表于 01-16 11:02 ?808次閱讀
    <b class='flag-5'>xilinx</b> <b class='flag-5'>FPGA</b> IOB約束使用以及注意事項(xiàng)

    【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】Key-test

    硬件: 一Xilinx XC7A100T FPGA開發(fā)板 二12V電源適配器 三下載器 四 win10筆記本 軟件: 一Vivado (指導(dǎo)手冊有詳細(xì)的安裝下載流程) 二官方按鍵示例工程 按鍵示例
    發(fā)表于 01-09 16:08

    基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實(shí)戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實(shí)戰(zhàn)指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-10 15:31 ?35次下載

    【米爾-Xilinx XC7A100T FPGA開發(fā)板試用】測試一

    感謝米爾電子和電子發(fā)燒友提供的米爾-Xilinx XC7A100T FPGA開發(fā)板。 MYD-J7A100T用的 FPGAXILINX 公司 ARTIX-7 系列的 XC 7A1
    發(fā)表于 12-08 08:48

    ads62p49輸出ramp型測試碼,但是FPGA無法準(zhǔn)確可靠地接收到該測試碼,怎么解決?

    大家好,我遇到一個(gè)問題: ads62p49輸出ramp型測試碼,但是FPGA無法準(zhǔn)確可靠地接收到該測試碼。 FPGA用的是Xilinx 的Kintex7, FPGA的數(shù)據(jù)捕獲時(shí)鐘是2
    發(fā)表于 12-06 08:29

    dac3174與xilinx zynq7000系列連接,fpga的案例參考代碼有沒有?

    dac3174與xilinx zynq7000系列連接,fpga的案例參考代碼有沒有? tsw1400_lvds_dac_sample_wise_restored的代碼寫的實(shí)在太難度了,一句注釋都沒有
    發(fā)表于 11-25 06:04

    采用Xilinx FPGA的AFE79xx SPI啟動(dòng)指南

    電子發(fā)燒友網(wǎng)站提供《采用Xilinx FPGA的AFE79xx SPI啟動(dòng)指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-15 15:28 ?0次下載
    采用<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的AFE79xx SPI啟動(dòng)指南

    Xilinx 7系列FPGA PCIe Gen3的應(yīng)用接口及特性

    Xilinx7系列FPGA集成了新一代PCI Express集成塊,支持8.0Gb/s數(shù)據(jù)速率的PCI Express 3.0。本文介紹了7系列FPGA PCIe Gen3的應(yīng)用接口及一些特性。
    的頭像 發(fā)表于 11-05 15:45 ?2823次閱讀
    <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b> PCIe Gen3的應(yīng)用接口及特性

    詳解FPGA的基本結(jié)構(gòu)

    ZYNQ PL 部分等價(jià)于 Xilinx 7 系列 FPGA,因此我們將首先介紹 FPGA 的架構(gòu)。簡化的 FPGA 基本結(jié)構(gòu)由 6 部分組成,分別為可編程輸入/輸出單元、基本可編程邏
    的頭像 發(fā)表于 10-25 16:50 ?3149次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>FPGA</b>的基本結(jié)構(gòu)

    如何申請xilinx IP核的license

    在使用FPGA的時(shí)候,有些IP核是需要申請后才能使用的,本文介紹如何申請xilinx IP核的license。
    的頭像 發(fā)表于 10-25 16:48 ?1258次閱讀
    如何申請<b class='flag-5'>xilinx</b> IP核的license

    如何在FPGA實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7實(shí)現(xiàn)4位偽隨機(jī)數(shù)發(fā)生器(PRNGs)。
    的頭像 發(fā)表于 08-06 11:20 ?1135次閱讀
    如何在<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>實(shí)現(xiàn)隨機(jī)數(shù)發(fā)生器

    如何在ModelSim添加Xilinx仿真庫

    今天給大俠帶來在FPGA設(shè)計(jì)應(yīng)用如何在ModelSim添加Xilinx仿真庫,話不多說,上貨。 注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Progr
    發(fā)表于 07-03 18:16
    主站蜘蛛池模板: 视频在线播放免费 | 日韩一卡 二卡 三卡 四卡 免费视频 | 特黄毛片| 午夜视频吧 | 性欧美xxx 不卡视频 | 日本黄色大全 | 国产精品欧美精品国产主播 | 欧美在线视频一区二区三区 | 人人射人人草 | 欧美一级片网站 | 国产床戏无遮掩视频播放 | 色综合久久久久综合99 | 精品国产理论在线观看不卡 | 亚洲资源最新版在线观看 | 日本xxxx色视频在线观看免费 | 欧美一区二区三区性 | 国模私拍在线视频 | 色91视频| 黄色香蕉网 | 色一欲一性一乱一区二区三区 | 在线免费影视 | 国产香蕉视频在线播放 | 看草逼 | 国产片在线观看狂喷潮bt天堂 | 日韩插插 | 丁香六月五月婷婷 | 久久99精品久久久久久久野外 | 免费看黄在线观看 | 中文天堂| 四虎在线播放免费永久视频 | 痴女在线播放免费视频 | 夜夜骑天天操 | 欧美一区二区三区在线观看免费 | 婷婷中文网 | 免费日本黄色片 | 黄色成人一级片 | 一级 黄 色 毛片 | 日本精高清区一 | 黄色aaa大片| 亚洲 美腿 欧美 偷拍 | 天堂在线www网亚洲 天堂在线观看 |