在時序邏輯中,正是時鐘訊號將各個儲存單元中的資料一級一級地推動下去,如果時鐘訊號突然停止,那麼整個時序邏輯也將陷入癱瘓,因此,時鐘就好像時序邏輯的心跳一樣,那麼重要卻又平常的存在著。
幾乎所有的fpga設計都是時序邏輯,就意味著幾乎所有的fpga設計都離不開時鐘,時鐘之於時序邏輯,好比空氣之於眾生。因此,要確保fpga設計成功,就先要確保時鐘訊號成功。
如果要評判fpga實現某一功能的可行性,那麼第一步, 看時鐘,判斷該功能對時鐘訊號的要求是否超越了fpga的能力範圍;如果讓你著手開始乙個fpga設計,第一步,還是先看時鐘,選擇合適的時鐘作為整個專案的支撐。
時鐘訊號是具有固定週期的方波。 週期是指乙個時鐘邊沿到下乙個同類時鐘邊沿之間的時間間隔,最常用的方式是乙個上公升沿到下乙個上公升沿之間的時間間隔。 時鐘的頻率等於時鐘週期的倒數。
圖1. 數字波形作為時鐘訊號的參考,時鐘訊號具有固定週期,在資料傳輸過程中用固定的時間間隔來同步數碼訊號發射器和接收器。
時鐘訊號的占空比是波形處於高電平佔週期的時間比。 圖2展示了兩個具有不同占空比的波形的區別 您可以發現占空比為30%的波形處於的時間少於占空比為50%的波形。
圖2.訊號的占空比是指波形處於的時間百分比。
時鐘訊號用於在資料傳輸過程中同步數碼訊號發射器和接收器。 比如,發射器可以在時鐘訊號的每個上公升沿傳送乙個資料位,接收器可使用相同的時鐘讀取資料。 在這種情況下,裝置的確定邊沿是上公升沿(從低電平到高電平)。 對於其他裝置則可能是下降沿(從高電平到低電平)。 時鐘的確定邊沿又稱為有效時鐘邊沿。 數碼訊號發射器在每個有效時鐘邊沿觸發新的資料傳送,而接收器則在每個有效時鐘邊沿上進行取樣。 後來的裝置開始同時使用時鐘的上公升驗和下降沿;這種裝置被稱為雙倍資料速率傳輸(ddr)裝置。 事實上,資料傳輸對於有效邊沿有短暫的時延;這種延時稱為時鐘到輸出時間。
當接收器依據採集時鐘接收資料時,我們需要注意兩個定時引數,以確保接收資料的可靠性。 建立時間(ts)是指資料連續處於有效邏輯電平且接收器準備好接收輸入訊號所需的時間。 保持時間(th)是指接收器取樣後,資料發生變化前需要保持在原有狀態的時間。 建立時間和保持時間在接收器的時鐘有效邊沿附近形成了乙個穩定的視窗,以便接收器能夠可靠地採集資料。 圖3給出了乙個上公升沿時鐘訊號的建立時間和保持時間。 通常,數碼訊號會在上公升軌跡的中間切換電壓;因此時間基準標誌通常放置在訊號邊沿的正**。
圖3.建立時間和保持時間在接收器的時鐘有效邊沿附近形成了乙個穩定的視窗,以便接收器能夠可靠地採集資料。
時鐘訊號的本質,是在於其是否為時序邏輯提供「心跳」機制,而不在於其具體的表現形式。
也就是說,如果僅僅觀察訊號的數字波形,是無法分辨乙個訊號到底是時鐘訊號還是資料訊號的。要想做出準確分辨,必須去檢視該訊號在數位電路中的連線關係,舉個例子,如果乙個訊號連線到乙個暫存器的時鐘端,那麼它就是乙個時鐘訊號;如果該訊號連線到乙個暫存器的資料輸入端,那麼它就是乙個資料訊號;如果乙個訊號連線到乙個暫存器的時鐘端的同時又連線到另乙個就餐器的資料輸入端,那麼它就具有了時鐘訊號和資料訊號的雙重身份。
1 按**分
(1)外部時鐘
外部時鐘是指時鐘訊號的**是在fpga晶元的外部。通常來說,外部時鐘源對fpga設計來說是必需的,因為一般fpga晶元內部沒有能夠產生供內部邏輯使用的時鐘訊號的選頻和激勵電路。所以,需要在fpga晶元的外部使用晶振以及恰當的電阻、電容、電感、三極體等器件,來搭建用於產生時鐘訊號的電路,並將其通過fpga晶元的恰當物理管腳引入到fpga內部供時序邏輯使用。
(2)內部時鐘
1)再生時鐘
再生時鐘指的是fpga內部產生的新時鐘,這個時鐘是以乙個輸入的時鐘訊號作為參考,然後在此基礎上通過調整其頻率和相位而產生出來的新時鐘。
目前來說,fpga晶元內部能夠產生再生時鐘訊號的模組有dcm、pll、mmcm等。
2)門控時鐘
門控時鐘,指的是由組合邏輯產生的時鐘,其中,組合邏輯的輸入可以全部是資料訊號,也可以包含原始時鐘訊號。由於組合邏輯中的基本單元是與或非等閘電路,而與門和非門又具有「開關性」,故該類時鐘又稱為門控時鐘。
通常情況下,不建議使用門控時鐘,因為門控時鐘由組合邏輯產生,那麼它本身就潛伏了組合邏輯的最大隱患——競爭和險象,所以門控時鐘訊號很容易產生毛刺,而暫存器等儲存單元對時鐘訊號的邊沿都非常敏感,因此具有毛刺的時鐘會造成時序邏輯的不穩定。
3)行波時鐘
行波時鐘,是指有時序邏輯產生的時鐘。
通常情況下,也不建議在fpga的內部引入行波時鐘,因為這樣會在fpga設計中引入新的時鐘域,增加時序分析的難度,並且由於行波時鐘的相位通常會滯後於原始時鐘,因此後續觸發器的保持時間不一定能夠得到滿足。
事實上,採用行波時鐘的目的無非就是為後續時序電路的處理速度進行降頻,而要實現降頻的功能,除了通過降低時鐘訊號的頻率外,仍然可以通過控制後續時序電路儲存單元的使能端來實現。
這樣,整個時序邏輯將只被乙個時鐘訊號所驅動,變得清晰又易控。
2 按波形分
時鐘訊號按波形分,可以分為連續時鐘,間歇時鐘,不規則時鐘。
(1)連續時鐘
連續時鐘是連續的,週期的,一般fpga內部的時鐘通常來說都是連續時鐘。
(2)間歇時鐘,時鐘波形存在間斷,時有時無。
間歇時鐘常見於fpga資料輸入或輸出介面,這是因為有些外圍器件的同步介面不包括使能端,因此在沒有需要傳輸的資料時只能通過關閉時鐘來暫停通訊,這樣也可以在一定程度上減少功耗。
(3)不規則時鐘,無規律可循,沒有固定的週期和頻率,也沒固定的占空比,並且還時有時無。
不規則的時鐘也常見於fpga的資料輸入或輸出介面,與間歇時鐘產生的原因類似,只不過間歇式時鐘往往針對成包或成幀傳輸資料的介面,因此每次都會輸出一連串規則的波形訊號,而不規則時鐘針對的介面資料量往往比較小,也沒有固定的資料結構,因此有乙個資料就會傳輸乙個資料。
1、同相位時鐘
同相位時鐘可以頻率不同,但是時鐘跳變沿是對齊的。如圖所示,clk0為慢時鐘,clk1為快時鐘,clk0的時鐘沿始終與clk1的時鐘沿對齊,兩個時鐘相位相同。
2、同源時鐘
同源時鐘,通常由乙個pll或者dll產生,相位不需要相同,只要求相位固定。
3、同時鐘域時鐘
同時鐘域的時鐘既是同源時鐘,還要求相位相同並且頻率相同,通常是同乙個pll產生的頻率相同相位相同的時鐘,pll能夠保證兩個時鐘在不同的情況下(如溫度不同)的偏差在精度範圍內。從波形上看,同時鐘域兩個時鐘頻率一樣,跳變沿完全對稱。但是從波形上看兩個時鐘頻率一樣,跳變沿完全對稱的不一定是同時鐘域時鐘,如兩個pll輸出的看似相同的時鐘不是同乙個時鐘域的,例如在不同的溫度下,就不能保證兩個時鐘的偏差。
fpga之道
數字定時: 時鐘訊號、抖動、遲滯和眼圖
同相位時鐘
FPGA 時鐘樹問題簡介
目錄 1 什麼情況下,時鐘應該 上樹 2 如何選擇時鐘樹?3 時鐘訊號如何 上樹 4 被 拉下樹 的時鐘訊號 上篇博文 時鐘域問題簡介,介紹了時鐘域的相關知識,形象的說就是時鐘訊號的 勢力 範圍,它通過時鐘樹的形式實現。時鐘樹不僅可以做到高扇出,還可以做到讓時鐘訊號到達各個觸發器的時刻盡可能一致,也...
FPGA 時鐘分頻
時鐘訊號的處理是fpga的特色之一,因此分頻器也是fpga設計中使用頻率非常高的基本設計之一。一般在fpga中都有整合的鎖相環可以實現各種時鐘的分頻和倍頻設計,但是通過語言設計進行時鐘分頻是最基本的訓練,在對時鐘要求不高的設計時也能節省鎖相環資源。在本實驗中我們將實現任意整數的分頻器,分頻的時鐘保持...
FPGA抖動簡介
1 本節目錄 2 本節引言 3 fpga簡介 4 fpga抖動簡介 5 結束語。不積跬步,無以至千里 不積小流,無以成江海。就是說 不積累一步半步的行程,就沒有辦法達到千里之遠 不積累細小的流水,就沒有辦法匯成江河大海。fpga field programmable gate array 是在pal...