時鐘樹的使用方法簡介

2020-12-08 電子發燒友

時鐘樹的使用方法簡介

Reborn Lee 發表於 2020-03-08 17:37:00

時鐘樹不僅可以做到高扇出,還可以做到讓時鐘信號到達各個觸發器的時刻儘可能一致,也即保證時鐘信號到達時鐘域內不同觸發器的時間差最小。

這篇博文進一步說時鐘樹的問題,我們知道了時鐘樹的這麼強大的功能,好處這麼多,那麼怎麼使用時鐘樹,我什麼時候使用到了時鐘樹呢?

一、什麼情況下,時鐘應該「上樹」?

如果一個時鐘信號是為FPGA內部的一些邏輯資源提供「脈搏」的,那麼強烈建議該時鐘「上樹」;

如果時鐘信號的時鐘域實在太小,例如僅控制若干個觸發器,那麼也許不利用時鐘樹,FPGA設計也可能通過時序分析,但是仍然建議使用時鐘樹;

如果時鐘信號的時鐘域只包括一個觸發器,那麼也就不存在所謂的時間差了,此時就完全不需要時鐘樹;

如果一個時鐘信號僅僅是為FPGA外部的硬體電路提供時鐘激勵的,那麼外部無論有多少個存儲單元需要使用該時鐘,都沒必要使用時鐘樹,因為FPGA內部的時鐘樹無法延伸到FPGA晶片外部。

二、如何選擇時鐘樹?

上篇博文提到了時鐘樹的類型,分為全局時鐘樹、局部時鐘樹和IO時鐘樹。那麼具體來說,如果需要使用時鐘樹,該為時鐘選擇哪一類時鐘樹呢?

也許自覺會這麼告訴自己,時鐘域大的,選擇全局時鐘樹;時鐘域小的,選擇區域時鐘樹;時鐘域特別小,選擇IO時鐘樹。

事實告訴你,自覺是完全錯誤的。

IO時鐘樹分布在FPGA的接口資源中,由於它們離IO管腳最近,所以可以協助FPGA完成一些較高速率的串行數據接收,再經過簡單地串並轉換之後,以比較低的速率將並行數據丟進FPGA晶片的內部,供其他資源使用。一般來說,每個IO BANK內部會有若干個IO時鐘樹的資源,因此IO時鐘樹雖然覆蓋範圍小,但並不是為小規模的時鐘域量身定做的,因此FPGA內部的資源也無法使用該時鐘樹。

再看全局時鐘樹,由於全局時鐘樹可以覆蓋到整個FPGA晶片,因此全局時鐘樹的個數也十分有限,因此使用一定要謹慎,不可濫用。但是如果你硬著頭皮省下來一堆全局時鐘樹,結果卻閒置在一邊,不派上用場,那簡直就是浪費時間,白花心思。因此,全局時鐘樹這樣的資源,不可濫用,也不可不用,要充分利用。

因此,在全局時鐘樹不緊缺的情況下,無論時鐘域的大小,統一建議使用全局時鐘樹,因此這樣也能給編譯器提供最大的布局布線自由度,從而讓時序約束更容易實現。

最後來看區域時鐘樹。老實說,區域時鐘樹覆蓋範圍也是相當的大,最大可能能到FPGA晶片的幾分之一,因此如果時鐘域不是特別大,到底使用全局時鐘樹還是區域時鐘樹,其實沒有一個確定的結論。不過如果不是全局時鐘樹資源不夠用,一般不建議使用區域時鐘樹。當然了,使用區域時鐘樹可以讓時鐘域中資源的分布在物理上更緊湊一些,並且有些功能是必須使用區域時鐘樹和IO時鐘樹配合來完成的,因此請注意相關功能的說明。

最後總結下,IO時鐘樹用於IO接口的串並轉換,不可用於FPGA內部時鐘域。

全局時鐘樹,可以覆蓋到整個FPGA晶片,在全局時鐘樹不緊缺的情況下,儘量使用全局時鐘樹,可以給編譯器提供最大的布局布線自由度,讓時序約束更容易實現。

局部時鐘樹,特定情況下可能又用途,但全局時鐘樹不緊缺的情況下,建議使用全局時鐘樹。

三、時鐘信號如何「上樹」?

1)使用全局時鐘樹資源

方法一,通過正確的物理連接。

如果時鐘信號是由FPGA晶片外部產生的,那麼我們可以不通過編程就可以實現時鐘樹資源的分配。

因為在FPGA晶片的外圍管腳中,有一些專門為全局時鐘設計的管腳,這點我們可以通過相應的FPGA晶片的數據手冊來確認,如果在製作電路板時,直接將外部時鐘信號通過這些管腳接入FPGA內部,那麼它將自動佔據全局時鐘樹資源。當然了,這些管腳也可以接入普通的數據信號,編譯器會對該管腳引入的信號在FPGA設計內部扮演的角色進行分析,如果發現其並沒有作為時鐘信號來使用,那麼將不會為其分配時鐘樹資源。

方法二,通過恰當的代碼描述。

如果很不巧,外部的時鐘信號(外部時鐘)沒有通過專用的全局時鐘管腳連接到FPGA內部,又或者某一個時鐘信號是FPGA內部產生(再生時鐘)的,例如FPGA內部PLL的輸出,那麼此時就需要通過編寫程序來完成時鐘的「上樹」工作了。有些時候,即使不使用代碼顯示指定,編譯器也會根據代碼的分析結果,來為時鐘信號分配全局時鐘資源。不過這種靠「天」吃飯的思想不可取,FPGA工程師一定要讓FPGA晶片儘可能的處於自己,而不是編譯器的掌控之下,因此強烈建議通過自己的代碼來指明時鐘樹的使用。

那麼具體要怎麼通過HDL代碼來實現時鐘樹資源的分配呢?答案就是使用原語。

由於原語是跟FPGA晶片的生產廠商息息相關的,因此同一個功能的原語在不同的編譯器中的名稱很可能大相逕庭,例如用於全局時鐘樹分配的最主要的原語,Xilinx公司叫它BUFG,而Altera公司卻稱其為global。

這裡,以Xilinx公司的FPGA產品為例,來介紹代碼的描述方法,其他公司的FPGA產品方法類似,只不過需要替換原語的名稱罷了。

如果FPGA內部有一個名為innerClk的時鐘信號,我們想為它分配一個全局時鐘樹,Verilog HDL描述為:

wire globalClk;

BUFG onTree(.O(globalClk), .I(innerClk));

按照上述HDL代碼描述以後,我們就可以在後續的邏輯功能中放心使用上樹後的innerClk——globalClk了。

實際上,直接從外部全局時鐘管腳引入的時鐘信號,相當於在HDL代碼中使用了IBUFG + BUFG原語。

除此之外,如果希望多個時鐘信號分享一個時鐘樹,也可以使用BUGMUX這個原語,相當於MUX +BUFG,例如,希望當前FPGA設計中的某一部分邏輯其時鐘是可以在40Hz和60Hz之間切換的。

2)使用區域時鐘樹、IO時鐘樹資源

與全局時鐘管腳類似,FGPA晶片的外圍管腳中也有專門為區域時鐘和IO時鐘設計的專有管腳,但是,光將時鐘信號連接到這些管腳上,還並不一定能完成相應時鐘樹的使用,還必須要在代碼中顯式地進行描述才行。

以Xilinx公司為例,使用原語BUFIO,將會為這些專用管腳上的信號分配IO時鐘樹資源,使用BUFR,將會為這些專用管腳上的信號分配區域時鐘樹資源。由於區域時鐘常配合IO時鐘完成串並轉換,因此,BUFR還具有神奇的分頻功能。最後,由於這兩個時鐘樹的覆蓋範圍並不是整個FPGA晶片,所以在進行HDL代碼編寫時,也請注意資源的使用。

四、被「拉下樹」的時鐘信號

已經上樹的時鐘信號,若不小心,也可能被拉下樹,因此,在HDL代碼編寫的時候,一定要避免這種情況。

是什麼導致時鐘信號脫離了時鐘樹了呢?

通過前面的介紹,我們知道時鐘樹是由若干級緩衝器再加上一些近似等長的連線組成的,這也就是說,時鐘樹僅能對時鐘信號起到一個基本的傳遞作用,除此以外,別無它用。

因此,凡是相對時鐘樹上的時鐘信號進行任何邏輯操作,來生成一個新的信號,那麼新的信號已經不再位於時鐘樹上了(注意,原來的時鐘信號仍在時鐘樹上)。如果希望新的信號仍然作為時鐘來驅動一些邏輯,那麼必須重新調用相應原語來讓新的時鐘信號獲得空閒的時鐘樹資源,所以,之前介紹的FPGA內部生成的再生時鐘,門控時鐘,行波時鐘,如果需要使用,一定要先使用原語為它們分配好時鐘樹資源。

下面舉例說明,原始時鐘信號被拉下樹以及在此上樹的過程:

// gClkOnTreeA is on the clock tree assign midClk0 = ~gClkOnTreeA; // midClk0 is not on the clock tree assign midClk1 = en & gClkOnTreeA; // midClk1 is not on the clock tree BUFG reOnTree0(.O(gClkOnTreeB),.I(midClk0)); //gClkOnTreeB is on the clock tree BUFG reOnTree1(.O(gClkOnTreeC),.I(midClk1)); //gClkOnTreeC is on the clock tree

打開APP閱讀更多精彩內容

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

相關焦點

  • 簡化汽車電子的時鐘樹設計
    kdEednc汽車電子技術的發展過去,汽車系統設計使用較低帶寬的處理器和微控制器,每塊電路板設計只需要一到兩個單端參考時鐘頻率。滿足這些時序要求很簡單,因為它們只需使用一兩個石英晶體或晶體振蕩器。隨著現代汽車電子設計所使用參考時鐘的數量增加,滿足時序要求最簡單的方法是添加更多的石英晶體或振蕩器,然而,調整石英元件數量的方法有許多缺點和局限性。除了會增加電路板空間和成本外,石英晶體和振蕩器先天上容易遭受衝擊和振動故障,有很高的時間故障(FIT)率。增加石英晶體和振蕩器的數量,會增加系統設計的故障點數,以及長期可靠性風險。
  • 基站射頻卡時鐘樹設計方案
    本文引用地址:http://www.eepw.com.cn/article/156310.htm  因此,射頻卡時鐘樹的核心必須是一個具有可編程輸出頻率的抖動衰減器。本文的其餘部分將討論性能屬性和需要這些性能屬性的原因,以及其他時鐘樹要求。
  • JoVE(實驗視頻期刊)資料庫簡介及使用方法
    JoVE使用方法: 點擊訪問JoVE網站www.jove.com,可根據目錄進入相應專輯訪問相應視頻,或者可以在網站上的搜索欄內搜索自己感興趣的關鍵字(英文),系統會給出相應的一系列視頻,用戶可自行選擇觀看,我們共有4500多篇科學實驗視頻,
  • 鉗形表的使用方法簡介
    1、在使用前應仔細閱讀說明書,弄清是交流還是交直流兩用。  2、被測電路電壓不能超過鉗形表上所標明的數值,否則輕易造成接地事故,或者引起觸電危險。
  • 萬用表、搖表、電筆的使用方法及作用簡介
    但是篇幅有限,我今天都簡單來介紹一下,意在讓諸位明白它們各自的作用和使用方法。當然每一種工具都有五花八門的其它用法,這些東西留給諸位自行研究,亦可查看我的往期文章。萬用表功能萬用表有三個大功能:測電壓、測電流、測電阻。把這三種功能細分,又可分為六種功能:測直流電壓,測交流電壓,測直流電流,測交流電流,測電阻,測通斷。
  • 釺焊工藝方法簡介
    一、釺焊及其工藝特點釺焊是指採用比母材熔點低的金屬材料作為釺料,將焊件和釺料加熱到高於釺料熔化溫度,低於母材熔化溫度,利用液態釺料潤溼母材,填充接頭間隙並與母材相互擴散實現連接焊件的焊接方法。釺焊是焊接工藝中唯一焊後可拆卸的方法,其焊接溫度低於母材熔化溫度,焊接時母材不熔化。釺焊工藝方法包括火焰釺焊、電阻釺焊、感應釺焊、浸漬釺焊、爐中釺焊、電弧釺焊與碳弧釺焊等。二、常見釺焊工藝簡介火焰釺焊:火焰釺焊是用可燃氣體、可燃固體或液體燃料的氣化物與氧或空氣混合燃燒所形成的火焰對工件和釺料進行加熱的一種釺焊方法。
  • 模擬示波器的使用簡介
    模擬示波器的使用簡介 一、模擬示波器的調整模擬示波器的調整和使用方法基本相同,現以MOS-620/640雙蹤示波器為例介紹如下:本文引用地址:http://www.eepw.com.cn/article/201710/365954.htm  1、
  • 示波器簡介、用途及操作方法
    打開APP 示波器簡介、用途及操作方法 發表於 2018-01-26 12:03:00 怎樣使用示波器_示波器的使用方法圖解 跟萬用表類似,要使用示波器,首先也得把它和被測系統相連,用的是示波器探頭,如圖20-4所示。
  • Test Flight簡介與使用方法
    #軟體截圖#使用進階通過 TestFlight 的公開測試連結,我們可以很方便的參與 App 的測試。安裝 TestFlight 後,只需在 iPhone 或 iPad 上打開獲取的內測連結,即可安裝最新版軟體!對於開發者或者用戶來說,應用 TestFlight 進行軟體的測試會變得更加簡單。
  • 白礬簡介及鑑別方法
    【天地網訊】   【白礬簡介】:   【白礬的來源】   白礬藥材基源:為礦物明礬石,經加工提煉而成的結晶。   白礬拉丁植物動物礦物名:Alunite   白礬採收和儲藏:採得後,打碎,用水溶解,收集溶液,蒸發濃縮,放冷後即析出結晶。
  • | 超實用的假期資料庫使用方法(上)
    2.使用方法: 登錄個人VPN帳號,訪問圖書館主頁,點擊左側「常用資料庫」——「萬方知識服務平臺」。 2.使用方法: 登錄個人VPN帳號,訪問圖書館主頁,點擊左側「常用資料庫」——「維普中文期刊全文資料庫」。
  • 示波器的使用方法
    讓我們來一起看一下吧~~本文引用地址:http://www.eepw.com.cn/article/272917.htm一、示波器的使用- -簡介  示波器是一種電子測量儀器,可用來觀測電流波形、測定頻率、電壓波形等,  主要由電子管放大器、掃描振蕩器、陰極射線管等組成。
  • 皮線光纜型號與施工方法簡介【詳解】
    隨著網際網路時代的不斷發展,網絡越來越多的進入尋常的百姓家裡,那麼網絡是通過光纜來接入的,接下來我們就為大家簡單的介紹一下皮線光纜的型號和施工方法。   一、皮線光纜型號簡介  1、金屬加強件:  A、GJXH 這種型號是蝶形引入光纜,它的適用範圍是室內布線用。
  • 達因筆的使用方法、選型及使用注意事項
    達因筆簡介達因筆又名表面張力測試筆、電暈處理筆、及塑料薄膜表面張力檢測筆,是一種快速測試材料表面溼潤張力大小的工具;能準確測試出材料的表面張力是否達到試筆的數值
  • 雲浮橢圓管彎管機廠家產品的標準使用簡介
    雲浮橢圓管彎管機廠家產品的標準使用簡介 ,「g6u2sefw」   雲浮橢圓管彎管機廠家產品的標準使用簡介    即南北為大棚長,東西為棚寬。
  • 示波器使用方法及步驟
    示波器是一種使用非常廣泛,且使用相對複雜的儀器。示波器種類、型號很多,功能也不同,這些示波器使用方法大同小異。小編通過整理示波器使用方法,簡單的給出示波器使用方法中最基本的操作,希望能給大家帶來幫助。
  • 千分尺和遊標卡尺的正確使用方法
    一、千分尺的正確使用方法(一)、千分尺的簡介千分尺是常用的精密測量量具,主要的優點是它的結構設計穩定,因此它的測量精度比遊標卡尺高得多,所以千分尺比遊標卡尺更適合測量精度和光潔度高的物件。因此使用千分尺可以準確讀出0.01mm的數值。(三)、千分尺的零位校準使用千分尺之前,應該先觀察千分尺微分筒端面是否與固定套管的零刻度線是否重合,同時可動刻度零線與固定刻度水平橫線重合。
  • 【生物】關於生物學中「Blotting」方法的簡介及總結
    簡介:  印跡(blotting)是生物學實驗中常用的檢測和分析方法。印跡(blotting)實驗的過程可以簡單描述為將待檢測的生物大分子經電泳等方法分離後轉移並固定在膜(如:硝酸纖維素膜、PVDF膜、尼龍膜)上,然後用特異性識別物質(如探針)去識別,最後經顯色反應(同位素放射自顯影、螢光、化學發光等)在膜上顯示出結果:印跡。  最早出現的blotting技術是Southern Blotting,它是檢測DNA的一種方法。
  • 雙耳止動墊圈作用原理及安裝使用方法簡介-工品一號
    螺栓加工過程中,怎樣有效預防螺栓在使用緊固的時候出現打滑現象呢?這就要說到今天介紹的雙耳止動墊圈。雙耳止動墊圈,顧名思義就是與螺母配合使用,來防止螺母鬆動的一種墊圈,墊圈上有兩個突出的「小耳朵」。使用時又該注意什麼?一起看看吧。雙耳止動墊圈雙耳止動墊圈的作用原理從原理上來說,用雙耳止動墊圈來防松屬於機械防松,利用各種止動零件阻止擰緊螺紋零件的相對運動。這種防松方法優點明顯:防松可靠,結構複雜,空間要求高,裝配時需要配做,適用於小批量的不易檢查處和對防松要求非常嚴格的螺紋連接,如有較大衝擊、震動、高速的場合。
  • | 超實用的假期資料庫使用方法(下)
    吉丨林丨大丨學假期資料庫使用方法Ⅱ學丨科丨篇「書猶藥也,善讀之可以醫愚。」書香薰染人生,這段時光不僅是一個休整的區間,更是調整心態、拾遺補缺、蓄勢待發的加油補給站。