吴忠躺衫网络科技有限公司

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

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

3天內不再提示

時鐘樹的使用方法簡介

汽車玩家 ? 來源:CSDN ? 作者:Reborn Lee ? 2020-03-08 17:37 ? 次閱讀

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

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

時鐘樹的使用方法簡介

一、什么情況下,時鐘應該“上樹”?

如果一個時鐘信號是為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

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

    關注

    1630

    文章

    21796

    瀏覽量

    605999
  • 時鐘
    +關注

    關注

    11

    文章

    1746

    瀏覽量

    131799
收藏 人收藏

    評論

    相關推薦

    一千余字解讀stm32時鐘

    第一節概述時鐘的概念可以類比于人體的心臟和血液循環系統。就像心臟通過周期性的收縮將血液泵向身體各處一樣,MCU的運行依賴于周期性的時鐘脈沖來驅動。這些脈沖通常由外部晶體振蕩器提供時鐘
    的頭像 發表于 12-30 21:01 ?1811次閱讀
    一千余字解讀stm32<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>

    AB伺服軟件使用方法

    AB伺服軟件使用方法
    發表于 12-24 14:45 ?0次下載

    示波器高壓探頭使用方法

    示波器高壓探頭是一種用于測量高電壓信號的儀器,通常用于高壓電源、電機、變壓器等電氣設備的測試。以下是示波器高壓探頭的詳細使用方法
    的頭像 發表于 10-03 16:43 ?546次閱讀

    探針頭型使用方法有哪些

    探針頭型的使用方法多種多樣,具體取決于探針頭型的類型、被測對象的特性以及測試需求。以下是一些常見探針頭型的使用方法概述: 1. 凹頭探針 用途 :主要用于測試長導腳、端子及繞線柱等較長或較粗的被測點
    的頭像 發表于 09-07 10:57 ?897次閱讀

    DC/DC模擬的基本使用方法和特性確認方法

    本篇介紹了DC/DC模擬的基本使用方法及確認基本特性的方法
    的頭像 發表于 08-20 17:08 ?814次閱讀
    DC/DC模擬的基本<b class='flag-5'>使用方法</b>和特性確認<b class='flag-5'>方法</b>

    DC/DC模擬器的特征和使用方法

    本篇介紹了特瑞仕在官網提供的DC/DC模擬器的特征和使用方法
    的頭像 發表于 07-18 16:17 ?837次閱讀
    DC/DC模擬器的特征和<b class='flag-5'>使用方法</b>

    淺談錫膏的儲存及使用方法

    錫膏(焊錫膏)是電子組裝過程中常用的材料,它的儲存和使用方法對保證焊接質量和性能至關重要。以下是詳細的儲存及使用方法
    的頭像 發表于 06-27 10:02 ?1065次閱讀

    可編程電源使用方法

    可編程電源使用方法 可編程電源使用方法 摘要:本文詳細介紹了可編程電源的使用方法,包括其基本概念、主要功能、選擇原則、操作步驟、注意事項以及實際應用案例,旨在幫助讀者全面了解可編程電源
    的頭像 發表于 06-10 15:29 ?1160次閱讀

    現場總線的使用方法與注意事項

    的穩定可靠運行,正確的使用方法和注意事項至關重要。本文將詳細介紹現場總線的使用方法和注意事項,以供讀者參考。
    的頭像 發表于 06-06 11:49 ?882次閱讀

    手柄控制代碼及使用方法

    手柄控制代碼及使用方法
    的頭像 發表于 05-15 10:19 ?2097次閱讀

    鉗形電流表的使用方法和注意事項

    鉗形電流表,作為電氣測量和測試的重要工具,其使用方法和注意事項對于保障測量結果的準確性和操作人員的安全至關重要。本文將從鉗形電流表的使用方法和注意事項兩個方面進行詳細闡述,以期為讀者提供一個全面而深入的了解。
    的頭像 發表于 05-14 16:14 ?3752次閱讀

    時鐘的圖好像是APB的時鐘都是AHB給的,請問這些時鐘為多少是哪兒配的呢?是sysinit里嗎?

    大家好,我看時鐘的圖好像是APB的時鐘都是AHB給的,請問這些時鐘為多少是哪兒配的呢?是sysinit里嗎?
    發表于 05-11 07:34

    光纖熱縮管正確使用方法

    光纖熱縮管是一種用于保護光纖連接點的材料,其主要功能是在光纖連接點處提供保護,防止光纖受到機械傷害或環境因素的影響。在正確使用光纖熱縮管之前,首先需要了解其正確的使用方法。本文將詳細介紹光纖熱縮管
    的頭像 發表于 04-07 17:13 ?1692次閱讀

    手機信號屏蔽器:功能、原理及使用方法詳解

    深圳特信電子|手機信號屏蔽器:功能、原理及使用方法詳解
    的頭像 發表于 04-01 09:09 ?3497次閱讀

    555集成芯片的使用方法

    555集成芯片的使用方法主要依賴于其特定的引腳功能和電路設計。
    的頭像 發表于 03-25 14:39 ?1621次閱讀
    威尼斯人娱乐城赌百家乐| 澳门玩百家乐官网赢1000万| 百家乐官网庄河闲的赌法| 新手百家乐官网指点迷津| 百家乐官网澳门赌| 百家乐如何睇路| 真人百家乐平台下载| 百家乐电话投注怎么玩| 任你博百家乐娱乐城| 大发888真钱客户端| 全讯网| 网络百家乐官网赌博视频| 网上百家乐官网公| 网上百家乐赌场娱乐网规则 | 澳门新葡京赌场| 在线百家乐官网合作| 百家乐佣金计算| 大发888娱乐城账号| 晋江市| 24山择日财丁贵日| 大发888我的爱好| 百家乐官网2号机器投注技巧| 百家乐网址皇冠现金网| 巴登娱乐城信誉怎么样| 蓝盾百家乐官网娱乐场开户注册 | 广州百家乐官网赌博机| 迪士尼百家乐官网的玩法技巧和规则| 如何看百家乐的玩法技巧和规则 | 百家乐官网真人游戏娱乐| 百家乐最好投| 百家乐官网心态研究| 百家乐也能赢钱么| 大发888娱乐城| 百家乐官网小游戏单机版| 大发888游戏在线客服| 百家乐官网一起多少张牌| 全讯网跑狗图| 江城| 百家乐打大必赢之法| k7线上娱乐城| 百家乐平台哪个好本站所有数据都是网友推荐及提供 |