TWI822551B - 積體電路設計最佳化的裝置及方法 - Google Patents

積體電路設計最佳化的裝置及方法 Download PDF

Info

Publication number
TWI822551B
TWI822551B TW112100899A TW112100899A TWI822551B TW I822551 B TWI822551 B TW I822551B TW 112100899 A TW112100899 A TW 112100899A TW 112100899 A TW112100899 A TW 112100899A TW I822551 B TWI822551 B TW I822551B
Authority
TW
Taiwan
Prior art keywords
analog
subsystem
description language
hdl
circuit
Prior art date
Application number
TW112100899A
Other languages
English (en)
Other versions
TW202336629A (zh
Inventor
呂宗哲
傅敬銘
張智賢
Original Assignee
台灣積體電路製造股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202336629A publication Critical patent/TW202336629A/zh
Application granted granted Critical
Publication of TWI822551B publication Critical patent/TWI822551B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

揭露用於對電路設計進行最佳化的方法及設備。在一個實施例中,所述方法包括:接收積體電路的電路設計;以及對積體電路的第一子系統的第一電路設計及積體電路的第二子系統的第二電路設計進行標識。第一子系統對多個數位可變訊號進行操作,且第二子系統對多個類比可變訊號進行操作。所述方法亦包括:基於第一電路設計合成第一硬體描述語言網路連線表;基於第二電路設計合成第二硬體描述語言網路連線表;以及使用以第一硬體描述語言網路連線表及第二硬體描述語言網路連線表二者作為輸入的單個基於硬體描述語言的模擬軟體來獲得積體電路的電路設計的行為。

Description

積體電路設計最佳化的裝置及方法
本公開的實施例是有關於一種積體電路設計最佳化的裝置及方法。
設計積體電路晶片通常需要數年才能生產出晶片並出售給大眾使用。當今的晶片常常包括系統晶片(system-on-chip,SOC),所述系統晶片包括一起相互作用的類比元件與數位元件二者,而此對於設計而言可為具有挑戰性的。設計過程的一個關鍵部分是使用各種模擬軟體(模擬器)模擬晶片的行為。在製作晶片之前,預先的模擬可對於晶片設計的概念提供證明(proof-of-concept)及預先確認。
根據本公開的一些實施例,提供一種用於對電路進行最佳化的方法。方法包括:接收積體電路的電路設計;以及對IC的第一子系統的第一電路設計IC的第二子系統的第二電路設計進行標識。第一子系統對多個數位可變訊號進行操作,且第二子系統對 多個類比可變訊號進行操作。方法亦包括基於第一電路設計合成第一HDL網路連線表;基於第二電路設計合成第二HDL網路連線表;以及使用以第一HDL網路連線表及第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得IC的電路設計的行為。
根據本公開的一些實施例,提供一種儲存用於IC設計工具的指令的非暫時性電腦可讀儲存媒體,當由電腦執行時使電腦實行用於對IC設計進行最佳化的方法。所述方法包括:接收積體電路的電路設計;以及對IC的第一子系統的第一電路設計及IC的第二子系統的第二電路設計進行標識。第一子系統對多個數位可變訊號進行操作,且第二子系統對多個類比可變訊號進行操作。方法亦包括基於第一電路設計合成第一HDL網路連線表;基於第二電路設計合成第二HDL網路連線表;以及使用以第一HDL網路連線表及所述第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得IC的電路設計的行為。
根據本公開的一些實施例,提供一種用於對IC設計進行最佳化的裝置。所述裝置包括一或多個處理器,一或多個處理器被配置成:接收包括數位子系統及類比子系統的IC的電路設計;合成用於數位子系統的第一HDL網路連線表;基於只有加、減、乘及除運算符號,合成用於所述類比子系統的第二HDL網路連線表;以及使用以第一HDL網路連線表及第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得IC的電路設計的行為。
100:資訊處理系統(IHS)
110:處理單元
112:輸入/輸出(I/O)元件
114:顯示器
116:廣域網路
120:中央處理單元(CPU)
122:記憶體
124:巨量儲存裝置
126:視訊配接器
128:輸入/輸出(I/O)介面
130:匯流排
140:網路介面
200:架構
210:設計模型
212:類比子系統
214:數位子系統
220:HDL模擬軟體
230:轉移
240:連接
300、1300、1400:方法
310、312、314、316、318、320、322、324、326、1310、1312、1320、1402、1404、1406、1408、1410:操作
500、700:類比電路
502:正弦波產生器
504:方波產生器
600、802、804、806、812、814:波形
602:電源電壓
604:輸出電壓
606、CLK(t):時脈訊號
710:電流槽
720:節點
800、810:模擬
902:差異曲線
1000:電路
AVDD(t):電源電壓/電壓
C:電容器
CLK(t):時脈訊號
EN:致能開關
I(t)、Ic(t)、Is(t):電流
L:電感器
R、RDC、RSW:電阻器
RT:等效電阻
VDD:電壓源/固定電源電壓
VDD_SENSE:內部電源區域
Vsine(t):輸出電壓/正弦波
藉由結合附圖閱讀以下詳細說明,會最佳地理解本揭露的實施例。應注意,根據行業中的標準慣例,各種特徵並非按比例繪製。事實上,為使論述清晰起見,可任意增大或減小各種特徵的尺寸。
圖1示出根據一些實施例的實例性資訊處理系統(information handling system,IHS)的方框圖。
圖2示出根據一些實施例的對混合模式系統設計進行模擬的架構的實例性方框圖。
圖3示出根據一些實施例的對電路設計進行最佳化的實例性方法的流程圖。
圖4示出根據一些實施例的包括對混合模式系統進行模擬的附加操作的圖3的流程圖。
圖5示出根據一些實施例的包括壓控振盪器(voltage controlled oscillator,VCO)的類比電路的實例性方框圖。
圖6示出根據一些實施例的類比電路的輸入及輸出的波形。
圖7示出根據一些實施例的包括電阻器-電感器-電容器(resistor-inductor-capacitor,RLC)電路的類比電路的實例性方框圖。
圖8示出根據一些實施例的圖7所示類比電路的各種訊號的實例性模擬。
圖9示出根據一些實施例的顯示硬體描述語言(hardware description language,HDL)模型所模擬的精確度的波形圖。
圖10示出根據一些實施例的包括功率阻抗量測(power impedance measurement,PIM)電路的實例性電路1000的方框圖。
圖11示出根據一些實施例的表格,所述表格示出圖10所示實例性電路的運作共同模擬(co-simulation)與HDL模擬的比較。
圖12示出根據一些實施例的對傳統模擬方法與所揭露技術進行比較的表格。
圖13示出根據一些實施例的對電路設計進行最佳化的另一實例性方法的流程圖。
圖14示出根據一些實施例的對電路設計進行最佳化的又一實例性方法的流程圖。
以下揭露內容提供用於實施所提供標的物的不同特徵的諸多不同實施例或實例。以下闡述元件及排列的具體實例以簡化本揭露。當然,該些僅為實例且不旨在進行限制。舉例而言,以下說明中將第一特徵形成於第二特徵之上或第二特徵上可包括其中第一特徵與第二特徵被形成為直接接觸的實施例,且亦可包括其中第一特徵與第二特徵之間可形成有附加特徵進而使得第一特徵與第二特徵可不直接接觸的實施例。另外,本揭露可能在各種實例中重複使用參考編號及/或字母。此種重複使用是出於簡潔及清晰的目的,而不是自身表示所論述的各種實施例及/或配置之間的關 係。
此外,為易於說明,本文中可能使用例如「位於…之下(beneath)」、「位於…下方(below)」、「下部的(lower)」、「位於…上方(above)」、「上部的(upper)」、「頂部的(top)」、「底部的(bottom)」及類似用語等空間相對性用語來闡述圖中所示的一個元件或特徵與另一(其他)元件或特徵的關係。所述空間相對性用語旨在除圖中所繪示的定向外亦囊括裝置在使用或操作中的不同定向。設備可具有其他定向(旋轉90度或處於其他定向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。
一般而言,由於積體電路(IC)不斷微縮以及處理效能的提高,近年來對系統晶片(SOC)的需求不斷增加。此種SOC系統通常包括混合模式子系統區塊(mixed-mode subsystem block),所述混合模式子系統區塊包括彼此通訊的類比子系統與數位子系統二者。為了利用模擬軟體來對該些混合模式區塊進行驗證,傳統的方法包括共同(協同)模擬或類比模擬(analog simulation)。共同模擬包括系統建模及/或設計分離的類比及數位設計區塊,其中類比部分以電晶體階層(例如,以積體電路為核心的模擬程式(simulation program with integrated circuit emphasis,SPICE)模擬)來編寫,且數位部分以硬體描述語言(HDL)(例如Verilog、VHDL及/或系統Verilog(SystemVerilog))編寫。此種共同模擬方法具有例如低效率及較長的模擬時間等若干缺點,原因是SPICE模擬常常需要花費很長時間,需要額外的認證或驗證來運作SPICE 及HDL模擬,且建立單獨的測試平台(testbench)來模擬兩個元件。使用類比模擬軟體僅包括以電晶體階層網路連線表(netlist)對類比部分及數位部分進行編寫。儘管此種類比模擬可帶來高精確度並減少對額外驗證的需求,但是效率以及模擬的時序相較於共同模擬方法會受到更大的影響。此外,類比模擬需要用於數位部分的邏輯閘階層(gate-level)HDL網路連線表,而此需要額外的工作單位及設計的時間,且可能無法實行高階層行為建模。
本揭露的實施例包括一種僅利用HDL階層網路連線表及基於HDL的模擬軟體對混合模式系統進行模擬及/或驗證的新穎的模擬方法及系統。類比行為建模可基於積分及(或)微分方程式,以使用數值積分或迭代形式的尤拉(Euler)方法在HDL階層中實施。實施例提供例如用於混合模式系統驗證的短模擬時間及有效驗證使用的優點,原因是僅需要使用基於HDL的模擬軟體,而此會降低驗證成本。其他優點包括需要較少的測試平台設置/準備工作,原因是僅需要設置HDL模擬軟體,且使用者能夠在早期開發階段中模擬高階建模,以快速進行概念證明的驗證。
圖1示出根據一些實施例的IHS 100的方框圖。IHS 100可用於模擬電路設計。IHS 100可為用於實施本文中論述的用於設計IC的任何或所有過程的電腦平台。IHS 100可包括處理單元110,例如桌上型電腦、工作站、筆記型電腦或針對特定應用訂製的專用單元。IHS 100可配備有顯示器114及一或多個輸入/輸出(input/output,I/O)元件112(例如滑鼠、鍵盤或印表機)。處理 單元110可包括連接至匯流排130的中央處理單元(central processing unit,CPU)120、記憶體122、巨量儲存裝置124、視訊配接器126及I/O介面128。
匯流排130可為任何類型的若干匯流排架構中的一或多者,包括記憶體匯流排或記憶體控制器、周邊匯流排或視訊匯流排。CPU 120可包括任何類型的電子資料處理器,且記憶體122可包括任何類型的系統記憶體,例如靜態隨機存取記憶體(static random access memory,SRAM)、動態隨機存取記憶體(dynamic random access memory,DRAM)或唯讀記憶體(read-only memory,ROM)。
巨量儲存裝置124可包括被配置成儲存資料、程式及其他資訊且使資料、程式及其他資訊可經由匯流排130進行存取的任何類型的儲存裝置。巨量儲存裝置124可包括例如硬碟驅動器、磁碟驅動器、光碟驅動器或類似驅動器中的一或多者。
視訊配接器126及I/O介面128提供將外部輸入及輸出裝置耦合至處理單元110的介面。如圖1所示,輸入及輸出裝置的實例包括耦合至視訊配接器126的顯示器114及耦合至I/O介面128的I/O元件112(例如滑鼠、鍵盤、印表機及類似元件)。其他裝置可耦合至處理單元110,且可利用附加或更少的介面卡。舉例而言,串列介面卡(未示出)可用於為印表機提供串列介面。處理單元110亦可包括網路介面140,所述網路介面140可為到區域網路(local area network,LAN)或廣域網路(wide area network, WAN)116的有線鏈路及/或無線鏈路。
應注意,IHS 100可包括其他元件/裝置。舉例而言,IHS 100可包括電源、電纜、主板、可移動儲存媒體、外殼及類似元件。儘管並未示出,但是該些其他元件/裝置被認為是IHS 100的一部分。
圖2示出根據一些實施例的對混合模式系統設計進行模擬的架構200的實例性方框圖。架構200包括設計模型210及HDL模擬軟體220。設計模型210可包括使用者希望進行模擬的電路設計。設計模型210可包括混合模型,所述混合模型包括類比子系統212及數位子系統214。依據使用者的設計,類比子系統212及數位子系統214可使用一或多個連接240彼此通訊。
在一些實施例中,類比子系統212及數位子系統214二者可以HDL進行編寫。類比子系統212可包括例如電流鏡、運算放大器(operational amplifier,op-amp)、壓控振盪器(VCO)、電阻器/電感器/電容器(RLC)元件等等。類比子系統212可使用利用數值積分及/或尤拉方法的數學方式進行建模,將在下面進一步描述。數位子系統214可包括標準單元(例如,標準靜態隨機存取記憶體(SRAM)單元、動態隨機存取記憶體(DRAM)單元)及邏輯單元(例如,反閘(NOT gate)、反及閘(NAND gate)等)。儘管本揭露描述各種類比子系統及數位子系統,但是實施例不限於此,且依據使用者的設計,其他類比及數位電路元件可包括於設計模型210中。
以HDL編寫的設計模型210可被轉移230至HDL模擬軟體220進行模擬。可使用IHS 100來實行模擬。舉例而言,HDL模擬軟體220可接收使用者的IC設計(例如,設計模型210)作為輸入,所述IC設計包括以HDL編寫的IC設計。HDL模擬軟體220可生成使用者可用來對設計模型210的功能進行驗證的各種輸出檔案及/或波形。因此,包括類比元件及數位元件二者的設計的混合模式模擬可被高效地且以低成本和高精確度進行模擬。
圖3示出根據一些實施例的對電路設計進行最佳化的實例性方法300的流程圖。舉例而言,方法300對以下進行描述:以HDL對類比子系統212進行建模,以及在HDL模擬軟體220中對基於HDL的設計模型210進行模擬。方法300可使用圖1所示IHS 100來實行,但是實施例不限於此。簡言之,方法300以利用HDL對類比子系統進行建模的操作310開始,並進行至利用基於HDL的類比子系統建模來對混合模式系統進行模擬的操作320。
以HDL對類比子系統進行建模(操作310)可包括若干更詳細的操作。舉例而言,操作310包括對類比子系統建模的狀態變數進行定義的操作312。狀態變數可包括例如電路的電流、電壓、溫度等。操作310亦可包括利用基於積分及微分的方程式對類比子系統進行描述的操作314。操作310可更包括操作316,操作316藉由使用數值方法對方程式進行擴展以將積分及(或)微分方程式轉變成只有包括加、減、乘及除的運算符號的方程式。然後,操作310亦可包括以HDL對擴展方程式進行編寫的操作318。
圖4示出根據一些實施例的包括操作320的對混合模式系統進行模擬的附加操作的圖3的流程圖。舉例而言,操作320可包括操作322,操作322在具有組合(或合併的)HDL邏輯閘階層的網路連線表的HDL模擬軟體中開始對混合模式進行模擬。組合HDL邏輯閘階層的網路連線表可包括用於類比子系統的HDL網路連線表及用於數位子系統的HDL網路連線表。操作320可包括操作324,操作324針對類比子系統使用t=t0、t0+△t、t0+2△t...的先前狀態變數來更新目前狀態變數,且針對數位子系統藉由時脈或輸入改變來更新目前狀態及/或結果。操作320可包括操作326,操作326是若滿足驗證條件(例如,模擬時間、使用者輸入、輸出結果、中斷點等),則結束模擬。因此,包括類比子系統及數位子系統二者的混合設計可使用HDL進行模擬,使得模擬精確、高效且更便宜。
圖5示出根據一些實施例的包括VCO的類比電路500的實例性方框圖。類比電路500是在操作320期間可以HDL進行變換(或轉譯或重寫或重建)的類比子系統(例如,類比子系統212)的實例。圖6示出根據一些實施例的類比電路500的輸入及輸出的波形600。儘管針對類比電路500描述了VCO,但是實施例不限於此,且類比電路500可包括包含數位控制器振盪器(digital controller oscillator,DCO)等的任何類比電路。
類比電路500可包括作為時間t的函數的電源電壓AVDD的輸入。正弦波產生器502可接收電源電壓AVDD(t)作為輸入, 且輸出包括正弦波形狀的輸出電壓的輸出電壓Vsine(t)。輸出電壓Vsine(t)可被輸入至方波產生器504,所述方波產生器504可輸出時脈訊號CLK(t)。波形600示出電源電壓ADVV(t)602、輸出電壓Vsine(t)604及時脈訊號CLK(t)606。如波形600所示,隨著電源電壓ADVV(t)602增大,輸出電壓Vsine(t)604的頻率增加,且時脈訊號CLK(t)606的頻率亦隨之增加。
使用類比電路用於產生時脈訊號CLK(t)的方程式如下。
V out (t)=sin(φ lin (t)+φ non-lin (t)) (1)
φ lin (t)=2πf center t (2)
Figure 112100899-A0305-02-0013-1
Figure 112100899-A0305-02-0013-2
其中V out (t)包括正弦波Vsine(t)的振盪波形,CLK(t)包括時脈訊號CLK(t)的振盪波形,φ lin (t)包括線性相位,f center 包括振盪波形的中心頻率,φ non-lin (t)包括非線性相位,K VCO 包括VCO(或DCO)增益(頻率/電壓),且V ctrl (t)(或AVDD(t))包括控制電壓。
對於方程式(3),積分可以重寫成如下所示的數值格式。當△t→0,
Figure 112100899-A0305-02-0013-3
φ non-lin (t)=φ non-lin (t-△t)+2πK VCO V ctrl (t)△t (6)
因此,方程式(3)中的積分可被重寫成及/或近似為等式 (6)中所示的數值格式。然後,類比電路500的輸入及輸出全部以及類比電路500本身的功能均可寫成方程式而不使用積分運算。
一旦類比電路500重新寫成數值格式,則類比電路500可以使用HDL進行建模。HDL中類比電路500的虛擬碼可如下所示:
Figure 112100899-A0305-02-0014-4
虛擬碼可為包括VCO的類比電路500的硬體表示式(或近似式)。上文的虛擬碼指示對於每個時間步長△t,可基於箭頭「←」左側的值寫入Vout、Vclk、Φnon-lin及Φlin的新值。舉例而言,Vout可基於方程式sin(Φnon-linlin)等進行編寫。因此,包括VCO的類比電路500可使用HDL程式碼在硬體中進行建模。
因此,類比電路500可使用方程式及積分的數值展開式以HDL程式碼進行編寫。且一旦合成了HDL程式碼,則可使用HDL模擬軟體(例如,HDL模擬軟體220)來對類比電路500進行模擬。
圖7示出根據一些實施例的包括RLC電路的類比電路 700的實例性方框圖。類比電路700是在操作320期間可以HDL進行變換(或轉譯或重寫或重建)的類比子系統(例如,類比子系統212)的實例。
類比電路700包括多個電路元件,所述多個電路元件包括電壓源VDD、電阻器R、電感器L、電容器C及電流槽710。電流槽710包括電阻器RDC、電阻器RSW及致能開關EN。流經電壓源VDD的電流是I(t),流經電容器C的電流是IC(t),自節點720(例如,連接電感器L、電容器C及電流槽710的節點)流出的電流是IS(t),且電流槽的等效電阻是RT。節點720處的電壓是AVDD(t),而其為電源電壓。
使用克希荷夫電壓定律(Kirchhoff’s Voltage Law,KVL)及克希荷夫電流定律(Kirchhoff’s Current Law,KCL),可獲得以下電流及電壓方程式以用於類比電路700:
Figure 112100899-A0305-02-0015-5
Figure 112100899-A0305-02-0015-6
Figure 112100899-A0305-02-0015-7
I S (t)=AVDD(t)/R T (10)
I C (t)=I(t)-I S (t) (11)其中,VDD是固定電源電壓。
然後,使用尤拉方法f(t)=f(t-△t)+△tf'(t),可以以下方程 式對類比電路700的行為進行建模:
Figure 112100899-A0305-02-0016-8
Figure 112100899-A0305-02-0016-9
其中AVDD(t-△t)及I(t-△t)可表示節點720處的電壓AVDD及「先前」狀態的電壓源VDD的電流I(t),且AVDD(t)及I(t)可表示「目前」狀態的電壓AVDD及電流I。如上所示,電流I(t)及電壓AVDD(t)可使用尤拉方法重寫。
一旦以使用尤拉方法的方程式對類比電路700進行重寫,則可以HDL對類比電路700進行建模。HDL中用於類比電路700的虛擬碼可為如下所示:
Figure 112100899-A0305-02-0016-10
虛擬碼可為包括RLC電路的類比電路700的硬體表示式(或近似式)。上面的虛擬碼指示對於每個時間步長△t,可基於箭頭「←」左側的值寫入RT、It=det t、AVDD、IS及IC的新值。舉例而言,RT可基於方程式[(RDC)-1+EN*(RSW)-1]-1等來寫入如此等等。 因此,包括RLC電路的類比電路700可使用HDL程式碼在硬體中建模。
因此,類比電路700可使用方程式及尤拉方法以HDL程式碼進行編寫。且一旦合成了HDL程式碼,則可使用HDL模擬軟體(例如,HDL模擬軟體220)來對類比電路700進行模擬。
圖8示出根據一些實施例的類比電路700的各種訊號的實例性模擬。實例性模擬800包括波形802及804,所述波形802及804分別包括使用HDL程式碼的電壓AVDD(t)及I(t)的模擬。CLK訊號的模擬被顯示為波形806,作為當時脈邊緣(clock edge)出現時的參考。
參照圖7所示類比電路700,模擬800包括波形802,所述波形802是使用HDL程式碼的電壓AVDD(t)的模擬,所述HDL程式碼已使用上述類比電路700的虛擬碼來編寫。模擬800亦包括波形812,所述波形812是使用SPICE模擬的電壓AVDD(t)的模擬。波形802與波形804實質上彼此重疊,示出使用HDL程式碼的模擬幾乎與使用SPICE的模擬一樣精確。類似地,模擬800包括波形804及波形814,所述波形804是使用HDL程式碼的電流I(t)的模擬,波形814是使用SPICE的電流I(t)的模擬。波形804與波形814實質上彼此重疊,原因是相較於SPICE模擬(波形814),使用HDL程式碼的模擬(波形804)非常精確且相似。模擬810包括模擬800的放大的(zoomed-in)一部分以作為參考。
圖9示出根據一些實施例的顯示HDL模型的模擬的精確 度的波形。差異曲線902示出使用基於HDL程式碼的類比電路700的模擬產生的波形802與使用基於SPICE的類比電路700的模擬產生的波形812之間的差異非常相似。在一些實施例中,波形802與使用SPICE模擬產生的波形812的精確度差異小於0.3%。此種精確度足以滿足想要在其設計中對類比電路進行模擬的設計需求。
圖10示出根據一些實施例的包括PIM電路的實例性電路1000的方框圖。實例性電路1000包括若干個類比電路區塊,例如感測VCO、邊緣取樣器(edge sampler)、數位控制延遲線(digital-controlled delay line,DCDL)、時脈DCO以及用於內部電源區域VDD-SENSE的電流槽及電源輸送網路。實例性電路1000亦包括若干個數位電路區塊,例如程式除法器、數位延遲電路、偽隨機二元序列(pseudorandom binary sequence,PRBS)電路、累加器、數位訊號處理(digital signal processing,DSP)電路、及閘(AND gate)及多工器。附加的類比及/或數位區塊可包含於實例性電路1000中。
圖11示出根據一些實施例的表格,所述表格示出實例性電路1000的運作共同模擬與HDL模擬的比較。傳統的模擬系統及方法可使用SPICE模擬或其他電晶體階層模擬來對類比電路區塊(或類比子系統)進行模擬,而此可能花費很長時間且需要巨量資源(例如計算能力及驗證)。即使使用其中使用SPICE僅對類比子系統進行模擬的共同模擬,模擬運作時間仍然非常慢。另一方 面,在一些實施例中,若類比子系統被轉換成數位格式,則類比子系統可以HDL進行編寫,使得HDL模擬軟體可對類比子系統進行模擬(如數位子系統般)。
如圖11所示,共同模擬的模擬長度是256 pts,而基於HDL的模擬是4892 pts。用語「pts」一般作為計算某一模擬負載的單位。共同模擬時間的驗證時間是35小時,而基於HDL的模擬僅需要6小時。共同模擬的正規化速度(normalized speed)(定義為模擬時間長度除以驗證的時間)為7.3 pts/小時,而基於HDL的模擬的正規化速度為815 pts/小時,較共同模擬時間快112倍。儘管在此處使用特定的數字,但是實施例不限於此,且依據電路設計及各種其他因素(如特定模擬軟體等),模擬長度、驗證時間及正規化速度可以更短或更長。
圖12示出根據一些實施例的對傳統模擬方法與所揭露技術進行比較的表格。顯示使用HDL對類比子系統及數位子系統二者建模以用於模擬的若干個優點。
首先,共同模擬的模擬時間長,原因是類比子系統必須以SPICE進行模擬。若只有進行類比模擬的模擬時間甚至會更長,原因是即使是數位子系統也一併使用SPICE進行模擬。另一方面,基於HDL的模擬的模擬時間相較之下較短。
第二,共同模擬需要使用多個模擬軟體驗證,原因是類比子系統可使用利用SPICE進行模擬的模擬軟體來模擬,且數位子系統可使用利用HDL進行模擬的模擬軟體來模擬。另一方面,僅 進行類比的模擬及基於HDL的模擬二者可能需要較少的模擬軟體驗證。
第三,僅進行類比模擬不利於例如概念證明的高階建模,原因是每一個邏輯閘及電路必須以電晶體階層建模。另一方面,共同模擬及基於HDL的模擬二者均允許高階建模。
第四,僅進行類比模擬時需要用於數位子系統的電晶體階層網路連線表,而共同模擬及基於HDL的模擬則不需要。此可減少合成用於模擬的設計所花費的時間及資源量。
第五,將設計微縮及對設計的功能進行模擬的能力是重要的。僅進行類比模擬方法並不利於進行大規模設計,原因是每個電晶體、電阻器、電容器等必須具有連接該些元件端子。相較之下,共同模擬方法只略佳一些,原因是此種方法仍然需要類比子系統精確完成所有的連接。另一方面,基於HDL的模擬可使得能夠對類比子系統及數位子系統二者的設計進行巨量的微縮,原因是邏輯閘階層之間的連接是由合成器自動完成的。
因此,基於HDL的模擬較共同模擬方法及僅類比模擬方法而言是較佳的。
圖13示出根據一些實施例的對電路設計進行最佳化的實例性方法1300的流程圖。簡言之,方法1300以以HDL對類比子系統進行建模的操作1310開始,並進行至利用基於HDL的類比子系統建模來對混合模式系統進行模擬的操作1320。操作1310可包括將電晶體階層網路連線表轉變或轉譯成HDL網路連線表直接 用於類比子系統的操作1312。若將類比子系統編寫成電晶體階層網路連線表並儲存於記憶體中,則可自動實行操作1312。處理器(例如,IHS 100)可自動接收電晶體階層網路連線表,並將所述電晶體階層網路連線表轉譯成HDL階層網路連線表。一旦類比子系統被轉換成HDL網路連線表,方法1300可進行至操作1320。操作1320可類似於圖3的操作320,因此為了清晰起見,不再加以贅述。
圖14示出根據一些實施例的對電路設計進行最佳化的實例性方法1400的流程圖。舉例而言,方法1400對以下進行描述:以HDL對類比子系統212進行建模,並在HDL模擬軟體220中對基於HDL的設計模型210進行模擬。方法1400可使用圖1所示IHS 100來實行,但是實施例不限於此。
簡言之,方法1400以接收IC的電路設計的操作1402開始。方法1400進行至操作1404,操作1404對IC的第一子系統的第一電路設計及IC的第二子系統的第二電路設計進行確認(標識)。第一子系統對多個數位可變訊號進行操作,且第二子系統對多個類比可變訊號進行操作。方法1400進行至操作1406,操作1406基於第一電路設計合成第一HDL網路連線表。方法1400進行至操作1408,操作1408基於第一電路設計合成第二HDL網路連線表。方法1400進行至操作1410,操作1410使用以第一HDL網路連線表及第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得IC的電路設計的行為。
操作1402包括接收IC的電路設計(例如,設計模型210)。電路設計可經由IHS 100或其他計算系統來提供。
操作1404包括將第一部分標識為類比子系統(例如,類比子系統212)並將第二部分標識為數位子系統(例如,數位子系統214)。類比子系統可包括多個類比元件,且數位子系統可包括多個數位元件,如圖10的實例性電路1000所示。類比子系統最初可以電晶體階層網路連線表進行編寫。在此種情況下,可使用一或多個處理器來產生HDL網路連線表。在一些實施例中,使用者可將包括導數及積分的類比子系統的行為轉譯成數值方程式及/或尤拉方法。將行為轉譯成HDL可包括類比子系統行為的近似值(或近似式)。
操作1406包括基於第一電路設計合成第一HDL網路連線表。第一HDL網路連線表可包括類比子系統的HDL模型。
操作1408包括基於第一電路設計合成第二HDL網路連線表。第二HDL網路連線表可包括數位子系統的HDL模型。
操作1410包括使用單個基於HDL的模擬軟體對第一HDL網路連線表及第二HDL網路連線表進行模擬。
在本揭露的一個實施例中,揭露一種用於對電路進行最佳化的方法。所述方法包括:接收積體電路的電路設計;以及對所述IC的第一子系統的第一電路設計及所述IC的第二子系統的第二電路設計進行標識。所述第一子系統對多個數位可變訊號進行操作,且所述第二子系統對多個類比可變訊號進行操作。所述方法 亦包括基於所述第一電路設計合成第一HDL網路連線表;基於所述第二電路設計合成第二HDL網路連線表;以及使用以所述第一HDL網路連線表及所述第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得所述IC的所述電路設計的行為。在一些實施例中,所述合成所述第二硬體描述語言網路連線表的步驟更包括:基於多個方程式對所述第二子系統進行描述,所述多個方程式中的每一者是所述多個類比可變訊號中的一或多個對應類比可變訊號的函數。在一些實施例中,所述合成所述第二硬體描述語言網路連線表的步驟更包括:對所述多個方程式中的包括微分方程式的第一方程式進行標識;以及將所述第一方程式的微分項中的每一者轉換成對應的數值微分項。在一些實施例中,所述合成所述第二硬體描述語言網路連線表的步驟更包括:對所述多個方程式中的包括積分方程式的第二方程式進行標識;以及將所述第二方程式的積分項中的每一者轉換成對應的數值積分項。在一些實施例中,所述獲得所述積體電路的所述電路設計的所述行為的步驟更包括:藉由對輸入至所述第二硬體描述語言網路連線表的多個時間變數中的每一者進行增加來分別更新所述多個類比可變訊號的目前狀態;以及基於輸入至所述第一硬體描述語言網路連線表的時脈訊號或輸入訊號中的至少一者,分別更新所述多個數位可變訊號的目前狀態。在一些實施例中,所述的方法更包括:基於所獲得的所述行為來對所述積體電路的所述電路設計進行驗證。在一些實施例中,所述第一子系統包括一或多個邏輯單元。在 一些實施例中,所述第二子系統包括以下中的至少一者:電流鏡、放大器、壓控振盪器或者一或多個電阻器-電感器-電容器元件。在一些實施例中,所述積體電路包括功率阻抗量測系統,其中所述第一子系統包括除法器、數位延遲、偽隨機二元序列電路、累加器及數位訊號處理電路,且所述第二子系統包括壓控振盪器、取樣器、數位控制延遲線、電流槽及數位控制器振盪器。
在本揭露的另一實施例中,揭露一種儲存用於IC設計工具的指令的非暫時性電腦可讀儲存媒體,當由電腦執行時使所述電腦實行用於對IC設計進行最佳化的方法。所述方法包括:接收積體電路的電路設計;以及對所述IC的第一子系統的第一電路設計及所述IC的第二子系統的第二電路設計進行標識。所述第一子系統對多個數位可變訊號進行操作,且所述第二子系統對多個類比可變訊號進行操作。所述方法亦包括基於所述第一電路設計合成第一HDL網路連線表;基於所述第二電路設計合成第二HDL網路連線表;以及使用以所述第一HDL網路連線表及所述第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得所述IC的所述電路設計的行為。在一些實施例中,所述方法更包括:對多個第二狀態變數進行標識以對數位電路進行建模;以及實行第二基於硬體描述語言的模擬以獲得所述數位電路的行為。在一些實施例中,所述實行所述第一基於硬體描述語言的模擬的步驟與所述實行所述第二基於硬體描述語言的模擬的步驟由單個模擬軟體同時實行。在一些實施例中,所述實行所述第一基於硬體 描述語言的模擬的步驟包括:藉由對輸入至所轉換的所述方程式的多個時間變數中的每一者進行增加來對所述多個第一狀態變數進行更新。在一些實施例中,所述方法更包括基於所轉換的所述方程式來構建用於所述類比電路的硬體描述語言網路連線表,其中將所述硬體描述語言網路連線表作為所述第一基於硬體描述語言的模擬的輸入。在一些實施例中,所述類比電路包括以下中的至少一者:電流鏡、放大器、壓控振盪器或者一或多個電阻器-電感器-電容器元件。
在本揭露的又一實施例中,揭露一種用於對IC設計進行最佳化的裝置。所述裝置包括一或多個處理器,所述一或多個處理器被配置成:接收包括數位子系統及類比子系統的IC的電路設計;合成用於所述數位子系統的第一HDL網路連線表;基於只有加、減、乘及除運算符號,合成用於所述類比子系統的第二HDL網路連線表;以及使用以所述第一HDL網路連線表及所述第二HDL網路連線表二者作為輸入的單個基於HDL的模擬軟體來獲得所述IC的所述電路設計的行為。在一些實施例中,所述一或多個處理器更被配置成:基於多個方程式對所述類比子系統進行描述,所述多個方程式中的每一者是多個類比可變訊號中的一或多個對應類比可變訊號的函數;對所述多個方程式中的包括微分方程式的第一方程式進行標識;以及將所述第一方程式的微分項中的每一者轉換成對應的數值微分項。在一些實施例中,所述一或多個處理器更被配置成:基於多個方程式對所述類比子系統進行描述,所述多 個方程式中的每一者是多個類比可變訊號中的一或多個對應類比可變訊號的函數;對所述多個方程式中的包括積分方程式的第二方程式進行標識;以及將所述第二方程式的積分項中的每一者轉換成對應的數值積分項。在一些實施例中,所述數位子系統包括一或多個邏輯單元。在一些實施例中,所述類比子系統包括以下中的至少一者:電流鏡、放大器、壓控振盪器或者一或多個電阻器-電感器-電容器元件。
本文中所使用的用語「約(about)」及「近似(approximately)」一般指所述值的加或減10%。舉例而言,約0.5將包括0.45及0.55,約10將包括9至11,約1000將包括900至1100。
前述內容概述了若干實施例的特徵,以使熟習此項技術者可更佳地理解本揭露的實施例。熟習此項技術者應理解,他們可容易地使用本揭露作為設計或修改其他製程及結構的基礎來施行與本文中所介紹的實施例相同的目的及/或達成與本文中所介紹的實施例相同的優點。熟習此項技術者亦應認識到,此種等效構造並不背離本揭露的精神及範圍,而且他們可在不背離本揭露的精神及範圍的條件下對其作出各種改變、取代及變更。
300:方法 310、312、314、316、318、320:操作

Claims (10)

  1. 一種電路設計最佳化的方法,包括:接收積體電路的電路設計;對所述積體電路的第一子系統的第一電路設計及所述積體電路的第二子系統的第二電路設計進行標識,其中所述第一子系統對多個數位可變訊號進行操作,且所述第二子系統對多個類比可變訊號進行操作;基於所述第一電路設計合成第一硬體描述語言網路連線表;基於所述第二電路設計合成第二硬體描述語言網路連線表;以及使用以所述第一硬體描述語言網路連線表及所述第二硬體描述語言網路連線表二者作為輸入的單個基於硬體描述語言的模擬軟體來獲得所述積體電路的所述電路設計的行為。
  2. 如請求項1所述的方法,其中所述合成所述第二硬體描述語言網路連線表的步驟更包括:基於多個方程式對所述第二子系統進行描述,所述多個方程式中的每一者是所述多個類比可變訊號中的一或多個對應類比可變訊號的函數。
  3. 如請求項2所述的方法,其中所述合成所述第二硬體描述語言網路連線表的步驟更包括:對所述多個方程式中的包括微分方程式的第一方程式進行標識;以及 將所述第一方程式的微分項中的每一者轉換成對應的數值微分項。
  4. 如請求項2所述的方法,其中所述合成所述第二硬體描述語言網路連線表的步驟更包括:對所述多個方程式中的包括積分方程式的第二方程式進行標識;以及將所述第二方程式的積分項中的每一者轉換成對應的數值積分項。
  5. 如請求項1所述的方法,其中所述獲得所述積體電路的所述電路設計的所述行為的步驟更包括:藉由對輸入至所述第二硬體描述語言網路連線表的多個時間變數中的每一者進行增加來分別更新所述多個類比可變訊號的目前狀態;以及基於輸入至所述第一硬體描述語言網路連線表的時脈訊號或輸入訊號中的至少一者,分別更新所述多個數位可變訊號的目前狀態。
  6. 一種儲存積體電路設計指令的裝置,當由電腦執行時使所述電腦執行對於積體電路設計進行最佳化的方法,所述方法包括:對多個第一狀態變數進行標識以對類比電路進行建模;利用管理所述類比電路的操作的所述多個第一狀態變數來構建多個基於積分/微分的方程式; 將所述多個基於積分/微分的方程式中的每一者轉換成實質上由加、減、乘及除運算符號組成的相應方程式;以及基於所轉換的所述方程式,實行第一基於硬體描述語言的模擬,以獲得所述類比電路的行為。
  7. 如請求項6所述的裝置,其中所述實行所述第一基於硬體描述語言的模擬的步驟包括:藉由對輸入至所轉換的所述方程式的多個時間變數中的每一者進行增加來對所述多個第一狀態變數進行更新。
  8. 如請求項6所述的裝置,所述方法更包括基於所轉換的所述方程式來構建用於所述類比電路的硬體描述語言網路連線表,其中將所述硬體描述語言網路連線表作為所述第一基於硬體描述語言的模擬的輸入。
  9. 一種用於積體電路設計最佳化的裝置,包括一或多個處理器,所述一或多個處理器被配置成:接收包括數位子系統及類比子系統的所述積體電路的電路設計;合成用於所述數位子系統的第一硬體描述語言網路連線表;基於只有加、減、乘及除運算符號,合成用於所述類比子系統的第二硬體描述語言網路連線表;以及使用以所述第一硬體描述語言網路連線表及所述第二硬體描述語言網路連線表二者作為輸入的單個基於硬體描述語言的模擬軟體來獲得所述積體電路的所述電路設計的行為。
  10. 如請求項9所述的裝置,其中所述一或多個處理器更被配置成:基於多個方程式對所述類比子系統進行描述,所述多個方程式中的每一者是多個類比可變訊號中的一或多個對應類比可變訊號的函數;對所述多個方程式中的包括微分方程式的第一方程式進行標識;以及將所述第一方程式的微分項中的每一者轉換成對應的數值微分項。
TW112100899A 2022-03-02 2023-01-09 積體電路設計最佳化的裝置及方法 TWI822551B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263315863P 2022-03-02 2022-03-02
US63/315,863 2022-03-02
US17/858,744 2022-07-06
US17/858,744 US20230281366A1 (en) 2022-03-02 2022-07-06 Apparatus and method of optimizing an integrtted circuit design

Publications (2)

Publication Number Publication Date
TW202336629A TW202336629A (zh) 2023-09-16
TWI822551B true TWI822551B (zh) 2023-11-11

Family

ID=87850609

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112100899A TWI822551B (zh) 2022-03-02 2023-01-09 積體電路設計最佳化的裝置及方法

Country Status (4)

Country Link
US (1) US20230281366A1 (zh)
JP (1) JP7538906B2 (zh)
CN (1) CN219872384U (zh)
TW (1) TWI822551B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117787160B (zh) * 2024-02-26 2024-05-14 上海芯联芯智能科技有限公司 一种生成数字电路的硬件描述语言的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202018547A (zh) * 2018-11-09 2020-05-16 南韓商三星電子股份有限公司 積體電路設計、及產生積體電路設計的方法及設計系統
TWI716115B (zh) * 2018-09-28 2021-01-11 台灣積體電路製造股份有限公司 積體電路設計方法、積體電路設計系統及非暫態電腦可讀取媒體
TW202107330A (zh) * 2019-04-22 2021-02-16 英商思睿邏輯國際半導體有限公司 執行模擬基礎物理設計規則以最佳化電路佈局
TW202113653A (zh) * 2019-07-18 2021-04-01 美商賽諾西斯公司 在跨積體電路晶片之隨機區域中實施光罩合成一致性

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181940A (ja) 1998-12-17 2000-06-30 Ricoh Co Ltd アナログ・デジタル混載論理シミュレーション方法
JP5219078B2 (ja) 2008-10-10 2013-06-26 学校法人 中央大学 アナログ回路の数値演算によるシミュレーション方法、およびスイッチング電源回路の数値演算によるシミュレーション方法
WO2012169000A1 (ja) 2011-06-06 2012-12-13 富士通株式会社 アナログ回路シミュレータおよびアナログ回路検証方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI716115B (zh) * 2018-09-28 2021-01-11 台灣積體電路製造股份有限公司 積體電路設計方法、積體電路設計系統及非暫態電腦可讀取媒體
TW202018547A (zh) * 2018-11-09 2020-05-16 南韓商三星電子股份有限公司 積體電路設計、及產生積體電路設計的方法及設計系統
TW202107330A (zh) * 2019-04-22 2021-02-16 英商思睿邏輯國際半導體有限公司 執行模擬基礎物理設計規則以最佳化電路佈局
TW202113653A (zh) * 2019-07-18 2021-04-01 美商賽諾西斯公司 在跨積體電路晶片之隨機區域中實施光罩合成一致性

Also Published As

Publication number Publication date
US20230281366A1 (en) 2023-09-07
JP7538906B2 (ja) 2024-08-22
CN219872384U (zh) 2023-10-20
TW202336629A (zh) 2023-09-16
JP2023129282A (ja) 2023-09-14

Similar Documents

Publication Publication Date Title
US11960811B2 (en) Partitioning in post-layout circuit simulation
Riesgo et al. Design methodologies based on hardware description languages
US10789406B1 (en) Characterizing electronic component parameters including on-chip variations and moments
US11238202B2 (en) Verifying glitches in reset path using formal verification and simulation
TWI822551B (zh) 積體電路設計最佳化的裝置及方法
US20040025136A1 (en) Method for designing a custom ASIC library
US6345378B1 (en) Synthesis shell generation and use in ASIC design
CN111581899A (zh) 良率参数文件和门级网表的生成方法以及芯片的开发流程
US20030188267A1 (en) Circuit and method for modeling I/O
Srivastava et al. Interdependent latch setup/hold time characterization via Euler-Newton curve tracing on state-transition equations
US6449578B1 (en) Method and apparatus for determining the RC delays of a network of an integrated circuit
Chupilko et al. Survey of Open-source Flows for Digital Hardware Design
US11556676B2 (en) Scalable formal security verification of circuit designs
US20120304135A1 (en) Method and apparatus for precision tunable macro-model power analysis
Crossley BAG: A designer-oriented framework for the development of AMS circuit generators
US11080450B1 (en) Calculating inductance based on a netlist
US20240143878A1 (en) Delay calculation with pattern matching for static timing analysis
US11663384B1 (en) Timing modeling of multi-stage cells using both behavioral and structural models
TWI759817B (zh) 系統單晶片級電源完整性模擬系統及其方法
US20240028803A1 (en) Parameterized high level hierarchical modeling, and associated methods
US20230016865A1 (en) Diagnosis of inconsistent constraints in a power intent for an integrated circuit design
Bekiaris et al. A standard-cell library suite for deep-deep sub-micron CMOS technologies
Mellor et al. CharLib: An Open Source Standard Cell Library Characterizer
Riesgo et al. Design process based on hardware description languages
Rahman et al. Standard Cell Library Characterization Flow Using Open Source Tools with Google+ SkyWater 130nm PDK