|
基本的時序分析理論1 本文節選自特權同學的圖書《FPGA設計實戰演練(邏輯篇)》 配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 何謂靜態時序分析(STA,Static Timing Analysis)? 首先,設計者應該對FPGA內部的工作方式有一些認識。FPGA的內部結構其實就好比一塊PCB(Printed Circuit Board),FPGA的邏輯陣列就好比PCB板上的一些分立元器件。PCB通過導線將具有相關電氣特性的信號相連接,FPGA也需要通過內部連線將相關的邏輯節點導通。PCB上的信號通過任何一個元器件都會產生一定的延時,FPGA的信號通過邏輯門傳輸也會產生延時。PCB的信號走線有延時,FPGA的信號走線也有延時。這就帶來了一系列問題,一個信號從FPGA的一端輸入,經過一定的邏輯處理后從FPGA的另一端輸出,這期間會產生多大的延時呢?有多個總線信號從FPGA的一端輸入,這條總線的各個信號經過邏輯處理后從FPGA的另一端輸出,這條總線的各個信號的延時一致嗎?之所以關心這些問題,是因為過長的延時或者一條總線多個信號傳輸延時的不一致,不僅會影響FPGA本身的性能,而且也會給FPGA之外的電路或者系統帶來諸多的問題。(特權同學,版權所有) 言歸正傳,之所以引進靜態時序分析的理論也正是基于上述的一些思考。它可以簡單的定義為:設計者提出一些特定的時序要求(或者說是添加特定的時序約束),套用特定的時序模型,針對特定的電路進行分析。分析的最終結果當然是要求系統時序滿足設計者提出的要求。(特權同學,版權所有) 下面舉一個最簡單的例子來說明時序分析的基本概念。假設信號需要從輸入到輸出在FPGA內部經過一些邏輯延時和路徑延時。系統要求這個信號在FPGA內部的延時不能超過15ns,而開發工具在執行過程中找到了如圖8.1所示的一些可能的布局布線方式。那么,怎樣的布局布線能夠達到系統的要求呢?仔細分析一番,發現所有路徑的延時可能為14ns、15ns、16ns、17ns、18ns,有兩條路徑能夠滿足要求,那么最后的布局布線就會選擇滿足要求的兩條路徑之一。(特權同學,版權所有)
圖8.1 時序分析實例1 靜態時序分析的前提就是設計者先提出要求,然后時序分析工具才會根據特定的時序模型進行分析,即有約束才會有分析。若設計者不添加時序約束,那么時序分析就無從談起。筆者常常遇見一些初學者在遇到問題時不問青紅皂白就一口咬定是時序問題,當然了,這是可能的,但若想準確的定位到問題的所在,必須在添加了時序約束后,系統的時序問題才有可能暴露出來。(特權同學,版權所有) |