TWI701566B - 電路設計方法及相關的電腦程式產品 - Google Patents
電路設計方法及相關的電腦程式產品 Download PDFInfo
- Publication number
- TWI701566B TWI701566B TW108119292A TW108119292A TWI701566B TW I701566 B TWI701566 B TW I701566B TW 108119292 A TW108119292 A TW 108119292A TW 108119292 A TW108119292 A TW 108119292A TW I701566 B TWI701566 B TW I701566B
- Authority
- TW
- Taiwan
- Prior art keywords
- path
- gate array
- logic gate
- specific
- configurable logic
- Prior art date
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本發明揭露一種電路設計方法,其包含有以下步驟:設計多個路徑,其中每一個路徑上包含了多個電路元件;分別判斷該多個路徑在訊號傳輸上是否有時序餘裕,並決定出具有時序餘裕的至少一特定路徑;以及將該特定路徑上的至少一特定元件替換為一可組態邏輯閘陣列單元,其中該可組態邏輯閘陣列單元所被設置的功能係相同於該特定元件。
Description
本發明係有關於電路設計,尤指一種關於工程變更指令(Engineering
Chang Orders,ECO)的電路設計方法。
在傳統的電路設計中,由於在晶片佈局完成以及完成光罩製作之後可能會接收到一工程變更指令以要求更改部分元件的功能,因此,在電路設計階段通常會在晶片的剩餘空間放置一些標準備用元件,例如邏輯閘、反相器、緩衝器...等等,以使得在接收到該工程變更指令之後可以藉由改變連接線的方式來利用這些標準備用元件以達成電路功能變更的目的。舉例來說,假設一電路路徑中的一反相器需要被替換為一緩衝器,則工程師可以透過將該反相器的輸入端及輸出端分別連接到原本作為備用元件的緩衝器的輸入端及輸出端,以達成元件功能替換的需求,且這些設計變化僅需要變動到一些金屬層光罩。然而,由於這些標準備用元件不一定是位於需要變更之電路路徑的附近,因此,該電路路徑可能會因為需要連接到標準備用元件而造成訊號傳輸路徑的大幅增加,而有可能造成時序的違規。
因此,本發明的目的之一在於提供一種電路設計,其係透過主動將電路路徑中的部分元件替換為具有相同功能的可組態邏輯閘陣列單元(configurable gate array cell),以解決上述因為工程變更指令而造成時序違規的問題。
在本發明的一個實施例中,揭露一種電路設計方法,其包含有以下步驟:設計多個路徑,其中每一個路徑上包含了多個電路元件;分別判斷該多個路徑在訊號傳輸上是否有時序餘裕,並決定出具有時序餘裕的至少一特定路徑;以及將該特定路徑上的至少一特定元件替換為一可組態邏輯閘陣列單元,其中該可組態邏輯閘陣列單元所被設置的功能係相同於該特定元件。
在本發明的另一個實施例中,揭露了一種電腦程式產品,經由一電腦執行該程式以執行以下步驟:在該電腦的一螢幕上顯示一使用者介面,其中該使用者介面包含多個電路設計圖像、一時序分析圖像以及一可組態邏輯閘陣列單元替換圖像;當接收到一使用者透過該使用者介面之該多個電路設計圖像的指令之後,在該使用者介面上顯示出該使用者所設計之多個路徑,其中每一個路徑上包含了多個電路元件;當接收到該使用者透過該使用者介面之該時序分析圖像的指令之後,分別判斷該多個路徑在訊號傳輸上是否有時序餘裕,並決定出具有時序餘裕的至少一特定路徑;以及當接收到該使用者透過該使用者介面之該可組態邏輯閘陣列單元替換圖像的指令之後,將該特定路徑上的至少一特定元件替換為一可組態邏輯閘陣列單元,其中該可組態邏輯閘陣列單元所被設置的功能係相同於該特定元件。
102~112、122、124、126、700~708:步驟
210、220、230、410、420:路徑
212、216、222、226、232、236、412、416、422、426:正反器
214、224、234、414、424:緩衝器
254、264、454:具有緩衝器功能的可組態邏輯閘陣列單元
264’、454’:具有反相器功能的可組態邏輯閘陣列單元
402:備用緩衝器
600:使用者介面
602:電路顯示區域
610_1~610_N:多個電路設計圖像
620:時序分析圖像
630:可組態邏輯閘陣列單元替換圖像
第1圖為依據本發明一實施例之電路設計方法的流程圖。
第2圖為根據本發明一實施例之電路設計的示意圖。
第3圖,其為根據本發明一實施例之接收到工程變更指令後對第2圖所示之路徑中的元件進行功能變更的示意圖。
第4圖為根據本發明另一實施例之電路設計的示意圖。
第5圖,其為根據本發明一實施例之接收到工程變更指令後對第4圖所示之路徑中的元件進行功能變更的示意圖。
第6圖所示為根據本發明一實施例之顯示於該電腦之螢幕上的使用者介面的示意圖。
第7圖為根據本發明一實施例之電腦程式產品的操作流程圖。
請參考第1圖,第1圖為依據本發明一實施例之電路設計方法的流程圖,參考第1圖,電路設計方法的流程敘述如下。首先,在步驟102中,使用者透過使用一暫存器傳輸級(Register Transfer Level,RTL)語言來進行一電路設計,其中該電路設計可包含多個路徑,其中每一個路徑上包含了多個電路元件。
在步驟104中,使用者在該多個路徑周邊設置多個備用元件,其中該些備用元件可以是標準備用元件,例如邏輯閘、反相器、緩衝器...等等。在步驟106中,暫存器傳輸級的電路設計係連同多個限制條件開始進行邏輯合成(synthesis),其中該些限制條件可以是時脈頻率、接腳功能...等等由工程師輸入的設定參數。在步驟108中,邏輯合成後的電路透過電路自動佈局,亦即電路元件的置入以及繞線,來完成電路實體設計。在完成電路實體設計之後,於步驟110中會進行電路設計中的元件置換,具體來說,步驟110可以另外包含三個步驟122、124、126,
其中步驟122係用來進行時序相關的元件置換,亦即使用一些速度較快的元件來取代時序違規路徑上的元件,其代價是晶片面機會較大且可能需要較大的功耗;步驟124係用來進行功率相關的元件置換,亦即使用漏電流較小或速度較慢的元件來取代原本時序有餘裕之路徑上的元件,以在不影響時序的情形下減少漏電流;步驟126係用來進行工程變更指令相關的元件置換,以在不影響電路操作的情形下使用可組態邏輯閘陣列單元(configurable gate array cell)來替換該多個路徑中的部分元件,以利後續若是接收到進行工程變更指令時可以快速順利地完成變更設計。最後,在完成步驟108、110之後,流程進入步驟112以結束此電路設計,而相關的電路實體設計後續可直接進行後續的光罩製作。
由於本發明係著重在步驟126中有關於工程變更指令相關的元件置換,因此以下的實施例說明係以步驟126來做為說明,其餘步驟的相關內容在此不予贅述。
第2圖為根據本發明一實施例之電路設計的示意圖。如第2圖所示,在一開始的設計中,例如第1圖所示之步驟102~106,電路包含了三個路徑210、220、230,其中路徑210包含了兩個正反器212、216以及一緩衝器214、路徑220包含了兩個正反器222、226以及一緩衝器224、且路徑230包含了兩個正反器232、236以及一緩衝器234。接著,在步驟126中,在經由時序分析之後發現路徑210、230具有時序餘裕,因此,本實施例將路徑210中的緩衝器214以及路徑230中的緩衝器234分別以可組態邏輯閘陣列單元254、264來替換,且可組態邏輯閘陣列單元254、264係被設置為具有緩衝器的功能。
在本實施例中,可組態邏輯閘陣列單元254、264本身可透過一個或
少數金屬層的設計來決定其功能,具體來說,在第一種金屬層設計下,可組態邏輯閘陣列單元254、264可具有緩衝器的功能;而在第二種金屬層設計下,可組態邏輯閘陣列單元254、264可具有反相器的功能...等等。由於可組態邏輯閘陣列單元有許多種實施方式,且其實際的電路架構已為本領域具有通常知識者所熟知,故相關的細節在此不予贅述。
此外,在一般情況下,由於可組態邏輯閘陣列單元254、264係可支援多種元件功能,故可組態邏輯閘陣列單元254、264相較於原本的緩衝器214、234需要較大的晶片面積,且也有可能影響到路徑210、230的時序。因此,在可組態邏輯閘陣列單元的替換過程中需要考慮到對晶片面積以及時序的影響,在本實施例中,假設晶片面積的增加均在容許的範圍之內(即,晶片面積的增加幅度在一限制範圍內),路徑210、230係被判斷為具有時序餘裕,而路徑220則被判斷為時序餘裕不足,因此僅有路徑210、230中的緩衝器214、234被替換為可組態邏輯閘陣列單元254、264,而路徑220中的緩衝器224則維持原有的設計。
在一實施例中,上述判斷路徑210、220、230是否有時序餘裕的方法可以如下:分別判斷若是將路徑210、220、230上的一特定元件(例如緩衝器214、224、234)替換為可組態邏輯閘陣列單元之後是否會造成時序違規,以判斷路徑210、220、230是否具有時序餘裕。
接著,參考第3圖,其為根據本發明一實施例之接收到工程變更指令後對路徑230中的元件進行功能變更的示意圖。如第3圖所示,假設在晶片下線(tape out)後接收到工程變更指令以要求將路徑230中的緩衝器(具有緩衝器功能的可組態邏輯閘陣列單元264)替換為反相器,則此時工程師便可以透過變更一個
金屬層或是少數金屬層的設計以直接將具有緩衝器功能的可組態邏輯閘陣列單元264轉變為具有反相器功能的可組態邏輯閘陣列單元264’。如上所述,由於只需要變更一個金屬層或少數金屬層的設計便可達到功能改變的目的,故除了可以節省光罩的花費之外,也可以避免先前技術中需要連接到另外的備用元件而造成訊號傳輸路徑增加,因此可以改善因為工程變更指令而造成時序違規的風險。
第4圖為根據本發明另一實施例之電路設計的示意圖。如第4圖所示,在一開始的設計中,例如第1圖所示之步驟102~106,電路包含了一個備用緩衝器402以及兩個路徑410、420,其中路徑410包含了兩個正反器412、416以及一緩衝器414、路徑420包含了兩個正反器422、426以及一緩衝器424,且備用緩衝器402的輸入端及輸出端並未連接到任何其他的元件。此外,在本實施例中係假設路徑410接近於路徑420,且一緩衝器424接近路徑410中的緩衝器414。接著,在步驟126中,在經由時序分析之後發現路徑410具有時序餘裕,因此,本實施例將路徑410中的緩衝器414以一可組態邏輯閘陣列單元454來替換,且可組態邏輯閘陣列單元454係被設置為具有緩衝器的功能。
接著,參考第5圖,其為根據本發明一實施例之接收到工程變更指令後以對路徑410中的元件進行功能變更的示意圖。如第5圖所示,假設在晶片下線後接收到工程變更指令以要求將路徑420中的緩衝器424替換為一反相器,但由於路徑420周邊並未具有備用的反相器,因此,本實施例中工程師便可以透過變更一個金屬層或是少數金屬層的設計以將路徑410中具有緩衝器功能的可組態邏輯閘陣列單元454轉變為具有反相器功能的可組態邏輯閘陣列單元454’,再透過變更一個金屬層或是少數金屬層的設計以將具有反相器功能的可組態邏輯
閘陣列單元454’的輸入端及輸出端分別連接到正反器422之輸出端及正反器426之輸入端,亦即修正後的路徑420係包含了正反器422、具有反相器功能的可組態邏輯閘陣列單元454’以及正反器426。另一方面,由於原本路徑410中的具有緩衝器功能的可組態邏輯閘陣列單元454已經被路徑420所使用,故工程師另透過變更一個金屬層或是少數金屬層的設計以將正反器422之輸出端連接到備用緩衝器402的輸入端,並將正反器426之輸入端連接到備用緩衝器402的輸出端,亦即修正後的路徑410包含了正反器412、備用緩衝器402以及正反器416。如上所述,由於只需要變更一或少數金屬層的設計便可達到功能改變的目的,且路徑410、420在變更後的長度也不會因此而增加太多,故除了可以節省光罩的花費之外,也可以避免先前技術中需要連接到另外的備用元件而造成訊號傳輸路徑增加,因此可以改善因為工程變更指令而造成時序違規的風險。
本發明之電路設計係由一電腦程式產品被一電腦/處理器載入之後,使用多個程式指令所執行,而第6圖所示為根據本發明一實施例之顯示於該電腦之螢幕上的使用者介面600的示意圖。如第6圖所示,使用者介面600包含了一電路顯示區域602、多個電路設計圖像601_1~610_N、一時序分析圖像620以及一可組態邏輯閘陣列單元替換圖像630。在使用者介面600的使用中,使用者可透過檔案載入或是點選多個電路設計圖像601_1~610_N來進行電路設計,而所設計出來的電路架構則會顯示在電路顯示區域602;接著,在完成電路設計之後,使用者可以點選時序分析圖像620以自動地對電路中的每一個路徑進行時序分析,且特別地該電腦程式產品會計算出時序有餘裕的路徑並進行記錄;接著,使用者可以再點選可組態邏輯閘陣列單元替換圖像630以直接將具有時序餘裕之路徑上的部分元件替換為具有相同功能設定的可組態邏輯閘陣列單元,例如第2、4圖的實施例所示,而完成了電路設計並進行後續的下線程序。接著,若是之後
接收到工程變更指令以要求變更部分功能時,使用者可以再次透過多個電路設計圖像601_1~610_N來改變部分可組態邏輯閘陣列單元的功能,以及/或是部分元件的連接關係,例如第3、5圖的實施例所示,以完成工程變更指令所要求的變更設計。
第7圖為根據本發明一實施例之電腦程式產品的操作流程圖。參考以上第1~6圖之實施例所述的內容,第7圖的流程敘述如下:步驟700:流程開始。
步驟702:在該電腦的一螢幕上顯示一使用者介面,其中該使用者介面包含多個電路設計圖像、一時序分析圖像以及一可組態邏輯閘陣列單元替換圖像。
步驟704:當接收到一使用者透過該使用者介面之該多個電路設計圖像的指令之後,在該使用者介面上顯示出該使用者所設計之多個路徑,其中每一個路徑上包含了多個電路元件。
步驟706:當接收到該使用者透過該使用者介面之該時序分析圖像的指令之後,分別判斷該多個路徑在訊號傳輸上是否有時序餘裕,並決定出具有時序餘裕的至少一特定路徑。
步驟708:當接收到該使用者透過該使用者介面之該可組態邏輯閘陣列單元替換圖像的指令之後,將該特定路徑上的至少一特定元件替換為一可組態邏輯閘陣列單元,其中該可組態邏輯閘陣列單元所被設置的功能係相同於該特定元件。
簡要歸納本發明,在本發明之電路設計中,係在晶片面積允許的情形下將時序有餘裕之路徑上的元件替換為可組態邏輯閘陣列單元,以提高可組
態邏輯閘陣列單元在電路設計中所佔的比例。透過本發明之實施例的內容,可以在後續若是需要進行工程變更時有機會可以在簡單地以增加最少成本的情形完成變更設計。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
102~112、122、124、126:步驟
Claims (10)
- 一種電路設計方法,包含有:設計多個路徑,其中每一個路徑上包含了多個電路元件;針對每一個路徑,判斷若是將該路徑上的一特定元件替換為一可組態邏輯閘陣列單元(configurable gate array cell)之後是否會造成時序違規,以判斷該路徑是否具有時序餘裕,其中該可組態邏輯閘陣列單元所被設置的功能係相同於該特定元件;針對每一個路徑,判斷若是將該路徑上的一特定元件替換為該可組態邏輯閘陣列單元之後是否會使得晶片面積超出一限制條件;以及將具有時序餘裕以及晶片面積符合該限制條件的路徑設為一特定路徑;以及將該特定路徑上的該特定元件替換為該可組態邏輯閘陣列單元。
- 如申請專利範圍第1項所述之電路設計方法,另包含有:當接收到一工程變更指令(Engineering Chang Orders,ECO)以要求將該特定路徑中的該特定元件替換為具有另一功能的元件時,透過變更金屬層的連接方式以使得該可組態邏輯閘陣列單元具有另一功能。
- 如申請專利範圍第1項所述之電路設計方法,另包含有:設置一備用元件,其中該備用元件在預設狀態下並未連接到該多個路徑;當接收到一工程變更指令(Engineering Chang Orders,ECO)以要求將該多個路徑中的一第一路徑中的一第一元件替換為具有另一功能的元件時,透過變更金屬層的連接方式以使得該可組態邏輯閘陣列單元具有另一功能,並將該可組態邏輯閘陣列單元連接至該第一路徑以替換該第一 元件,以及將該備用元件連接至該特定路徑以替換該可組態邏輯閘陣列單元。
- 如申請專利範圍第3項所述之電路設計方法,其中該備用元件與該第一元件的距離係大於該備用元件與該特定元件之間的距離。
- 如申請專利範圍第3項所述之電路設計方法,其中將該特定路徑上的該至少一特定元件替換為該可組態邏輯閘陣列單元的步驟係在該電路設計的一電路佈局階段之後才進行。
- 一種電腦程式產品,經由一電腦執行該程式以執行以下步驟:在該電腦的一螢幕上顯示一使用者介面,其中該使用者介面包含多個電路設計圖像、一時序分析圖像以及一可組態邏輯閘陣列單元替換圖像;當接收到一使用者透過該使用者介面之該多個電路設計圖像的指令之後,在該使用者介面上顯示出該使用者所設計之多個路徑,其中每一個路徑上包含了多個電路元件;當接收到該使用者透過該使用者介面之該時序分析圖像的指令之後,針對每一個路徑,判斷若是將該路徑上的一特定元件替換為一可組態邏輯閘陣列單元(configurable gate array cell)之後是否會造成時序違規,以判斷該路徑是否具有時序餘裕,其中該可組態邏輯閘陣列單元所被設置的功能係相同於該特定元件;針對每一個路徑,判斷若是將該路徑上的一特定元件替換為該可組態邏輯閘陣列單元之後是否會使得晶片面積超出一限制條件;以及將具有時序餘裕以及晶片面積符合該限制條件的路徑設為一特定路徑;以及 當接收到該使用者透過該使用者介面之該可組態邏輯閘陣列單元替換圖像的指令之後,將該特定路徑上的該特定元件替換為該可組態邏輯閘陣列單元。
- 如申請專利範圍第6項所述之電腦程式產品,另包含有:當接收到一工程變更指令(Engineering Chang Orders,ECO)以要求將該特定路徑中的該特定元件替換為具有另一功能的元件時,透過變更金屬層的連接方式以使得該可組態邏輯閘陣列單元具有另一功能。
- 如申請專利範圍第6項所述之電腦程式產品,另包含有:設置一備用元件,其中該備用元件在預設狀態下並未連接到該多個路徑;當接收到一工程變更指令(Engineering Chang Orders,ECO)以要求將該多個路徑中的一第一路徑中的一第一元件替換為具有另一功能的元件時,透過變更金屬層的連接方式以使得該可組態邏輯閘陣列單元具有另一功能,並將該可組態邏輯閘陣列單元連接至該第一路徑以替換該第一元件,以及將該備用元件連接至該特定路徑以替換該可組態邏輯閘陣列單元。
- 如申請專利範圍第8項所述之電腦程式產品,其中該備用元件與該第一元件的距離係大於該備用元件與該特定元件之間的距離。
- 如申請專利範圍第8項所述之電腦程式產品,其中將該特定路徑上的該至少一特定元件替換為該可組態邏輯閘陣列單元的步驟係在該電路設計的一電路佈局階段之後才進行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108119292A TWI701566B (zh) | 2018-01-02 | 2018-01-02 | 電路設計方法及相關的電腦程式產品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108119292A TWI701566B (zh) | 2018-01-02 | 2018-01-02 | 電路設計方法及相關的電腦程式產品 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201935291A TW201935291A (zh) | 2019-09-01 |
TWI701566B true TWI701566B (zh) | 2020-08-11 |
Family
ID=68618504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108119292A TWI701566B (zh) | 2018-01-02 | 2018-01-02 | 電路設計方法及相關的電腦程式產品 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI701566B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI220268B (en) * | 2003-09-17 | 2004-08-11 | Faraday Tech Corp | Method for programming a routing layout design through one via layer |
TWI459227B (zh) * | 2012-05-07 | 2014-11-01 | Univ Nat Chiao Tung | 時序設計變更的方法 |
CN106462553A (zh) * | 2014-05-09 | 2017-02-22 | 南加利福尼亚大学 | 时序违规弹性异步模板 |
-
2018
- 2018-01-02 TW TW108119292A patent/TWI701566B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI220268B (en) * | 2003-09-17 | 2004-08-11 | Faraday Tech Corp | Method for programming a routing layout design through one via layer |
TWI459227B (zh) * | 2012-05-07 | 2014-11-01 | Univ Nat Chiao Tung | 時序設計變更的方法 |
CN106462553A (zh) * | 2014-05-09 | 2017-02-22 | 南加利福尼亚大学 | 时序违规弹性异步模板 |
Also Published As
Publication number | Publication date |
---|---|
TW201935291A (zh) | 2019-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI665573B (zh) | 電路設計方法及相關的電腦程式產品 | |
CN101796520B (zh) | 用于序向单元的贴近布局的方法和设备 | |
US20120329266A1 (en) | Layout method and method of manufacturing semiconductor device | |
WO2018076735A1 (zh) | 一种修复保持时间违例的方法和装置、计算机存储介质 | |
US8255859B2 (en) | Method and system for verification of multi-voltage circuit design | |
JP2001357090A (ja) | 論理合成方法及び論理合成装置 | |
US6199183B1 (en) | Method of forming a scan path network | |
WO2012015689A1 (en) | Hyper-concurrent multi-scenario optimization | |
TWI701566B (zh) | 電路設計方法及相關的電腦程式產品 | |
TWI722360B (zh) | 測試系統與測試方法 | |
JP4999379B2 (ja) | 半導体集積回路設計方法、半導体集積回路設計装置 | |
US7710800B2 (en) | Managing redundant memory in a voltage island | |
JP6819306B2 (ja) | 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置 | |
US8336013B2 (en) | Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations | |
JP5309538B2 (ja) | 半導体集積回路の設計方法 | |
JP3561661B2 (ja) | 半導体集積回路及び半導体集積回路の設計方法 | |
US11574099B2 (en) | Simulation framework | |
US20080270955A1 (en) | Method and apparatus for modifying existing circuit design | |
TWI831280B (zh) | 積體電路及其布局方法 | |
JP3017038B2 (ja) | 半導体集積回路の設計方式 | |
JP2008186229A (ja) | 半導体集積回路の設計装置 | |
US7290231B2 (en) | Method for reducing standard delay format file size | |
CN104702246A (zh) | 数字输出时钟的生成 | |
JP3370259B2 (ja) | マスクレイアウト設計方法 | |
JP2004193260A (ja) | 回路設計装置および方法、素子、製造装置、並びにプログラム |