關於set_input_delay和set_output_delay的選項-max和-min的存在意義和推導


一、存在背景分析

      文檔的說法是,set_input_delay和set_output_delay描述的是數據在端口處與某時鍾的時序關系。這樣的說法是很表面的。input/output其實是模擬數據在端口外的延時,實際上這是端口的一個外部約束條件,目的是為了約束FPGA輸入端口到內部寄存器數據輸入端或者內部寄存器輸出端到FPGA輸出端口之間允許的延時(因為這中間可能有組合邏輯),理解這一點非常重要。

      既然模擬的是數據在外部的情況,那么弄清楚這個延時是相對於哪個時鍾而言的就很重要(這里也是泛泛而談,后面有詳細一點的分析)。很顯然,這里的對象時鍾是虛擬時鍾virtual clock。

      對於任何一種情況,有一點必須要保證:必須保證接收端能接收到數據。在推導過程中,這一條是隱含的前提。

二、set_input_delay的推導

      對於set_input_delay,虛擬時鍾是Launch,為保證FPGA能采樣到數據,對源寄存器與目的寄存器之間的路徑延時是有限制的。假如延時太大,FPGA端的建立時間可能不滿足;延時太小,FPGA端的保持時間可能不滿足。因此,計算max時考慮的是建立時間的情況,計算min時考慮的是保持時間的情況。

      考慮保持時間時,可得如下關系:

      Launch + Tco_ext + Td_ext + Td_in + uTsu = Latch

      假如Td_in為Td_in_max,如果時鍾周期不變,外界最糟糕的情況是,(Tco_ext + Td_ext)的值也為最大。SDC對輸入時max的定義如下:

      set_input_delay –max {Tco_ext + Td_max}

      實際上這並不是FPGA內部的延時,這只是FPGA內部延時的相關量,因為很明顯內部的延時是Td_in。為什么不直接使用內部延時呢?因為那樣的話涉及到的變量太多,而這兩個參數,在板卡和板卡環境確定之后,幾乎是不會變化的。這個相關量的意義是,Td_in想往上增大是要受到這個相關量的約束的。

      考慮建立時間時,可得:

      Launch + Tco_ext + Td_in + Td_ext + Tsrc = Latch + uThd

      假如Td_in為Td_in_min,外界最糟糕的情況是(Tco_ext + Td_ext)的值也為最小。SDC對輸入是min的定義如下:

      set_input_delay –min  {Tco_ext + Td_min}

      當然這也是相對量。

      有一點應該說明,-max和-min不會同時達到極限值,因為Td不會同時既為max又為min。因此,假如su或者hd有一個時序不收斂,內部的路徑延時是有調整空間的。

三、set_output_delay的推導

      對於set_output_delay,虛擬時鍾是Latch。

      考慮外部寄存器的建立時間,可得:

      Launch + uTco + Td_in + Td_ext + Tsu_ext = Latch

      假如Td_in為Td_in_max,最糟糕的情況是(Td_ext + Tsu_ext)也為最大。SDC對輸出時max的定義如下:

      set_output_delay –max {Td_max + Tsu_ext}

      考慮外部寄存器的保持時間,可得:

      Launch + uTco + Td_in + Td_ext + Tsrc = Latch + Thd_ext

      假如Td_in為Td_in_min,最糟糕的情況是Td_ext亦為最小。SDC對輸出是min的定義如下:

      set_output_delay –min {-Thd_ext + Td_ext_min}

      至於為什么不寫成(Thd_ext – Td_ext_min),是為了計算時與max一致。在驗證建立時間是否滿足時,在Latch確定了的情況下,需要Latch減去max得到Data Required Time。在驗證保持時間時,為了計算一致,希望也用Latch減去min來得到Data Required Time,而這時Required的計算應寫為

       Latch + Thd_ext – Td_ext_min

變換一下可得

       Latch – (-Thd_ext + Td_ext_min)

min就是這樣得來的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM