**至:
fpga晶元一般有好幾組時鐘引腳 clk [0..n] [p,n],我的理解是:首先,時鐘必須由外部晶振通過clk引腳輸入到fpga的時鐘網路,至於選用哪一組clk,主要看fpga哪個bank對時鐘要求最為苛刻;其次,一般用p端,n端由quartus置位三態;再次,對於簡單的系統,只有一組clk輸入作為系統主時鐘,其他時鐘引腳空置,或者作為某些高帶載能力的時鐘的輸出口(是否可作為輸出口,要看晶元手冊);然後,複雜系統,可以有不同源的時鐘分別從不同clk引腳輸入,只是猜想,沒實踐過,個人認為這樣不好,因為fpga的核心就是同步;另外,不要把clk引腳和全域性時鐘、區域時鐘什麼的混為一談,乙個是時鐘輸入引腳,乙個是內部時鐘走線;最後,clk引腳進去的走線肯定進過優化的(h型銅皮,專用的、直達每個觸發器的佈線資源),所以能做到小的抖動和偏斜,帶載能力。
全域性時鐘:fpga內部的專用全域性時鐘佈線資源,具有直達每乙個觸發器的能力,且佈線資源經過優化,時鐘經過它傳輸後具有高扇出、最小的偏斜和抖動等。但也因為是全域性佈線相較於區域時鐘,會有較大的插入延時(手冊也這麼說),而且資源較少(且用且珍惜)。全域性時鐘網路:1)可由clk引腳、內部pll、高速串列埠(hssi)、普通邏輯電路產生的時鐘(一般不這麼幹)驅動;2)可驅動所有輸出引腳(尤其是clk引腳,輸出作為其他晶元的基礎時鐘)、內部pll、區域時鐘。
區域時鐘:只在他們自己所在的區域有效,相當於區域內的全域性時鐘,在區域內,具有全域性時鐘的優點,且插入延時比全域性時鐘小,佈線資源也比較多。區域時鐘網路:1)可由clk引腳(注意區域)、內部pll、高速串列埠(hssi)、普通邏輯電路產生的時鐘(一般不這麼幹)驅動;2)可驅動所有輸出引腳(尤其是clk引腳,輸出作為其他晶元的基礎時鐘)、內部pll。
******注意******
常規操作:外部晶振—>時鐘引腳—>pll—>區域時鐘、各個模組、輸出。
關於clk引腳選擇:不是所有的clk引腳都可以連線到所有的全域性/區域時鐘網路。
關於pll:不是所有始終都可以驅動pll,詳見手冊。
altera 的 cyclone iv 器件 pll 具有時鐘倍頻和分頻、相位偏移、可程式設計占空比和外部時鐘輸出,進行系統級的時鐘管理和偏移控制。 altera 的 quartus ii 軟體無需任何外部器件,就可以啟用 cyclone iv pll 和相關功能。本文將介紹如何設計和使用 cyclone iv pll 功能。pll 常用於同步內部器件時鐘和外部時鐘,使內部工作的時鐘頻率比外部時鐘更高,時鐘延遲和時鐘偏移最小,減小或調整時鐘到輸出( tco)和建立( tsu)時間。
cyclone iv e 器件提供了多達 15 個專用時鐘管腳 (clk[15..1]),以用於驅動高達 20 個gclk 時鐘網路和 4 個時鐘鎖相環單元(pll)。 其中 ep4ce6 和 ep4ce10 為 2 個 pll。
1. 時鐘網路
gclk 時鐘網路驅動整個器件,並對器件各象限提供時鐘。 器件中的所有資源(i/o 單元、邏輯陣列模組(lab)、專用乘法器模組以及 m9k 儲存器模組)都能夠將 gclk 用作時鐘資源。這些全域性網路資源可用於控制訊號,例如:由外部管腳驅動的時鐘使能及清零訊號。另外,內部邏輯也能夠驅動 gclk,以用於內部生成的 gclk 和非同步清零、時鐘使能,或者其它具有高扇出的控制訊號。時鐘控制模組( clock control block) 用於驅動 gclk 網路, 它們處於晶元的頂端、底部、 左側及右側四邊, 每邊為 5 個, 共 20 個, 位於靠近 fpga 全域性時鐘的輸入腳。
時鐘輸入訊號通過時鐘控制模組後抖動和時延會被優化。 時鐘控制模組的輸入訊號可以分別為專用時鐘管腳(clk1~15), 雙功能時(dpclk 和 cdpclk), pll 的輸出和 fpga 內部的邏輯訊號。
cyclone iv e 提供了 4 個 plls(ep4ce6 和 ep4ce10 只有 2 個 plls)為裝置提供強大的時鐘管理和外部系統時鐘管理及高速的 io 通訊, 通過時鐘輸入, 產生不同頻率和不同相位的時鐘訊號供系統使用。
pll 的時鐘輸入可以是 pll 所在的 bank 的四個時鐘輸入管腳, fpga 內部產生的訊號不能驅動 pll。 cyclone iv plls 產生的時鐘可以為單端時鐘訊號或差分時鐘訊號, 可以通過gclks 網路直接驅動 fpga 外部的 io 口。每乙個cyclone iv pll 均採用 m/(n* 後縮放計數器) 縮放因子為 pll 輸出埠提供時鐘合成輸出。輸入時鐘由預縮放因子 n 分頻, 然後乘以反饋因子 m。控制環路驅動 vco以匹配 fin (m/n)。每乙個輸出埠均有乙個唯一的後縮放計數器,對高頻 vco 進行分頻。對於不同頻率的多個 pll 輸出, vco 值是輸出頻率的最小公倍數,以滿足其頻率規格。例如,如果乙個 pll 所要求的輸出頻率是 33 和 66 mhz, 那麼 quartus ii 軟體會將vco 設定為 660 mhz(33 和 66 mhz 在 vco 頻率範圍內的最小公倍數)。然後,後放大計數器會降低每個輸出埠的 vco 頻率。每乙個 pll 上均有乙個預縮放計數器 n 和乙個乘法計數器 m,範圍從 1 到 512。由於計數器 n 僅用於計算分頻,因此該計數器不使用占空比控制。此外,每個 pll 上有五個用於驅動 gclk 或外部時鐘輸出的通用後縮放計數器。這些後縮放計數器的範圍從 1 到512,並具有 50% 的占空比設定。後縮放計數器的範圍從 1 到 256,具有非 50% 的占空比設定。設計所選擇的高/ 低計數值的總和,將用於給定計數器分頻值的選擇。quartus ii 軟體根據輸入到 altpll 巨集功能的輸入頻率、乘法和除法值來自動選擇相應的縮放因子。
Linux中的時鐘概念Linux中的時鐘概念
linux的時鐘中斷中涉及至二個全域性變數乙個是xtime,另乙個則是jiffies。有乙個與時間有關的時鐘 實時時鐘 rtc 這是乙個硬體時鐘,用來持久存放系統時間,系統關閉後靠主機板上的微型電池保持計時。系統啟動時,核心 通過讀取rtc來初始化wall time,並存放在xtime變數中,即xt...
Xilinx 中時鐘的使用
沒有pll的時鐘 輸入時鐘在沒有連線到pll中,那麼一定在輸入端鏈結bufg,ibufg iostandard default specify the input i o standard ibufg inst o o clock buffer output i i clock buffer inp...
Handel C中時鐘控制
handel c工程中的main函式都是在乙個時鐘源的控制下執行的。搞清楚每一部分的 在哪個時鐘週期段內執行對程式設計者來說是一件極其重要的事情。這不僅是因為它可以使設計者寫出的 可以執行速度更快,更重要的是它關係到設計者寫出的 當用到並行結構時是否能夠正確的執行,是否能正確的按照設計者的設計初衷去...