TW202230184A - 電子電路之設計規格之自動化翻譯 - Google Patents

電子電路之設計規格之自動化翻譯 Download PDF

Info

Publication number
TW202230184A
TW202230184A TW110144432A TW110144432A TW202230184A TW 202230184 A TW202230184 A TW 202230184A TW 110144432 A TW110144432 A TW 110144432A TW 110144432 A TW110144432 A TW 110144432A TW 202230184 A TW202230184 A TW 202230184A
Authority
TW
Taiwan
Prior art keywords
parse tree
token
sentence
action
target sentence
Prior art date
Application number
TW110144432A
Other languages
English (en)
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 TW202230184A publication Critical patent/TW202230184A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31704Design for test; Design verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Geometry (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Machine Translation (AREA)

Abstract

實施例係關於一種用於翻譯一電子電路之設計規格之系統。在一項實施例中,剖析該設計規格以識別一或多個句子。該系統自該一或多個經識別句子提取語意概念。另外,針對該一或多個經識別句子之各句子,該系統判定該句子是否可翻譯。若一目標句子可翻譯,則該系統針對該目標句子產生一剖析樹,且針對該經產生剖析樹產生一機率移位縮減排程。使用該經產生之機率移位縮減排程及視需要該經產生剖析樹,該系統產生用於驗證在該目標句子中指定之條件之程式碼。在一些實施例中,為產生該程式碼,該系統使用該經產生之機率移位縮減排程剖析該目標句子。

Description

電子電路之設計規格之自動化翻譯
本發明係關於電子電路之模擬及仿真,且更明確言之係關於自以一自然語言撰寫之一設計規格自動產生程式碼以模擬或仿真電子電路。
基於斷言(Assertion)之驗證係用於判定一電子電路之一設計是否符合一規格且幫助在設計程序期間識別錯誤之一驗證技術。此等斷言可為複雜的且難以撰寫,因為驗證工程師將一自然語言規格人工翻譯為可編譯及自動檢查之一正規語言(諸如SystemVerilog)。在生產率及時間方面,人工翻譯程序可增加硬體設計及驗證週期之顯著成本,有時多達硬體設計成本之50%。
揭示用於將一智慧財產權(IP)區塊(例如,經定義電路設計)規格(例如,以英語撰寫)翻譯為SystemVerilog斷言之例示性程序及系統。在一些實施例中,接收一電子電路之一設計之規格。一例示性系統剖析該規格以識別一或多個句子,各句子指定待滿足之該電子電路之該設計之一條件。該系統自該一或多個經識別句子提取語意概念。另外,針對該一或多個經識別句子之各句子,該系統判定該句子是否可翻譯。若一目標句子可翻譯,則該系統針對該目標句子產生一剖析樹,且針對該經產生剖析樹產生一機率移位縮減排程。使用該經產生之機率移位縮減排程及視需要該經產生剖析樹,該系統產生用於驗證在該目標句子中指定之該條件之程式碼。在一些實施例中,為了產生該程式碼,該系統使用該經產生之機率移位縮減排程剖析該目標句子。
相關申請案本申請案主張於2020年11月30日申請之美國臨時申請案第63/119,523號之權利,該案之全文以引用的方式併入。
本發明之態樣係關於將電路設計規格自一自然語言翻譯為一硬體描述或一硬體驗證語言。
揭示利用機器學習(ML)及自然語言處理(NLP)來自動合成驗證項之一系統及程序。所揭示之系統及程序自動剖析規格文件中之自然語言敘述以提取在機器翻譯流程中有意義之資料表示。接著,所揭示系統自經提取資料產生以一目標語言(諸如SystemVerilog斷言(SVA))之語法正確且語意準確之翻譯。
例如,圖1繪示根據一項實施例之將來自一設計規格之句子翻譯成一硬體驗證語言(諸如SVA)。在圖1中所展示之實例中,將以一自然語言(在此情況中,英語)撰寫之一第一句子「IRESP remains stable when IVALID is asserted and IREADY is LOW」翻譯為「( ivalid && ! iready ) |=> $stable ( iresp )」。類似地,將一第二句子「IREQ is only permitted to change from HIGH to LOW when IACK is HIGH」翻譯為「$fell ( ireq ) |-> iack」。
本發明之優點包含但不限於減少產生用於模擬或仿真電子電路之程式碼之時間,及降低用於模擬或仿真電子電路之程式碼中之錯誤率。例如,藉由使用NLP及ML模型,所揭示系統可對設計規格內之句子、片語及符記跨度進行分類且建立一文件資料庫。此外,藉由使用ML模型來剖析設計規格及判定針對自設計規格提取之各符記或符記跨度採取什麼行動,揭示系統可產生用於驗證一電子電路之設計之程式碼。可藉由使用一回饋機制來改良模型之準確度以使使用者能夠識別錯誤翻譯,提供對錯誤翻譯之校正,且基於由使用者提供之回饋再訓練ML模型。 組態概述
實施例係關於一種用於翻譯一電子電路之設計規格之系統。在一項實施例中,剖析設計規格以識別一或多個句子。系統自一或多個經識別句子提取語意概念。另外,針對一或多個經識別句子之各句子,系統判定該句子是否可翻譯。若一目標句子可翻譯,則系統針對該目標句子產生一剖析樹,且針對經產生剖析樹產生一機率移位縮減排程。使用經產生之機率移位縮減排程及視需要經產生剖析樹,系統產生用於驗證在目標句子中指定之條件之程式碼。在一些實施例中,為了產生程式碼,系統使用經產生之機率移位縮減排程剖析目標句子。
在一項實施例中,當剖析規格時,系統產生儲存自經接收規格提取之資訊之一規格文件資料庫。
在一項實施例中,當判定一句子是否可翻譯時,系統應用一組弱學習器。各弱學習器接收自句子提取之一組符記作為輸入且輸出二進位標籤。此外,系統基於該組弱學習器之各者之二進位標籤應用二元分類器。
在一項實施例中,當自一或多個經識別句子提取語意概念時,系統應用一經訓練模型。該經訓練模型接收一或多個經識別句子中之字詞之字詞嵌入作為輸入。經訓練模型經組態以偵測具有語意意義之符記序列。
在一項實施例中,當針對目標句子產生一剖析樹時,系統將目標句子中之符記分組成具有語意意義之一或多個片語,且將目標句子中之經分組符記編碼成一語法剖析樹。在一項實施例中,來自一或多個片語之一片語包括各自具有語意意義之多個子片語。
在一項實施例中,當針對一目標句子產生一剖析樹時,系統識別剖析樹中之一或多個概念片語且用一替換符記替換該一或多個經識別概念片語。
在一項實施例中,使用一遞迴神經網路對目標句子中之符記進行分組。在一項實施例中,遞迴神經網路包括一層樹LSTM (長短期記憶)節點。
在一項實施例中,當針對經產生剖析樹產生一機率移位縮減排程時,系統建立用於遍歷剖析樹之一指標,該指標經組態以回應於針對至少一個步驟遍歷剖析樹而建立一新指標。在一項實施例中,該新指標係基於剖析樹之一遍歷之一當前狀態來建立。在一項實施例中,使用至少一神經網路層來產生機率移位縮減排程。在一項實施例中,指標機率性地判定對目標句子之一符記執行一移位動作抑或一縮減動作。
在一項實施例中,當產生用於驗證在目標句子中指定之條件之程式碼時,系統自剖析樹擷取一符記且藉由應用機率移位縮減排程來判定一動作。若經判定動作係一縮減動作,則系統判定符記是否為一替換符記。若符記係一替換符記,則系統用自一或多個經識別句子提取之一語意概念替換符記。替代地,若符記並非一替換符記,則系統將符記添加至程式碼。另外,若經判定動作係一移位動作,則系統自剖析樹擷取一新符記,且藉由應用機率移位縮減排程來判定一新動作。替代地,若動作係一終止動作,則系統將一分號附加至程式碼。 設計規格翻譯系統
圖2繪示根據一項實施例之一設計規格翻譯系統200之一方塊圖。設計規格翻譯系統200包含一文件資料庫產生器210、一文件資料庫215、一命令句(imperative sentence)偵測器220、一語意概念偵測器230、一剖析樹產生器240及一翻譯器250。在各項實施例中,設計規格翻譯系統200包含更少或額外組件。在一些實施例中,設計規格翻譯系統200亦包含不同組件。在一些實施例中,設計規格翻譯系統200係使用圖9之電腦系統900或圖8之主機系統來實施。在一些實施例中,設計規格翻譯系統200係使用各自實施設計規格翻譯系統200之一或多個模組之多個運算系統來實施。
文件資料庫產生器210剖析含有一電路之設計規格之一文件,自文件提取句子,且將句子儲存於文件資料庫215中。在一些實施例中,文件資料庫用作整個設計規格翻譯系統200之一主資料儲存器及一知識資料儲存器。在其他實施例中,設計規格翻譯系統200針對所處理之各文件建立一新文件資料庫。替代地,設計規格翻譯系統200可維持一全域資料庫以用作用於訓練由設計規格翻譯系統200使用之各種模型之一知識資料儲存器,且產生用於儲存特定於文件之資訊以用於翻譯文件之一文件特定文件資料庫。
在一些實施例中,文件資料庫215包含儲存關於一或多個文件之一般資訊之一文件表。例如,文件表儲存一文件識別(文件ID)、關於文件之所有權或著作權之資訊、關於文件之建立之時間資訊(例如,關於文件何時被建立之資訊),及關於文件之修改之時間資訊(例如,關於文件何時最後一次被修改之資訊)。在各項實施例中,文件表包含更少或額外欄位或欄。在一些實施例中,文件表亦包含不同欄位或欄。
另外,文件資料庫215可包含儲存關於一文件之一或多個區段之資訊之一區段表。例如,區段表儲存一區段識別(區段ID)、與區段相關聯之文件之一文件識別、關於區段起始之處之文件內之一頁號的資訊、關於區段結束之處之文件內之一頁號的資訊,及區段之一標題。在各項實施例中,區段表包含更少或額外欄位或欄。在一些實施例中,區段表亦包含不同欄位或欄。
此外,文件資料庫215可包含儲存關於一文件中之一或多個句子之資訊之一句子表。例如,句子表儲存一句子識別(句子ID)、句子之一文字、句子之來源之一識別、自其提取句子之區段之一識別、關於句子在文件內之位置之資訊(例如,頁號及頁面內之句子編號)、關於句子之後設資料,及關於對句子進行之修改之資訊(例如,句子是否已被修改、修改之一作者及修改之一時間戳記)。
在一些實施例中,文件資料庫產生器210剖析一文件中之自然語言敘述以識別該文件內之句子,且分析經識別句子以填入文件資料庫215。例如,文件資料庫產生器對各經識別句子執行文字提取、句子偵測、符記化、詞性標註、命名實體標註及關鍵片語辨識。
命令句偵測器(ISD) 220將句子分類為可翻譯抑或不可翻譯。在一些實施例中,針對在一文件中識別之各句子,ISD 220對句子應用一經訓練二元分類器且判定句子是否可翻譯。在一些實施例中,ISD 220判定指示句子可翻譯之一可能性之一評分。此外,ISD 220比較評分與一臨限值以將句子分類為可翻譯或不可翻譯。
在一些實施例中,ISD 220對一組弱學習器應用一隨機森林二元分類器。在一些實施例中,弱學習器接收一組有序符記作為輸入且輸出二進位標籤(例如,to_be_translated或not_to_be_translated)。各弱學習器可使用一或多種技術(諸如正規表式或基於規則之程序)來基於詞性標註選擇一句子之二進位標籤。此外,在一些實施例中,由弱學習器輸出之二進位標籤作為輸入提供至二元分類器以判定句子是否可翻譯。
圖3繪示根據一項實施例之用於訓練二元分類器以用於判定一句子是否可翻譯的一程序之一流程圖。為了訓練二元分類器,ISD 220接收310一組經分類句子。在一些實施例中,由ISD 220在訓練程序期間接收之句子之各者具有指示該句子是否可翻譯之一標籤。接著,ISD 220將經接收句子分割320成一訓練集及一驗證集。ISD 220使用訓練集訓練二元分類器,且使用驗證集驗證二元分類器之準確度。明確言之,ISD 220使用訓練集訓練330一組原子弱學習器,且基於原子弱學習器之輸出及/或訓練集中之句子來訓練335二元分類器。此外,ISD 220將驗證模型中之句子提供350至在步驟330及335訓練之分類器,且判定分類器之一準確度。若分類器之準確度低於一經設定臨限值,則ISD 220相應地調諧360分類器之超參數。替代地,若分類器之準確度高於經設定臨限值,則ISD結束訓練程序。
語意概念偵測器(SCD) 230偵測對應於語意概念之一目標句子中之符記序列。例如,SCD 230識別變數名稱、變數語意(諸如時鐘及休止符)、暫存器、位元向量、位元欄位、布林(Boolean)邏輯及時間行為(例如,隨時間自一個值轉變為另一值)。
SCD 230可使用一多層卷積(convolutional)神經網路以用於偵測符記跨度及將一標籤指派給經偵測之符記跨度。在一些實施例中,為了訓練SCD模型,使用來自一訓練集之句子以及在訓練集中之句子之句子預處理期間產生之資訊。例如,對訓練集中之句子執行之句子預處理包含符記化、詞性標註、組塊及選區剖析。另外,藉由建立包含以目標語言(諸如SystemVerilog)之一組關鍵字及運算子之一組全域標籤來訓練SCD模型。
在一些實施例中,SCD 230額外地使用一或多個基於規則之常式來用一對應標籤標註一句子中之經偵測符記跨度。所使用之規則可包含使用正規表式及詞性標註之啟發式組合。例如,SCD 230可藉由識別使用大寫字母撰寫之字詞(例如,CLOCK名稱或SIGNAL名稱)來偵測對應於變數名稱之符記跨度。在另一實例中,SCD 230偵測在整個文件中重複多次之符記跨度。在又一實例中,SCD 230接收由一使用者提供之客製規則且應用使用者定義之規則以偵測對應於一或多個標籤之符記跨度。
剖析樹產生器240自一目標句子產生一剖析樹以將該句子從一自然語言翻譯為一目標語言。在一些實施例中,剖析樹(或語法樹)係根據一些上下文無關文法表示一字串(例如,句子)之語法結構的一有序、有根樹。剖析樹產生器240使用目標句子作為一導引以使用移位縮減操作產生一剖析排程以用於將句子從自然語言翻譯為目標語言。
在一些實施例中,剖析樹產生器240針對一目標句子產生一第一剖析樹。在一些實施例中,當句子之自然語言不具有一正規文法時,第一剖析樹係一近似剖析樹。在一些實施例中,第一剖析樹係使用一第一經訓練模型(例如,使用一深度神經網路實施之一產生器網路)建立之一選區樹。例如,剖析樹產生器240使用一機率剖析器,諸如具有一層樹LSTM (長短期記憶)節點以編碼一語法剖析樹之結構之一遞迴神經網路,該語法剖析樹將一句子中之符記分組成具有語意意義且可遞迴地由子片語組成之片語。如本文中所使用,一選區樹係對應於選區或片語結構化之文法(諸如Chomsky文法)之一剖析樹。在一些實施例中,選區樹包含被標記為非終端類別之文法之內部節點。此外,選區樹可包含由終端類別標記之葉節點。
在一些實施例中,剖析樹產生器240包含建立一指標狀態以遍歷按一指定順序(例如,堆疊順序)編碼之剖析樹之一第二模型(例如,一指標網路)。在給定遍歷之當前狀態之情況下,指標狀態在樹遍歷之各步驟產生一新狀態。此針對剖析樹編碼一移位縮減排程。在一些實施例中,在給定來自一選區樹之一符記字串之情況下,指標網路判定下一動作係一縮減動作之一機率。
在一些實施例中,使用來自一訓練資料集中之句子之選區樹來訓練兩個或更多個模型以建立剖析樹之一聯合編碼及機率性地偵測移位以及縮減動作之一遍歷。即,剖析樹產生器240可使用針對一給定句子產生編碼處理一句子之符記組之順序之一剖析樹的一第一模型(例如,一產生器網路)。此外,剖析樹產生器240使用一第二模型(例如,一指標網路),該第二模型接收由第一模型產生之剖析樹,且產生一移位及縮減指令序列以按剖析樹所指定之順序處理句子之符記組。
在一些實施例中,剖析樹產生器240對選區樹進行後處理以用一特殊符記(例如,「OOV」)替換一組符記跨度。在一些實施例中,剖析樹產生器240額外地添加特殊符記(諸如句首(SOS)符記及句末(EOS)符記)。例如,剖析樹產生器240用特殊符記替換對應於經保留關鍵字或方言片語之符記跨度。在一些實施例中,後處理係使用選區樹之一後序遍歷來執行且導致一經增強選區樹。經增強選區樹增加該樹及指標將能夠以增加的準確度表示片語及子片語之邊界之機率。
圖4繪示根據一項實施例之經處理以產生一經增強選區樹420之一選區樹410。選區樹410對應於句子「AWID must remain stable when AWVALID is asserted and AWREADY is LOW」。選區樹410包含用「(S」標記來標記之一組子片語。例如,選區樹具有以符記「AWID」起始之一第一子片語415A、以符記「when」起始之一第二子片語415B、以符記「and」起始之一第三子片語415C、以符記「AWVALID」起始之一第四子片語415D及以符記「AWREADY」起始之一第五子片語415E。
剖析樹產生器240藉由用一替換符記「OOV」替換來自選區樹410之一組符記來產生經增強選區樹420。明確言之,剖析樹產生器240用替換符記「OOV」替換對應於信號名稱之符記「AWID」、「AWVALID」及「AWREADY」。此外,剖析樹產生器240用替換符記「OOV」替換對應於[[Q: how would you classify these tokens? Are these SVA concepts?]]之符記「stable」、「asserted」及「LOW」。在一些實施例中,剖析樹產生器240額外地使用不同標記或標註來標記句子中之子片語之各者。例如,在圖4之經增強剖析樹420中,第一子片語425A係用「(S」標記來標記,第二子片語425B係用「(S1」標記來標記,第三子片語425C係用「(S2」標記來標記,第四子片語425D係用「(S3」標記來標記,且第五子片語425E係用「(S4」標記來標記。
翻譯器250以鎖步方式遍歷移位縮減排程及剖析樹兩者,且在各符記處使用經預測之移位縮減動作以產生以目標語言之一句子之一翻譯。在一些實施例中,翻譯器250接收一經增強選區樹(例如,由樹產生器240產生),且將經增強選區樹轉換成提供至機率移位縮減剖析器之一序列符記。機率移位縮減剖析器產生由指標狀態表示為等效於一移位縮減動作堆疊之一隱式自下而上遍歷的一序列移位縮減動作(一移位縮減排程)。此外,機率移位縮減剖析器產生一序列經翻譯關鍵字、特殊符記(諸如「OOV」符號)及序列結束標記。接著,翻譯器藉由使用該序列移位縮減動作及該序列經翻譯關鍵字、特殊符記及序列結束標記剖析目標句子來翻譯目標句子。在一些實施例中,在翻譯目標句子時,翻譯器250藉由追蹤樹中之上代及子選區節點來記錄每一符記之移位動作。此外,翻譯器250記錄最後產生之特殊符記。
圖5繪示根據一項實施例之用於將一句子翻譯為一目標語言的一程序之一流程圖。翻譯器250自剖析樹產生器240接收510一剖析樹。在一些實施例中,剖析樹係一經增強選區樹。翻譯器250基於剖析樹自句子擷取520下一符記。翻譯器250將經擷取符記輸入至一機率剖析器以用於判定採取之下一動作。在一些實施例中,機率剖析器在以下三個動作之一者之間進行選擇:一移位動作、一縮減動作及一終止動作。
若經判定動作係一移位動作,則程序循環回至步驟520。在一些實施例中,一移位動作使輸入字串(即,如由剖析樹指定之符記序列)前進一個符記。在一些實施例中,翻譯器250保持執行移位動作,直至機率剖析器將一縮減動作判定為下一動作(例如,直至機率剖析器判定一縮減動作之機率大於一臨限值)。在一些實施例中,用於比較下一動作係一縮減動作之臨限值係在一訓練階段期間判定之一經學習臨限值。在一些實施例中,翻譯器250可基於儲存於一字典中之一或多個片語來置換臨限值。即,若一符記序列匹配儲存於字典中之一符記序列,則即使下一動作係一縮減動作之機率低於臨限值,翻譯器250仍可判定下一動作係一縮減動作。例如,翻譯器250可識別一符記序列「must rise」匹配儲存於字典中之一符記序列,且可誘發插入一符記$rose之一縮減動作,即使下一動作係一縮減動作之機率低於經學習臨限值。
替代地,若經判定動作係一縮減動作,則翻譯器250判定符記是否為一替換符記(諸如「OOV」符記)。若符記係一替換符記,則翻譯器250用來自語意概念資料庫之一語意概念替換該替換符記。在一些實施例中,基於替換符記在剖析樹內之位置來選擇用以替換該替換符記之語意概念。在一些實施例中,使用組一替換規則來將語意概念翻譯為目標語言。若符記並非一替換符記,則翻譯器250將符記附加560至翻譯。
在一些實施例中,翻譯器250繼續執行移位及縮減動作,直至已消耗所有符記。在一些實施例中,當已消耗所有符記時,機率剖析器將一終止動作判定為下一動作。一旦機率剖析器將終止動作判定為下一動作,翻譯器便將一程式碼結束符記(諸如一分號)附加580至翻譯。 翻譯演算法
圖6繪示根據一項實施例之用於翻譯一電子電路之一設計之一規格的一程序之一流程圖。設計規格翻譯系統210接收610一電子電路之設計之一規格。設計規格可以許多格式之一者接收,諸如純文字格式(TXT)、一豐富文字格式(RTF)、一MICROSOFT WORD格式(DOC或DOCX)、一開放文件格式(ODF)、一可攜式文件格式(PDF)等。在一些實施例中,以一自然語言(諸如英語)接收設計規格。在一些實施例中,設計規格翻譯系統210判定是否以一組受支援自然語言之一者來撰寫設計規格。替代地,設計規格翻譯系統210可判定在設計規格中使用之一自然語言,且可使用一自然語言翻譯器將設計規格自一種自然語言翻譯為另一自然語言(例如,自一非英語語言翻譯為英語)。
文件資料庫產生器210剖析620設計規格且填入文件資料庫215。文件資料庫產生器210剖析設計規格以識別設計規格內之一或多個區段,且填入文件資料庫215之區段表以添加對應於經識別區段之各者之條目。此外,文件資料庫產生器210剖析設計規格以識別設計規格內或在設計規格中識別之區段之各者內的一或多個句子。文件資料庫產生器210填入文件資料庫215之句子表以添加對應於經識別句子之各者之條目。
針對設計規格中之各經識別句子,ISD 220判定630該句子是否可翻譯為目標語言。在一些實施例中,ISD 220判定句子是否為一命令句。ISD 220對一組弱學習器使用將一目標句子分類為可翻譯抑或不可翻譯之一隨機森林二元分類器。
針對已被分類為可翻譯之各經識別句子,剖析樹產生器240針對目標句子產生640一剖析樹。在一些實施例中,剖析樹係一英語語言剖析(ELP)樹。在一些實施例中,剖析樹係一選區樹。
此外,剖析樹產生器240針對經產生剖析樹產生650一機率移位縮減(PSR)排程。在一些實施例中,PSR排程係藉由建立用於遍歷剖析樹之一指標來產生。指標經組態以機率性地判定是否對一目標句子之一符記執行一移位或一縮減動作。指標亦經組態以在剖析樹之遍歷之各步驟建立一新指標。在一些實施例中,PSR排程係使用一或多個經訓練模型產生。例如,PSR排程係使用至少一經訓練神經網路產生。
另外,針對設計文件中之各句子,SCD 230提取670語意概念且將經提取之語意概念儲存於一語意概念資料庫中。在一些實施例中,為了自一目標句子提取語意概念,SCD 230將一經訓練模型應用於目標句子。經訓練模型可接收目標句子中之字詞之字詞嵌入作為輸入。接著,經訓練模型經組態以識別具有語意意義之目標句子內之符記序列。
基於剖析樹、PSR排程及/或語意概念資料庫,翻譯器250將可翻譯句子之各者翻譯成目標語言。例如,翻譯器250基於句子之剖析樹、自句子之剖析樹產生之PSR排程及語意概念資料庫產生680用於編碼一目標句子之程式碼。
在一些實施例中,為了翻譯一目標句子,翻譯器250自對應於目標句子之剖析樹擷取一符記。接著,翻譯器250藉由應用機率移位縮減排程來判定一動作。若經判定動作係一縮減動作,則翻譯器250判定符記是否為一特殊符記(諸如一替換符記)。若符記係一替換符記,則翻譯器250用儲存於語意概念資料庫中之一語意概念替換符記。替代地,若符記並非一替換符記,則翻譯器250將符記添加至程式碼。
此外,若經判定動作係一移位動作,則翻譯器250自剖析樹擷取一新符記且藉由應用PSR排程來判定一新動作。此外,若經判定動作係一終止動作,則翻譯器附加一程式碼結束符記(諸如一分號)。 EDA設計流程之概述
圖7繪示在設計、驗證及製作一製品(諸如一積體電路)期間使用以變換及驗證表示積體電路之設計資料及指令的一組例示性程序700。此等程序之各者可作為多個模組或操作結構化及啟用。術語「EDA」表示術語「電子設計自動化」。此等程序以用由一設計者供應之資訊建立一產品理念710開始,該資訊經變換以產生使用一組EDA程序712之一製品。當設計完成時,對設計進行成品出廠驗證734,此係將積體電路之原圖(例如,幾何圖案)發送至一製作設施以製造遮罩組之時,接著使用該遮罩組來製造積體電路。在成品出廠驗證之後,製作736一半導體晶粒且執行封裝及組裝程序738以產生成品積體電路740。
一電路或電子結構之規格可在從低階電晶體材料佈局至高階描述語言之範圍內。使用諸如VHDL、Verilog、SystemVerilog、SystemC、MyHDL或OpenVera之一硬體描述語言(「HDL」),可將一高階抽象用於設計電路及系統。可將HDL描述變換為一邏輯級暫存器傳送級(「RTL」)描述、一閘級描述、一佈局級描述或一遮罩級描述。各較低抽象階(其係不太抽象描述)將更有用的細節(例如,包含描述之模組之更多細節)添加至設計描述中。較低抽象階(其等係不太抽象描述)可藉由一電腦產生、自一設計程式庫導出或由另一設計自動化程序建立。用於指定更詳細描述之在一較低抽象語言階之一規格語言的一實例係SPICE,其用於具有許多類比組件之電路之詳細描述。啟用在各抽象階之描述以供該層之對應工具(例如,一形式驗證工具)使用。一設計程序可使用圖7中所描繪之一序列。所描述之程序可由EDA產品(或工具)啟用。
在系統設計714期間,指定待製造之一積體電路之功能性。可針對所要特性(諸如電力消耗、效能、區域(實體及/或碼行)及成本降低等)來最佳化設計。在此階段,可發生將設計分割成不同類型之模組或組件。
在邏輯設計及功能驗證716期間,以一或多種描述語言指定電路中之模組或組件,且檢查規格之功能準確度。例如,可驗證電路之組件以產生匹配所設計之電路或系統之規格之要求的輸出。功能驗證可使用模擬器及其他程式(諸如測試平台(testbench)產生器、靜態HDL檢查器及形式驗證器)。在一些實施例中,使用被稱為「仿真器」或「原型設計系統」之組件之特殊系統來加速功能驗證。
在測試之合成及設計718期間,將HDL程式碼變換為一接線對照表。在一些實施例中,一接線對照表可為一圖形結構,其中圖形結構之邊緣表示一電路之組件且其中圖形結構之節點表示組件如何互連。HDL程式碼及接線對照表兩者皆為可由一EDA產品使用以驗證積體電路在製造完成後根據經指定設計執行之階層式製品。可針對一目標半導體製造技術最佳化接線對照表。另外,可測試成品積體電路以驗證積體電路滿足規格之要求。
在接線對照表驗證720期間,針對遵守時序約束及符合HDL程式碼而檢查接線對照表。在設計規劃722期間,可針對時序及頂層佈線建構及分析積體電路之一總體平面圖。
在佈局或實體實施724期間,發生實體放置(諸如電晶體或電容器之電路組件的定位)及佈線(由多個導體連接電路組件),且可執行自一程式庫選擇胞元以啟用特定邏輯功能。如本文中所使用,術語「胞元」可指定提供布林邏輯功能(例如,AND、OR、NOT、XOR)或一儲存功能(諸如一正反器或鎖存器)之一組電晶體、其他組件及互連件。如本文中所使用,一電路「區塊」可指代兩個或更多個胞元。一胞元及一電路區塊兩者可被稱為一模組或組件且皆作為實體結構及在模擬中啟用。針對選定胞元(基於「標準胞元」)指定參數(諸如大小)且使該等參數可在一資料庫中存取以供EDA產品使用。
在分析及提取726期間,可在佈局層級驗證電路功能,此允許細化佈局設計。在實體驗證728期間,檢查佈局設計以確保製造約束(諸如DRC約束、電氣約束、微影約束)係正確的且電路功能匹配HDL設計規格。在解析度增強730期間,變換佈局之幾何結構以改良製造電路設計之方式。
在成品出廠驗證期間,產生(若適當,則在應用微影增強之後)待用於生產微影遮罩之資料。在遮罩資料準備732期間,將「成品出廠驗證」資料用於產生微影遮罩,使用該等微影遮罩來產生成品積體電路。
一電腦系統(諸如圖9之電腦系統900,或圖8之主機系統807)之一儲存子系統可用於儲存由本文中所描述之一些或所有EDA產品以及用於開發程式庫之胞元及用於使用程式庫之實體及邏輯設計之產品所使用的程式及資料結構。 仿真環境
圖8描繪一例示性仿真環境800之一圖。一仿真環境800可經組態以驗證電路設計之功能性。仿真環境800可包含一主機系統807 (例如,作為一EDA系統之部分之一電腦)及一仿真系統802 (例如,一組可程式化裝置,諸如場可程式化閘陣列(FPGA)或處理器)。主機系統藉由使用一編譯器810結構化仿真系統以仿真一電路設計來產生資料及資訊。待仿真之一電路設計亦被稱為一待測設計(「DUT」),其中將來自仿真之資料及資訊用於驗證DUT之功能性。
主機系統807可包含一或多個處理器。在其中主機系統包含多個處理器之實施例中,在本文中描述為由主機系統執行之功能可分配在該多個處理器間。主機系統807可包含用以變換以表示一DUT之一描述語言撰寫之規格及產生用於結構化仿真系統802以仿真該DUT之資料(例如,二進位資料)及資訊的一編譯器810。編譯器810可變換、改變、重新結構化DUT、將新功能添加至DUT及/或控制DUT之時序。
主機系統807及仿真系統802使用由一仿真連接攜載之信號來交換資料及資訊。連接可為但不限於一或多個電纜,諸如具有與建議標準232 (RS232)或通用串列匯流排(USB)協定相容之接針結構之纜線。連接可為一有線通信媒體或網路,諸如一區域網路或一廣域網路,諸如網際網路。連接可為使用一無線協定(諸如BLUETOOTH或IEEE 802.11)之一無線通信媒體或具有一或多個存取點之一網路。主機系統807及仿真系統802可透過一第三裝置(諸如一網路伺服器)交換資料及資訊。
仿真系統802包含多個FPGA (或其他模組),諸如FPGA 804 1及804 2以及至804 N之額外FPGA。各FPGA可包含一或多個FPGA介面,FPGA透過該一或多個FPGA介面連接至其他FPGA (及潛在地其他仿真組件)以使FPGA交換信號。一FPGA介面可被稱為一輸入/輸出接針或一FPGA墊。雖然一仿真器可包含FPGA,但仿真器之實施例可包含其他類型之邏輯區塊以代替FPGA或連同FPGA一起用於仿真DUT。例如,仿真系統802可包含客製FPGA、用於仿真或原型設計之專用ASIC、記憶體及輸入/輸出裝置。
一可程式化裝置可包含一可程式化邏輯區塊陣列及可使可程式化邏輯區塊能夠根據HDL程式碼中之描述互連之一互連階層。可程式化邏輯區塊之各者可實現複雜的組合功能或啟用諸如AND及XOR邏輯區塊之邏輯閘。在一些實施例中,邏輯區塊亦可包含可為簡單鎖存器、正反器或其他記憶體區塊之記憶體元件/裝置。取決於不同邏輯區塊之間的互連件之長度,信號可在不同時間到達邏輯區塊之輸入端子且因此可暫時儲存於記憶體元件/裝置中。
FPGA 804 1至804 N可放置至一或多個板812 1及812 2以及至812 M之額外板上。多個板可放置至一仿真單元814 1中。一仿真單元內之板可使用仿真單元之背板或任何其他類型之連接件來連接。另外,多個仿真單元(例如,814 1及814 2至814 K)可由纜線或任何其他構件彼此連接以形成一個多仿真單元系統。
針對待仿真之一DUT,主機系統807將一或多個位元檔案傳輸至仿真系統802。位元檔案可指定DUT之一描述且可進一步指定由主機系統807運用跡線及注入邏輯、分割區至仿真器之FPGA之映射以及設計約束建立之DUT的分割區。使用位元檔案,仿真器結構化FPGA以執行DUT之功能。在一些實施例中,仿真器之一或多個FPGA可具有內建於FPGA之矽中之跡線及注入邏輯。在此一實施例中,FPGA可未由主機系統結構化以仿真跡線及注入邏輯。
主機系統807接收待仿真之一DUT之一描述。在一些實施例中,DUT描述係以一描述語言(例如,一暫存器傳送語言(RTL))。在一些實施例中,DUT描述在接線對照表層級檔案或接線對照表層級檔案及HDL檔案之一混合中。若DUT描述之部分或整個DUT描述係以一HDL,則主機系統可合成DUT描述以使用DUT描述建立一閘級接線對照表。一主機系統可使用DUT之接線對照表來將DUT分割成多個分割區,其中分割區之一或多者包含跡線及注入邏輯。跡線及注入邏輯追蹤經由一FPGA之介面交換之介面信號。另外,跡線及注入邏輯可將經追蹤之介面信號注入至FPGA之邏輯中。主機系統將各分割區映射至仿真器之一FPGA。在一些實施例中,跡線及注入邏輯包含於用於一群組FPGA之選擇分割區中。跡線及注入邏輯可內建於一仿真器之FPGA之一或多者中。主機系統可合成待映射至FPGA中之多工器。多工器可由跡線及注入邏輯使用以將介面信號注入至DUT邏輯中。
主機系統建立描述DUT之各分割區及分割區至FPGA之映射的位元檔案。針對其中包含跡線及注入邏輯之分割區,位元檔案亦描述所包含之邏輯。位元檔案可包含位置及路線資訊及設計約束。主機系統儲存描述哪些FPGA將仿真DUT之各組件(例如,各組件映射至哪些FPGA)之位元檔案及資訊。
在請求時,主機系統將位元檔案傳輸至仿真器。主機系統發信號通知仿真器起始DUT之仿真。在DUT之仿真期間或在仿真結束時,主機系統透過仿真連接自仿真器接收仿真結果。仿真結果係由仿真器在DUT之仿真期間產生之資料及資訊,其包含已由各FPGA之跡線及注入邏輯追蹤之介面信號及介面信號狀態。主機系統可儲存仿真結果及/或將仿真結果傳輸至另一處理系統。
在DUT之仿真之後,一電路設計者可請求對DUT之一組件進行除錯。若作出此一請求,則電路設計者可指定用以除錯之仿真之一時段。主機系統使用經儲存資訊識別哪些FPGA正在仿真組件。主機系統擷取與該時段相關聯且由各經識別FPGA之跡線及注入邏輯追蹤的經儲存介面信號。主機系統發信號通知仿真器再仿真經識別FPGA。主機系統將經擷取之介面信號傳輸至仿真器以在經指定時段內再仿真組件。各經識別FPGA之跡線及注入邏輯將其自主機系統接收之各自介面信號注入至映射至FPGA之DUT之邏輯中。在對一FPGA進行多次再仿真的情況下,合併結果產生一完整除錯視圖。
主機系統自仿真系統接收由經識別FPGA之邏輯在組件之再仿真期間追蹤之信號。主機系統儲存自仿真器接收之信號。在再仿真期間追蹤之信號可具有比初始仿真期間之取樣率高之一取樣率。例如,在初始仿真中,一經追蹤信號可包含每X毫秒保存之組件之一狀態。然而,在再仿真中,經追蹤信號可包含每Y毫秒保存之一狀態,其中Y小於X。若電路設計者請求觀看在再仿真期間追蹤之一信號之一波形,則主機系統可擷取經儲存信號且顯示信號之一標繪圖。例如,主機系統可產生信號之一波形。之後,電路設計者可請求在一不同時段內再仿真相同組件或再仿真另一組件。
一主機系統807及/或編譯器810可包含子系統,諸如但不限於一設計合成器子系統、一映射子系統、一運行時間子系統、一結果子系統、一除錯子系統、一波形子系統及一儲存子系統。子系統可經結構化及啟用為個別或多個模組或兩個或更多個子系統可結構化為一模組。此等子系統一起結構化仿真器且監測仿真結果。
設計合成器子系統將表示一DUT 805之HDL變換成閘級邏輯。針對待仿真之一DUT,設計合成器子系統接收DUT之一描述。若DUT之描述完全或部分以HDL (例如,RTL或其他抽象階),則設計合成器子系統合成DUT之HDL以依據閘級邏輯形成具有DUT之一描述的一閘級接線對照表。
映射子系統分割DUT且將分割區映射至仿真器FPGA中。映射子系統使用DUT之接線對照表將閘級處之一DUT分割成若干分割區。針對各分割區,映射子系統擷取跡線及注入邏輯之一閘級描述且將邏輯添加至分割區。如上文所描述,包含於一分割區中之跡線及注入邏輯用於追蹤經由分割區所映射至之一FPGA之介面交換的信號(追蹤介面信號)。可在分割之前將跡線及注入邏輯添加至DUT。例如,可在合成DUT之HDL之前或之後藉由設計合成器子系統添加跡線及注入邏輯。
除包含跡線及注入邏輯之外,映射子系統亦可在一分割區中包含額外追蹤邏輯以追蹤未由跡線及注入追蹤之特定DUT組件之狀態。映射子系統可在分割之前在DUT中或在分割之後在分割區中包含額外追蹤邏輯。設計合成器子系統可在合成HDL描述之前在DUT之一HDL描述中包含額外追蹤邏輯。
映射子系統將DUT之各分割區映射至仿真器之一FPGA。對於分割及映射,映射子系統使用設計規則、設計約束(例如,時序或邏輯約束)及關於仿真器之資訊。針對DUT之組件,映射子系統將描述哪些FPGA將仿真各組件之資訊儲存於儲存子系統中。
使用分割及映射,映射子系統產生描述經產生分割區及邏輯至仿真器之各FPGA之映射的一或多個位元檔案。位元檔案可包含額外資訊,諸如DUT之約束以及FPGA之間的連接及各FPGA內之連接的佈線資訊。映射子系統可針對DUT之各分割區產生一位元檔案且可將該位元檔案儲存於儲存子系統中。在從一電路設計者請求時,映射子系統將位元檔案傳輸至仿真器,且仿真器可使用位元檔案結構化FPGA以仿真DUT。
若仿真器包含具有跡線及注入邏輯之專用ASIC,則映射子系統可產生將專用ASIC連接至DUT之一特定結構。在一些實施例中,映射子系統可保存經追蹤/經注入之信號之資訊且其中該資訊係儲存於專用ASIC上。
運行時間子系統控制由仿真器執行之仿真。運行時間子系統可引起仿真器起始或停止執行一仿真。另外,運行時間子系統可將輸入信號及資料提供至仿真器。輸入信號可透過連接直接提供至仿真器或透過其他輸入信號裝置間接提供至仿真器。例如,主機系統可控制一輸入信號裝置以將輸入信號提供至仿真器。例如,輸入信號裝置可為一測試板(直接或透過纜線)、信號產生器、另一仿真器或另一主機系統。
結果子系統處理由仿真器產生之仿真結果。在仿真期間及/或在完成仿真之後,結果子系統自仿真器接收在仿真期間產生之仿真結果。仿真結果包含在仿真期間追蹤之信號。明確言之,仿真結果包含由用各FPGA仿真之跡線及注入邏輯追蹤之介面信號且可包含由包含於DUT中之額外邏輯追蹤之信號。各經追蹤信號可跨越仿真之多個循環。一經追蹤信號包含多個狀態且各狀態與仿真之一時間相關聯。結果子系統將經追蹤信號儲存於儲存子系統中。針對各經儲存信號,結果子系統可儲存指示哪一FPGA產生經追蹤信號之資訊。
除錯子系統容許電路設計者對DUT組件進行除錯。在仿真器已仿真一DUT且結果子系統已接收在仿真期間由跡線及注入邏輯追蹤之介面信號之後,一電路設計者可請求藉由在一特定時段內再仿真DUT之一組件來對該組件進行除錯。在對一組件進行除錯之一請求中,電路設計者識別組件且指示用以除錯之仿真之一時段。電路設計者之請求可包含指示追蹤信號之邏輯應保存經除錯組件之狀態之頻率的一取樣率。
除錯子系統使用由映射子系統儲存於儲存子系統中之資訊來識別正在仿真組件之仿真器之一或多個FPGA。針對各經識別FPGA,除錯子系統自儲存子系統擷取在由電路設計者指示之時段期間由FPGA之跡線及注入邏輯追蹤的介面信號。例如,除錯子系統擷取由跡線及注入邏輯追蹤之與時段相關聯的狀態。
除錯子系統將經擷取之介面信號傳輸至仿真器。除錯子系統指示除錯子系統使用經識別FPGA且針對各經識別FPGA之跡線及注入邏輯將其各自經追蹤信號注入至FPGA之邏輯中,以在所請求之時段內再仿真組件。除錯子系統可進一步將由電路設計者提供之取樣率傳輸至仿真器使得追蹤邏輯以適當時間間隔追蹤狀態。
為了對組件進行除錯,仿真器可使用組件已映射至之FPGA。另外,組件之再仿真可在由電路設計者指定之任何時間點執行。
針對一經識別FPGA,除錯子系統可將指令傳輸至仿真器以載入具有經識別FPGA之相同組態之多個仿真器FPGA。另外,除錯子系統發信號通知仿真器並行使用多個FPGA。來自多個FPGA之各FPGA與介面信號之一不同時間窗一起使用以在一較短時間量內產生一較大時間窗。例如,經識別FPGA可需要一小時或更久來使用一定量之循環。然而,若多個FPGA具有經識別FPGA之相同資料及結構且此等FPGA之各者運行循環之一子集,則仿真器可需要幾分鐘以使FPGA共同使用所有循環。
一電路設計者可識別用以再仿真之DUT信號之一階層或一清單。為實現此,除錯子系統判定仿真信號之階層或清單所需之FPGA,擷取必要的介面信號,且將經擷取之介面信號傳輸至仿真器以進行再仿真。因此,一電路設計者可識別用以除錯/再仿真之DUT之任何元件(例如,組件、裝置或信號)。
波形子系統使用經追蹤信號產生波形。若一電路設計者請求觀看在一仿真運行期間追蹤之一信號之一波形,則主機系統自儲存子系統擷取信號。波形子系統顯示信號之一標繪圖。對於一或多個信號,當自仿真器接收信號時,波形子系統可自動產生信號之標繪圖。 電腦機器架構
圖9繪示一電腦系統900之一例示性機器,可在該機器內執行用於引起該機器執行本文中所論述之方法論之任一或多者的一指令集。在替代實施方案中,機器可連接(例如,網路連結)至一LAN、一內部網路、一外部網路及/或網際網路中之其他機器。機器可在用戶端-伺服器網路環境中以一伺服器或一用戶端機器之身份操作,在一同級間(或分佈式)網路環境中作為一同級機器,或在一雲端運算基礎設施或環境中作為一伺服器或一用戶端機器。
機器可為一個人電腦(PC)、一平板PC、一機上盒(STB)、一個人數位助理(PDA)、一蜂巢式電話、一網路設備、一伺服器、一網路路由器、一交換機或橋接器,或能夠執行指定待由該機器採取之動作之一指令集(循序或以其他方式)的任何機器。此外,雖然繪示一單一機器,但術語「機器」亦應被視為包含個別或聯合執行一(或多個)指令集以執行本文中所論述之方法論之任一或多者的任何機器集合。
例示性電腦系統900包含一處理裝置902、一主記憶體904 (例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM),諸如同步DRAM (SDRAM))、一靜態記憶體906 (例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等)及一資料儲存裝置918,其等經由一匯流排930彼此通信。
處理裝置902表示一或多個處理器,諸如一微處理器、一中央處理單元或類似者。更特定言之,處理裝置可為複雜指令集運算(CISC)微處理器、精簡指令集運算(RISC)微處理器、超長指令字(VLIW)微處理器,或實施其他指令集之一處理器,或實施指令集之一組合之處理器。處理裝置902亦可為一或多個專用處理裝置,諸如一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一數位信號處理器(DSP)、網路處理器或類似者。處理裝置902可經組態以執行用於執行本文中所描述之操作及步驟之指令926。
電腦系統900可進一步包含用於經由網路920進行通信之一網路介面裝置908。電腦系統900亦可包含一視訊顯示單元910 (例如,一液晶顯示器(LCD)或一陰極射線管(CRT))、一字母數字輸入裝置912 (例如,一鍵盤)、一游標控制裝置914 (例如,一滑鼠)、一圖形處理單元922、一信號產生裝置916 (例如,一揚聲器)、圖形處理單元922、視訊處理單元928及音訊處理單元932。
資料儲存裝置918可包含其上儲存體現本文中所描述之方法論或功能之任一或多者之一或多個指令926集或軟體的一機器可讀儲存媒體924 (亦被稱為一非暫時性電腦可讀媒體)。指令926亦可完全或至少部分駐留於主記憶體904內及/或在其由電腦系統900執行期間駐留於處理裝置902內,主記憶體904及處理裝置902亦構成機器可讀儲存媒體。
在一些實施方案中,指令926包含用於實施對應於本發明之功能性之指令。雖然機器可讀儲存媒體924在一例示性實施方案中被展示為一單一媒體,但術語「機器可讀儲存媒體」應被視為包含儲存一或多個指令集之一單一媒體或多個媒體(例如,一集中式或分佈式資料庫,及/或相關聯快取區及伺服器)。術語「機器可讀儲存媒體」亦應被視為包含能夠儲存或編碼供機器執行且引起機器及處理裝置902執行本發明之方法論之任一或多者之一指令集的任何媒體。術語「機器可讀儲存媒體」應相應地被視為包含但不限於固態記憶體、光學媒體及磁性媒體。
已依據對一電腦記憶體內之資料位元之操作之演算法及符號表示呈現前述[實施方式]之一些部分。此等演算法描述及表示係由熟習資料處理技術者用於最有效地向其他熟習此項技術者傳達其等工作之主旨的方式。一演算法可為導致一所要結果之一序列操作。該等操作係需要實體操縱實體量之操作。此等量可採取能夠被儲存、組合、比較及以其他方式操縱之電或磁信號之形式。此等信號可被稱為位元、值、元件、符號、字元、項、數字或類似者。
然而,應牢記,所有此等及類似術語應與適當實體量相關聯且僅為應用於此等量之方便標籤。除非另有明確陳述,否則如自本發明明白,應瞭解,在整個描述中,特定術語指代將表示為電腦系統之暫存器及記憶體內之實體(電子)量之資料操縱及變換成類似地表示為電腦系統記憶體或暫存器或其他此等資訊儲存裝置內之實體量之其他資料之電腦系統或類似電子運算裝置的動作及程序。
本發明亦係關於一種用於執行本文中之操作之設備。此設備可專門為預期目的而構造,或其可包含由儲存於電腦中之一電腦程式選擇性地啟動或重組態之一電腦。此一電腦程式可儲存於一電腦可讀儲存媒體中,諸如但不限於任何類型之磁碟(包含軟碟、光碟、CD-ROM及磁光碟)、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁性或光學卡,或適於儲存電子指令之任何類型之媒體,其等各自耦合至一電腦系統匯流排。
本文中呈現之演算法及顯示並非固有地與任何特定電腦或其他設備有關。根據本文中之教示,各種其他系統可搭配程式使用,或可證實構造一更專門設備以執行方法係方便的。另外,本發明並非參考任何特定程式設計語言進行描述。將瞭解,多種程式設計語言可用於實施如本文中所描述之本發明之教示。
本發明可被提供為可包含具有儲存於其上之指令之一機器可讀媒體的一電腦程式產品或軟體,該等指令可用於程式化一電腦系統(或其他電子裝置)以執行根據本發明之一程序。一機器可讀媒體包含用於儲存呈可由一機器(例如,一電腦)讀取之一形式之資訊的任何機構。例如,一機器可讀(例如,電腦可讀)媒體包含一機器(例如,一電腦)可讀儲存媒體,諸如一唯讀記憶體(「ROM」)、隨機存取記憶體(「RAM」)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置等。
在前述揭示內容中,本發明之實施方案已參考其之特定例示性實施方案進行描述。將顯而易見的是,可在不脫離如在以下發明申請專利範圍中所闡述之本發明之實施方案之更寬廣精神及範疇的情況下對本發明進行各種修改。在本發明以單數時態指代一些元件之情況下,可在圖中描繪一個以上元件且用相同元件符號標記相同元件。因此,本發明及圖式應被視為具闡釋性意義而非限制性意義。
200:設計規格翻譯系統 210:文件資料庫產生器 215:文件資料庫 220:命令句偵測器(ISD) 230:語意概念偵測器(SCD) 240:剖析樹產生器 250:翻譯器 310:接收 320:分割 330:訓練/步驟 335:訓練/步驟 350:提供 360:調諧 410:選區樹 415A:第一子片語 415B:第二子片語 415C:第三子片語 415D:第四子片語 415E:第五子片語 420:經增強選區樹/經增強剖析樹 425A:第一子片語 425B:第二子片語 425C:第三子片語 425D:第四子片語 425E:第五子片語 510:接收 520:擷取/步驟 560:附加 580:附加 610:接收 620:剖析 630:判定 640:產生 650:產生 670:提取 680:產生 700:程序 710:產品理念 712:電子設計自動化(EDA)程序 714:系統設計 716:邏輯設計及功能驗證 718:測試之合成及設計 720:接線對照表驗證 722:設計規劃 724:實體實施 726:分析及提取 728:實體驗證 730:解析度增強 732:遮罩資料準備 734:成品出廠驗證 736:製作 738:封裝及組裝程序 740:成品積體電路 800:仿真環境 802:仿真系統 804 1至804 N:場可程式化閘陣列(FPGA) 805:待測設計(DUT) 807:主機系統 810:編譯器 812 1至812 M:板 814 1至814 K:仿真單元 900:電腦系統 902:處理裝置 904:主記憶體 906:靜態記憶體 908:網路介面裝置 910:視訊顯示單元 912:字母數字輸入裝置 914:游標控制裝置 916:信號產生裝置 918:資料儲存裝置 920:網路 922:圖形處理單元 924:機器可讀儲存媒體 926:指令 928:視訊處理單元 930:匯流排 932:音訊處理單元
將自下文給出之[實施方式]及本發明之實施例之附圖更充分理解本發明。圖用於提供本發明之實施例之知識及理解且並非將本發明之範疇限於此等特定實施例。此外,圖不一定按比例繪製。
圖1繪示根據一項實施例之將來自一設計規格之句子翻譯成一硬體驗證語言(諸如SystemVerilog斷言)。
圖2繪示根據一項實施例之一設計規格翻譯系統200之一方塊圖。
圖3繪示根據一項實施例之用於訓練二元分類器以用於判定一句子是否可翻譯的一程序之一流程圖。
圖4繪示根據一項實施例之經處理以產生一經增強選區樹(constituency tree) 420之一選區樹410。
圖5繪示根據一項實施例之用於將一句子翻譯為一目標語言的一程序之一流程圖。
圖6繪示根據一項實施例之用於翻譯一電子電路之一設計之一規格的一程序之一流程圖。
圖7描繪根據本發明之一些實施例之在一積體電路之設計及製造期間使用的各種程序之一流程圖。
圖8描繪根據本發明之一些實施例之一例示性仿真系統之一圖。
圖9描繪本發明之實施例可在其中操作之一例示性電腦系統之一圖。
610:接收
620:剖析
630:判定
640:產生
650:產生
670:提取
680:產生

Claims (20)

  1. 一種經組態以儲存指令之非暫時性電腦可讀儲存媒體,該等指令在由一處理器執行時引起該處理器: 接收一電子電路之一設計之一規格; 剖析該規格以識別一或多個句子,各句子指定待滿足之該電子電路之該設計之一條件; 針對該一或多個經識別句子之各句子,判定該句子是否可翻譯;及 回應於判定一目標句子可翻譯: 針對該目標句子產生一剖析樹; 針對該經產生剖析樹產生一機率移位縮減排程;及 藉由使用該經產生之機率移位縮減排程剖析該目標句子來產生用於驗證在該目標句子中指定之該條件之程式碼。
  2. 如請求項1之非暫時性電腦可讀儲存媒體,其中用於判定該句子是否可翻譯之該等指令引起該處理器: 應用複數個弱學習器,各弱學習器接收自該句子提取之一組符記且輸出一個二進位標籤; 針對該複數個弱學習器之各者基於該等二進位標籤應用一個二元分類器。
  3. 如請求項1之非暫時性電腦可讀儲存媒體,其中用於針對該目標句子產生一剖析樹之該等指令引起該處理器: 將該目標句子中之符記分組成具有語意意義之一或多個片語;及 將該目標句子中之該等經分組符記編碼成一語法剖析樹。
  4. 如請求項3之非暫時性電腦可讀儲存媒體,其中用於針對一目標句子產生一剖析樹之該等指令進一步引起該處理器: 識別該剖析樹中之一或多個概念片語;及 用一替換符記替換該一或多個經識別概念片語。
  5. 如請求項3之非暫時性電腦可讀儲存媒體,其中使用包括一層樹LSTM (長短期記憶)節點之一遞迴神經網路來對該目標句子中之該等符記進行分組。
  6. 如請求項1之非暫時性電腦可讀儲存媒體,其中用於針對該經產生剖析樹產生一機率移位縮減排程之該等指令引起該處理器: 建立用於遍歷該剖析樹之一指標,該指標經組態以回應於針對至少一個步驟遍歷該剖析樹而建立一新指標。
  7. 如請求項6之非暫時性電腦可讀儲存媒體,其中該新指標係基於該剖析樹之一遍歷之一當前狀態來建立。
  8. 如請求項6之非暫時性電腦可讀儲存媒體,其中使用至少一神經網路層來產生該機率移位縮減排程,且其中該指標機率性地判定對該目標句子之一符記執行一移位動作抑或一縮減動作。
  9. 如請求項1之非暫時性電腦可讀儲存媒體,其中該等指令在由該處理器執行時進一步引起該處理器: 藉由應用複數個弱學習器而自該一或多個經識別句子提取語意概念,各弱學習器接收自該句子提取之一組符記且輸出一個二進位標籤;及 其中用於產生用於驗證在該目標句子中指定之該條件之程式碼的該等指令引起該處理器: 自該剖析樹擷取一符記; 藉由應用該機率移位縮減排程來判定一動作;及 回應於該經判定動作係一縮減動作: 判定該符記是否為一替換符記,及 回應於判定該符記係一替換符記,用自該一或多個經識別句子提取之一語意概念替換該符記。
  10. 如請求項9之非暫時性電腦可讀儲存媒體,其中用於產生用於驗證在該目標句子中指定之該條件之程式碼的該等指令引起該處理器: 回應於判定該符記並非一替換符記,將該符記添加至該程式碼; 回應於該經判定動作係一移位動作: 自該剖析樹擷取一新符記; 藉由應用該機率移位縮減排程來判定一新動作;及 回應於該經判定動作係一終止動作,將一分號附加至該程式碼。
  11. 一種方法,其包括: 接收一電子電路之一設計之一規格; 藉由一處理器剖析該規格以識別一或多個句子,各句子指定待滿足之該電子電路之該設計之一條件; 針對該一或多個經識別句子之各句子,判定該句子是否可翻譯; 回應於判定一目標句子可翻譯: 針對該目標句子產生一剖析樹; 針對該經產生剖析樹產生一機率移位縮減排程; 藉由使用該經產生之機率移位縮減排程剖析該目標句子來產生用於驗證在該目標句子中指定之該條件之程式碼。
  12. 如請求項11之方法,其中判定該句子是否可翻譯包括: 應用複數個弱學習器,各弱學習器接收自該句子提取之一組符記且輸出一個二進位標籤; 針對該複數個弱學習器之各者基於該等二進位標籤應用一個二元分類器。
  13. 如請求項11之方法,其中針對該目標句子產生一剖析樹包括: 將該目標句子中之符記分組成具有語意意義之一或多個片語;及 將該目標句子中之該等經分組符記編碼成一語法剖析樹。
  14. 如請求項13之方法,其中針對一目標句子產生一剖析樹進一步包括: 識別該剖析樹中之一或多個概念片語;及 用一替換符記替換該一或多個經識別概念片語。
  15. 如請求項11之方法,其中針對該經產生剖析樹產生一機率移位縮減排程包括: 建立用於遍歷該剖析樹之一指標,該指標經組態以回應於針對至少一個步驟遍歷該剖析樹而建立一新指標。
  16. 如請求項15之方法,其中該新指標係基於該剖析樹之一遍歷之一當前狀態來建立。
  17. 如請求項15之方法,其中使用至少一神經網路層來產生該機率移位縮減排程,且其中該指標機率性地判定對該目標句子之一符記執行一移位動作抑或一縮減動作。
  18. 如請求項11之方法,其進一步包括: 藉由應用複數個弱學習器而自該一或多個經識別句子提取語意概念,各弱學習器接收自該句子提取之一組符記且輸出一個二進位標籤;及 其中產生用於驗證在該目標句子中指定之該條件之程式碼包括: 自該剖析樹擷取一符記; 藉由應用該機率移位縮減排程來判定一動作;及 回應於該經判定動作係一縮減動作: 判定該符記是否為一替換符記,及 回應於判定該符記係一替換符記,用自該一或多個經識別句子提取之一語意概念替換該符記。
  19. 如請求項18之方法,其中產生用於驗證在該目標句子中指定之該條件之程式碼進一步包括: 回應於判定該符記並非一替換符記,將該符記添加至該程式碼; 回應於該經判定動作係一移位動作: 自該剖析樹擷取一新符記; 藉由應用該機率移位縮減排程來判定一新動作;及 回應於該經判定動作係一終止動作,將一分號附加至該程式碼。
  20. 一種系統,其包括: 一記憶體,其儲存指令;及 一處理器,其與該記憶體耦合且用以執行該等指令,該等指令在被執行時引起該處理器: 接收一電子電路之一設計之一規格; 剖析該規格以識別一或多個片語,各片語指定待滿足之該電子電路之該設計之一條件; 針對該一或多個經識別片語之各片語,判定該片語是否可翻譯; 回應於判定一目標片語可翻譯: 針對該目標片語產生一剖析樹; 針對該經產生剖析樹產生一機率移位縮減排程; 藉由使用該經產生之機率移位縮減排程剖析該目標片語來產生用於驗證在該目標片語中指定之該條件之程式碼。
TW110144432A 2020-11-30 2021-11-29 電子電路之設計規格之自動化翻譯 TW202230184A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063119523P 2020-11-30 2020-11-30
US63/119,523 2020-11-30
US17/526,687 2021-11-15
US17/526,687 US20220171932A1 (en) 2020-11-30 2021-11-15 Automated translation of design specifications of electronic circuits

Publications (1)

Publication Number Publication Date
TW202230184A true TW202230184A (zh) 2022-08-01

Family

ID=81752519

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110144432A TW202230184A (zh) 2020-11-30 2021-11-29 電子電路之設計規格之自動化翻譯

Country Status (6)

Country Link
US (1) US20220171932A1 (zh)
EP (1) EP4217849A1 (zh)
KR (1) KR20230110250A (zh)
CN (1) CN116635822A (zh)
TW (1) TW202230184A (zh)
WO (1) WO2022115366A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11635949B2 (en) * 2021-12-17 2023-04-25 Intel Corporation Methods, systems, articles of manufacture and apparatus to identify code semantics
CN116933697B (zh) * 2023-09-18 2023-12-08 上海芯联芯智能科技有限公司 一种将自然语言转换为硬件描述语言的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689192B2 (en) * 2009-01-12 2014-04-01 Synopsys, Inc. Natural language assertion processor
US8458630B1 (en) * 2010-06-26 2013-06-04 Cadence Design Systems, Inc. Supporting dynamic aspects of polymorphism in high-level synthesis of integrated circuit designs

Also Published As

Publication number Publication date
WO2022115366A1 (en) 2022-06-02
EP4217849A1 (en) 2023-08-02
US20220171932A1 (en) 2022-06-02
CN116635822A (zh) 2023-08-22
KR20230110250A (ko) 2023-07-21

Similar Documents

Publication Publication Date Title
Bhatnagar Advanced ASIC Chip Synthesis: Using Synopsys® Design CompilerTM Physical CompilerTM and PrimeTime®
US9798840B1 (en) Methods, systems, and computer program product for implementing a simulation platform with dynamic device model libraries for electronic designs
US8682631B2 (en) Specifications-driven platform for analog, mixed-signal, and radio frequency verification
CN101842789B (zh) 用于存储器抽象和使用该存储器抽象来验证的方法和装置
JP5016119B2 (ja) 自然言語アサーションプロセッサ
CN102708098B (zh) 一种基于依存连贯性约束的双语词语自动对齐方法
US8650513B2 (en) Reducing x-pessimism in gate-level simulation and verification
TW202230184A (zh) 電子電路之設計規格之自動化翻譯
US10796062B2 (en) Full-custom voltage-dependent design rules (VDRC) flow
KR20220054606A (ko) 집적 회로 설계에서의 머신 학습 기반 예측
US20190340327A1 (en) Automatic definition and extraction of functional coverage metric form emulation-based verification
US20200372196A1 (en) System and method for generating a cluster-based power architecture user interface
US11853665B2 (en) Performing hardware description language transformations
US20210374314A1 (en) Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views
CN113642285A (zh) 确定和验证时钟域交叉中的亚稳态
Torr Wide-coverage statistical parsing with Minimalist Grammars
Gridach et al. Developing a new approach for arabic morphological analysis and generation
Chang et al. A corpus-based statistics-oriented transfer and generation model for machine translation
Acharjee et al. Sequence-to-sequence learning-based conversion of pseudo-code to source code using neural translation approach
Kutlu et al. Noun phrase chunking for Turkish using a dependency parser
Parthasarathy et al. Spectosva: Circuit specification document to systemverilog assertion translation
Briesch et al. Training and evaluating a statistical part of speech tagger for natural language applications using Kepler Workflows
US11106663B1 (en) Speeding matching search of hierarchical name structures
Malik et al. Qualitative Analysis of Contemporary Urdu Machine Translation Systems.
US11176293B1 (en) Method and system for emulation clock tree reduction