• / 25
  • 下載費用:30 金幣  

用于在設計編譯流程中利用針對寄存器重定時的估計的方法和裝置.pdf

摘要
申請專利號:

CN201610417530.5

申請日:

2016.06.14

公開號:

CN106257467A

公開日:

2016.12.28

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 17/50申請日:20160614|||公開
IPC分類號: G06F17/50 主分類號: G06F17/50
申請人: 阿爾特拉公司
發明人: N·辛納杜萊; B·加姆薩
地址: 美國加利福尼亞
優先權: 2015.06.22 US 14/746,237
專利代理機構: 北京市金杜律師事務所 11256 代理人: 王茂華
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201610417530.5

授權公告號:

|||

法律狀態公告日:

2017.01.25|||2016.12.28

法律狀態類型:

實質審查的生效|||公開

摘要

本申請涉及用于在設計編譯流程中利用針對寄存器重定時的估計的方法和裝置。本申請提供了一種用于設計目標設備上的系統的方法,包括執行系統上的綜合、布局和布線中的一個。在綜合、布局和布線中的一個之后向設計者呈現對系統的時序分析,其中時序分析反映被預測為要被實現在系統上的寄存器重定時優化。響應于在呈現之后由設計者提供的輸入來修改綜合、布局和布線中的一個。

權利要求書

1.一種用于設計目標設備上的系統的方法,包括:
執行所述系統上的綜合、布局和布線中的一個;
在所述綜合、所述布局和所述布線中的一個之后向設計者呈現對所述系統的時序分
析,其中所述時序分析反映被預測為要被實現在所述系統上的寄存器重定時優化;以及
響應于在所述呈現之后由所述設計者提供的輸入來修改所述系統上的所述綜合、所述
布局和所述布線中的一個。
2.根據權利要求1所述的方法,其中所述系統上的所述綜合、所述布局和所述布線中的
所述一個是響應于被預測為要被實現在所述系統上的所述寄存器重定時優化而被執行的。
3.根據權利要求1所述的方法,其中所述寄存器重定時優化包括流水線設計關鍵路徑。
4.根據權利要求1所述的方法,其中所述寄存器重定時優化包括修改寄存器的位置和
到寄存器的輸入中的一個或多個以減小所述系統中的路徑的關鍵性。
5.根據權利要求1所述的方法,還包括執行寄存器重定時。
6.根據權利要求1所述的方法,其中修改所述綜合、所述布局和所述布線中的一個包括
改變所述系統的方面的功能以縮短所述系統中的回路。
7.根據權利要求1所述的方法,其中修改所述綜合、所述布局和所述布線中的一個包括
去除所述系統中的回路。
8.根據權利要求1所述的方法,其中所述寄存器重定時優化基于對所述系統的設計做
出的推測的改變。
9.根據權利要求8所述的方法,其中所述推測的改變基于所述設計者的指定偏好。
10.一種具有指令序列的非瞬態計算機可讀介質,所述指令序列包括指令,所述指令當
被運行時使處理器執行根據權利要求1-9中任一項所述的方法。
11.一種用于設計目標設備上的系統的方法,包括:
對所述系統的設計應用推測的改變以改善寄存器重定時;
響應于所應用的推測的改變來預測要被實現在所述系統上的寄存器重定時優化;
在綜合、布局和布線中的一個之后向設計者呈現對所述系統的時序分析,其中所述時
序分析反映被預測為要被實現在所述系統上的所述寄存器重定時優化和所應用的推測的
改變;以及
響應于在所述呈現之后由所述設計者提供的輸入來修改所述系統上的所述綜合、所述
布局和所述布線中的一個。
12.根據權利要求11所述的方法,其中所述修改包括響應于由所述設計者提供的所述
輸入來將所述推測的改變實現為實際的改變。
13.根據權利要求11所述的方法,其中響應于預定設置來應用所述推測的改變。
14.根據權利要求11所述的方法,其中響應于由所述設計者提供的偏好來應用所述推
測的改變。
15.根據權利要求11所述的方法,還包括響應于由所述設計者提供的在所述推測的改
變上的偏好來對所述設計應用額外的推測的改變。
16.根據權利要求11所述的方法,還包括在所述修改之后執行寄存器重定時。
17.一種具有指令序列的非瞬態計算機可讀介質,所述指令序列包括指令,所述指令當
被運行時使處理器執行根據權利要求11-16中任一項所述的方法。
18.一種用于設計目標設備上的系統的方法,包括:
響應于被預測為要被實現在所述系統上的寄存器重定時優化來執行在所述系統上的
綜合;
在所述綜合之后向設計者呈現對所述系統的時序分析,其中所述時序分析反映被預測
為要被實現在所述系統上的所述寄存器重定時優化;以及
并入響應于所述呈現而接收的來自所述設計者的輸入以修改所述綜合。
19.根據權利要求18所述的方法,其中所述方法還包括:
響應于被預測為要被實現在所述系統上的額外的寄存器重定時優化來執行在所述系
統上的布局;
在所述布局之后向所述設計者呈現對所述系統的時序分析,其中所述時序分析反映被
預測為要被實現在所述系統上的所述額外的寄存器重定時優化;并且
并入在所述布局之后接收的來自所述設計者的輸入以修改所述布局。
20.根據權利要求19所述的方法,其中所述方法還包括:
響應于被預測為要被實現在所述系統上的進一步的寄存器重定時優化來執行在所述
系統上的布線;
在所述布線之后向所述設計者呈現對所述系統的時序分析,其中所述時序分析反映被
預測為要被實現在所述系統上的所述進一步的寄存器重定時優化;并且
并入在所述布線之后接收的來自所述設計者的輸入以修改所述布線。
21.根據權利要求20所述的方法,其中,所述方法還包括在所述布線之后執行在所述系
統上的寄存器重定時。
22.根據權利要求20所述的方法,其中所預測的所述寄存器重定時優化包括對關鍵路
徑添加流水線設計。
23.根據權利要求18所述的非瞬態計算機可讀介質,其中所述綜合通過減少所述系統
中的邏輯的深度來修改。
24.根據權利要求19所述的方法,其中所述布局通過將寄存器和邏輯放置得更為靠近
在一起來修改以減小回路延遲。
25.根據權利要求20所述的方法,其中所述布線通過縮短回路的路徑來修改。
26.一種具有指令序列的非瞬態計算機可讀介質,所述指令序列包括指令,所述指令當
被運行時使處理器執行根據權利要求18-25中任一項所述的方法。

說明書

用于在設計編譯流程中利用針對寄存器重定時的估計的方法和裝置

技術領域

本發明的各實施例涉及用于設計目標設備上的系統的工具。更具體地,本發明的
各實施例涉及一種用于在設計編譯流程中利用針對寄存器重定時的估計的方法和裝置。

背景技術

諸如現場可編程門陣列(FPGA)、專用集成電路(ASIC)和結構化ASIC的目標設備用
于實現可以包括數百個門和兆比特的嵌入式內存的大型系統。大型系統的復雜度常常需要
使用電子設計自動化(EDA)工具來創建并優化針對到物理目標設備上的系統的設計。在由
計算機輔助設計(CAD)中的EDA工具執行的流程之中編譯流程是目標設備上的系統的設計
生成和集成、綜合、布局(placement)和布線。

當解決傳統時序收斂時,設計者關注于設計中的關鍵路徑。關鍵路徑是通過組合
元件或布線元件從一個寄存器到另一寄存器的路徑,其未能或接近于未能滿足時序要求。
在使時序收斂的努力中,設計者可以檢查關鍵路徑并嘗試通過減少沿路徑的組合延遲或布
線延遲的量來對其進行改善。

EDA工具可以利用寄存器重定時算法以便使時序收斂。寄存器重定時是用于改善
同步電路的速度性能的同步電路變換。寄存器重定時涉及跨各組合元件或布線電路元件來
移動寄存器以便減小時序上關鍵的路徑的長度。組合結構保持不變,并且電路的可觀察行
為與原始電路相同。

發明內容

根據本發明的實施例,在針對系統的設計編譯流程中的每個綜合、布局和布線流
程之后執行時序分析。該時序分析被提供給設計者,并且允許該設計者修改針對系統的設
計而無需等待完成設計的整個編譯。根據本發明的實施例,時序分析和編譯中的其他流程
由處理器執行,并且時序分析被輸出給設計者。根據本發明的方面,被提供給設計者的時序
分析是重定時感知時序分析,其反映被預測為要被實現的布局后和布線后寄存器重定時優
化。為了反映被預測為要被實現的布局后和布線后寄存器重定時優化,可以對寄存器應用
歪斜和/或可以將正/負延遲元件添加到數據路徑上以對實際的離散的寄存器重定時的效
果進行建模。根據本發明的另一方面,通過對系統的設計做出的推測的改變來使得能夠進
行被預測為要被實現的布局后和布線后寄存器重定時優化。推測的改變可以與時序分析結
果一起被呈現給設計者,并且可以響應于由設計者提供的反饋來做出對設計的實際的改
變。通過執行反映布局后和布線后寄存器重定時優化的時序分析,將時序分析呈現給設計
者并且允許在整個系統的編譯之前進行修改,本發明的各實施例允許在比先前已知的途徑
更短的時間段內設計目標設備上的系統并且是本技術領域中的改進。

根據本發明的實施例,一種用于設計目標設備上的系統的方法包括執行系統上的
綜合、布局和布線中的一個。在綜合、布局和布線中的一個之后向設計者呈現對系統的時序
分析,其中時序分析反映被預測為要被實現在系統上的寄存器重定時優化。響應于在呈現
之后由設計者提供的輸入來重新運行綜合、布局和布線中的一個,并修改來自綜合、布局和
布線中的一個的先前結果。

根據本發明的實施例,一種用于設計目標設備上的系統的方法包括對系統的設計
應用推測的改變以改善寄存器重定時。響應于所應用的推測的改變來預測要被實現在系統
上的寄存器重定時優化。在綜合、布局和布線中的一個之后向設計者呈現對系統的時序分
析,其中時序分析反映被預測為要被實現在系統上的寄存器重定時優化和所應用的推測的
改變。響應于在呈現之后由設計者提供的輸入來重新運行綜合、布局和布線中的一個,并修
改來自綜合、布局和布線中的一個的先前結果。

附圖說明

本發明的各實施例的特征和優點是通過舉例的方式來說明的并且不旨在將本發
明的各實施例的范圍限于所示出的特定實施例。

圖1是根據本發明的示例性實施例的用于設計目標設備上的系統的方法的流程
圖。

圖2A和圖2B圖示了根據本發明的示例性實施例的重定時感知時序分析如何呈現
關鍵路徑。

圖3是圖示了根據本發明的示例性實施例的用于執行重定時感知時序分析的方法
的流程圖。

圖4A-C圖示了根據本發明的示例性實施例的可以如何修改網表以反映寄存器重
定時預測的結果。

圖5圖示了根據本發明的另一示例性實施例的可以如何修改網表以反映寄存器重
定時預測的結果。

圖6圖示了根據本發明的示例性實施例的用于考慮到推測的改變執行重定時感知
時序分析的方法。

圖7圖示了根據本發明的示例性實施例的用于執行寄存器重定時的方法。

圖8圖示了根據本發明的實施例的實現系統設計器的計算機系統的框圖。

圖9圖示了根據本發明的實施例的系統設計器的框圖。

圖10圖示了根據本發明的實施例的示例性目標設備。

具體實施方式

在下面的描述中,為了解釋的目的,闡述了特定命名法以提供對本發明的各實施
例的透徹理解。對于本領域技術人員將顯而易見的是,可以不需要說明書中的特定細節來
實踐本發明的各實施例。在其他實例中,眾所周知的電路、設備、流程和程序以框圖形式被
示出以避免不必要地使本發明的各實施例模糊不清。

圖1是根據本發明的示例性實施例的用于設計目標設備上的系統的方法的流程
圖。目標設備可以是現場可編程門陣列(FPGA)、專用集成電路(ASIC)、結構化ASIC或其他可
編程設備。根據一個實施例,圖1中圖示的流程可以被稱為編譯流程并且可以由實現在計算
機系統上的計算機輔助設計(CAD)/電子設計自動化(EDA)工具來執行。

在101處,對針對系統的設計進行綜合。可以通過設計入口工具來提供針對系統的
規格。規格可以描述系統的部件和相互連接。根據本發明的實施例,被輸入的設計可以以硬
件描述語言(HDL)處于寄存器傳輸級(RTL)中。綜合包括生成要由目標設備實現的系統的邏
輯設計。根據本發明的實施例,綜合根據HDL設計定義來生成系統的優化邏輯表示。系統的
優化邏輯表示可以包括具有系統所需要的最小化的數量的功能塊(例如邏輯門、邏輯元件)
和寄存器的表示。綜合還包括對優化邏輯表示進行映射。映射包括確定如何利用目標設備
上可用的資源的類型或種類來實現優化邏輯表示中的邏輯門和邏輯元件。目標設備上可用
的資源可以被稱為“單元”或“部件”,并且可以包括邏輯陣列塊、寄存器、存儲器、數字信號
處理塊、輸入輸出元件以及其他部件。根據本發明的實施例,根據映射來生成網表。該網表
可以是根據HDL生成的經優化的經技術映射的網表。在綜合101期間,可以執行如在102處所
描述的時序分析以提供使得能夠進行綜合流程的時序數據。

在102處,執行重定時感知時序分析。可以響應于來自綜合101、布局106或布線110
的請求來執行重定時感知時序分析。根據本發明的實施例,重定時感知時序分析是反映被
預測為要被實現在系統的設計上的布局后和布線后寄存器重定時優化的時序分析。實現分
析和布局后和布線后寄存器重定時優化可以被反映在時序分析網表中。來自重定時感知時
序分析的結果被提供回到綜合101、布局106或布線110流程。

在103處,確定是否要執行時序分析。根據本發明的實施例,可以根據來自設計者
的請求來確定關于是否要執行時序分析的確定。如果確定要執行時序分析,則控制繼續進
行到104。如果確定不要執行時序分析,則控制繼續進行到106。

在104處,執行重定時感知時序分析。重定時感知時序分析104被執行以訪問針對
系統的經綜合的設計。根據本發明的實施例,重定時感知時序分析104可以與在102處執行
的重定時感知時序分析相似并且包括反映被預測為要被實現在系統的設計上的布局后和
布線后寄存器重定時優化的時序分析。實現分析和布局后和布線后寄存器重定時優化可以
被反映在時序分析網表中或輸出給設計者的其他報告中。

在105處,將綜合優化并入到系統的設計中。綜合優化可以是對由設計者接收到的
系統的設計的修改。對系統的設計的修改可以由設計者響應于在104處輸出的時序分析和
重定時優化報告來提供。控制返回到101。

在106處,對系統進行布局。根據本發明的實施例,布局涉及將經技術映射的邏輯
系統布局在目標設備上。布局包括通過確定目標設備上的哪些特定資源要被分配給在綜合
期間確定的經技術映射的網表和由在綜合期間確定的經技術映射的網表實現來將系統適
配在目標設備上。布局可以包括聚簇,其涉及將各邏輯元件分組到一起以形成呈現在目標
設備上的邏輯簇。在布局106期間,可以執行如在102處所描述的時序分析以提供使得能夠
進行布局流程的時序數據。

在107處,確定是否要執行時序分析。根據本發明的實施例,可以根據來自設計者
的請求來確定關于是否要執行時序分析的確定。如果確定要執行時序分析,則控制繼續進
行到108。如果確定不要執行時序分析,則控制繼續進行到110。

在108處,執行重定時感知時序分析。重定時感知時序分析108被執行以訪問針對
系統的經布局的設計。根據本發明的實施例,重定時感知時序分析108可以與在102處執行
的重定時感知時序分析相似并且包括反映被預測為要被實現在系統的設計上的布局后和
布線后寄存器重定時優化的時序分析。實現分析和布局后和布線后寄存器重定時優化可以
被反映在時序分析網表中或輸出給設計者的其他報告中。

在109處,將布局優化并入到系統的設計中。布局優化可以是對由設計者接收到的
系統的設計的修改。對系統的設計的修改可以由設計者響應于在108處輸出的時序分析和
重定時優化報告來提供。控制返回到101。

在110處,對經布局的設計進行布線。在布線期間,目標設備上的布線資源被分派
以提供在目標設備上的各邏輯門、各邏輯元件以及其他部件之間的相互連接。可布線性優
化還可以在經布局的邏輯設計上被執行。根據本發明的實施例,可布線性優化的目標在于
減小用于將經布局的邏輯設計中的各部件連接的接線量。可布線性優化可以包括執行扇出
分裂(fanout splitting)、邏輯重復、邏輯重接線或其他流程。應當認識到,可以在經布局
的邏輯設計上執行各流程中的一個或多個流程。在布線110期間,可以執行如在102處所描
述的時序分析以提供使得能夠進行布線流程的時序數據。

在111處,確定是否要執行時序分析。根據本發明的實施例,可以根據來自設計者
的請求來確定關于是否要執行時序分析的確定。如果確定要執行時序分析,則控制繼續進
行到112。如果確定不要執行時序分析,則控制繼續進行到114。

在112處,執行重定時感知時序分析。重定時感知時序分析112被執行以訪問針對
系統的經布線的設計。根據本發明的實施例,重定時感知時序分析112可以與在102處執行
的重定時感知時序分析相似并且包括反映被預測為要被實現在系統的設計上的布局后和
布線后寄存器重定時優化的時序分析。實現分析和布局后和布線后寄存器重定時優化可以
被反映在時序分析網表中或輸出給設計者的其他報告中。

在113處,將布線優化并入到系統的設計中。布線優化可以是對由設計者接收到的
系統的設計的修改。對系統的設計的修改可以由設計者響應于在112處輸出的時序分析和
重定時優化報告來提供。控制返回到101。

在114處,在系統上執行寄存器重定時。根據本發明的實施例,寄存器重定時涉及
將識別出的寄存器跨各組合電路元件或布線電路元件移動以減小時序上關鍵或接近關鍵
的路徑的長度。

在115處,對系統的設計執行時序分析。根據本發明的實施例,時序分析確定是否
滿足系統的時序約束。時序分析可以取決于其何時被執行來利用近似。根據本發明的實施
例,時序分析建立針對系統中的每條路徑的長度以及針對系統中的每條路徑的時序裕量
(slack)。時序裕量可以被定義為在路徑變得關鍵之前能夠被添加到路徑的延遲量或者信
號到達的所要求的時間減去信號到達的實際時間。

在116處,執行組裝。組裝流程涉及創建包括由在101-115處描述的流程確定的信
息的數據文件。數據文件可以為用于對目標設備進行編程的比特流。通過利用數據文件來
對目標進行編程,目標設備上的各部件被物理變換以實現該系統。

根據本發明的實施例,可以在時序分析115之后在設計上執行進一步的分析。例
如,如果設計不滿足時序要求,則設計者可以識別什么可能在限制性能并且將控制返回到
流中的任何部分以進行進一步的處理。

當重定時感知時序分析被執行時,提供考慮到要被實現的布局后和布線后寄存器
重定時優化的設計的視圖。通過考慮用于后續寄存器重定時流程的能力來通過在設計、綜
合、布局和布線過程內移動寄存器來對設計進行重定時,并且設計者提供的修改可以關注
于寄存器重定時不能夠解決的其他設計問題和要求。例如,服從于流水線設計的單向或“前
向反饋”邏輯路徑可以通過寄存器重定時來解決。然而,諸如回路的循環邏輯路徑較不服從
于流水線設計。如果針對系統的設計包括前向反饋和循環邏輯路徑兩者,則關注于優化具
有最長延遲的路徑的技術可以關注于能夠通過寄存器重定時縮短的路徑,同時忽略將在執
行寄存器重定時之后保持為較長路徑的明顯較短的路徑。本發明的各實施例提供從寄存器
重定時可獲得的改善并且將這些改善的結果輸出給設計者。關鍵的且不能夠通過寄存器重
定時縮短的并且應當為優化的焦點的邏輯路徑被識別給設計者/用戶。

圖2A和圖2B圖示了根據本發明的示例性實施例的時序分析和重定時感知時序分
析如何呈現路徑的示例。圖2A圖示了時序分析將如何呈現路徑210、220和230。如所示出的,
時序分析將路徑210和路徑220識別為最關鍵的,并且將路徑230識別為最不關鍵的。圖2B圖
示了重定時感知時序分析將如何呈現路徑210、220和230。重定時感知時序分析意識到沿路
徑210和220的寄存器將在寄存器重定時之后被移動并且因此路徑將不是關鍵的。如所示出
的,在三個路徑210、220和230之中,不被重定時的路徑230是最關鍵的。

利用哪些路徑在布局后和布線后寄存器重定時之后最關鍵的知識,設計者可以集
中資源來解決其關鍵性。參考回到圖1,在104處向設計者提供了重定時感知時序分析之后,
設計者可以修改經綜合的設計來減小關鍵路徑上的邏輯的深度。在108處向設計者提供重
定時感知分析結果之后,設計者可以通過將回路移動得更為靠近在一起來修改經布局的設
計。在112處向設計者提供重定時感知分析結果之后,設計者可以通過縮短關鍵路徑上的布
線來修改經布線的設計。應當認識到,可以由設計者做出其他修改和優化,例如去除邏輯的
級,對設計進行重組以去除回路,添加寄存器以及改變設計的功能。

圖3是圖示了根據本發明的示例性實施例的用于執行重定時感知時序分析的方法
的流程圖。圖3中圖示的方法可以用于實現如圖1所示的流程102、104、108和112。在301處,
執行時序分析。根據本發明的實施例,時序分析可以包括在115處執行的流程,其中做出系
統的設計是否滿足關于系統的時序約束的確定。應當認識到,時序分析可以取決于其何時
被執行來利用估計和近似。當在編譯流程中時序分析被調用的時間越早,可以利用的估計
和近似越多。根據本發明的實施例,時序分析建立針對系統中的每條路徑的長度以及針對
系統中的每條路徑的時序裕量。時序裕量可以被定義為在路徑變得關鍵之前能夠被添加到
路徑的延遲量或者信號到達的所要求的時間減去信號到達的實際時間。

在302處,執行重定時預測。基于在301處執行的時序分析和已經完成的設計的階
段,預測要被實現在系統的設計上的布局后和布線后寄存器重定時優化。根據本發明的實
施例,可以執行簡略寄存器重定時來生成預測。例如,可以使用歸因于編譯的階段而僅僅部
分完整的設計來執行寄存器重定時,在該編譯的階段中重定時感知時序分析被執行并且不
是關于完全寄存器重定時分析所需要的設計的所有信息都可以是可獲得的。在其他實施例
中,可以忽略在寄存器重定時上的一個或多個限制以便更快速地生成預測。備選地,可以使
用對完成詳細分析可獲得的所有信息來執行完整的寄存器重定時分析。

在303處,更新時序分析。根據本發明的實施例,更新在301處執行的時序分析以包
括被預測為要被實現在系統上的寄存器重定時優化。

在304處,更新時序分析網表以反映要被實現在系統上的寄存器重定時優化。根據
本發明的實施例,寄存器重定時優化可以被反映為時鐘歪斜或者數據路徑上的正或負延遲
元件。備選地,寄存器重定時優化可以被反映為離散寄存器重定時,其中寄存器實際上在系
統的設計中被移動。

在305處,輸出重定時感知時序分析的結果。當重定時感知時序分析被編譯流程中
的諸如綜合、布局或布線的過程調用時,重定時感知時序分析可以被發送到該過程。當重定
時感知時序分析被設計者啟動時,重定時感知時序分析可以被發送到設計者。重定時感知
時序分析結果向設計者提供在布局后和布線后寄存器重定時之后的系統的設計的準確全
貌。

圖4A-C圖示了根據本發明的示例性實施例的可以如何修改網表以反映寄存器重
定時預測的結果。圖4A圖示了如下數據路徑,其中寄存器A由信號clkA時鐘控制,寄存器B由
信號clkB時鐘控制,并且寄存器C由信號clkC時鐘控制。要將數據從寄存器A發送到寄存器B
所需要的時間是dataA->B。要將數據從寄存器B發送到寄存器C所需要的時間是dataB->C。用于
在寄存器A與寄存器B之間發送數據的時序裕量和用于在寄存器B與寄存器C之間發送數據
的時序裕量可以由下式表示,其中,T是時鐘周期。

SlackA->B=T+clkB–clkA–dataA->B

SlackB->C=T+clkC–clkB–dataB->C

圖4B圖示了通過將寄存器B朝向寄存器C前向移動以實現延遲Δ而重定時的圖4A
中的數據路徑。如所示出的,所執行的寄存器重定時可以通過增加在寄存器A與寄存器B之
間的正延遲元件并且增加在寄存器B與寄存器C之間的負延遲元件來表示。圖4B和圖4C中的
用于在寄存器A與寄存器B之間發送數據的時序裕量和用于在寄存器B與寄存器C之間發送
數據的時序裕量可以由下式表示。

SlackA->Bnew=T+clkB–clkA–(dataA->B+Δ)

SlackB->Cnew=T+clkC–clkB–(dataB->C–Δ)

圖4C圖示了通過將寄存器B朝向寄存器C前向移動以實現延遲Δ而重定時的圖4A
中的數據路徑。如所示出的,所執行的寄存器重定時可以通過將時鐘歪斜添加到寄存器B來
表示。圖4B和圖4C中的用于在寄存器A與寄存器B之間發送數據的時序裕量和用于在寄存器
B與寄存器C之間發送數據的時序裕量可以由下式表示。

SlackA->Bnew=T+(clkB–Δ)–clkA–dataA->B

SlackB->Cnew=T+clkC–(clkB–Δ)–dataB->C

圖5圖示了根據本發明的另一示例性實施例的可以如何修改網表以反映寄存器重
定時預測的結果。被標記為“基準”的路徑包括三個寄存器并且圖示了在實現任何寄存器重
定時優化之前的時序裕量。在第一寄存器與第二寄存器之間的時序裕量為-50ps,并且在第
二寄存器與第三寄存器之間的時序裕量為-150ps。

被標記為“在重定時之后”的路徑圖示了在執行了寄存器重定時優化之后的路徑。
如所示出的,將第二寄存器沿該路徑朝向第三寄存器移動。移動將在第一寄存器與第二寄
存器之間的時序裕量從-50ps改變為-100ps。移動還將在第二寄存器與第三寄存器之間的
時序裕量從-150ps改變為-100ps。

被標記為“重定時預測”的路徑圖示了如在重定時感知時序分析之后表示在時序
分析中的路徑。代替表示利用第二寄存器的移動的寄存器重定時優化,寄存器重定時優化
通過將時鐘延遲改變為第二寄存器來表示。如所示出的,到第二寄存器的時鐘輸入被延遲-
50ps。到第二寄存器的時鐘輸入的這種調節將在第一寄存器與第二寄存器之間的時序裕量
從-50ps改變為-100ps。移動還將在第二寄存器與第三寄存器之間的時序裕量從-150ps改
變為-100ps。這允許使用純延遲調節來對寄存器重定時優化進行建模,而無需對系統的設
計的結構性改變。

圖6圖示了根據本發明的示例性實施例的用于考慮到推測的改變執行重定時感知
時序分析的方法。圖6中圖示的方法可以用于實現如圖1所示的過程104、108或112。推測的
寄存器重定時修改設計中的限制或阻礙寄存器重定時的結構以改善針對系統的經重定時
的結果。根據本發明的實施例,推測的改變允許系統向設計工具的設計者或用戶提供推薦
以指示能夠做出哪些改變以改善將利用這些改變實現的性能和所估計的性能增益。可以響
應于由設計者提供的在重定時感知時序分析的先前迭代期間做出的推測的改變上的反饋
來做出針對對設計的修改實現的推測的改變。在其中設計者/用戶反饋不可獲得的重定時
感知時序分析的初始迭代期間,可以使用根據預設優先次序的預定義集合的推測的動作來
選擇推測的改變。

在601處,執行時序分析。根據本發明的實施例,時序分析可以包括在來自圖1的
115處執行的過程,其中做出系統的設計是否滿足關于系統的時序約束的確定。應當認識
到,時序分析可以取決于其何時被執行來利用估計和近似。當在編譯流程中時序分析被調
用的時間越早,可以利用的估計和近似越多。根據本發明的實施例,時序分析建立針對系統
中的每條路徑的長度以及針對系統中的每條路徑的時序裕量。時序裕量可以被定義為在路
徑變得關鍵之前能夠被添加到路徑的延遲量或者信號到達的所要求的時間減去信號到達
的實際時間。

在602處,識別對設計中的寄存器重定時的限制。對寄存器重定時的限制可以包括
在設計中限制重定時的能力的任何結構。對寄存器重定時的限制的示例可以是特定寄存器
的無法支持一定類型的功能,其中特定寄存器要被用于對利用該功能的另一寄存器進行重
定時。根據本發明的方面,功能可以為支持異步清除的能力。對寄存器重定時的限制的另一
示例是抑制或限制應當被移動以進行重定時的寄存器的移動的設計者/用戶指引。應當認
識到,也可以識別到其他限制。

根據本發明的實施例,還可以識別在設計上的將改善限制重定時性能的推測的改
變。例如,可以提供在異步時鐘交叉處的額外的流水線設計。可以調節在雙端口RAM上的讀/
寫時序關系。額外的流水線設計可以被提供在被標記為錯誤路徑的邊緣上,從而指示設計
者/用戶不關心沿邊緣的定時。可以提高RAM和DSP上的內部流水線設計。可以允許為交叉時
鐘傳輸的目標的寄存器移動。

在603處,對設計應用推測的改變。根據本發明的實施例,推測的改變被應用以去
除對寄存器重定時的限制和/或改善寄存器重定時性能,其中需要寄存器重定時來減小路
徑的關鍵性。根據在重定時感知時序分析的先前迭代中進行的推測的改變上的設計者指定
的偏好來將推測的改變應用到設計。設計者指定的偏好包括關于哪些推測的改變是可接受
的并且哪些推測的改變不是可接受的設計者/用戶反饋。根據本發明的實施例,在首次執行
重定時感知時序分析并且沒有設計者指定的偏好可獲得的情況下,可以根據預設優先次序
來執行預定義集合的推測的改變。根據本發明的實施例,可以根據下面的順序來執行預定
義集合的推測的動作。首先,異步清除被去除和/或被轉換為同步清除。第二,去除設計者/
用戶指引。第三,通過將寄存器添加到異步時鐘傳輸的任意端來添加流水線設計。

在604處,執行重定時預測。基于在601處執行的時序分析、在603處應用的推測的
改變和已經完成的設計的階段,預測要被實現在系統的設計上的布局后和布線后寄存器重
定時優化。根據本發明的實施例,可以執行簡略寄存器重定時來生成預測。例如,可以使用
歸因于其中執行重定時感知時序分析并且不是關于完全寄存器重定時分析所需要的設計
的所有信息都可以是可獲得的編譯的階段而僅僅部分完整的設計來執行寄存器重定時。在
其他實施例中,可以忽略在寄存器重定時上的一個或多個限制以便更快速地生成預測。備
選地,可以使用對完成詳細分析可獲得的所有信息來執行完整的寄存器重定時分析。

在605處,更新時序分析。根據本發明的實施例,更新在601處執行的時序分析以包
括被預測為要被實現在系統上的寄存器重定時優化。

在606處,更新時序分析網表以反映要被實現在系統上的寄存器重定時優化。根據
本發明的實施例,寄存器重定時優化可以被反映為時鐘歪斜或者數據路徑上的正或負延遲
元件。備選地,寄存器重定時優化可以被反映為離散寄存器重定時,其中寄存器實際上在系
統的設計中被移動。

在607處,將重定時感知時序分析的結果輸出給設計者。重定時感知時序分析結果
向設計者提供在布局后和布線后寄存器重定時之后的系統的設計的準確全貌。

根據本發明的實施例,在104、108和112處執行說明推測的改變的重定時感知時序
分析之后,設計者可以在105、109和113處提供關于與其他優化一起實現的推測的改變的反
饋。在105、109和113處提供的設計者反饋可以在做出推測的改變時在重定時感知時序分析
的后續迭代期間被利用。基于設計者反饋,還可以對設計做出修改以實現期望的并且改善
寄存器重定時的推測的改變。

本發明的各實施例允許利用設計者反饋的引導來執行用于寄存器重定時的推測
的改變。當面對不能被重定時的路徑時,推測的寄存器重定時可以具有能夠被做出以允許
重定時繼續進行的多個推測的改變的選項。代替允許推測的寄存器重定時以選擇可以破壞
在先前編譯期間實現的優化的選項,設計者/用戶反饋可以用于選擇理想的選項。本發明的
各實施例允許設計者/用戶通過指示將實現哪些推測的動作并且在設計的進一步修改中將
不實現哪些推測的動作來引導編譯和推測的寄存器重定時。在寄存器重定時分析期間的編
譯的未來迭代可以基于將做出的改變來執行優化,并且推測的寄存器重定時的未來迭代可
以避免將不做出的推測的改變。根據本發明的實施例,可以以除了源RTL的格式并且獨立于
源RTL來提供設計者/用戶反饋。這允許設計者/用戶更好地利用推測的改變的益處,而無需
修改代碼。應當認識到,盡管針對改善寄存器重定時的推測的改變提供了特定示例,但是還
可以實現其他改變來改善寄存器重定時。

圖7圖示了根據本發明的示例性實施例的用于執行寄存器重定時的方法。圖7是圖
示了根據本發明的示例性實施例的用于執行寄存器重定時的方法的流程圖。圖7中圖示的
方法可以用于實現圖1中示出的114。應當認識到,也可以使用其他方法來實現109。在701
處,識別具有連接到接近關鍵的路徑的輸入的寄存器并識別具有耦合到接近關鍵的路徑的
輸出的寄存器。根據本發明的實施例,接近關鍵的路徑是系統中的具有低于閾值的時序裕
量值的路徑。

在702處,將在701處識別的寄存器移動到新的位置。根據本發明的實施例,可以通
過將寄存器在接近關鍵的路徑上后向移動到部件的輸入來識別針對每個所識別的寄存器
的新的位置。針對要發生的后向推動,寄存器需要被呈現在部件的每個扇出上。根據本發明
的實施例,可以通過將寄存器在接近關鍵的路徑上前向移動到部件的輸出來識別新的位
置。針對要發生的前向推動,寄存器需要被呈現在部件的每個輸入上。根據本發明的備選實
施例,可以通過利用減小關鍵性的約束來對多個等式進行求解來識別針對寄存器的新的位
置。

在703處,針對每個移動的寄存器,確定是否在702處將寄存器移動到其新的位置
將引發對約束的違反。根據本發明的實施例,約束可以包括設計者/用戶定義的時序約束。
約束可以包括針對系統的面積約束,例如關于允許的最大面積增加的全局約束和確保均勻
地跨系統創建寄存器的約束。約束可以包括體系結構約束,其定義用于處理進位鏈的規則
和關于諸如控制信號的次級信號的各種限制。約束可以包括設計者/用戶定義的約束,例如
抑制目標設備的指派部分上的部件的布局的約束。應當認識到,其他類型的約束還可以出
于在703處對違反的確定的目的而被定義并被包含。如果確定將寄存器移動到其新的位置
引發約束的違反,則控制繼續進行到704。如果確定將寄存器移動到其新的位置不會引發約
束的違反,則控制繼續進行到705。

在704處,撤銷導致違反的移動。控制繼續進行到705。

在705處,執行時序分析。時序分析建立針對系統中的每條路徑的長度以及針對系
統中的每條路徑的時序裕量。

在706處,確定系統的時序是否已經被改善。確定系統的時序是否已經被改善可以
通過將最近經重定時的系統設計中的接近關鍵的路徑的時序裕量值與先前系統設計中的
接近關鍵的路徑的時序裕量值進行比較來實現。如果系統的時序已經改善,則控制繼續進
行到707。如果系統的時序尚未改善,則控制繼續進行到708。

在707處,保存對系統的當前改變。對系統的當前改變包括在702處做出的改變。

在708處,確定是否已經了執行閾值數量的迭代701-707。如果尚未執行閾值數量
的迭代701-707,則控制返回到701。如果已經執行了閾值數量的迭代701-707,則控制繼續
進行到709。

在709處,在707處保存的當前改變被指派為針對系統的當前設計。在圖7中描述的
過程可以被稱為離散寄存器重定時。

根據本發明的實施例,圖1、3、6和7中圖示的流程可以通過運行在第一計算機系統
上的EDA工具來執行。數據文件可以被生成并被發送到第二計算機系統以允許系統的設計
被進一步處理。備選地,數據文件可以被發送到第二計算機系統,其可以用于根據系統設計
來對目標設備進行編程。應當認識到,系統的設計還可以以其他形式被輸出在例如顯示器
設備或其他介質上。通過利用數據文件來對目標進行編程,目標設備上的各部件被物理變
換以實現系統。

圖1、3、6和7是圖示了本發明的各實施例的流程圖。在這些附圖中描述的流程可以
通過由計算機系統實現的EDA工具來執行。圖示的技術中的一些可以順序地、并行地或以除
了描述的并且所描述的流程可以被重復的順序之外的順序來執行。應當認識到,不是所描
述的技術中的全部都需要被執行,可以添加額外的技術,并且可以利用其他技術來替代所
圖示的技術中的一些。

圖8圖示了根據本發明的實施例的實現系統設計器的計算機系統800的框圖。計算
機系統800包括處理數據信號的處理器810。處理器810耦合到總線801或其他交換結構,其
在處理器810與計算機系統800中的其他部件之間發送數據信號。計算機系統800包括存儲
器820。存儲器820可以存儲由數據信號表示的可以由處理器810運行的指令和代碼。數據存
儲設備830也耦合到總線801。

網絡控制器840耦合到總線801。網絡控制器840可以將計算機系統800鏈接到計算
機的網絡(未示出)并且支持在各機器之間的通信。顯示設備控制器850耦合到總線801。顯
示設備控制器850允許將顯示設備(未示出)耦合到計算機系統800并且用作在顯示設備與
計算機系統800之間的接口。輸入接口860耦合到總線801。輸入接口860允許將輸入設備(未
示出)耦合到計算機系統800并且將數據信號從輸入設備發送到計算機系統800。

系統設計器821可以駐存在存儲器820中并且由處理器810運行。根據本發明的實
施例,系統設計器821包括重定時感知時序分析單元。重定時感知時序分析單元可以在編譯
流程中的每個綜合、布局和布線流程之后執行重定時感知時序分析。重定時感知時序分析
被提供給設計者,并且允許該設計者修改針對系統的設計而無需等待完成設計的整個編
譯。重定時感知時序分析反映被預測為要被實現的布局后和布線后寄存器重定時優化。根
據本發明的方面,通過對系統的設計做出的推測的改變來使得能夠進行被預測為要被實現
的布局后和布線后寄存器重定時優化。推測的改變可以與時序分析結果一起被呈現給設計
者,并且可以響應于由設計者提供的反饋來做出對設計的實際的改變。

圖9圖示了根據本發明的實施例的系統設計器900。系統設計器900可以用于實現
圖8中圖示的系統設計器821。系統設計器900可以是用于設計目標設備上的系統的EDA工
具,目標設備例如FPGA、ASIC、結構化ASIC或其他電路。圖9圖示了實現系統設計器900的實
施例的模塊。根據一個實施例,模塊表示軟件模塊,并且系統設計可以由計算機系統來執
行,計算機系統例如圖8中圖示的運行由圖9中示出的模塊表示的指令序列的計算機系統。
如下文將描述的,對指令序列的運行使計算機系統支持系統設計。在備選實施例中,硬接線
電路可以代替各軟件指令或與各軟件指令組合使用以實現本發明的各實施例。因此,本發
明的各實施例不限于硬件電路和軟件的任何具體組合。

系統設計器900包括設計者管理器910。系統設計器管理器910連接到系統設計器
900的其他部件并且在系統設計器900的其他部件之間發送數據。系統設計器管理器910提
供接口,其允許設計者/用戶(例如設計者)將數據輸入到系統設計器900中并且允許系統設
計器900將數據輸出給設計者/用戶。根據本發明的實施例,針對系統的設計、對設計的修改
和關于對設計的推測的改變的反饋可以為使用系統設計器管理器910的輸入。重定時感知
時序分析的報告、對設計做出的推測的改變以及由推測的改變獲得的性能可以由系統設計
管理器910輸出。

系統設計器900包括綜合單元920。綜合單元920生成要由目標設備實現的系統的
邏輯設計。根據本發明的實施例,綜合單元920根據HDL設計定義來生成系統的經優化的邏
輯表示并對優化邏輯設計進行映射。根據本發明的實施例,根據映射來生成網表。該網表可
以是根據HDL生成的經優化的經技術映射的網表。

系統設計器900包括布局單元930。根據本發明的實施例,布局單元930將經映射的
邏輯系統布局在目標設備上。布局作用在經技術映射的網表上以產生針對每個功能塊的布
局。根據本發明的實施例,布局單元930通過確定邏輯設計上的哪些資源要被用于特定邏輯
元件和被確定為實現如在綜合期間所確定的系統的其他功能塊來將系統適配在目標設備
上。布局可以包括聚簇,其涉及將各邏輯元件分組到一起以形成呈現在目標設備上的邏輯
簇。

系統設計器900包括布線單元940,其對目標設備上的經布局的設計進行布線。布
線單元940分派目標設備上的布線資源以提供在目標設備上的各邏輯門、各邏輯元件以及
其他部件之間的相互連接。布線單元940還可以執行在經布局的邏輯設計上的可布線性優
化。

系統設計器900包括重定時感知時序分析單元950。重定時感知時序分析單元950
響應于來自綜合單元920、布局單元930、布線單元940或來自設計者的請求來執行重定時感
知時序分析。重定時感知時序分析反映被預測為要被實現在系統的設計上的布局后和布線
后寄存器重定時優化。實現分析和布局后和布線后寄存器重定時優化可以被反映在由重定
時感知時序分析單元950生成的時序分析網表中。來自重定時感知時序分析的結果被提供
回到請求發起者。

根據本發明的實施例,重定時感知時序分析單元950可以響應于對設計做出的改
善寄存器重定時的推測的改變來執行重定時感知時序分析。推測的寄存器重定時單元(未
示出)可以識別對寄存器重定時的限制并且響應于由設計者提供的預定集合的優先次序
和/或偏好來應用推測的改變。

根據本發明的實施例,設計者可以請求在綜合、布局或布線之后執行重定時感知
時序分析,而無需等待設計的整個編譯。這允許設計者查看在早期階段處的設計并允許設
計者做出修改以改善在早期階段處的設計。當重定時感知時序分析被執行時,將考慮到要
被實現的布局后和布線后寄存器重定時優化的設計的視圖提供回到設計者。

系統設計器900包括寄存器重定時單元960。根據本發明的實施例,寄存器重定時
單元960將識別出的寄存器跨組合電路元件移動以減小如所確定的時序上關鍵或接近關鍵
的路徑的長度。寄存器重定時單元960可以執行圖7中圖示的流程。

系統設計器900包括時序分析單元980,其執行在所生成的系統的設計上的時序分
析。根據本發明的實施例,時序分析確定是否滿足系統的時序約束。時序分析單元980可以
建立針對系統中的每條路徑的長度以及針對系統中的每條路徑的時序裕量。時序裕量可以
被定義為在路徑變得關鍵之前能夠被添加到路徑的延遲量或者信號到達的所要求的時間
減去信號到達的實際時間。

系統設計器900包括組裝單元980。根據本發明的實施例,組裝單元980創建描述系
統的設計的數據文件。數據文件可以為用于對目標設備進行編程的比特流。通過利用數據
文件來對目標設備進行編程,目標設備被物理地變換以實現系統。應當認識到,系統設計器
900中的模塊可以實現參考圖1、3、6和7描述的過程。

根據本發明的實施例,當執行所描述的編譯流程時,來自綜合、布局和布線的數據
被存儲在計算機系統的存儲器中的寄存器中。在綜合、布局和/或布線之后完成了重定時感
知時序分析之后,得到的經修改的數據可以被存儲在存儲器中的第二組寄存器中。來自重
定時感知時序分析的經修改的數據可以經由顯示設備控制器或其他輸出設備被輸出給設
計者。由設計者提供的輸入可以經由輸入接口來接收。從由設計者提供的輸入得到的對綜
合、布局和/或布線的修改可以被存儲在存儲器中的第三組寄存器中。描述系統的數據文件
可以被存儲在數據存儲設備中和/或從計算機系統被輸出。

應當認識到,本發明的各實施例可以被提供為計算機程序產品或軟件,其可以包
括具有指令的計算機可讀或機器可讀介質。計算機可讀或機器可讀介質上的指令可以用于
對計算機系統或其他電子設備進行編程。機器可讀介質可以包括但不限于軟盤、光盤、CD-
ROM以及磁光盤或適合于存儲電子指令的其他類型的介質/機器可讀介質。本文描述的技術
不限于任何特定軟件配置。它們可以適用于在任何計算或處理環境中。本文使用的術語“計
算機可讀介質”或“機器可讀介質”應包括能夠存儲或編碼指令序列的任何介質,所述指令
序列用于由計算機運行并且使計算機執行本文描述的方法中的任何方法。另外,本領域中
常見的是提到以一種形式或另一形式的軟件(例如,程序、流程、過程、應用、模塊、單元、邏
輯、等等)作為采取動作或引發結果。這種表達僅僅是陳述對由處理系統的軟件的運行使處
理器執行產生結果的動作的速記方式。

圖10圖示了根據本發明的實施例的可以用于實現目標設備的設備1000。設備1000
是包括多個邏輯陣列塊(LAB)的現場可編程門陣列(FPGA)。每個LAB可以由多個邏輯塊、進
位鏈、LAB控制信號、查找表(LUT)鏈以及寄存器鏈連接線路形成。邏輯塊是提供用戶邏輯功
能的有效實現的小邏輯單元。邏輯塊包括一個或多個組合單元,其中每個組合單元具有單
個輸出以及寄存器。根據本發明的實施例,邏輯塊可以與邏輯元件(LE)類似地操作,例如在
由公司制造的Stratix或Cyclone設備中發現的那些,或者組合邏輯塊(CLB),例
如在由Xilinx公司制造的Virtex設備中發現的那些。在該實施例中,邏輯塊可以包括具有
可配置寄存器的第四輸入LUT。根據本發明的備選實施例,邏輯塊可以與自適應邏輯模塊
(ALM)類似地操作,例如在由Altera公司制造的Stratix設備中發現的那些。LAB被歸類成跨
設備1000的行和列。LAB的列被示出為1011-1016。應當認識到,邏輯塊可以包括額外的或備
選的部件。

設備1000包括存儲器塊。存儲器塊可以例如為雙端口隨機存取存儲器(RAM)塊,其
以高達的各種頻率提供高達各種位寬的專用真實雙端口、簡單雙端口或簡單端口存儲器。
存儲器塊可以被歸類成跨在各選擇的LAB之間的設備的列或被單獨地或成對地被定位在設
備1000內。存儲器塊的列被示出為1021-1024。

設備1000包括數字信號處理(DSP)塊。DSP塊可以用于實現具有相加或相減特征的
各種配置的乘法器。DSP塊包括移位寄存器、乘法器、加法器和累加器。DSP塊可以被歸類成
跨設備1000的各列并且被示出為1031。

設備1000包括多個輸入/輸出元件(IOE)1040。每個IOE饋送設備1000上的IO引腳
(未示出)。IOE 1040被定位在設備1000的外圍周圍的LAB行和列的端部。每個IOE可以包括
雙向IO緩沖器和用于登記輸入、輸出和輸出使能信號的多個寄存器。

設備1000可以包括路由資源,例如lAB本地相互連接線路、行相互連接線路(“H型
接線”)、列相互連接線路(“V型接線”)(未示出)以在目標設備的各部件之間路由信號。

在前面的說明書中,已經參考本發明的具體示例性實施例描述了本發明的各實施
例。然而,將顯而易見的是,可以在不脫離本發明的各實施例的較廣泛的精神和范圍的情況
下對其進行各種修改和改變。因此,說明書和附圖應被認為是在說明性而非限制性的意義
上。

關 鍵 詞:
用于 設計 編譯 流程 利用 針對 寄存 器重 定時 估計 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:用于在設計編譯流程中利用針對寄存器重定時的估計的方法和裝置.pdf
鏈接地址:http://www.rgyfuv.icu/p-6100787.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图