ISE FPGA時鐘系統

2021-07-12 04:31:41 字數 3151 閱讀 3253

在使用quartusii設計altera的fpga時,對於時鐘的考慮一般很少。我們想得到乙個固定頻率的時鐘,無非就是將晶振從某個時鐘管腳輸入:若晶振頻率即為期望頻率,則可以直接使用;若與期望頻率不符,則調動ip核生成pll,配置pll的輸出為期望頻率即可。可是若將fpga換為xilinx系列,在ise環境中設計時,時鐘的使用就沒那麼簡單了,尤其是在設計複雜工程時,全域性時鐘系統的設計顯得尤為重要。

一、時鐘網路與全域性緩衝

在xilinxfpga中,時鐘網路分為兩類:全域性時鐘網路和i/o區域時鐘網路。以全銅工藝實現的全域性時鐘網路,加上專用時鐘緩衝與驅動結構,從而可使全域性時鐘到達晶元內部所有的邏輯可配置單元,且i/o單元以及塊ram的時延和抖動最小,可滿足高速同步電路對時鐘觸發沿的苛刻需求。

在fpga設計中,fpga全域性時鐘路徑需要專用的時鐘緩衝和驅動,具有最小偏移和最大扇出能力,因此最好的時鐘方案是由專用的全域性時鐘輸入引腳驅動的單個主時鐘,去鐘控設計專案中的每乙個觸發器。只要可能就應盡量在設計專案中採用全域性時鐘,因為對於乙個設計專案來說,全域性時鐘是最簡單和最可**的時鐘。

在ise設計全域性時鐘時,ibufg、bufg、bufgmux等概念經常會被提及,這些資源可以統稱為時鐘資源,它們分為四類:全域性時鐘輸入埠、全域性時鐘復用器、i/o時鐘緩衝、水平時鐘佈線緩衝。下面挑選其中幾個常見的資源種類,簡單介紹下:

ibufg:即輸入全域性緩衝,是與專用全域性時鐘輸入管腳相連線的首級全域性緩衝。所有從全域性時鐘管腳輸入的訊號必須經過ibufg,否則在布局佈線時會報錯。ibufg支援agp、ctt、gtl、gtlp、hstl、lvcmos、lvdci、lvds、lvpecl、lvttl、pci、pcix和sstl等多種格式的i/o標準。

ibufgds:是ibufg的差分形式,當訊號從一對差分全域性時鐘管腳輸入時,必須使用ibufgds作為全域性時鐘輸入緩衝。ibufg支援blvds、ldt、lvd***t、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。

以上為常用的時鐘資源,對於一般的全域性時鐘系統設計,有這些資源就足夠了。

二、常用全域性時鐘系統

要組建乙個全域性時鐘系統,首先要從全域性時鐘管腳輸入乙個時鐘。有了這個時鐘,就可以組建各種型別的全域性時鐘系統了。一般來說,常用的全域性時鐘系統有兩種:ibufg+bufg系統、ibufg+dcm(pll)+bufg。

1、 ibufg+bufg系統

ibufg+bufg方案如下圖所示,這也是最基本的全域性時鐘系統。將時鐘管腳輸入的時鐘作為ibufg的輸入,然後將ibufg的輸出再作為bufg的輸入,則bufg的輸出即為得到的全域性時鐘。ibufg+bufg的方案相當於bufgp。

平時用得最多的還是ibufg+dcm(pll)+bufg方案,如下圖所示。將時鐘管腳輸入的時鐘作為ibufg的輸入,然後將ibufg的輸出作為dcm(pll)的輸入,將經dcm(pll)頻率變換後的輸出再作為bufg的輸入這種方案使用方法最為靈活,對全域性時鐘的控制更加有效。通過dcm(pll)模組不僅能對時鐘進行同步、移相、分頻、倍頻等變換,而且可以使全域性時鐘的輸出達到無抖動延遲(「0」skew)。

三、全域性時鐘系統使用的問題與注意事項

1、 全域性時鐘的時鐘源必須從全域性時鐘管腳輸入,並且要先經過ibufg。

2、如果全域性時鐘涉及到邏輯運算,可以將bufg換成bufgce(與)、bufgmux(二選一)等,事實上,bufg、bufgce等資源均是由bufgmux生成。

3、從bufg輸出的時鐘,是不能直接連線普通i/o管腳輸出的,會報錯,若要將全域性時鐘輸出,有兩種方法:一是直接將bufg的輸入連線普通i/o管腳輸出,或者將bufg的輸出經由oddr2後再連線i/o管腳輸出。需要注意的是,將clock_dedicated_route屬性設為false雖然會將error降為warning,但是這樣時鐘系統將不再是全域性時鐘系統,不建議這樣做。

4、dcm(pll)資源中有時鐘反饋輸入和時鐘反饋輸出管腳,一般的處理方法是將時鐘反饋輸出管腳經由bufg後輸入到時鐘反饋輸入管腳。

四、全域性時鐘系統使用舉例

下面將舉出例項,來看一下如何組建乙個全域性時鐘系統。

某fpga從全域性時鐘管腳引入頻率為26m的晶振源,fpga內部需要22mhz、22mhz反向、171.6mhz、36mhz,其中22mhz、22mhz反向、171.6mhz為fpga內部使用,22mhz、36mhz經由普通i/o管腳輸出,而且22mhz反向還要與訊號t_rn作邏輯與運算,試給出該需求的全域性時鐘系統解決方案。

在ise中組建時鐘系統有兩種方法:一是用ip核生成器配置生成相應ip,再用線連線起來,二是在檔案中直接用語言配置生成各類資源(dcm、pll、ibufg、bufg等),再用線連線。第一種方法較為簡單但靈活性差,而第二種方法稍微複雜但靈活性較強,可以隨時修改,使用哪種方法取決於個人喜好。

這裡用第二種方法來生成上文需求的全域性時鐘系統,下圖為最終效果圖。

1、clk26為從全域性時鐘管腳輸入的時鐘源,從管腳輸入後先經過乙個ibufg。

2、因為22mhz、171.6mhz和36mhz不能由乙個pll產生,故將ibufg的輸出時鐘訊號輸入到兩個pll。

3、pll0有三個輸出:clkout0、clkout1、clkout2,分別為22mhz、171.6mhz和22mhz反向。clk22_out為22mhz時鐘的i/o輸

實時(RTC)時鐘,系統時鐘和CPU時鐘

最近在學stm32的時候看到rtc時鐘和系統時鐘,不知道區別在 於是上網查了一下。實時時鐘 rtc時鐘,用於提供年 月 日 時 分 秒和星期等的實時時間資訊,由後備電池供電,當你晚上關閉系統和早上開啟系統時,rtc仍然會保持正確的時間和日期。系統時鐘 是乙個儲存於系統記憶體中的邏輯時鐘。用於系統的計...

Linux系統時鐘與硬體時鐘

linux系統有兩個時鐘 乙個是由主機板電池驅動的硬體時鐘 real time clock 也叫做rtc或者叫cmos時鐘。當作業系統關機的時候,用這個來記錄時間,但是對於執行的系統是不用這個時間的 另乙個時間是系統時鐘 system clock 也叫核心時鐘或者軟體時鐘,是由軟體根據時間中斷來進行...

北斗時鐘同步系統(北斗時鐘系統 北斗授時系統)

北斗時鐘同步系統 北斗時鐘系統 北斗授時系統 北斗時鐘同步系統 北斗時鐘系統 北斗授時系統 技術交流 岳峰 15901092122 yf cs 163.com q 522508213 時鐘同步系統是針對計算機 自動化裝置等進行校時而研發的高科技產品,時鐘同步系統通過接收北斗衛星 gps cdma p...