邏輯設計中多時鐘設計 2

2021-09-30 14:29:42 字數 4132 閱讀 8514

在上個系列中,主要分析了單bit時鐘訊號是如何在多個時鐘域中進行同步的。概括起來只有兩點:一是通過同步器,二是將控制訊號與資料訊號合併成一組(資料+控制)匯流排,經過fifo或ram實現跨時鐘域設計。那麼在這節中,重點來分析跨時鐘域這個概念。通過這節的分析,可以知道那些型別的時鐘,在實際的處理過程中是需要同步器的,而哪些不需要經過同步器。一般來說,都可以使用同步器來進行處理,在使用同步器之前,一定要清楚兩個時鐘間的頻率以及相位的關係。但是下面的介紹中,可以不使用同步器的,一方面可以節省邏輯資源,另一方面可以使設計變得簡單。

在下一節的討論中,假定兩個時鐘之間的相位和時鐘抖動相同,並假定它們之間的路徑已經按同樣的時鐘延遲和偏移引數進行了平衡。除此之外,還假設這兩個時鐘起始處的相位差為零,而且觸發器的「時鐘到q端」的延時也為零。

概括地來說,我們在討論訊號從乙個時鐘域到另外乙個時鐘域是否屬於跨同步時鐘域,我們僅僅考慮兩個時鐘訊號本身的特性,而暫時不考慮兩個時鐘在傳輸過程中因為觸發器等發生的時鐘延遲造成的影響。

在此種情況下,兩個完全相同的時鐘clk1和clk2具有同樣的頻率與相位差,clk1和clk2我們可以看成為完全相同的。並由同乙個時鐘源產生。那麼,在clk1和clk2之間的傳輸,並不是跨時鐘域的。實際上,這種情形在設計中很少使用。可以不去考慮這種情形。

然而,在實際的邏輯設計中,會碰到另外一種設計情形,即clk1和clk2雖然都是由同乙個時鐘源產生的,但是兩個時鐘的起始點不同,並且這個起始點是由非同步訊號來控制的,那麼clk1和clk2應該如何處理,是需要同步器還是根據第3節中的設計方法進行處理,個人推薦如果clk1和clk2因為非同步訊號造成的延遲並不影響資料訊號的傳輸,並且當非同步訊號影響完成後,clk1和clk2是同頻率,相位差恆定的,那麼推薦按照第3節中的處理方法,在滿足sta的情況下,不使用同步器。比如reset訊號造成的時鐘影響。然而,如果組合邏輯訊號影響clk1和clk2的時鐘的起始點,並且該組合邏輯訊號也影響了資料的傳輸,那麼就需要同步器或者buffer快取資料。

注:在這種情況下,只需要滿足sta(靜態時序分析)即可。

這些時鐘有相同的時鐘週期,但是相位差恆定。實際設計中最常見的有兩種,一是對原時鐘進行反相處理,二是對原時鐘做了乙個固定的延遲處理。以下圖為例,假設t為時鐘週期,時鐘相位移動了t/4.

這類時鐘具有不同的頻率,而且相位差也是可變的。可以將這類時鐘分成兩個子類,第一子類中各時鐘週期之間是整數倍的關係。第二子類中各時鐘週期是非整數倍的關係。不論是哪一子類,各時鐘有效邊沿的相位差都是可變的。下面將詳細討論著兩種情況。

在這種情況下,乙個時鐘的頻率是另乙個時鐘頻率的整數倍,並且它們有效邊沿的相位差是可變的。這兩個時鐘的有效邊沿之間可能的最小相位差始終等於較快的那個時鐘的時間週期。

在下圖中,時鐘clk1的頻率是時鐘clk2的三倍,假定t是時鐘clk1的時鐘週期,時鐘clk2可以用來捕獲資料的時間可能是t、2t、3t,這取決於資料在時鐘clk1的哪個邊沿發出。因此,任意路徑的最差延遲都應該在時鐘邊沿相位差為t時滿足建立時間的要求。最差保持時間檢查應該在時鐘邊沿相位差為零時進行。

在以上所有情況下,都有較快時鐘的乙個完整的週期用來傳輸資料,以使其能正確地捕捉,所以它通常都可以保證滿足建立時間和保持時間的要求。因此,就不會訊在亞穩態或資料不一致的問題,也就不必使用同步器。

需要特別注意的是,在這裡,資料由較快的時鐘發出,並由較慢的時鐘捕獲,那麼就要考慮資料是否會丟失。原資料應該保持至少乙個目的時鐘週期的穩定狀態。可以使用一些控制電路來滿足這一要求。例如使用乙個簡單的有限狀態機fsm,使原資料每三個原時鐘改變一次,就不會出現丟失資料的情況了。

這種情況指乙個時鐘的頻率是另乙個時鐘的非整數倍。而且它們有效邊沿的相位差是可變的。

與前面提到的各時鐘之間保持整數倍關係不同,因此兩個時鐘之間的最小相位差足以使亞穩態產生。應當注意的是,亞穩態是否產生,這個與實際的頻率以及晶元設計工藝相關。

在第一種情況下,在源時鐘有效沿和目的時鐘有效沿之間有足夠大的相位差,足以保證在當前設計的晶元,當前執行的頻率情況下不會產生亞穩態。

在第二種情況下,源時鐘和目的時鐘有效沿非常接近,導致產生亞穩態問題。然而,在這裡時鐘頻率倍數關係需要滿足以下條件,即一旦有時鐘邊沿接近出現,下乙個時鐘週期就會留出足夠大的時間冗餘,使得資料的捕獲不會出現違背建立時間或保持時間的要求。

在第三種情況下,兩個時鐘的時鐘邊沿在許多連續的週期中都非常接近。但是因為這兩個時鐘的源頭是相同的,所以它們之間的相位差是可以計算出來的。

注意,在下面的所有例子中,會使用某些延遲值,假設時鐘邊沿之間的相位冗餘在小於或等於1.5ns時會產生亞穩態。

例一:

在這種情況中,兩個時鐘的有效邊沿永遠不會接近,從而可以保留足夠的冗餘來滿足電路對建立時間和保持時間的要求。

假設兩個時鐘clk1和clk2分別是對同乙個時鐘clk的3分頻和2分頻。那麼clk1比clk2慢1.5倍。如下圖示,clk1的週期是15ns,clk2的週期為10ns.這兩個時鐘間的最小相位差是2.5ns,(注意:在分析相位差的時候,有乙個前提,即前面提到的「不考慮起始點」)這對於滿足建立時間和保持時間已經足夠了。(2.5ns>1.5ns)

然而,由於該相位差很小,裕量很小1ns(2.5ns-1.5ns),所以在設計中,在跨越兩個時鐘的位置處應當避免使用的組合邏輯延遲大於1ns。如果在使用的組合邏輯可能會引起亞穩態,那麼必須使用同步器。

在資料從慢時鐘域傳遞到快時鐘域時,必須增加邏輯一保證資料在快時鐘域中只取樣一次,這是不會有資料丟失現象。然而,在從快時鐘域向慢時鐘域傳遞資料時,就可能出現資料丟失。為了解決這個問題,必須將源資料保持至少乙個目標時鐘週期,以保證在兩個連續變換的源資料之間至少有乙個目標時鐘到達。

例二:

在這種情況下,兩個時鐘的有效沿可能間隔性地非常接近,即兩個時鐘沿會出現挨著的情況。然後在再次出現挨著的情況之前,接下來的幾個週期兩個時鐘沿會保留組後的裕量(能正確捕捉到資料)。這裡「挨著」的意思是接近到了足以產生亞穩態的程度。在下圖中,時鐘clk1和clk2的週期分別為10ns和7ns。那麼它們之間的最小相位差是0.5ns,這必然會引起亞穩態,所以需要使用同步器。

由於亞穩態的出現,當兩個時鐘沿很接近時,資料不能被目標域正確地捕獲。然而,在這種情況下,一旦出現時鐘沿非常接近的情況時,那麼下乙個週期的裕量就會很大,是資料就可以被目標時鐘正確捕獲。下圖中訊號b2就表示這種情況。所期望的輸出是b1,實際的波形是b2.在這裡,資料不會丟失,但是可能有資料不連貫的問題。

對於從快時鐘域到慢時鐘域的傳輸,可能出現資料丟失,為了阻止這種現象,源資料應該保持至少乙個目標時鐘週期不變,同樣可以通過fsm來實現這一目的。

在這種情況下,石中劍的相位差異很小,並能連續存在幾個週期。除了變化的相位差異和週期性的重複現象,其餘都與非同步時鐘很相似。

在下圖中,時鐘clk1和clk2的週期分別為10ns和9ns.可以看出兩個時鐘的有效時鐘沿很接近,並持續4各連續週期。在前兩個週期中可能會違背建立時間(源時鐘在目的時鐘之前),而在後兩個時鐘週期中可能會違背保持時間(目的時鐘在源時鐘之前)。

在這種情況下,將會出現亞穩態的問題,因此需要同步器。同時,除了亞穩態的問題,還有資料從慢時鐘域到快時鐘域時發生的資料丟失。從上圖看出,b1是不包含亞穩態的正確輸出。但實際的輸出可能是b2.發生的資料丟失情況,因為第乙個週期「1」由於違背建立時間未能捕捉到,而在第二個週期中由於違背保持時間誤捕捉到了「0」。

為了不丟失資料,資料需要保持穩定至少兩個目的時鐘週期。這既是用於從快到慢的傳輸,也是用於從慢到快的傳輸。可以通過使用簡單的fsm對原資料產生進行控制完成這一任務。單資料不連貫的問題仍然存在。

這時,已標準話的技術(比如握手和fifo)對於傳輸資料更為有效,因為他們解決了資料不連貫的問題。

在本節中討論了時鐘的三種情況,在下列這三種情況中,是否需要同步器做同步,以及哪些情況不需要同步器,為什麼不使用同步器都做個相應的解釋,但邏輯設計並沒有一成不變的規則,需要根據實際的訊號情況進行具體分析。

本節中的圖以及三個例子,均來自於《硬體架構的藝術》

邏輯設計方法學 6 多時鐘設計技術

在進行乙個含多個時鐘的設計時,在 和綜合過程中需要遵循一定的準則,這樣會帶來很大的好處。通用的準則如下 xilinx的開發工具vivado有 project mode 和 non project mode 在 non project mode 中,我們經常使用指令碼進行開發。同樣在 的時候,也會編寫...

介面邏輯設計

之前寫dds那部分時,對於spi介面琢磨了好久,當然了,首先想得到的狀態機,控制dds輸出的資料送至後端da。將整個資料傳輸過程分解成四個狀態 idle wr start wr data stop,根據事件猝發每個狀態的跳轉,例如idle wr start的跳轉條件是out en 1,這種設計思想是...

業務邏輯設計

1.action設計 shfwpgdzlbdmanager.copy mannager裡面的相應方法 shfwpgdzlbd.getbdtpid 傳入的引數從哪獲取,型別應和mannager的方法需要的引數型別相同 2.manager設計 設計之前宣告物件 private shfwpgdzlbdda...