精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Xilinx高質量時鐘輸出ODDR原語的概述及使用方法

冬至子 ? 來源:FPGA探索者 ? 作者:FPGA探索者 ? 2023-06-27 10:21 ? 次閱讀

一、ODDR概述及使用方法

ODDR(Output Double Data Rate,輸出雙倍數據速率):

在DDR接口中,ODDR用于發送時鐘和數據;

SDR接口中,ODDR轉發時鐘(仍在時鐘樹內),輸出端要直連到輸出port,不可加邏輯,連接方式:輸出時鐘連接ODDR的C引腳,D1固定值1'b1, D2固定值1'b0,CE固定值1’b1,ODDR的輸出Q連接到OBUF;

圖片

時鐘輸入有限制,需要從SRCC或者MRCC專用時鐘輸入引腳輸入,時鐘輸出可以在任何引腳上輸出。當輸出時鐘時,即使使用的是時鐘專用輸入管腳去輸出時鐘,也等同于使用普通的GPIO管腳輸出時鐘。

輸出時鐘的最佳方法是使用ODDR來轉發時鐘 (假設輸出的時鐘是一個專用時鐘網絡上的時鐘)。每個IOB(IO Bank)都具有ODDR功能。

這樣做時,內部時鐘一直停留在專用的時鐘網絡上,直到ODDR,永遠不需要進入一般的路由結構。不建議直接將時鐘帶到OBUF,因為這需要內部時鐘離開專用時鐘網絡,通過一般的fabric路由線路路由到OBUF。

對Spartan6里面,必須用ODDR寄存器輸出。

二、時鐘配置

加入ODDR代碼,D1接高電平,D2接低電平,C接時鐘,Q輸出。

wire user_clk;
IBUFDS IBUFDS_inst_user_clk(
    .O(user_clk), // Buffer output
    .I(USRCLK_P_I), // Diff_p buffer input
    .IB(USRCLK_N_I) // Diff_n buffer input
);   

wire user_clk_bufg;
BUFG BUFG_inst_user_clk (
      .O(user_clk_bufg), // 1-bit output: Clock output
      .I(user_clk)
);

wire user_clk_bufg_oddr;
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_out_clock_inst_user_clock (
     .Q(user_clk_bufg_oddr),   // 1-bit DDR output
     .C(user_clk_bufg),   // 1-bit clock input
     .CE(1'b1), // 1-bit clock enable input
     .D1(1'b1), // 1-bit data input (positive edge)
     .D2(1'b0), // 1-bit data input (negative edge)
     .R(),   // 1-bit reset
     .S()    // 1-bit set
);

 OBUFDS OBUFDS_inst_user_clock (
    .O (USER_SMA_CLOCK_P_O
    .OB(USER_SMA_CLOCK_N_O),     // Diff_n output
    .I (user_clk_bufg_oddr)      // Buffer input
 )

不加ODDR,布局布線后RTL圖如下:

圖片

加ODDR,布局布線后RTL圖如下:

圖片

布局布線的資源中,下圖左側顯示沒有加ODDR的,右側是加入了ODDR,可見右側輸出時鐘經BUFG后先到輸出引腳附近的ODDR(藍線和紫線交匯處),經ODDR轉發后到PAD管腳輸出。

圖片

三、性能對比

按照Xilinx和網上的一些說法,加入ODDR后輸出時鐘的質量會更好。

圖片

輸出DDR可以轉發一個時鐘副本到輸出。這對于傳播具有相同延遲的時鐘和DDR數據、以及生成多個時鐘(其中每個時鐘負載都有惟一的時鐘驅動)非常有用。這是通過將ODDR的D1輸入高電平并且D2輸入低電平來實現的。Xilinx建議使用這種方案將時鐘從FPGA邏輯轉發到輸出引腳。

如下圖所示是加入ODDR前后的時序裕量和資源消耗對比,可以看到,對 WNS (Worst Negative Slack,最差負時序裕量)和 WHS (Worst Hold Slack,最差保持時序裕量)、資源使用在加入前后沒有明顯的區別。實測加入ODDR前后誤碼率基本一致,眼圖掃描結果也一致。

圖片

按照Xilinx的推薦,在輸出時鐘時最好還是把ODDR加上 。這個測試用例沒有體現出ODDR的優勢,也許在資源使用較多、時鐘頻率更高時才能體現。另外,這里只是輸出了時鐘,沒有輸出使用該時鐘的數據。

很多人說時鐘直接從BUFG輸出到管腳會報錯,必須加約束或者ODDR,目前我在ZYNQ7045上沒有發現此問題。

ODDR****的使用場景還在于 OSERDES、 FPGA 的源同步的系統設計 ,用 ODDR使得隨路時鐘和數據在輸出時是嚴格同步的,保證嚴格的相位對齊關系 。

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

    關注

    7

    文章

    233

    瀏覽量

    50423
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59710
  • GPIO
    +關注

    關注

    16

    文章

    1196

    瀏覽量

    51925
  • 時鐘驅動器
    +關注

    關注

    0

    文章

    33

    瀏覽量

    13821
收藏 人收藏

    評論

    相關推薦

    protel輸出高質量gerber

    圖文并茂一步一步手把手教你輸出高質量的gerber傻瓜式教學。。。。[hide] [/hide]
    發表于 12-12 15:43

    高質量C++、C編程指南

    高質量C++、C編程指南
    發表于 08-06 11:58

    高質量C&C++

    高質量C&C++
    發表于 08-16 19:45

    高質量C語言編程

    高質量c語言,精,精,精,精華
    發表于 07-22 13:48

    編寫高質量C語言代碼

    編寫高質量C語言代碼 編寫高質量C語言代碼 編寫高質量C語言代碼
    發表于 07-31 17:47

    高質量編程

    干貨,《495個C語言問題》、《華為內部程序設計編碼規范》、《C語言:陷阱和缺陷》、《高質量C編程[林銳]》
    發表于 02-27 19:39

    使用ODDR原語的重要性是什么?

    你好我將virtex5 LX50與具有應根據standardEIA / TIA-644 LVDS規范終止的輸出數據的設備連接起來我在用著IBUFDS用于將輸入LVDS轉換為LVTTL,OBUFDS用于輸出信號和時鐘這是這樣做的正
    發表于 06-17 14:59

    Xilinx原語使用方法

    Xilinx原語使用方法
    發表于 02-22 06:55

    請問怎么才能設計出高質量的印制線路板?

    怎么才能設計出高質量的印制線路板?
    發表于 04-23 06:57

    xilinx原語使用方法

    xilinx原語的使用,建議有一定經驗的參考。
    發表于 12-17 11:58 ?13次下載

    xilinx 原語使用方法

    xilinx 原語使用方法
    發表于 10-17 08:57 ?11次下載
    <b class='flag-5'>xilinx</b> <b class='flag-5'>原語</b><b class='flag-5'>使用方法</b>

    xilinx原語使用方法

    xilinx原語使用方法
    發表于 10-19 08:50 ?15次下載
    <b class='flag-5'>xilinx</b><b class='flag-5'>原語</b><b class='flag-5'>使用方法</b>

    Xilinx原語使用方法有哪些

    Xilinx公司的原語按照功能分為10類,包括:計算組件、I/O端口組件、寄存器和鎖存器、時鐘組件、處理器組件、移位寄存器、配置和檢測組件、RAM/ROM組件、Slice/CLB組件以及G比特收發器組件。下面分別對其進行詳細介紹
    的頭像 發表于 02-08 14:01 ?1404次閱讀
    <b class='flag-5'>Xilinx</b><b class='flag-5'>原語</b><b class='flag-5'>使用方法</b>有哪些

    Xilinx原語使用方法

    Xilinx公司的原語按照功能分為10類,包括:計算組件、I/O端口組件、寄存器和鎖存器、時鐘組件、處理器組件、移位寄存器、配置和檢測組件、RAM/ROM組件、Slice/CLB組件以及G比特收發器組件。下面分別對其進行詳細介紹
    發表于 03-24 06:14 ?3次下載
    <b class='flag-5'>Xilinx</b><b class='flag-5'>原語</b><b class='flag-5'>使用方法</b>

    Xilinx高質量時鐘輸出ODDR原語

    在SDR接口中,ODDR轉發時鐘(仍在時鐘樹內),輸出端要直連到輸出port,不可加邏輯,連接方式:輸出
    的頭像 發表于 06-21 14:11 ?1505次閱讀
    <b class='flag-5'>Xilinx</b>的<b class='flag-5'>高質量</b><b class='flag-5'>時鐘</b><b class='flag-5'>輸出</b><b class='flag-5'>ODDR</b><b class='flag-5'>原語</b>