|
基本的時序分析理論2 本文節(jié)選自特權(quán)同學的圖書《FPGA設(shè)計實戰(zhàn)演練(邏輯篇)》 配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 下面我們再來看一個例子,如圖8.2所示,我們假設(shè)有4個輸入信號,經(jīng)過FPGA內(nèi)部的一些邏輯處理后到達同一個輸出端。FPGA內(nèi)部的布線資源有快慢之分,就好比普通的國道和高速公路。通過高速通道所需要的路徑延時假設(shè)為3ns-7ns,但只有兩條可用;而通過慢速通道的路徑延時通常要大許多,這里假設(shè)大于10ns。(特權(quán)同學,版權(quán)所有)
圖8.2 時序分析實例2 默認情況下,如圖8.3所示,離高速通道較近的din_2和din_3路徑被布線到了高速通道上,當前的4個信號在FPGA內(nèi)部的延時分別為:din1 = 15ns,din2 = 4ns,din3 = 6ns,din4 = 13ns。(特權(quán)同學,版權(quán)所有)
圖8.3 時序分析實例2默認布線延時 但是,我們實際的系統(tǒng)需求是這樣的:din1 < 10ns, din2 < 10ns, din3 < 20ns, din4 < 20ns。(特權(quán)同學,版權(quán)所有) 按照前面給出的4個輸入信號的默認布局布線情況來看,如圖8.4所示,雖然din2、din3和din4都達到了要求,但是din1無法滿足時序要求,我們通常認為這是時序違規(guī)。(特權(quán)同學,版權(quán)所有)
圖8.4 時序分析實例2默認布線時序違規(guī)情況 如果我們按照實際的需求對FPGA進行如下的時序約束:din1 < 10ns, din2 < 10ns, din3 < 20ns, din4 < 20ns。接下來,如圖8.5所示,F(xiàn)PGA將重新進行布局布線。(特權(quán)同學,版權(quán)所有)
圖8.5 時序分析實例2重新布局布線 由于添加了時序約束,因此,F(xiàn)PGA的布局布線工具會根據(jù)這個實際需求,重新做布局布線。重新布局布線后的路徑延時如下:din1 = 7ns, din2 = 4ns, din3 = 18ns, din4 = 13ns。顯然,F(xiàn)PGA內(nèi)部的時序全部都能夠滿足要求。(特權(quán)同學,版權(quán)所有)
圖8.6 時序分析實例2重新布局布線后的時序違規(guī)情況 關(guān)于約束,我們要稍微提一下兩種不恰當?shù)募s束方法,即欠約束和過約束。我們假設(shè)下面提到的兩種情況下的原始系統(tǒng)實際時序要求都是一樣的,即前面我們所說的:din1 < 10ns, din2 < 10ns, din3 < 20ns, din4 < 20ns。(特權(quán)同學,版權(quán)所有) 但是下面這兩種情況的約束不是完全按照實際系統(tǒng)時序需求來約束,我們來看看這些情況下會出現(xiàn)什么問題。(特權(quán)同學,版權(quán)所有) 首先來看看欠約束的情況(din1和din2欠約束)。(特權(quán)同學,版權(quán)所有) 如果對本實例添加約束為:din1 < 20ns, din2 < 20ns, din3 < 20ns, din4 < 20ns。此時,由于4條路徑的延時都能夠控制在20ns要求之內(nèi),所以當前的約束都能夠達到目標。(特權(quán)同學,版權(quán)所有) 但是,相對于實際的情況,有兩種情形: A. din1和din2走了高速通道,那么當前約束也能夠滿足實際的時序要求; B. din1和din2都沒有走高速通道,或者有1條路徑走了高速通道,那么結(jié)果是一樣的,整個系統(tǒng)的時序無法完全滿足要求。(特權(quán)同學,版權(quán)所有) 再來看看過約束的情況(din3和din4過約束)。(特權(quán)同學,版權(quán)所有) 如果對本實例添加約束為:din1 < 10ns, din2 < 10ns, din3 < 10ns, din4 < 10ns。此時,由于能夠走高速通道使得路徑延時小于10ns的路徑只有2條,那么無論如何當前的約束都有2條無法達到目標。(特權(quán)同學,版權(quán)所有) 但是,相對于實際的情況,也有兩種情形: A. din1和din2走了高速通道,那么當前約束也能夠滿足實際的時序要求; B. din1和din2都沒有走高速通道,或者有1條路徑走了高速通道,那么結(jié)果是一樣的,整個系統(tǒng)的時序無法完全滿足要求。(特權(quán)同學,版權(quán)所有) 這個簡單的例子當然不會是FPGA內(nèi)部實際的情況,但是FPGA內(nèi)部的各種資源若要得到均衡的分配,設(shè)計者就必須添加一定的約束(時序約束),將設(shè)計的需求傳達給工具,那么才有可能指導工具進行資源的合理分配,保證系統(tǒng)的基本性能要求得以實現(xiàn)。(特權(quán)同學,版權(quán)所有) 時序欠約束和時序過約束都是不可取的,設(shè)計者應(yīng)該根據(jù)實際的系統(tǒng)時序要求,添加合適的時序要求(可以稍微過約束),幫助設(shè)計工具達到最佳的時序性能。(特權(quán)同學,版權(quán)所有) |