Xilinx 7系列原语使用(时钟相关)——(一)
? ? ? ? 一、部分常用時鐘原語介紹? ? ?
???1、
????????IBUFDS、OBUFDS:差分信號緩沖器,用于不同電平接口之間緩沖和轉換。用于普通bank的差分時鐘轉單端。
? ? ? ? 1)、IBUFDS為差分輸入緩沖器,支持低壓差分信號LVCMOS、LVDS等:
| 端口 | IO | 位寬 | 功能 | 
| I? ? ? ? | input | 1 | 差分輸入+ | 
| IB | input | 1 | 差分輸入- | 
| O | output | 1 | 輸出 | 
| input | output | |
| I | IB | O | 
| 0 | 0 | 不改變,和上次輸出相同 | 
| 0 | 1 | 0 | 
| 1 | 0 | 1 | 
| 1 | 1 | 不改變,和上次輸出相同 | 
? ? ? ? 2)、?OBUFDS為查分數出緩沖器,用于將內部邏輯信號轉換成差分信號輸出,支持TMDS、LVDS等電平。
| 端口 | IO | 位寬 | 功能 | 
| O | output | 1 | 差分輸出+ | 
| OB | output | 1 | 差分輸出- | 
| I | input | 1 | 輸入 | 
| input | output | |
| I | O | OB | 
| 0 | 0 | 1 | 
| 1 | 1 | 0 | 
? ? ? ? 2、
????????IBUFDS_GTEx,x=2/3/4,差分緩沖器,用于高速BANK(GTY BANK)的兩路參考時鐘輸入。
? ? ? ? 其中UltraScale使用IBUFDS_GTE3作為GTY bank的差分緩沖器,UltraScale+采用IBUFDS_GTE4。對于高速BANK,需要使用IBUFDS_GTEx(不同系列的FPGA x的值不同,如x=2/3/4),如果仍然使用IBUFDS,可能會在編譯或者生成bit文件時報錯,提示時鐘約束有問題,約束后可以生成bit文件,但是轉出的單端時鐘不能使用(正常情況下差分時鐘的電平是不需要約束的)。
?
? ? ? ? UltraScale架構中的GTY收發器是高速收發器,在UltraScale FPGA中支持500Mb/s到30.5Gb/s,在UltraScale+ FPGA中支持32.75Gb/s。每個GTY BANK包括四路收發通道,即一個QUAD,每個收發通道具有獨立的通道鎖相環CPLL,為收發數據提供參考時鐘,每個QUAD還有兩個共用的QPLL時鐘資源可提供到四個收發通道。?
? ? ? ? 使用原語驅動GTX/GTH/GHY參考時鐘,每個Quad有兩個IBUFDS_GTEx元件,驅動GTREFCLK0和GTREFCLK1,常用模式是實例化一個IBUFDS_GTEx并驅動兩個參考時鐘之一。
// IBUFDS_GTE4 : In order to incorporate this function into the design, // Verilog : the following instance declaration needs to be placed // instance : in the body of the design code. The instance name // declaration : (IBUFDS_GTE4_inst) and/or the port declarations within the // code : parenthesis may be changed to properly reference and // : connect this function to the design. All inputs // : and outputs must be connected.// <-----Cut code below this line---->// IBUFDS_GTE4: Gigabit Transceiver Buffer// Kintex UltraScale+// Xilinx HDL Language Template, version 2018.2IBUFDS_GTE4 #(.REFCLK_EN_TX_PATH(1'b0), // Refer to Transceiver User Guide.REFCLK_HROW_CK_SEL(2'b00), // Refer to Transceiver User Guide.REFCLK_ICNTL_RX(2'b00) // Refer to Transceiver User Guide)IBUFDS_GTE4_inst (.O(O), // 1-bit output: Refer to Transceiver User Guide.ODIV2(ODIV2), // 1-bit output: Refer to Transceiver User Guide.CEB(CEB), // 1-bit input: Refer to Transceiver User Guide.I(I), // 1-bit input: Refer to Transceiver User Guide.IB(IB) // 1-bit input: Refer to Transceiver User Guide);// End of IBUFDS_GTE4_inst instantiation///????????IBUFG/BUFG/......中'G'為Global? Clock/General Clock??
? ? ? 3、?
????????IBUFG即輸入全局緩沖,? 是與專用全局時鐘輸入管腳相連接的首級全局緩沖。所有從全局時鐘管腳輸入的信號必須經過IBUF單元,否則布局布線時會報錯。IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI等多種格式的IO標準。
? ? ? ? 4、
????????BUFG是全局緩沖,它的輸入是IBUFG的輸出,BUFG的輸出到達FPGA內部的IOB、CLB、RAM的時鐘延遲和抖動最小。
? ? ? ? 5、
????????BUFGP相當于IBUFG + BUFG。
? ? ? ? 6、
????????BUFGCE是帶有使能端的全局緩沖。有一個輸入I、一個使能端CE、一個輸出O,只有當BUFGCE使能端有效時,BUFGCE才有輸出。
? ? ? ? 7、
????????BUFGMUX全局時鐘選擇緩沖,有I0和I1兩個輸入,一個控制端S,一個輸出端口O。當S為低電平時輸出時鐘為I0,否則為I1。BUFGMUX使用靈活,I0和I1兩個輸入時鐘可以是異步關系。
? ? ? ? 8、
?????????BUFGDLL全局緩沖延遲鎖相環,相當于BUFG+DLL的結合,在早期設計中經常使用,用以完成全局時鐘同步和驅動等功能,隨著數字時鐘管理單元(DCM)的日益完善,目前BUFGDLL的應用已經逐漸被DCM替代。
? ? ? ? 9、
????????IBUFGDS/OBUFGDS(專用差分輸入時鐘緩沖器)是IBUFG/OBUFG的差分形式,當信號從一對差分全局時鐘管腳輸入時,必須使用IBUFGDS作為全局時鐘輸入緩沖。IBUFGDS實質上是一個連接時鐘信號BUFG或DCM的專用的差分信號輸入緩沖器,在IBUFGDS中一個電平接口用兩個獨立的電平接口(I和IB)表示,一個認為是主信號一個是從信號,相位相反。(7系列中沒有找到?)
? ? ? ? 10、
????????DCM數字時鐘管理單元,主要完成時鐘同步、移相、分頻、倍頻、去抖等。DCM與全局時鐘有著密不可分的聯系,為達到最小延遲和抖動,幾乎所有的DCM應用都要使用全局緩沖資源。DCM可以用xilinx ISE中的Architecture Wizard直接生成。
????????
? ? ? ? 二、全局時鐘資源使用方法
? ? ? ? 1、?IBUFG? + BUFG
? ? ? ? IBUFG后面連接BUFG,這種組合相當于BUFGP。
? ? ? ? 2、IBUFGDS + BUFG
? ? ? ? 當輸入時鐘信號為差分信號時,使用IBUFGDS代替IBUFG,即IBUFGDS + BUFG。
? ? ? ? 3、IBUFG + DCM + BUFG
? ? ? ? 這種靈活的方法對全局時鐘的控制更加有效,通過DCM模塊不僅能對時鐘進行同步、移相、分頻、倍頻等,而且可以使全局時鐘輸出達到無抖動延遲。
????????
參考:XILINX Ultrascale/Ultrascale+ 高速收發器時鐘MGTHREFCLK原語調用_青豆噠噠的博客-CSDN博客
IBUFDS、IBUFGDS和OBUFDS_hi請叫我學霸的博客-CSDN博客_ibufds
?BUFG、差分轉單端之IBUFDS和IBUFDS_GTE2區別_朝陽群眾&熱心市民的博客-CSDN博客_ibufds_gte2
https://www.csdn.net/tags/OtDaIgzsNDYwMDMtYmxvZwO0O0OO0O0O.html
????????xilinx提供了豐富的原語,可以將之看成FPGA開發可以使用的庫函數,原語在FPGA中具有與之對應的硬件邏輯單元,但也注意,不同的FPGA的原語可能會有所不同,但常用的原語不同器件相似度極高。按照功能,主要分為:計算組件、I/O端口組件、寄存器和鎖存器、時鐘組件、處理器組件、移位寄存器、配置和檢測組件、RAM/ROM組件、Slice/CLB組件以及G比特組件。
????????選擇時鐘組件,對時鐘組件的原語進行介紹,時鐘組件包括各種全局時鐘緩沖器、全局時鐘復用器以及高級數字時鐘管理模塊,主要介紹前兩個。
參考:
xilinx時鐘組件的原語
//-----------------------------------下一篇博客參考文章----------------------------------------
Xilinx FPGA器件中時鐘資源的說明以及使用 - 簡書
FPGA時鐘資源介紹-元件功能 - 天山明月 - 博客園
xilinx FPGA全局時鐘資源的使用 - 朝雨輕塵 - 博客園
總結
以上是生活随笔為你收集整理的Xilinx 7系列原语使用(时钟相关)——(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【机器学习】--神经网络(NN)
- 下一篇: 网络——路由器
