一、簡介
????????關于時序分析和約束的學習似乎是學習FPGA的一道分水嶺,似乎只有理解了時序約束才能算是真正入門了FPGA,對于FPGA從業者或者未來想要從事FPGA開發的工程師來說,時序約束可以說是一道躲不過去的坎,所以這個系列我們會詳細介紹FPGA時序分析與約束的相關內容。
? ? ? ? 我們在設計FPGA的時候往往是進行多方面性能的權衡來實現設計的最優化,在可實現的情況下,我們一般會期望處理速率越快越好,但是與理論不同,在實際的硬件設計的時候,一個邏輯上正確的設計仍然會因為現實世界中的實現問題而失敗!
二、基礎知識
? ? ? ? 你總得知道點什么,我們才能繼續聊下去。
2.1 組合電路時序
FPGA時序分析與約束(1)——組合電路時序-CSDN博客文章瀏覽閱讀773次,點贊11次,收藏12次。在可實現的情況下,我們一般會期望fpga處理速率越快越好,但是與理論不同,在實際的硬件設計的時候,一個邏輯上正確的設計仍然會因為現實世界中的實現問題而失敗!本文中我們介紹了組合電路的時序問題,定義了tcd和tpd兩個重要參數,明確了如何尋找一個組合邏輯電路的最短路徑Shortest Path和最長路徑LongestPath(更常規的叫法是關鍵路徑Critical Path),然后我們分析了組合邏輯毛刺產生的原因及影響https://blog.csdn.net/apple_53311083/article/details/132368941
2.2?時序電路時序
FPGA時序分析與約束(2)——時序電路時序-CSDN博客文章瀏覽閱讀3.5k次,點贊41次,收藏44次。本文我們介紹了時序電路中的時序問題,這是我們進行進一步時序分析內容學習的重要理論基礎,首先我們介紹了D觸發器相關內容,著重說明了建立時間和保持時間的含義和產生原因,然后引入了觸發器的輸出時序,最后介紹了時序電路系統的設計約束。https://blog.csdn.net/apple_53311083/article/details/132626131
2.3 時鐘不確定性
FPGA時序分析與約束(3)——時鐘不確定性_clock uncertainty包括什么-CSDN博客文章瀏覽閱讀1.2k次,點贊12次,收藏13次。本文主要介紹了FPGA中時鐘的不確定性問題,FPGA中的時鐘不確定性由2部分組成,時鐘抖動和時鐘偏移,時鐘抖動由時鐘內部產生,是時鐘的固有參數,時鐘偏移是由于時鐘到達不同部分的時間不一致導致的,與FPGA的設計結構,布局布線等有關。_clock uncertainty包括什么https://blog.csdn.net/apple_53311083/article/details/132631389
2.4?時序分析,時序約束,時序收斂
FPGA時序分析與約束(4)——時序分析,時序約束,時序收斂-CSDN博客文章瀏覽閱讀361次,點贊10次,收藏10次。本文中我們學習了時序分析,時序約束,時序收斂的含義,我們主要采用的時序分析方法是靜態時序分析法,在后文中,我們將正式開始介紹如何進行時序分析。https://blog.csdn.net/apple_53311083/article/details/132629963
2.5 時序路徑
FPGA時序分析與約束(5)——時序路徑-CSDN博客文章瀏覽閱讀3.6k次,點贊49次,收藏55次。介紹了時序分析過程中時序路徑的基本概念,分別介紹了FPGA中常見的4種時序路徑:(1)引腳到寄存器(從FPGA的輸入端口到目的寄存器的數據輸入端口)(2)寄存器到寄存器(從源寄存器的時鐘端口到目的寄存器的數據輸入端口)(3)寄存器到引腳(從源寄存器的時鐘端口到FPGA的輸出端口)(4)引腳到引腳(從FPGA的輸入端口到FPGA的輸出端口)。這部分的內容是我們進行后續時序分析及時序約束的重要基礎。https://blog.csdn.net/apple_53311083/article/details/132641522
2.6?綜合基礎知識
FPGA時序分析與約束(6)——綜合的基礎知識-CSDN博客文章瀏覽閱讀1.9k次,點贊62次,收藏46次。與綜合相關的一些問題的性質和約束的必要性。隨著設計復雜性的不斷提高,為了能夠正確地表示的要求和關系,約束自身也變得越來越復雜https://blog.csdn.net/apple_53311083/article/details/133965507
2.7?通過Tcl擴展SDC
FPGA時序分析與約束(7)——通過Tcl擴展SDC-CSDN博客文章瀏覽閱讀879次,點贊13次,收藏8次。通過使SDC 擴展到Tcl,特定于工具的命令可以與原生的Tcl結構,如變量、表達式、語句和子程序相混合,使其成為實現工具非常強大的語言。術語“Synopsys公司設計約束”(又名SDC,Synopsys Design Constraints)用于描述對時序、功率和面積的設計要求,是EDA工具中用于綜合、STA和布局布線最常用的格式。該類別包括幫助設計人員放寬要求地命令,此命令是由其他命令所規定的,從而提供了約束放寬的適用范圍,下表給出了此類約束,表格中標有星號的命令也可提供額外的收緊(而不是放寬)。https://blog.csdn.net/apple_53311083/article/details/133979334
2.8 時序引擎
??????FPGA時序分析與約束(8)——時序引擎-CSDN博客文章瀏覽閱讀2.4k次,點贊60次,收藏31次。FPGA時序分析,時序引擎如何實現建立分析(setup),保持分析(hold),恢復時間分析(recovery)和移除時間分析(removal)。https://blog.csdn.net/apple_53311083/article/details/134095643
三、時鐘約束
? ? ? ? 對于時序分析和時序約束來說,最重要的就是時鐘,這是一切的開始。
3.1 主時鐘約束
FPGA時序分析與約束(9)——主時鐘約束-CSDN博客文章瀏覽閱讀590次,點贊18次,收藏12次。fpga時鐘約束,create_clock詳細解讀,主時鐘約束https://blog.csdn.net/apple_53311083/article/details/134102984
3.2?生成時鐘
FPGA時序分析與約束(10)——生成時鐘-CSDN博客文章瀏覽閱讀1.3k次,點贊29次,收藏15次。如今的Soc在同一個芯片內包含多種異構設備。同一個芯片內可能包含高速的處理器和低速的存儲器。這些工作在不同頻率下的器件通常由不同的時鐘觸發。每個部分的運行是基于各自時鐘的,這些會帶來異步性的設計問題。這可能導致幾個時鐘都源于同一個主時鐘,這些時鐘稱為生成時鐘(衍生時鐘、派生時鐘)。https://blog.csdn.net/apple_53311083/article/details/134129986
3.3 時鐘組
? ? ? ? 還沒寫呢,有空一定
3.4 其他時鐘特性
? ? ? ? 別急
四、端口約束
FPGA時序分析與約束(13)——I/O接口約束-CSDN博客文章瀏覽閱讀2.5k次,點贊68次,收藏29次。在應用了時鐘約束后,所有寄存器到寄存器的路徑都能定時。為了獲得更加精準的FPGA外部時序信息,設計者需要為FPGA的I/O接口指定時序信息,一般時序工具只能獲取FPGA器件內部的時序信息,對于FPGA器件引腳之外的時序信息,必須由設計者約束定義。如果沒有指定的輸入輸出的,時序分析工具會假設在接口上使用最優時序要求并假設電路單元的組合邏輯本身具有整個周期,電路單元外部沒有信號https://blog.csdn.net/apple_53311083/article/details/134335666
五、時序異常
5.1 虛擬路徑
FPGA時序分析與約束(14)——虛擬路徑-CSDN博客文章瀏覽閱讀319次。到目前為止,我們已經看到了如何約束時鐘和端口來指定設計中的時序要求,我們可以通過這些基礎的約束命令來進行時序約束,但是時序分析工具默認的時序檢查方式可能和我們實際工程實現的情況不同,通常來說是約束過緊,可能導致時序失敗。此時,設計者就需要額外增加一下啊約束命令,用于調整既有的時序檢查方式,以保證達到我們的設計預期。設計者額外增加的這部分約束,我們稱之為時序異常(也有地方稱之為時序例外約束)。本文中,我們重點關注虛擬路徑。https://blog.csdn.net/apple_53311083/article/details/134365891
5.2 多周期路徑
? ? ? ? 會寫的
5.3?最小延遲和最大延遲
? ? ? ? 未完待續