TWI765836B - 用於類比電路尺寸調整之方法及裝置 - Google Patents
用於類比電路尺寸調整之方法及裝置 Download PDFInfo
- Publication number
- TWI765836B TWI765836B TW110140186A TW110140186A TWI765836B TW I765836 B TWI765836 B TW I765836B TW 110140186 A TW110140186 A TW 110140186A TW 110140186 A TW110140186 A TW 110140186A TW I765836 B TWI765836 B TW I765836B
- Authority
- TW
- Taiwan
- Prior art keywords
- pvt
- circuit
- neural network
- conditions
- size
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Geometry (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一種系統執行神經網絡代理和電路仿真器的操作,以用於類比電路尺寸調整。該系統接收指示類比電路的規範和設計參數的輸入。系統迭代地搜索設計空間,直到找到滿足該規範和該設計參數的電路尺寸。在每次迭代中,神經網絡代理計算在信任區域中生成的隨機樣本的測量估計值,該信任區域是設計空間的一部分。基於該測量估計值,系統識別優化價值指標的候選尺寸。電路仿真器接收候選尺寸並生成仿真測量值。該系統至少部分地基於仿真測量值來計算對神經網絡代理的權重和信任區域的更新,以用於下一次迭代。
Description
本發明實施例通常涉及類比電路設計,以及更具體地,涉及利用深度強化學習的類比設計空間搜索。
摩爾定律(Moore’s law)所描述的計算能力的年增量正在開創前所未有的可能性。這一顯著的進步隨之帶來芯片設計複雜性的急劇增加。這種複雜性的一個例子是工藝、電壓和溫度(process, voltage, and temperature,PVT)條件的增長(growth)。儘管大部分的片上系統(system-on-a-chip,SoC)區域被數位電路佔據,但類比電路對於芯片來說也至關重要。然而,由於需要人類專業知識的干預及自動化工具的稀缺,類比對應物(counterpart)的設計工作更加繁重。
電晶體尺寸調整(Transistor sizing)是類比設計中的一項費時費力工作。目前,電晶體尺寸調整主要是通過反複試驗(trial and error)完成的。設計者首先應用他們對類比電路和電晶體特性的知識來選擇合理範圍的候選解決方案。之後,設計者用網格搜索的方式探索設計空間,並接收來自SPICE(Simulation Program with Integrated Circuit Emphasis,集成電路重點仿真程序)電路仿真的反饋。設計者的動作和SPICE電路仿真的過程被重複,直到滿足規範。由於非常大的設計空間,用於自動確定電晶體尺寸的已知技術經常遇到收斂問題或可擴展性問題。
已知的電路尺寸調整解決方案,例如貝葉斯優化(Bayesian optimization,BO)、無模型代理(model-free agents)、利用編碼器-解碼器技術的序列到序列建模(sequence-to-sequence modeling)、圖卷積神經網絡(graph convolutional neural networks)等,都存在各種類型的缺陷,例如可擴展性、通用可行性、效率和可重用性。
此外,為了保證芯片能夠在製造工藝、電源和環境的變化下工作,在流片之前必須簽署許多PVT條件。用於探索PVT條件的常規策略是在每次獲得一組新的電路尺寸調整分配時測試所有的PVT條件。這種策略浪費了計算資源和電子設計自動化(electronic design automation,EDA)工具許可。
因此,需要改進類比尺寸調整自動化以解決現有問題。
在一實施例中,提供了一種用於類比電路尺寸調整的方法。該方法包括以下步驟:接收指示類比電路的規範和多個設計參數的輸入;並迭代搜索設計空間,直到找到滿足該規範和該設計參數的電路尺寸。該迭代搜索進一步包括以下步驟:神經網絡代理針對信任區域中隨機生成的多個樣本中的每一個計算測量估計值,以識別優化價值指標的候選尺寸,其中,該信任區域是設計空間的一部分;以及,至少部分地基於電路仿真器對候選尺寸的仿真測量值來計算神經網絡代理的權重和信任區域的更新,以用於下一次迭代。
在一些實施例中,該方法還包括:基於該電路仿真器對該設計空間中的初始樣本生成的仿真測量值,選擇初始候選尺寸;初始化該信任區域以該初始候選尺寸為中心;以及,初始化該神經網絡代理,其是至少使用該初始候選尺寸和相應的仿真測量值進行訓練的。
在一些實施例中,在當前迭代中搜索的該信任區域是以在前一次迭代中識別出的候選尺寸為中心的。
在一些實施例中,該設計參數包括多個工藝、電壓、溫度(PVT)條件,以及,該方法還包括:在該多個PVT條件中的第一PVT條件下識別滿足該規範的電路尺寸;該電路仿真器在該多個PVT條件除該第一PVT條件外的其它PVT條件下測試該滿足該規範的電路尺寸;以及,逐步探索未通過該測試的PVT條件,直到找到滿足該規範和所有PVT條件的最終的電路尺寸。
在一些實施例中,該逐步探索還包括:將未通過該測試的PVT條件中的第二PVT條件添加到條件池中,其中,該條件池最初包括該第一PVT條件;將用於該第二PVT條件的第二神經網絡代理添加到代理池中,其中,該代理池最初包括用於該第一PVT條件的第一神經網絡代理;該代理池中的神經網絡代理迭代搜索相同的信任區域,以在該條件池中的各PVT條件下獲得滿足該規範的更新後的電路尺寸;以及,增大該代理池和該條件池以進行迭代搜索,直到發現該最終的電路尺寸滿足該規範和所有的PVT條件。
在一些實施例中,該電路尺寸是由一組約束和一組電路變量定義的約束滿足問題的解決方案,其中,每個電路變量對應於一組預定的尺寸調整值。
在一些實施例中,計算該更新還包括:計算比率,以根據該信任區域中的仿真測量值估計該神經網絡代理在該信任區域中的準確性;以及,根據該比率計算該信任區域的半徑的變化。
在一些實施例中,該神經網絡代理是多層神經網絡,其通過強化學習進行學習。
在一些實施例中,該價值指標是價值函數的輸出,該價值函數應用該神經網絡代理以該候選尺寸作為輸入而生成的該測量估計值。
在一些實施例中,該價值指標是價值函數的輸出,該價值函數評估歸一化測量值的總和。
在一些實施例中,該第一PVT條件為該多個PVT條件中最差的PVT條件,以及,該第二PVT條件為該未通過該測試的PVT條件中最差的PVT條件。
在另一實施例中,一種系統包括處理器和耦接到至少一個處理器的記憶體。記憶體存儲指令,當其由處理器執行時,使處理器執行神經網絡代理和電路仿真器的操作,以用於類比電路尺寸調整。具體地,當這些指令被該至少一個處理器執行時,使該至少一個處理器執行如上任一實施例所述之用於類比電路尺寸調整之方法。
在結合附圖閱讀特定實施例的以下描述後,其他方面和特徵對於本領域普通技術人員將變得顯而易見。本發明內容並不意圖限定本發明。本發明由申請專利範圍進行限定。
以下描述為本發明實施的較佳實施例。以下實施例僅用來例舉闡釋本發明的技術特徵,並非用來限制本發明的範疇。在通篇說明書及申請專利範圍當中使用了某些詞彙來指稱特定的組件。所屬技術領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的組件。本說明書及申請專利範圍並不以名稱的差異來作為區別組件的方式,而係以組件在功能上的差異來作為區別的基準。本發明的範圍應當參考后附的申請專利範圍來確定。在以下描述和申請專利範圍當中所提及的術語“包含”和“包括”為開放式用語,故應解釋成“包含,但不限定於…”的意思。此外,術語“耦接”意指間接或直接的電氣連接。因此,若文中描述一個裝置耦接至另一裝置,則代表該裝置可直接電氣連接於該另一裝置,或者透過其它裝置或連接手段間接地電氣連接至該另一裝置。文中所用術語“基本”或“大致”係指在可接受的範圍內,所屬技術領域中具有通常知識者能夠解決所要解決的技術問題,基本達到所要達到的技術效果。舉例而言,“大致等於”係指在不影響結果正確性時,所屬技術領域中具有通常知識者能夠接受的與“完全等於”有一定誤差的方式。
類比電路尺寸調整/確定(Analog circuit sizing),也稱為電晶體尺寸調整/確定,是一種用於確定一組尺寸調整變量(sizing variables)的值的迭代過程,以滿足給定的規範(specification),例如,尺寸調整變量包括:在給定拓撲中針對每個電晶體的長度(length)、寬度(width)和多重性(multiplicities)。在設計選擇中通常存在權衡。例如,更大的電晶體尺寸通常會帶來更好的性能,但會消耗更多的功率和面積。
本發明針對類比電路尺寸調整公開了一種基於模型(model-based)的強化學習(reinforcement learning,RL)框架(framework)。該框架在設計約束下自動調整類比電路尺寸,並結合了PVT探索(exploration)策略。該框架包括RL(強化學習)代理(agents),其能夠根據學到的經驗快速地適應環境,並且能夠隨著時間的推移逐漸接近最優。
該框架的一方面以高效率探索PVT條件。在系統層面(level),該框架在類比前端尺寸調整過程中提高了研發效率。實驗結果表明,框架中的RL(強化學習)代理能夠高效地搜索具有卓越性能的最新設計(state-of-the-art designs)的設計空間(design space)。在算法層面,該框架能夠直接模仿(mimic)電路仿真器(例如,SPICE仿真器)的動態特性(dynamics)。在驗證層面,該框架探索輸入的PVT條件(例如,逐步探索未通過測試的PVT條件,并在下一次迭代中選擇未通過測試的PVT條件中最差的PVT條件加入迭代過程)並針對所有輸入的PVT條件驗證所選的電路尺寸是否滿足該規範。
第1圖示出了根據本發明實施例的用於類比電路尺寸調整的基於模型的RL框架100(“框架100”,亦可稱為平台(platform))。框架100包括一個或多個RL(強化學習)代理110,其與諸如SPICE仿真環境(也稱為SPICE仿真器)之類的電路仿真器(circuit simulator)120進行交互。每個RL代理110可以是神經網絡,其在迭代過程中通過深度強化學習(deep reinforcement learning)進行學習。每個RL(強化學習)代理110可以是基於模型的代理(model-based agent),其最初是在局部區域(local area)中通過監督式學習(supervised learning)進行訓練的,其中,該局部區域是設計空間(design space)的一部分。該局部區域是在初始化時由電路仿真器120識別出來的,以潛在地包含滿足該規範的電路尺寸,且該局部區域在迭代期間被動態地更新。局部區域也稱為信任區域(trust region)。
在一實施例中,設計者對框架100的輸入可以包括拓撲(topology)、規範(specification)、電晶體尺寸範圍(transistor size ranges)和PVT條件(PVT conditions)。拓撲、電晶體尺寸範圍和PVT條件被統稱為一組設計參數。這裡使用的術語“設計者(designers)”是指設計工程師。框架100可以初始化多個RL代理,其中,每個RL代理用於不同的PVT條件。例如,假設輸入的PVT條件是9個,則相應地可以有9個RL代理,每個RL代理與相應的PVT條件對應。為簡化描述,稍後參考第4圖-第6圖描述該多個RL代理的場景。參考第1圖至第3圖的以下描述重點關注在一個PVT條件下的一個RL(強化學習)代理的場景。
設計空間是所有尺寸調整值(all sizing values)的空間(space),該尺寸調整值可以被選擇為確定類比電路的尺寸。因此,電路尺寸調整問題是給定設計空間中的搜索問題。設計空間中的每個樣本(sample)都是具有相應尺寸調整值的尺寸調整變量的向量(a vector of sizing variables)。對於設計空間中的每個樣本,RL代理110計算測量估計值(measurement estimate),其估計電路仿真器120的仿真測量值(simulation measurement)。RL代理110能夠比電路仿真器120產生仿真測量值更快地產生測量估計值。
搜索問題被迭代地解決。在每次迭代中,框架100將價值函數(value function)應用於RL代理110產生的每個測量估計值,以獲得對應的價值指標(value metric)。對應於具有最高(highest)價值指標(或最優價值指標)的測量估計值的樣本被選擇作為候選尺寸(candidate size)。該候選尺寸是一組(a set of)賦值/分配(assignments);即,將尺寸調整值分配給相應的尺寸調整變量。電路仿真器120接收該候選尺寸并產生仿真測量值,以驗證該候選尺寸是否滿足該規範。PVT條件管理器(PVT condition manager)160記錄/掌控(keep track)已被電路仿真器120驗證為滿足該規範的PVT條件,並且使框架100針對不滿足該規範的PVT條件初始化更多的RL代理。
在一實施例中,框架100還包括梯度模塊(gradient module)130,其計算對RL代理110的權重(weight)的更新。梯度模塊130利用基於損失函數(loss function)的梯度方法(gradient method)迭代地執行更新,其中,該損失函數用於測量電路仿真器120的仿真測量值和RL(強化學習)代理110的測量估計值之間的差異(difference,例如,均方誤差(mean square error,MSE))。框架100還包括信任區域更新模塊(trust region update module)140,其迭代地更新信任區域,以供RL代理110進行搜索(search)。信任區域是設計空間的一部分。在一實施例中,信任區域是以候選尺寸為中心的圓形區域,其半徑可以在每次迭代中動態擴大(expand)或縮小(shrink)。在每次迭代中,RL代理110接收信任區域中的隨機樣本作為輸入,並生成測量估計值作為輸出。該隨機樣本可以是隨機樣本產生器(random sample generator)150使用蒙特卡羅方法(Monte Carlo method)生成的,但本發明並不限於此。由於在每次迭代中對候選尺寸的搜索僅限於信任區域而不是整個的(entire)設計空間,因此該搜索能夠被高速且高效地執行。
因此,RL代理110在隨機樣本中識別出(identify)候選尺寸(該候選尺寸用於或被提供給電路仿真器120,即RL代理110為電路仿真器120挑選候選尺寸),以及,電路仿真器120反饋(feed back)仿真測量值,以更新RL代理110和信任區域,其中,用於下一次迭代的隨機樣本是在信任區域中產生的。當找到滿足規範的候選尺寸時,框架100輸出電路尺寸。當找到滿足規範和所有輸入的PVT條件的候選尺寸時,該電路尺寸被稱為“最終的電路尺寸(final circuit size)”。
RL(強化學習)代理110和電路仿真器120之間的交互(“代理-仿真器迴路(agent-simulator loop)”)取代了傳統的設計者-仿真器迴路(designer-simulator loop),其中,設計者與電路仿真器交互以通過反複試驗來微調電路尺寸。該代理-仿真器迴路比設計者-仿真器迴路更高效、更快速。RL代理110能夠有效地識別和拒絕不合格的樣本,從而使得電路仿真器120能夠專注於潛在/可能滿足規範的候選尺寸。
第2圖是根據本發明實施例說明的電路尺寸調整過程(circuit sizing process)200的流程示意圖。於步驟210處,過程200開始。在步驟210中,電路仿真器(例如,第1圖的電路仿真器120)針對(on)設計空間中的初始樣本(initial samples)產生仿真測量值(simulation measurements)。例如,該初始樣本可以是在沒有經過任何縮減的設計空間中隨機選取的預設數量的樣本。基於仿真測量值,在步驟220處,框架100在初始樣本中識別初始候選尺寸(例如,取樣之後,透過對每個樣本的仿真獲得仿真測量值,然後透過這些仿真測量值來判斷哪一個樣本的價值最高,並使用最高價值對應的樣本點附近當作局部區域),並初始化信任區域和RL代理。該信任區域可以是以初始候選尺寸為中心並具有初始半徑的圓形區域。RL(強化學習)代理最初可以是利用初始候選尺寸和相應的仿真測量值進行訓練的。在步驟230處,在信任區域中產生隨機樣本。在步驟240處,RL代理從隨機樣本中識別候選尺寸。更具體地說,對於每個隨機樣本,RL代理產生測量估計值。與最佳測量估計值(與價值指標相關,可以理解地,該最佳測量估計值可以是對應於最高價值指標的測量估計值)相對應的樣本作為候選尺寸被發送至電路仿真器。在步驟250處,電路仿真器針對候選尺寸運行電路仿真,以獲得仿真測量值。確定該仿真測量值是否滿足規範(步驟260),如果仿真測量值滿足規範,則候選尺寸被選擇(步驟270)。對其他的PVT條件執行此選擇的候選尺寸的進一步驗證。如果仿真測量值不滿足規範,則更新信任區域和RL(強化學習)代理的權重(步驟280)。更新後的信任區域可以以在步驟240識別出的候選尺寸為中心。然後,過程200返回到步驟230,從而利用更新後的信任區域和更新後的RL代理開始新的迭代。步驟230至步驟280的環路(loop)是在信任區域中訓練RL代理的迭代訓練過程。在每次迭代中,RL代理是利用候選尺寸和相應的仿真測量值進行訓練的。實驗結果表明,訓練效率高,且收斂速度快。
以下描述提供了類比電路尺寸調整的數學公式。通常,類比電路尺寸調整可以表述為受約束的多目標優化問題,其被定義在(1)中。
Minimize
, m = 1, 2, …, N
m ,c = 1, 2, …, N
c,
subject to
, d = 1, 2, …, N
d, c = 1, 2, …, N
c, (1)
Ds
其中,X是要優化的變量的向量;Ds為設計空間;
是在第c個PVT條件下的第m個目標函數(例如,功率、性能和面積);
是在第c個PVT條件下的第d個約束。
隨著PVT條件在技術快速發展的過程中呈指數級增長,為(1)找到全局最優解通常是不可行的。相比之下,滿足設計者指定的約束更實用。因此,(1)中描述的優化問題可以簡化為約束滿足問題(constraint satisfaction problem,CSP)。更一般地,CSP被定義為(2)中的三元組( X , D, C )。
D
,
(2)
C
,
其中,X是要搜索的尺寸調整變量的有限集。每個尺寸調整變量都具有非空搜索範圍(non-empty domain)D
i,即設計空間,以及,{b
1,b
2,…,b
l}是可能的值。C是一組約束。約束是由約束範圍(constraint scope)t
j和範圍內變量的關係(relation)r
j組成的對,其限制賦值的可行排列。電路仿真器(例如,SPICE仿真器)執行的仿真被表示為S
pice函數。
解決(2)中的CSP的一種有效方法是局部搜索(local search)。由基於模型的RL框架100(第1圖)執行的局部搜索具有以下三重優勢。1)更快的環境適配(adaptation)能力:將搜索範圍(domain)從整個設計空間減少到局部區域(即信任區域),從而構建該空間(space)的迭代次數減少。此外,電路空間是局部連續的,即已知最優值周圍的相鄰點表現出相似的最優性。2)基於模型的代理具有監督式學習能力:監督式學習在局部環境(local landscape)中有效地工作。由於在基於模型的代理的訓練中不涉及獎勵(reward),因此該學習對獎勵工程不敏感。3)更容易實現和收斂:與無模型代理相比時,監督式學習的訓練程序相對更容易。
基於模型的RL框架100提供了緊湊設計空間D
L的直接建模。該模型模仿(imitate)SPICE仿真器的行為,其以電晶體尺寸X來估計仿真測量值S
pice(X)的估計值。在一實施例中,該模型(例如,第1圖中的RL代理110)可以採用具有三層的前饋神經網絡f
N,N(X;θ)的形式。該模型可以用作SPICE函數逼近器,如(3)所示。
(3)
其中,
是預測的測量值的向量(例如,增益、相位裕度等),其相對於用權重θ估計的尺寸X的向量。
基於模型的RL(強化學習)代理(例如,第1圖中的RL(強化學習)代理110)旨在學習預測模型f
( N,N ),以模仿(mimic)環境的動態S
pice。利用基於(4)中的損失函數的梯度方法迭代更新預測模型f
( N,N )。基於模型的RL(強化學習)代理探索可行的解決方案而不是全局(global)解決方案,以防止過度設計該電路。RL(強化學習)代理也稱為神經網絡代理。
價值函數用於評估仿真測量值和測量估計值的指標(merit)。價值函數的輸出被稱為價值指標。價值函數不參與訓練RL(強化學習)代理,因此不會影響神經網絡模型的收斂。價值函數(V
alue)的一個非限制性示例是歸一化測量值(normalized measurements)的總和。例如,在一些實施例中,可能有很多個價值指標,諸如類比電路的效能、功耗等等,本發明實施例可以將這些價值指標做歸一化後加總當作一個綜合指標,即作為最終的價值指標,具體地,本發明不做限制。能夠使用容易獲得的信息來評估這樣的價值函數。然而,就約束之間的權衡而言,可以實施替代的價值函數來編碼(例如,考慮/加權(weigh))每個測量值的重要性。
第3圖是根據本發明實施例的用於探索可行電路尺寸的算法(以偽代碼形式)的示意圖。在初始化時,該算法在設計空間中開始隨機探索。SPICE仿真器在設計空間中仿真N個樣本,並根據仿真測量值的價值指標確定最佳樣本(例如,最高價值指標對應的樣本)。選擇最佳樣本周圍的區域作為局部區域D
TR。通過探索該局部區域構建模型(即神經網絡代理)。蒙特卡羅取樣(Monte Carlo sampling)被用來隨機取樣該局部區域,其具有神經網絡代理的快速推理時間的優點。神經網絡代理基於
的價值指標來識別局部區域中的候選尺寸。SPICE仿真器對候選尺寸運行仿真,以產生仿真測量值。然後通過信任區域方法(trust region method,TRM)更新該局部區域,以進行下一次迭代。神經網絡代理的權重也被更新。
神經網絡代理的性能的一個關鍵因素是搜索空間的大小從全局範圍(global landscape)到局部區域的過渡。因此,局部屬性的定義在算法的效率中起作用。局部區域(也稱為信任區域)在整個搜索過程中被動態更新。
信任區域方法定義了依賴於迭代的信任區域半徑
,其中,模型
被認為是目標函數
的適當表示。在每次迭代i時,信任區域算法首先求解信任區域子問題(5)以獲得
。在一實施例中,這是通過蒙特卡羅取樣來實現的。
(5)
其中,
是從當前中心點開始的最優試驗步驟的向量,‖∙‖是一個範數(norm),
是信任區域。
信任區域方法計算估計減少量(estimated reduction)和實際減少量(actual reduction)的比率ρ
i。該估計減少量是在信任區域的當前中心點處的估計函數值與在試驗點(即遠離該當前中心點的試驗步長)處的估計函數值之間的差異(difference)。估計函數值(estimated function value)是測量估計值的價值指標
。類似地,實際函數值是仿真測量值的價值指標
。實際減少值被定義為在信任區域的當前中心點處的實際函數值與在試驗點處的實際函數值之間的差異。基於比率ρ
i接受或拒絕該試驗點。如果神經網絡非常接近目標函數
,則半徑會擴大。極其接近由接近1的比率指示(例如,在預定閾值內)。否則,半徑會縮小。根據該比率計算該半徑的更新。
從概念上講,信任區域是以中心和半徑為特徵的圓形區域。該中心是在初始化或在每次迭代期間確定的最佳樣本。信任區域的半徑是根據模型在具有當前半徑的信任區域中的準確度(accuracy)動態改變的。上述比率是該準確度的測量或估計。半徑被選擇,使得其對於神經網絡的建模而言不會太大,也不會小到需要搜索更多局部區域。信任區域方法平衡了這種權衡。如果神經網絡能夠對信任區域進行充分建模(即,非常接近目標函數),則該半徑可擴展以允許在更大的空間中進行搜索。如果神經網絡無法對當前信任區域進行充分建模,則減小或不更改半徑以允許更輕鬆地建模。
在第3圖的算法中,電路尺寸的搜索是根據一個PVT條件執行的。該搜索能夠被擴展到多個PVT條件,如下面參考第4圖-第6圖所描述的。
第4圖是根據本發明實施例的基於模型的RL平台400(“平台400”)的示意圖。平台400是第1圖中的框架100的示例,其具有更多細節。平台400包括RL代理410、SPICE環境(SPICE environment)420、梯度更新(gradient update)430、信任區域方法(trust region method)440、蒙特卡洛斯取樣(Monte Carlos sampling)450和PVT探索(PVT exploration)460,它們分別是RL代理110、電路仿真器120、梯度模塊130、信任區域更新模塊140、隨機樣本產生器150和PVT條件管理器160的示例。
PVT探索460用於維護和更新條件池P,其中,條件池P作為PVT探索策略的一部分。最初,條件池可能只包含一個PVT條件,例如,設計者的輸入中指定的所有PVT條件中最差的(worst)PVT條件(即,根據先驗知識或經驗,針對類比電路最難滿足規範的條件)。該條件池可以逐漸地擴展至包括額外的PVT條件。每個PVT條件都有自己的獨立模型(independent model)。即,條件池中的每個PVT條件具有相應的RL代理410(其位於代理池中),以及,代理池中的每個RL代理410被訓練為對條件池中的不同PVT條件建模。多個RL代理410可以同時對同一信任區域中的同一組隨機樣本執行測量估計。在每次迭代中,梯度更新430基於特定於代理的損失函數(例如,MSE函數)更新每個RL代理410的權重,以及,信任區域方法440確定用於全部RL代理410的公共(common)信任區域。
在每次迭代中,蒙特卡洛斯取樣450為所有的/全部的(all)RL代理410在信任區域中產生一組隨機樣本。每個RL代理410針對每個隨機樣本計算測量估計值。平台400包括價值函數模塊470,其用於評估來自每個RL代理410的每個測量估計值的價值指標。對應於具有最大價值指標的測量估計值的樣本被選擇為候選尺寸。對於多個代理的情況,代理池中的每個RL(強化學習)代理410首先計算其最佳(best)候選尺寸。然後,在全部的最佳候選尺寸中選擇最差(worst)候選尺寸作為候選尺寸並將其發送到SPICE環境420。“最佳”和“最差”候選尺寸被分別選擇,以最大化和最小化該相應測量估計值的價值指標。SPICE環境420對該候選尺寸運行電路仿真以及仿真測量值用於更新RL代理410和信任區域。RL(強化學習)代理410和SPICE環境420之間的迭代過程繼續進行,直到找到滿足設計者的輸入中指定的所有PVT條件下的規範的最終的電路尺寸。
第5圖是根據本發明實施例的PVT探索過程500的流程示意圖。PVT探索過程500是一種漸進式策略。PVT探索過程500首先將搜索集中在單個PVT條件上;例如,最難的(most difficult)PVT條件。通過克服該最難的PVT條件,將更容易在其他PVT條件下找到電路尺寸。電路尺寸是一組分配;即,將尺寸調整值分配給相應的尺寸調整變量。一旦發現電路尺寸滿足規範,就會執行驗證以確認電路尺寸在所有其他PVT條件下也滿足規範。
參考第5圖,在步驟510處,PVT探索過程500開始針對第i個PVT條件(作為一種優選實施例,本發明以最差PVT條件進行示例說明)初始化第i個RL代理(其尚不滿足規範),其中,i是初始化為1的運行索引。在步驟520處,將第i個RL代理添加到代理池中並且將第i個最差PVT條件添加到條件池中。在步驟530處,在條件池中的(一個或多個)PVT條件下,代理池中的(一個或多個)RL代理在信任區域中執行搜索以識別候選尺寸。在步驟540處,電路仿真器對候選尺寸運行電路仿真。在步驟550處,如果針對條件池中的所有的(一個或多個)PVT條件沒有發現滿足規範的電路尺寸,則更新每個RL代理的權重和信任區域(步驟560),以及,過程500返回到步驟530,此時代理池中的所有RL代理在更新後的信任區域中開始另一次搜索。應當注意的是,虛線框590中的步驟530至步驟560表示由多個RL代理在多個PVT條件下執行的電路尺寸調整過程200(第2圖)的操作。
如果針對條件池中的所有PVT條件發現滿足規範的電路尺寸,則電路仿真器在所有其他的PVT條件下測試該電路尺寸(步驟570),即,不位於條件池中的所有PVT條件。在步驟580處,如果該測試表明所有PVT條件滿足規範,則該電路尺寸作為最終的電路尺寸進行輸出。在步驟580處,如果該測試表明並非所有的PVT條件都滿足規範,則過程500返回到步驟510(其中,索引i遞增1),以初始化下一個RL代理,其用於下一個未能滿足規範的最差PVT條件。過程500繼續,直到找到最終的電路尺寸。
第6圖是根據本發明實施例示出的PVT探索策略的示例。初始化並訓練第一RL(強化學習)代理,以在最差的PVT條件(例如,PVT3,這是九個PVT條件中最難滿足的PVT條件)下搜索候選尺寸。在第一RL(強化學習)代理在PVT3下識別出符合規範的候選尺寸後,電路仿真器會針對所有其他的PVT條件測試該候選尺寸。假設候選尺寸在PVT5、PVT6、PVT7和PVT9下不滿足規範,其中,PVT6是PVT5、PVT6、PVT7和PVT9中最難滿足的/最差的PVT條件,或稱為第二差的PVT條件。初始化並訓練第二RL(強化學習)代理,以在PVT6下搜索候選尺寸,與此同時,第一RL(強化學習)代理在PVT3下執行第二輪搜索。在第一RL(強化學習)代理和第二RL(強化學習)代理共同(jointly)識別出第二候選尺寸(其在PVT3和PVT6這兩者下均滿足規範)後,電路仿真器針對所有其他的PVT條件測試該第二候選尺寸。
假設第二候選尺寸僅在PVT9下不滿足規範。初始化並訓練第三RL(強化學習)代理,以在PVT9下搜索候選尺寸,同時,第一RL(強化學習)代理在PVT3下進行搜索以及第二RL(強化學習)代理在PVT6下進行搜索。在所有三個RL(強化學習)代理共同識別出在PVT3、PVT6和PVT9下滿足規範的第三候選尺寸後,電路仿真器針對所有其他PVT條件測試該第三個候選尺寸。假設第三候選尺寸在所有其他PVT條件下都滿足規範,則輸出第三候選尺寸作為類比電路尺寸調整問題的最終的電路尺寸解決方案。本發明實施例中,在識別候選尺寸的過程,通過逐步探索未通過測試/不滿足規範的PVT條件,並將不滿足規範的PVT條件中最差的PVT條件及相應的RL代理添加至測試/迭代過程,可以減少迭代次數並高效地執行迭代過程,從而能夠快速地找到最優解。
第7圖是根據本發明實施例示出的用於類比電路尺寸調整的方法700的流程示意圖。方法700可以由第8圖中的系統800執行。方法700開始於步驟710,系統接收指示類比電路的規範和一組設計參數的輸入。在步驟720處,系統迭代地搜索設計空間,直到找到滿足該規範和該設計參數的電路尺寸。迭代搜索包括以下的步驟730和740。在步驟730,神經網絡代理對在信任區域中隨機生成的每個樣本計算測量估計值,以識別優化的價值指標(或稱為最優/最高價值指標,即多個樣本對應的多個價值指標中的最高者)所對應的候選尺寸。該信任區域是設計空間的一部分。在步驟740,系統至少部分基於電路仿真器對候選尺寸的仿真測量值來計算對神經網絡代理的權重和信任區域的更新,以用於下一次迭代。
在一實施例中,在步驟730的價值指標是價值函數的輸出,其中,該價值函數應用神經網絡代理以候選尺寸作為輸入而生成的測量估計值。
在一實施例中,在神經網絡代理的初始化時,系統選擇初始候選尺寸,其用於優化電路仿真器對設計空間中的初始樣本生成的仿真測量值。系統初始化以該初始候選尺寸為中心的信任區域。該系統還初始化神經網絡代理,該代理是至少使用該初始候選尺寸和相應的仿真測量值進行訓練的。在一實施例中,在當前迭代中搜索的信任區域以在先前迭代中識別的候選尺寸為中心。
基於模型的RL框架100和400可以在一個或多個處理器上實現,這些處理器執行指令以執行框架100和400的方法。
第8圖是根據本發明實施例示出的系統800的示意圖。系統800包括用於執行結合第1圖至第7圖描述的操作的硬體電路。系統800包括處理硬體810。在一實施例中,處理硬體810可包括一個或多個處理器813,例如中央處理單元(central processing unit,CPU)、圖形處理單元(graphics processing unit,GPU)、數位處理單元(digital processing unit,DSP)、人工智能(artificial intelligence,AI)處理器,以及其他通用和/或專用處理電路。返回參考第1圖和第4圖,一個或多個處理器813可以執行存儲在記憶體820中的指令,以執行基於模型的RL框架100和/或基於模型的RL框架400的操作。處理硬體810也可以包括不可編程的固定功能硬體。
記憶體820耦接到處理硬體810。記憶體820可以包括動態隨機存取記憶體(dynamic random access memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)、閃存和其他非暫時性機器可讀存儲介質;例如,易失性或非易失性存儲裝置。記憶體820還可以包括存儲裝置,例如任意類型的固態或磁存儲裝置。在一實施例中,記憶體820可以存儲指令,當其由處理硬體810執行時,這些指令使處理硬體810執行上述類比電路尺寸調整操作,例如第5圖中的方法500和第7圖中的方法700。
系統800還可包括用戶介面(user interface)840,以從設計者處獲取信息。設計者可以經由用戶介面840提供輸入,以指示以下一項或多項:例如,要調整(tune)的電晶體尺寸、尺寸調整變量的範圍、電路拓撲、要從SPICE仿真器觀察的測量值以及用於每個PVT條件的規範。記憶體820可以存儲自動腳本,該腳本在由處理硬體810執行時構建神經網絡代理和神經網絡的超參數(hyper-parameters)。
在一些實施例中,系統800還可以包括網絡介面850,以連接到有線和/或無線網絡進而用於發送和/或接收語音、數位資料和/或媒體信號。應當理解,第8圖的實施例是為了說明的目的而被簡化的。額外的硬體組件可以被包括,本發明並不限於該示例。
第2圖、第5圖和第7圖的流程示意圖的操作已經參考第1圖、第4圖和第8圖的示例性實施例進行了描述。然而,應當理解,第2圖、第5圖和第7圖的流程示意圖的操作可以由除第1圖、第4圖和第8圖的實施例之外的實施例執行,以及,第1圖、第4圖和第8圖的實施例可以執行與參照流程討論的操作不同的操作。雖然第2圖、第5圖和第7圖的流程示意圖示出了由本發明的某些實施例執行的特定操作順序,但應當理解,這種順序是示例性的(例如,替代實施例可以以不同的順序執行操作,結合某些操作,重疊某些操作等)。
這裡已經描述了各種功能組件或塊。如本領域技術人員將理解的,功能塊將優選地通過電路(專用電路或通用電路,其在一個或多個處理器和編碼指令的控制下操作)來實現,其通常將包括電晶體,它們被配置為根據這裡描述的功能和操作來控制電路的操作。
在申請專利範圍中使用諸如“第一”,“第二”,“第三”等序數術語來修改申請專利要素,其本身並不表示一個申請專利要素相對於另一個申請專利要素的任何優先權、優先級或順序,或執行方法動作的時間順序,但僅用作標記,以使用序數詞來區分具有相同名稱的一個申請專利要素與具有相同名稱的另一個元素要素。
雖然已經對本發明實施例及其優點進行了詳細說明,但應當理解的係,在不脫離本發明的精神以及申請專利範圍所定義的範圍內,可以對本發明進行各種改變、替換和變更,例如,可以通過結合不同實施例的若干部分來得出新的實施例。所描述的實施例在所有方面僅用於說明的目的而並非用於限制本發明。本發明的保護範圍當視所附的申請專利範圍所界定者為准。所屬技術領域中具有通常知識者皆在不脫離本發明之精神以及範圍內做些許更動與潤飾。
100,400:基於模型的RL框架
110,410:RL(強化學習)代理
120:電路仿真器
130:梯度模塊
140:信任區域更新模塊
150:隨機樣本產生器
160:PVT條件管理器
200:電路尺寸調整過程
210,220,230,240,250,260,270,280:步驟
450:蒙特卡洛斯取樣
470:價值函數模塊
420:SPICE環境
460:PVT探索
430:梯度更新
440:信任區域方法
510,520,530,540,550,560,570,580,590:步驟
700:用於類比電路尺寸調整的方法
710,720,730,740:步驟
800:系統
810:處理硬體
813:處理器
840:用戶介面
850:網絡介面
820:記憶體
包括的附圖用以提供對本公開實施例的進一步理解,以及,附圖被併入並構成本公開實施例的一部分。附圖示出了本公開實施例的實施方式,並且與說明書一起用於解釋本公開實施例的原理。可以理解的是,附圖不一定按比例繪製,因為可以示出一些部件與實際實施中的尺寸不成比例以清楚地說明本公開實施例的概念。
第1圖是根據本發明實施例示出的用於類比電路尺寸調整的基於模型的RL框架(framework)。
第2圖是根據本發明實施例示出的電路尺寸調整過程的流程示意圖。
第3圖是根據本發明實施例示出的用於探索可行的電路尺寸的算法的示意圖。
第4圖是根據本發明實施例示出的基於模型的RL平台(platform)的示意圖。
第5圖是根據本發明實施例示出的PVT探索過程的流程示意圖。
第6圖是根據本發明實施例示出的PVT探索策略的示例。
第7圖是根據本發明實施例示出的一種用於類比電路尺寸調整的方法的流程示意圖。
第8圖是根據本發明實施例示出的一種系統的示意圖。
510,520,530,540,550,560,570,580,590:步驟
Claims (12)
- 一種用於類比電路尺寸調整之方法,包括: 接收指示類比電路的規範及多個設計參數的輸入;以及, 迭代搜索設計空間,直到找到滿足該規範和該設計參數的電路尺寸,其中,該迭代搜索進一步包括: 神經網絡代理針對在信任區域中隨機生成的多個樣本中的每一個計算測量估計值,以識別出最優價值指標對應的候選尺寸,其中,該信任區域是該設計空間的一部分;以及, 至少部分基於電路仿真器對該候選尺寸的仿真測量值計算對該神經網絡代理的權重和該信任區域的更新,以用於下一次迭代。
- 如請求項1之方法,其中,該方法還包括: 基於該電路仿真器對該設計空間中的初始樣本生成的仿真測量值,選擇初始候選尺寸; 初始化該信任區域以該初始候選尺寸為中心;以及, 初始化該神經網絡代理,其是至少使用該初始候選尺寸和相應的仿真測量值進行訓練的。
- 如請求項1之方法,其中,在當前迭代中搜索的該信任區域是以在前一次迭代中識別出的候選尺寸為中心的。
- 如請求項1之方法,其中,該設計參數包括多個工藝、電壓、溫度(PVT)條件,以及,該方法還包括: 在該多個PVT條件中的第一PVT條件下識別滿足該規範的電路尺寸; 該電路仿真器在該多個PVT條件除該第一PVT條件外的其它PVT條件下測試該滿足該規範的電路尺寸;以及, 逐步探索未通過該測試的PVT條件,直到找到滿足該規範和所有PVT條件的最終的電路尺寸。
- 如請求項4之方法,其中,該逐步探索還包括: 將未通過該測試的PVT條件中的第二PVT條件添加到條件池中,其中,該條件池最初包括該第一PVT條件; 將用於該第二PVT條件的第二神經網絡代理添加到代理池中,其中,該代理池最初包括用於該第一PVT條件的第一神經網絡代理; 該代理池中的神經網絡代理迭代搜索相同的信任區域,以在該條件池中的各PVT條件下獲得滿足該規範的更新後的電路尺寸;以及, 增大該代理池和該條件池以進行迭代搜索,直到發現該最終的電路尺寸滿足該規範和所有的PVT條件。
- 如請求項1之方法,其中,該電路尺寸是由一組約束和一組電路變量定義的約束滿足問題的解決方案,其中,每個電路變量對應於一組預定的尺寸調整值。
- 如請求項1之方法,其中,計算該更新還包括: 計算比率,以根據該信任區域中的仿真測量值估計該神經網絡代理在該信任區域中的準確性;以及, 根據該比率計算該信任區域的半徑的變化。
- 如請求項1之方法,其中,該神經網絡代理是多層神經網絡,其通過強化學習進行學習。
- 如請求項1之方法,其中,該價值指標是價值函數的輸出,該價值函數應用該神經網絡代理以該候選尺寸作為輸入而生成的該測量估計值。
- 如請求項1之方法,其中,該價值指標是價值函數的輸出,該價值函數評估歸一化測量值的總和。
- 如請求項5之方法,其中,該第一PVT條件為該多個PVT條件中最差的PVT條件,以及,該第二PVT條件為該未通過該測試的PVT條件中最差的PVT條件。
- 一種用於類比電路尺寸調整之裝置,包括: 至少一個處理器; 耦接到該至少一個處理器且用以存儲指令的記憶體,當這些指令被該至少一個處理器執行時,使該至少一個處理器執行如請求項1至11中任意一項所述之用於類比電路尺寸調整之方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063109890P | 2020-11-05 | 2020-11-05 | |
US63/109,890 | 2020-11-05 | ||
US17/495,489 US20220138570A1 (en) | 2020-11-05 | 2021-10-06 | Trust-Region Method with Deep Reinforcement Learning in Analog Design Space Exploration |
US17/495,489 | 2021-10-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202219812A TW202219812A (zh) | 2022-05-16 |
TWI765836B true TWI765836B (zh) | 2022-05-21 |
Family
ID=81362585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110140186A TWI765836B (zh) | 2020-11-05 | 2021-10-29 | 用於類比電路尺寸調整之方法及裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220138570A1 (zh) |
CN (1) | CN114444372A (zh) |
TW (1) | TWI765836B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257178A1 (en) * | 2004-05-14 | 2005-11-17 | Daems Walter Pol M | Method and apparatus for designing electronic circuits |
TWI470463B (zh) * | 2012-04-19 | 2015-01-21 | Ncku Res & Dev Foundation | 類比積體電路布局的平面設計方法 |
CN106776442A (zh) * | 2016-12-05 | 2017-05-31 | 天津大学 | Fpga晶体管尺寸调整方法 |
CN107480311A (zh) * | 2016-06-07 | 2017-12-15 | 北京同方微电子有限公司 | 一种快速预估模拟电路版图面积的***和方法 |
TWI635446B (zh) * | 2014-07-22 | 2018-09-11 | 英特爾股份有限公司 | 權重位移裝置、方法、系統以及機器可存取儲存媒體 |
-
2021
- 2021-10-06 US US17/495,489 patent/US20220138570A1/en active Pending
- 2021-10-29 TW TW110140186A patent/TWI765836B/zh active
- 2021-11-01 CN CN202111281446.2A patent/CN114444372A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257178A1 (en) * | 2004-05-14 | 2005-11-17 | Daems Walter Pol M | Method and apparatus for designing electronic circuits |
TWI470463B (zh) * | 2012-04-19 | 2015-01-21 | Ncku Res & Dev Foundation | 類比積體電路布局的平面設計方法 |
TWI635446B (zh) * | 2014-07-22 | 2018-09-11 | 英特爾股份有限公司 | 權重位移裝置、方法、系統以及機器可存取儲存媒體 |
CN107480311A (zh) * | 2016-06-07 | 2017-12-15 | 北京同方微电子有限公司 | 一种快速预估模拟电路版图面积的***和方法 |
CN106776442A (zh) * | 2016-12-05 | 2017-05-31 | 天津大学 | Fpga晶体管尺寸调整方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114444372A (zh) | 2022-05-06 |
TW202219812A (zh) | 2022-05-16 |
US20220138570A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102611938B1 (ko) | 신경망을 사용한 통합 회로 플로어 플랜 생성 | |
US11663125B2 (en) | Cache configuration performance estimation | |
JP5306122B2 (ja) | 集積回路設計中の製造の影響の高速シミュレーションを行なうための装置、方法及びコンピュータ・プログラム | |
Asl et al. | Optimo: A BIM-based multi-objective optimization tool utilizing visual programming for high performance building design | |
US11836641B2 (en) | Machine learning-based prediction of metrics at early-stage circuit design | |
US10915685B1 (en) | Circuit stage credit based approaches to static timing analysis of integrated circuits | |
US8479126B1 (en) | Parametric yield improvement flow incorporating sigma to target distance | |
US7139991B2 (en) | Automatic method and system for instantiating built-in-test (BIST) modules in ASIC memory designs | |
CN112001491A (zh) | 针对处理器确定神经网络架构的搜索方法和装置 | |
US10803218B1 (en) | Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems | |
US11989656B2 (en) | Search space exploration for deep learning | |
TWI765836B (zh) | 用於類比電路尺寸調整之方法及裝置 | |
US10878155B2 (en) | System and method for estimating leakage power of circuit design at early stage | |
KR20220032861A (ko) | 하드웨어에서의 성능을 고려한 뉴럴 아키텍처 서치 방법 빛 장치 | |
Stempkovskiy et al. | Fast and accurate back propagation method for reliability evaluation of logic circuits | |
CN117561502A (zh) | 一种确定失效原因的方法及装置 | |
JP4798505B2 (ja) | ディジタルシステムの設計システムおよびディジタルシステムの製造方法 | |
US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
Avis et al. | Polynomial size linear programs for problems in P | |
JP2011192156A (ja) | シミュレーション方法、シミュレーション装置、プログラム、及び記憶媒体 | |
Hussain et al. | Memory Compiler Performance Prediction using Recurrent Neural Network | |
CN117094275B (zh) | 芯片端口的布设方法、存储介质、电子设备及芯片 | |
US20240169135A1 (en) | Reinforcement learning (rl) based chip design optimization using trained graph convolutional networks (gcn) for ultra-fast cost function calculation | |
US20240193336A1 (en) | Automatic test pattern generation to increase coverage in detecting defects in analog circuits | |
US20240078366A1 (en) | Circuit design adjustments using redundant nodes |