Xilinx BUF 使用
Xilinx 全域性時鐘應注意
目前,大型設計一般推薦使用同步時序電路。同步時序電路基於時鐘觸發沿設計,對時鐘的週期、佔空比、延時和抖動提出了更高的要求。為了滿足同步時序設計的要求,一般在FPGA設計中採用全域性時鐘資源驅動設計的主時鐘,以達到最低的時鐘抖動和延遲。 FPGA 全域性時鐘資源一般使用全銅層工藝實現,並設計了專用時鐘緩衝與驅動結構,從而使全域性時鐘到達晶片內部的所有可配置單元(CLB)、I/O單元(IOB)和選擇性塊RAM(Block Select RAM)的時延和抖動都為最小。為了適應複雜設計的需要,Xilinx的FPGA中整合的專用時鐘資源與數字延遲鎖相環(DLL)的數目不斷增加,最新的 Virtex II器件最多可以提供16個全域性時鐘輸入埠和8個數字時鐘管理模組(DCM)。
與全域性時鐘資源相關的原語常用的與全域性時鐘資源相關的Xilinx器件原語包括:IBUFG、IBUFGDS、BUFG、BUFGP、BUFGCE、BUFGMUX、BUFGDLL和DCM等,如圖1所示。
-
IBUFG即輸入全域性緩衝,是與專用全域性時鐘輸入管腳相連線的首級全域性緩衝。所有從全域性時鐘管腳輸入的訊號必須經過IBUFG 單元,否則在佈局佈線時會報錯。 IBUFG支援AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、PCIX和 SSTL等多種格式的IO標準。
- IBUFGDS是IBUFG的差分形式,當訊號從一對差分全域性時鐘管腳輸入時,必須使用IBUFGDS作為全域性時鐘輸入緩衝。IBUFG支援BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多種格式的IO標準。
-
BUFG是全域性緩衝,它的輸入是IBUFG的輸出,BUFG的輸出到達FPGA內部的IOB、CLB、選擇性塊RAM的時鐘延遲和抖動最小。
-
BUFGCE是帶有時鐘使能端的全域性緩衝。它有一個輸入I、一個使能端CE和一個輸出端O。只有當BUFGCE的使能端CE有效(高電平)時,BUFGCE才有輸出。
-
BUFGMUX是全域性時鐘選擇緩衝,它有I0和I1兩個輸入,一個控制端S,一個輸出端O。當S為低電平時輸出時鐘為I0,反之為I1。需要指出的是BUFGMUX的應用十分靈活,I0和I1兩個輸入時鐘甚至可以為非同步關係。
-
BUFGP相當於IBUG加上BUFG。
-
BUFGDLL是全域性緩衝延遲鎖相環,相當於BUFG與DLL的結合。BUFGDLL在早期設計中經常使用,用以完成全域性時鐘的同步和驅動等功能。隨著數字時鐘管理單元(DCM)的日益完善,目前BUFGDLL的應用已經逐漸被DCM所取代。
-
DCM即數字時鐘管理單元,主要完成時鐘的同步、移相、分頻、倍頻和去抖動等。DCM與全域性時鐘有著密不可分的聯絡,為了達到最小的延遲和抖動,幾乎所有的DCM應用都要使用全域性緩衝資源。DCM可以用Xilinx ISE軟體中的Architecture Wizard直接生成。
全域性時鐘資源的使用方法 全域性時鐘資源的使用方法(五種)
1:IBUFG + BUFG的使用方法:
IBUFG後面連線BUFG的方法是最基本的全域性時鐘資源使用方法,由於IBUFG組合BUFG相當於BUFGP,所以在這種使用方法也稱為BUFGP方法。
- IBUFGDS + BUFG的使用方法:
當輸入時鐘訊號為差分訊號時,需要使用IBUFGDS代替IBUFG。
- IBUFG + DCM + BUFG的使用方法:
這種使用方法最靈活,對全域性時鐘的控制更加有效。通過DCM模組不僅僅能對時鐘進行同步、移相、分頻和倍頻等變換,而且可以使全域性時鐘的輸出達到無抖動延遲。
- Logic + BUFG的使用方法:
BUFG不但可以驅動IBUFG的輸出,還可以驅動其它普通訊號的輸出。當某個訊號(時鐘、使能、快速路徑)的扇出非常大,並且要求抖動延遲最小時,可以使用BUFG驅動該訊號,使該訊號利用全域性時鐘資源。但需要注意的是,普通IO的輸入或普通片內訊號進入全域性時鐘佈線層需要一個固有的延時,一般在 10ns左右,即普通IO和普通片內訊號從輸入到BUFG輸出有一個約10ns左右的固有延時,但是BUFG的輸出到片內所有單元(IOB、CLB、選擇性塊RAM)的延時可以忽略不計為“0”ns。
5. Logic + DCM + BUFG的使用方法:
DCM同樣也可以控制並變換普通時鐘訊號,即DCM的輸入也可以是普通片內訊號。使用全域性時鐘資源的注意事項全域性時鐘資源必須滿足的重要原則是:使用 IBUFG或IBUFGDS的充分必要條件是訊號從專用全域性時鐘管腳輸入。換言之,當某個訊號從全域性時鐘管腳輸入,不論它是否為時鐘訊號,都必須使用 IBUFG或IBUFGDS;如果對某個訊號使用了IBUFG或IBUFGDS硬體原語,則這個訊號必定是從全域性時鐘管腳輸入的。如果違反了這條原則,那麼在佈局佈線時會報錯。這條規則的使用是由FPGA的內部結構決定的:IBUFG和IBUFGDS的輸入端僅僅與晶片的專用全域性時鐘輸入管腳有物理連線,與普通IO和其它內部CLB等沒有物理連線。另外,由於BUFGP相當於IBUFG和BUFG的組合,所以BUFGP的使用也必須遵循上述的原則。
全域性時鐘資源的例化方法
全域性時鐘資源的例化方法大致可分為兩種:
一是在程式中直接例化全域性時鐘資源;
二是通過綜合階段約束或者實現階段約束實現對全域性時鐘資源的使用;
第一種方法比較簡單,使用者只需按照前面講述的5種全域性時鐘資源的基本使用方法編寫程式碼或者繪製原理圖即可。
第二方法是通過綜合階段約束或實現階段的約束完成對全域性時鐘資源的呼叫,這種方法根據綜合工具和佈局佈線工具的不同而異。
IBUFDS、IBUFGDS和OBUFDS都是差分訊號緩衝器,用於不同電平介面之間的緩衝和轉換。IBUFDS 是差分輸入的時候用,OBUFDS是差分輸出的時候用,而IBUFGDS則是時鐘訊號專用的輸入緩衝器。
下面詳細說明:
IBUFDS
Differential Signaling Input Buffer with Selectable I/O Interface
//差分輸入時鐘緩衝器
IBUFDS是一個輸入緩衝器,支援低壓差分訊號(如LVCMOS、LVDS等)。在IBUFDS中,一個電平介面用兩個獨特的電平介面(I和IB)表示。一個可以認為是主訊號,另一個可以認為是從訊號。主訊號和從訊號是同一個邏輯訊號,但是相位相反。
Verilog Instantiation Template
IBUFDS instance_name (.O (user_O),
.I (user_I),
.IB (user_IB));
IBUFGDS
Dedicated(專用的) Differential Signaling Input Buffer with Selectable I/O Interface
//專用差分輸入時鐘緩衝器
IBUFGDS是一個連線時鐘訊號BUFG或DCM的專用的差分訊號輸入緩衝器。在IBUFGDS中,一個電平介面用兩個獨立的電平介面(I和IB)表示。一個可以認為是主訊號,另一個可以認為是從訊號。主訊號和從訊號是同一個邏輯訊號,但是相位相反。
- The dash (-) means No Change.
Verilog Instantiation Template
IBUFGDS instance_name (.O (user_O),
.I (user_I),
.IB (user_IB));
OBUFDS
Differential Signaling Output Buffer with Selectable I/O Interface
//差分輸出時鐘緩衝器
OBUFDS是一個輸出緩衝器,支援低壓差分訊號。OBUFDS隔離出了內電路並向晶片上的訊號提供驅動電流。它的輸出用O和OB兩個獨立介面表示。一個可以認為是主訊號,另一個可以認為是從訊號。主訊號和從訊號是同一個邏輯訊號,但是,相位相反。
相關文章
- netty系列之:使用POJO替代bufNettyPOJO
- DMA-BUF
- Xilinx COE檔案生成
- 關於Xilinx PCIE DMA的問答
- 《深入理解計算機系統》實驗三 —— Buf Lab計算機
- Xilinx-ZYNQ7000系列-學習筆記(2):私有看門狗(AWDT)的使用筆記
- Xilinx_HLS上板過程記錄
- Xilinx ZYNQ 7000+Vivado2015.2系列(二)之奇數分頻和邏輯分析儀(ILA)的使用
- Xilinx約束學習筆記(二)—— 定義時鐘筆記
- 【心得】Lattice和Xilinx工具關鍵特性對比(Diamond、ISE)
- Xilinx FPGA採集ADS1675資料出現錯位FPGA
- Xilinx官網查詢各個版本軟體的手冊
- 用於初始化Xilinx 儲存 IP核的COE檔案格式
- Xilinx MIG IP核app_wdf_rdy訊號一直為低APP
- 賽靈思(Xilinx)BlockRam(Bram)的結構與讀邏輯解釋BloC
- Xilinx內建RAM的初始化資料COE檔案編寫
- PCIE_DMA例項五:基於XILINX XDMA的PCIE高速採集卡
- Win10 19H1預覽版致便箋應用buf,微軟將火速更新修復Win10微軟
- Xilinx-ZYNQ7000系列-學習筆記(3):系統復位與啟動筆記
- Xilinx-ZYNQ7000系列-學習筆記(1):用XADC測外部溫度值筆記
- Xilinx-Verilog-學習筆記(19):正弦波訊號發生器與DDS筆記
- Xilinx ZYNQ 7000+Vivado2015.2系列(四)之GPIO的三種方式:MIO、EMIO、AXI_GPIO
- pga設計時序約束和最佳化培訓 Xilinx 7系列Transceiver應用培訓
- 滄小海基於xilinx srio核的學習筆記之第五章 Rapidio協議詳述筆記API協議
- Xilinx-ZYNQ7000系列-學習筆記(7):解決ZYNQ IP核自動佈線後會更改原有配置的問題筆記
- 詳細解讀:Xilinx剛剛釋出的全新5G射頻SoC--支援sub-6GHz與毫米波
- Xilinx ZYNQ 7000+Vivado2015.2系列(八)ARM+FPGA的優勢,PS控制PL產生需要的PWM波(基於AXI匯流排)FPGA
- 學習資料:基於Xilinx Kintex-7 XC7K160T 的CameraLink轉四路光纖資料轉發卡220
- 202-基於TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速資料處理核心板S3FPGA
- 資料:227-基於Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纖資料轉發卡
- 設計原理圖:基於TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速資料處理核心板S3FPGA
- XCKU115硬體加速卡學習資料儲存:基於Xilinx XCKU115的半高PCIe x8 硬體加速卡
- 學習資料第2篇:基於6U VPX的雙TMS320C6678+Xilinx FPGA K7 XC7K420T的影像訊號處理板S3FPGA
- laravel使用EasyWeChat 使用Laravel
- 如何使用使用 HAVING 與 ORDER BY?
- winscp使用教程多使用者,winscp使用教程多使用者,教程詳情
- 配置vsftpd匿名使用服務,個人使用者使用以及虛擬使用者使用配置細節!FTP
- TestContainer使用者使用經驗AI