亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 時序分析—多周期路徑(Multicycle Paths)檢查 網表文件 Altera器件時序模型 [打印本頁]

作者: 51黑黑黑    時間: 2016-2-23 01:21
標題: 時序分析—多周期路徑(Multicycle Paths)檢查 網表文件 Altera器件時序模型
本帖最后由 51黑黑黑 于 2016-2-23 01:24 編輯

       對于Altera FPGA芯片,靜態時序分析工具為Timequest。
       Timequest靜態時序分析的對象包括:
     (1)寄存器和寄存器之間的路徑;
     (2)I/O之間;
     (3)I/O和寄存器之間的路徑;
     (4)異步復位和寄存器之間的路徑。
       Timequest 根據 Data Arrival Time 和 Data Required Time 計算出時序余量(Slack)。當時序余量為負值時,發生時序違規(Timing Violation)。
       由于時序分析是針對時鐘驅動的電路進行的,所以分析的對象一定是“寄存器-寄存器對”。在分析涉及到I/O的時序關系對時,看似缺少一個寄存器分析對象,構不成“寄存器-寄存器對”,其實是穿過 FPGA的 I/O引腳,在FPGA外部虛擬了一個寄存器作為分析對象。
       在建立、保持時間檢查中,都假設數據從launch edge開始發送,在latch edge被捕獲;launch edge和latch edge是相鄰最近的一對時鐘沿。在多周期路徑檢查中,仍然采用launch edge和latch edge的概念,但是launch edge和latch edge不再是相鄰的一對時鐘沿,而是間隔一定時鐘周期的一對時鐘沿,間隔的時鐘周期個數由用戶指定。
       在同步邏輯設計中,通常都是按照單周期關系考慮數據路徑的。但是往往存在這樣的情況:一些數據不需要在下一個時鐘周期就穩定下來,可能在數據發送后幾個時鐘周期之后才起作用;一些數據經過的路徑太復雜,延時太大,不可能在下一個時鐘周期穩定下來,必須要在數據發送后數個時鐘周期之后才能被采用。針對這兩種情況,設計者的設計意圖都是:數據的有效期在以launch edge為起始到數個時鐘周期之后的latch edge。這一設計意圖不能夠被時序分析工具猜度出來,必須由設計者在時序約束中指定;否則,時序約束工具會按照單周期路徑檢查的方式執行,往往會誤報出時序違規。
       不設置多周期路徑約束的后果有兩種:一是按照單周期路徑檢查的結果,虛報時序違規;二是導致布局布線工具按照單周期路徑的方式執行,雖然滿足了時序規范,但是過分優化了本應該多個周期完成的操作,造成過約束。過約束會侵占本應該讓位于其他邏輯的布局布線資源,有可能造成其他關鍵路徑的時序違規或時序余量變小。
       在多周期路徑的建立時間(Setup Time)檢查中,Timequest會按照用戶指定的周期數延長Data Required Time,放松對相應數據路徑的時序約束,從而得到正確的時序余量計算結果;在保持時間(Hold Time)檢查中,Timequest也會相應地延長Data Required Time,不再按照單周期路徑的分析方式執行(不再采用launch edge最近的時鐘沿,而是采用latch edge最近的時鐘沿),這就需要用戶指定保持時間對應的多周期個數。
       Timequest缺省的Hold Time檢查公式是需要用戶修改的——針對Setup Time多周期路徑的設置也會影響到Hold Time的檢查。究其原因,多周期路徑是為了解決信號傳播太慢的問題,慢到一個周期都不夠,所以要把Setup Time的檢查往后推幾個周期——擴大Setup Time檢查的時間窗口。而Hold Time檢查信號是否傳播得太快,如果把檢查時刻往后推,就縮小了Hold Time檢查的時間窗口。
       “信號跳變抵達窗口”:對latch寄存器來說,從previous時鐘對應的Hold Time開始,到current時鐘對應的Setup Time結束。
       “信號電平采樣窗口”:對latch寄存器來說,從current時鐘對應的 Setup Time 開始,到current時鐘對應的Hold Time結束。
         launch寄存器必須保證驅動的信號跳變到達latch寄存器的時刻恰好處于 “信號跳變抵達窗口”內,才能保證不破壞latch寄存器的“信號電平采樣窗口”。
    時序檢查的目的就是確認信號跳變發生在“信號跳變抵達窗口”內,而不會發生在“信號電平采樣窗口”內。 多周期路徑的設置是通過延后Setup Time檢查的時刻,擴大了“信號跳變抵達窗口”,放松了時序約束。因此,延后Hold Time,就會縮小“信號跳變抵達窗口”。


時序分析(2)——Altera器件時序模型           Quartus提供兩種PVT條件下的器件時序模型(注:65nm及以下的高級器件還有其他模型):      (1)Slow Corner模型:通過假設最大的環境溫度(operating temperature)和VCCmin來模擬一條信號路徑可能的最慢的情況。
      (2)Fast Corner模型 :通過假設最小的環境溫度(operating temperature)和VCCmin來模擬一條信號路徑可能的最快的情況。
        這兩個模型的意義在于:通過slow corner模型來保證建立時間的時序,通過fast corner來保證保持時間的時序(對于源同步來說必須使用)。
       一般情況下的設計以建立時間違規為主,所以Timequest默認使用slow corner。





時序分析(3)——網表文件  
     Timequest需要讀入布局布線后的網表才能進行時序分析。讀入的網表是由以下一系列的基本單元構成的       (1) Cells:Altera器件中的基本結構單元(例如,查找表、寄存器、IO單元、PLL、存儲器塊等)。LE可以看作是Cell。       (2) Pins:Cell的輸入輸出端口。可以認為是LE的輸入輸出端口。注意:這里的Pins不包括器件的輸入輸出引腳,代之以輸入引腳對應LE的輸出端口和輸出引腳對應LE的輸入端口。
       (3) Nets:同一個Cell中,從輸入pin到輸出pin經過的邏輯。注意,網表中連接兩個相鄰Cell的連線不被看作Net,而被看作同一個點,等價于Cell的pin。雖然連接兩個相鄰Cell的連線不被看作Net,但這個連線還是有其物理意義的,即等價于Altera器件中的一段布線邏輯,會引入一定的延遲。
       (4) Ports:頂層邏輯的輸入輸出端口。對應已經分配的器件引腳。
       (5) Clocks:約束文件中指定的時鐘類型的pin。不僅指時鐘輸入引腳。
       (6) Keepers:泛指Port和寄存器類型的Cell。
       (7) Nodes:基本時序網表單元,例如端口、引腳、寄存器和keepers。 Nodes & Keepers是Timequest特有的擴展。
   
        這是一個時序網表的實例,摘自Quartus II的使用手冊。

        Timequest進行時序分析的對象paths的描述。
        Edge paths:the connections from ports-to-pins, from pins-to-pins, and from pins-to-ports。其中,pins-to-pins連接關系既包括Cell內部的連接(Net),也包括相鄰Cell外部的pins-to-pins連接。
        Path通常分為三類:
        (1) Clock paths:從Clock Port或內部生成的clock pin到寄存器Cell的時鐘輸入Pin。
        (2) Data paths:從輸入Port到寄存器Cell的數據輸入pin,或從寄存器Cell的數據輸出pin到另一個寄存器Cell的數據輸入pin。
        (3) Asynchronous paths:從輸入Port到寄存器Cell的異步輸入pin,或從寄存器Cell的數據輸出pin到另一個寄存器Cell的異步輸入pin。 三種path如下圖所示。












作者: 51黑黑黑    時間: 2016-2-23 01:23
時序分析(4)——關鍵路徑的時序優化          關鍵路徑通常是指同步邏輯電路中組合邏輯時延最大的路徑,也就是說關鍵路徑是對設計性能起決定性影響的時序路徑。         靜態時序分析能夠找出邏輯電路的關鍵路徑。通過查看靜態時序分析報告,可以確定關鍵路徑。 對關鍵路徑進行時序優化,可以直接提高設計性能。
       對同步邏輯來說,常用的時序優化方法包括pipeline(增加寄存器)、retiming(移動邏輯)兩種。








歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1