專利名稱:自然語言斷言處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自然語言斷言(natural language assertions),特別地是,涉及 一種處理程序/處理器,其可以自動分析自然語言斷言,并將它們轉(zhuǎn)換為驗(yàn)證語言斷言 (verification language assertions),接著再自所述些驗(yàn)證語言斷言中產(chǎn)生已解釋 (interpreted)自然語言斷言,以藉此在驗(yàn)證期間允許有意義的使用者檢閱。
背景技術(shù):
集成電路(ICs)的設(shè)計(jì)已經(jīng)漸漸地變得越來越復(fù)雜,因而增加了對于此類設(shè)計(jì)的 快速驗(yàn)證的需求,但遺憾地是,于設(shè)計(jì)復(fù)雜度上的突破常??爝^驗(yàn)證程序的改進(jìn),而此不同 調(diào)則有部份的原因是由于使用的語言不同,尤其是,用于IC設(shè)計(jì)的硬件描述語言(HDLs, hardware description languages),例如,硬件描述語言(Verilog)或超高速集成電路硬 件描述語言(VHDL),其用以描述電子系統(tǒng)在空間與時間方面的結(jié)構(gòu)與行為的是標(biāo)準(zhǔn)的、以 文字為主的(text-based)表達(dá)式,因此,HDLs已為設(shè)計(jì)者所熟知且接受,但相對地,驗(yàn)證語 言,例如,System Verilog,VERA,或E !,卻具有比HDLs更高階的形式,因而造成使用者的 接受度相對上低許多。某些用于軟件程序設(shè)計(jì)的表達(dá)式,稱為斷言(assertions),其有助于驗(yàn)證語言的 形式。一個斷言即為一個會在不正確若發(fā)生時指出錯誤的表達(dá)式,而在一 HDL設(shè)計(jì)的上下 文中,一斷言則是可以檢查特殊行為,并且在所述特殊行為發(fā)生時顯示一訊息。另外,斷言 亦可以同時監(jiān)控“好的”以及“壞的”行為,但不像HDLs中所使用的標(biāo)準(zhǔn)的、以文字為主的 表達(dá)式。斷言傾向于為設(shè)計(jì)者特有的形式,也就是,一使用者無法輕易地讀取其他人所撰寫 的斷言,因此,當(dāng)一使用者不是所述斷言的作者時,就很可能在驗(yàn)證時忽略具有一“失敗”狀 態(tài)的斷言。斷言有助于在驗(yàn)證期間增加一設(shè)計(jì)的控制力以及觀察力,因此,的確有需要一能 夠促進(jìn)更多斷言的使用、且同時能增加其可靠度的處理程序。
發(fā)明內(nèi)容
一種處理自然語言斷言(NLAs,Natural Language Assertions)的方法可以包括, 識別一 NLA,以及接著利用一自然語言解析器(NLP,Natural Languageparser)以及合成 技術(shù)(synthesis techniques)而將所述NLA轉(zhuǎn)譯為一驗(yàn)證語言斷言(VLA,Verification Language Assertion),之后,此VLA可以利用一 VLA解析器以及樣式匹配技術(shù)(pattern matching techniques)而被轉(zhuǎn)譯為一已解釋 NLA (interpreted NLA) (NLA*),在此時,程序 可以允許使用者檢閱所述NLA*以及所述NLA,然后,當(dāng)所述使用者決定所述NLA*與所述NLA 彼此相同、或具有的差異很微小時,就利用所述VLA執(zhí)行驗(yàn)證,而驗(yàn)證的結(jié)果則是接著會回 頭被注解于所述NLA之上。在一實(shí)施例之中,每一個已識別的NLA都會與存儲在一高速緩沖存儲器(cache) 中的一組NLAs進(jìn)行比較,而在所述NLA匹配于所述NLAs中的一個NLA時,則會直接繼續(xù)執(zhí)行所述驗(yàn)證,其中,所述驗(yàn)證是利用存儲在所述高速緩沖存儲器中且關(guān)聯(lián)于所述已匹配的 NLA的一 VLA而加以執(zhí)行,另外,當(dāng)所述NLA不匹配于所述個NLA時,則程序會繼續(xù)進(jìn)行所述 轉(zhuǎn)譯步驟。另一種用以處理自然語言斷言(NLAs)的完全自動方法可以包括,識別一 NLA, 以及接著利用一自然語言解析器(NLP)以及合成技術(shù)而將所述NLA轉(zhuǎn)譯為一驗(yàn)證語言 斷言(VLA),之后,此VLA可以利用一 VLA解析器以及樣式匹配技術(shù)而被轉(zhuǎn)譯為一已解釋 NLA (NLA*),在此時,所述NLA*可以被轉(zhuǎn)譯為一已解釋VLA (VLA*),并且,所述VLA會與所述 VLA*進(jìn)行比較,而當(dāng)所述VLA以及VLA*不相同時,所述方法會提供一警告,另外,當(dāng)所述VLA 并非不相同于所述VLA*時,則是可以利用所述VLA而執(zhí)行驗(yàn)證,因此,在此實(shí)施例之中,除 了比較所述NLA以及所述NLA*之外,所述VLA也可以與所述VLA*進(jìn)行比較,以藉此在驗(yàn)證 期間為使用者提供另一有關(guān)準(zhǔn)確性的測試。具有優(yōu)勢地是,構(gòu)成一 NLA處理器的一部份的所述NLA解析器會為每一個句 子產(chǎn)生一自然語言語意樹(semantic tree),接著,所述NLA處理器就可以利用此樹來 產(chǎn)生所述VLA,其中,所述NLA處理器用以產(chǎn)生所述VLA的示范性技術(shù)可以包括,舉例而
(text transformation)(text maintenance) >
(expression matching),其中,文字轉(zhuǎn)換可以包括,散文至數(shù)字的轉(zhuǎn)換(例如,“zero”->0 以及“one”->l),以及縮寫格式(例如,“should not"->shouldn' t);文字維持可以利用 雙引號而進(jìn)行識別,舉例而言,在所述NLA中的一個“a+b”表達(dá)式可以維持原樣地繼續(xù)存 在于所述VLA之中,類似地,當(dāng)一變量名為一英文字時,就可藉由將所述變量名放入雙引號 之中而達(dá)成澄清的效果(例如,所述NLA可以陳述,若“a”發(fā)生時,則…);以及表達(dá)式匹配 則是會在受到句號(periods)約束時查看多個詞匯,舉例而言,其中一種形式的斷言是一 “并行斷言(concurrentassertion),,,其可以是(時間順序(clocking sequence))(前項(xiàng) (antecedent))_>(推論(consequence)),而如此的一斷言則是可具有一相對應(yīng)的NLA形 式,例如,"On positive edge of clock elk, if "a,,occurs then "b,,should occurafter n clock cycles. ”,因此,在此狀況下,于所述NLA中對并行斷言的三個分開部份進(jìn)行匹配 就會是一樣式匹配(pattern matching)的問題,再者,另一種形式的斷言則為變量補(bǔ)充 (variable complementing)(例如,“is not high,,->low)。在一實(shí)施例之中,有關(guān)識別以及轉(zhuǎn)譯的每一個步驟(由所述NLA處理器所執(zhí)行者) 都可以處理多個斷言,因此,在此實(shí)施例之中,所述NLA處理器可以包括多個處理器,以用 于平行設(shè)置所述些斷言的處理程序。再者,一種用以處理NLAs的系統(tǒng)系可以包括一 NLA處理器,以及一組模擬器以及 驗(yàn)證工具,其中,所述NLA處理器接收與一集成電路(IC)的一描述產(chǎn)生關(guān)聯(lián)的多個NLAs, 以及將所述多個NLAs轉(zhuǎn)換為多個驗(yàn)證語言斷言(VLAs),另外,所述組模擬器以及驗(yàn)證工具 則可接收所述多個VLAs以及所述IC的所述描述,以及產(chǎn)生指示所述等VLAs的失敗的一報(bào)
告o
圖1是舉例說明一示范性NLA處理技術(shù);圖2是舉例說明包括自動驗(yàn)證的另一示范性NLA處理技術(shù);
圖3A是舉例說明示范性的控制器RTL碼,包括一 RTL識別符,RTL輸入/輸出碼, 嵌入NLAs,以及一終端模塊指定符;圖3B至圖3E是舉例說明根據(jù)本發(fā)明,產(chǎn)生自原始NLAs的VLAs以及已解釋NLAs 的示范性編碼;圖3F是顯示通過以NLA為基礎(chǔ)的NLP的示例語意樹;圖4是顯示一包括所述NLA處理技術(shù)的示范性數(shù)字ASIC設(shè)計(jì)流程的一簡化代表 圖;以及圖5A以及圖5B是顯示可以執(zhí)行邏輯設(shè)計(jì)以及功能性驗(yàn)證的簡化系統(tǒng)。
具體實(shí)施例方式斷言有助于在驗(yàn)證期間增加一 IC設(shè)計(jì)的控制力以及觀察力,但遺憾地是,目前, 在驗(yàn)證期間使用斷言常會因在解釋其他使用者所撰寫的斷言時所遭遇的困難而受到阻礙。 因此,依據(jù)本發(fā)明一方面的構(gòu)想,一處理程序、及/或處理器可以自動地將一設(shè)計(jì)者行為的 一易懂英文表達(dá)式,在此稱為一自然語言斷言(NLA, natural language assertion),轉(zhuǎn)譯為 一驗(yàn)證語言斷言(VLA,verification language assertion)。然后,此VLA會再被轉(zhuǎn)譯回 一已解釋(interpreted)NLA,因而有助于達(dá)成原始的與已解釋的NLAs之間的一有意義使 用者檢視(user review) 0之后,當(dāng)所述檢視指出在原始與已解釋NLAs之間實(shí)質(zhì)上沒有不 一致時,所述設(shè)計(jì)的驗(yàn)證就可以利用VLA來執(zhí)行,接著,此驗(yàn)證的結(jié)果可以回頭注解于所述 原始NLA之上。一交通控制器的設(shè)計(jì)將有助于澄清一 NLA以及一 VLA之間的區(qū)別。在一示范的交 通控制器之中,至少五個NLAs可被用來表示適當(dāng)?shù)牟僮?1)當(dāng)顯示一綠燈、或黃燈時,交 叉路一定為紅燈,(2)燈號的變化一定是依照綠燈、黃燈、以及紅燈的慣用順序,(3)當(dāng)交通 在等一紅燈時,若在交叉路上沒有交通,則交通一定被給予一綠燈,(4)即使交叉路有交通, 在紅燈等待的交通也一定不會超過五個時間刻度(ticks),以及(5)當(dāng)感測器指出有交通 時,感測器將不進(jìn)行重設(shè),直到一綠燈出現(xiàn)為止(沒有馬上紅燈(noright-on-red))。用于這五個NLAs的一組相對應(yīng)VLAs顯示如下(為了讓參考更容易,NLAs亦同時 包括在內(nèi)并顯示為斜體)。在此,需要注意的是,在VLAs中表示交叉路的是Main Street以 及 First Street。module traffic_checker#(parameter MAX—WAIT = 5)(input wire elk,
inputwirerst,
inputwirewaiting—main,
inputwirewaiting—first,
inputwiregreen—main,
inputwiregreen_first,
inputwireyellow—main,
inputwireyellow—first,
inputwirered—main,
inputwirered—first);
// 1)When a green or yellow light is showing, the cross street // must get a redlight.assert—hazard—in_first:assert property (@ (posedge elk)(green_first || yellow—first) |->red—main);assert_hazard_in_main:assert property(@(posedge elk)(green—main || yellow—main) | ->red_f irst);// 2)Lights must change in the conventional green, yellow,// red sequence.assert_signal_sequencing_on_first: assert property(@(posedge elk)yellow—first| = >red first[水1:$]green_first[*l:$]##l yellow—first);assert_signal_sequencing—on—main:assert property(@(posedge elk)yellow—main| = >red main[水1:$]green—main[水1:$]##1 yellow—main);// 3)When traffic is waiting dt a red light,it must be// given a green light if there is no traffic on the cross street.assert—green—no—waiting—first:assert property(@(posedgeelk) ( ! waiting—main&& red—first && waiting—first) | = >green_first);assert—green—no—waiting—main:assert property(@ (posedgeelk) ( ! waiting—first&&red—main && waiting—main) | = >green—main);// 4)Traffic must not wait more than 5 ticks at a red light, even// if the cross street has traffic.assert honor—waiting—first:assert property (@ (posedge elk)($rose(waiting_first) &&red_first) | = >##
green—first);assert honor—waiting—main:assert property(@(posedge elk)($rose(waiting—main)&&red—main)| = >##
green—main);// 5)When sensors indicate traffic,they do not rest until a green light appears,(noright-on-red)assume_continuous—waiting—first: assume property(@ (posedgeelk)waiting—first&& green_first| = >waiting—first);assume_continuous—waiting—main:assume property (@ (posedgeelk)waiting—main&& green main+ = >waiting_mian);當(dāng)比較上述一交通控制器的簡單設(shè)計(jì)的NLA以及相對應(yīng)VLA時,在了解用于越來越復(fù)雜的IC設(shè)計(jì)的VLAs時所會遭遇的困難就變得顯而易見。然而,這些IC設(shè)計(jì)的所述等 VLAs卻是必須的,正如在驗(yàn)證期間所使用的組合與時間邏輯方程序的數(shù)學(xué)代表式一樣。因此,極為需要一種可以自動將一 NLA轉(zhuǎn)譯為一 VLA的處理程序/處理器,再者, 一種能夠?qū)LA轉(zhuǎn)譯回一已解釋NLA的處理程序/處理器將有助于讓使用者能夠提供相關(guān) 于所述原始NLA的一有意義檢閱。這些轉(zhuǎn)譯則是以圖1作為參考而敘述如下。圖1舉例說明一示范的NLA處理技術(shù)100。在步驟101之中,一 NLA可以利用已知 的合成技術(shù)而加以識別,舉例而言,在一實(shí)施例之中,此識別步驟可以利用會搜尋任何NLA 的一模塊/檔案的Unix指令來執(zhí)行。另外,步驟101亦可以更進(jìn)一步地包括其他合成技術(shù), 例如,自暫存器轉(zhuǎn)移層次(RTL,Register Transfer Level)中擷取所述NLA,因而讓更進(jìn)一 步的處理程序僅會以自然語言句子來執(zhí)行。任何已識別以及已擷取的NLA都可以被復(fù)制到 一高速緩沖存儲器(cache),以用于更進(jìn)一步的處理程序,并且,相關(guān)于所述已識別NLA的 資訊,例如,檔案名稱,模塊名稱,以及行數(shù)等,都可以在所述高速緩沖存儲器中與所述NLA 產(chǎn)生關(guān)聯(lián),在一實(shí)施例之中,每一個NLA都會在句子的終端具有一句號(period),以確保下 游處理程序可以清楚地標(biāo)示出所述NLA的終端。此時,在步驟102之中,利用一自然語言解析器(NLP,natural languageparser), 所述NLA可被轉(zhuǎn)譯為一 VLA,其中,作為舉例的NLP有StanfordParser (例如,第1. 4版), 其目前被發(fā)展成為新一代的網(wǎng)際網(wǎng)路搜尋引擎。至于有關(guān)一 NLP(例如,所述Stanford Parser)如何運(yùn)作的背景資訊則是敘述于,舉例而言,“Fast Exact Interference with a Factored Model for NaturalLanguage Parsing,,,by Dan Klein and Christopher D. Manning, in Advances inNeural Information Processing Systems 15 (NIPS 2002), Cambridge, MA:MITPress, pp. 3-10 (2003), \)JsR "Accurate Unlexicalized parsing", by Dan Klein andChristopher D. Manning,from Proceedings of the 41st Meeting of the Associationfor Computational Linguistics, pp. 423-430 (2003)之中。在步驟102中所使用的所述NLP可以利用任何能夠產(chǎn)生語意樹(semantictrees) 的智能查詢工具(intelligent query tool)而加以執(zhí)行,并且,一 NLP可以使用會以在所 述等語意樹上運(yùn)作的動態(tài)程序化演算式作為基礎(chǔ),而計(jì)算一特定句子的最可能解析的可能 性解析(probabilistic parsing) 0當(dāng)然,無疑地,為了能適當(dāng)?shù)剡M(jìn)行解析,NLPs的模型可 以針對特殊的語言而加以發(fā)展,例如,英文、中文、阿拉伯文、以及德文等。所述NLA處理器用以產(chǎn)生所述VLA的示范技術(shù)可以包括,舉例而言,文字轉(zhuǎn)換 (text transformation)、文字維持(text maintenance)、以及表達(dá)式匹配(expression matching)等,其中,文字轉(zhuǎn)換可以包括,散文至數(shù)字的轉(zhuǎn)換(例如,zero->0以及one->l), 以及縮短格式(例如,should not->shouldn' t);文字維持可以利用雙引號而進(jìn)行識 別,舉例而言,在所述NLA中的一個“a+b”表達(dá)式可以維持原樣地繼續(xù)存在于所述VLA 之中,類似地,當(dāng)一變量名為一英文字時,就可藉由將所述變量名放入雙引號之中而達(dá)成 澄清的效果(例如,所述NLA可以陳述,若“a”發(fā)生時,則…);以及表達(dá)式匹配則是會 在受到句號(periods)約束時查看多個詞匯,舉例而言,其中一種形式的斷言是一“并 行斷言(concurrent assertion),,,其可以是(時間順序(clocking sequence))(前項(xiàng) (antecedent))_>(推論(consequence)),而如此的一斷言則是可具有一相對應(yīng)的NLA形 式,例如,"On positive edge ofclock elk, if "a,,occurs then "b,,should occur after
8n clock cycles. ”,因此,在此狀況下,于所述NLA中對并行斷言的三個分開部份進(jìn)行匹配 就會是一樣式匹配(pattern matching)的問題,再者,另一種形式的斷言則為變量補(bǔ)充 (variablecomplementing)(例如,“ is not high,,->low)。在一實(shí)施例之中,所述NLA中任何位于雙引號里的詞匯都可被一符記(token)所 取代,所述符記是一獨(dú)特的識別符,像是ALIAS01,ALIAS02,其可以在輸入分析期間被所述 NLP處理為一名詞、且可以在所述NLP的語意樹輸出中被找到為附加有名詞性質(zhì)的標(biāo)簽,而 將所述名詞變回原有詞匯的簡單取代則是可以確保所述詞匯在所述NLP處理程序中會被 保存下來,舉例而言,“A”可以被一符記,例如,第一個信號,所取代,并且,此取代可以是由 所述NLP處理器自動完成、或是可以被補(bǔ)充以由使用者建議的名稱,因此,進(jìn)入到自然語言 解析器的輸入可以完全地被了解為特定的自然(例如,英文)語言要件。需要注意的是,由于對CPU使用時間(CPU Time)而言,轉(zhuǎn)譯大量的NLAs會讓資源 使用變得密集,因此,在一個實(shí)施例之中,一 NLP可以包括多個處理器,以讓轉(zhuǎn)譯平行地進(jìn) 行,舉例而言,若是所述NLP包括5個處理器且具有1000個NLAs,則每一個處理器可以負(fù)責(zé) 將200個NLAs轉(zhuǎn)譯為VLAs。另外,這些轉(zhuǎn)譯也能夠以非對稱的方式發(fā)生,藉以最小化處理 時間。而在所有的轉(zhuǎn)譯皆已執(zhí)行完后,所述NLP的一控制器就可以從所述等各個處理器中 呼叫各個結(jié)果,以建立所述等語意樹。在此,需要注意的是,每一個語意樹都可將一自然語言句子分解為多個語言使用 群集(language use groupings),例如,名詞、動詞、形容詞、副詞等,其中,在一實(shí)施例之 中,一語意樹可以是由多個列表的一列表所組成,且內(nèi)容中的每一個列表皆可為一元組 (tuple) (2部份)(縮寫數(shù)值),舉例而言,(NN rain)表示名詞“rain”。一示范性英文文字以及其語意樹敘述如下。The strongest rain ever recorded in India shut down the financial hub ofMumbai, snapped communication lines, closed airports and forced thousands ofpeople to sleep in their offices or walk home during the night,officials said today.語意樹(Semantic Tree)(ROOT(S(S(NP(NP(DT The)(JJS strongest)(NN rain)(VP(ADVP (RB ever))(VBN recorded)(PP(IN in)(NP(NNP India)))))(VP(VP (VBD shut)(PRT(RP down))0093](NP
0094](NP(DT the)(JJ financial)(NN hub))
0095](PP(IN of)
0096](NP(NNP Mumbai)))))
0097](,,)
0098](VP (VBD snapped)
0099](NP(NN communication)(NNS lines)))
0100](,,)
0101](VP(VBD closed)
0102](NP(NNS airports)))
0103](CC and)
0104](VP(VBD forced)
0105](NP
0106](NP(NNS thousands))
0107](PP(IN of)
0108](NP(NNS people))))
0109](S
0110](VP (TO to)
0111](VP
0112](VP(VB sleep)
0113](PP(IN in)
0114](NP(PRP$their)(NNS offices))))
0115](CC or)
0116](VP (VB walk)
0117](NP (NN home))
0118](PP(IN during)
0119](NP(DT the)(NN night))))))))))
0120](,,)
0121](NP(NNS officials))
0122](VP (VBD said)
0123](NP-TMP(NN today)))
0124]( ))) 在一實(shí)施例之中,每一種語言群集都可具有可被一 VLA產(chǎn)生器讀取的一特定描述 符(descriptor),并且,此VLA產(chǎn)生器可以利用在所述語意樹的上下文中的語言群集而從 所述NLA建構(gòu)所述VLA。在一實(shí)施例之中,所述VLA產(chǎn)生器會橫越所述語意樹并造訪每個節(jié) 點(diǎn)(node),而且,所述VLA產(chǎn)生器可以紀(jì)錄其已經(jīng)造訪的節(jié)點(diǎn),其已經(jīng)辨識的樣式,以及在 所述樹中的當(dāng)前節(jié)點(diǎn)與當(dāng)前路徑的當(dāng)前狀態(tài),然后,部份的表達(dá)式會進(jìn)行匹配,最后,當(dāng)已 識別出類似一 “并行斷言”(每一個次要部份(sub part)都找到一個匹配)的一完整斷言 結(jié)構(gòu)時,就會執(zhí)行變?yōu)镾VA的轉(zhuǎn)譯。
在步驟103之中,所述VLA可以利用一 VLA解析器以及樣式匹配技術(shù)(pattern matching technique)而被轉(zhuǎn)譯回一已解釋NLA (NLA*);在步驟104之中,一使用者可以檢 閱所述NLA以及從所述VLA所重新產(chǎn)生的NLA* ;在步驟105之中,會執(zhí)行所述VLA的驗(yàn)證, 在一實(shí)施例之中,此驗(yàn)證可以包括模擬以及形式檢查;在步驟106之中,所述驗(yàn)證的結(jié)果可 以識別哪些失敗以及哪些通過,在一實(shí)施例之中,模擬、及/或形式驗(yàn)證工具可以藉由一包 括詳情(例如,所述斷言的檔案與行數(shù),以及所述失敗的模擬時間)的錯誤訊息而識別一失 敗的斷言,并且,所述驗(yàn)證的結(jié)果可以回頭作為所述NLA上的注解。在一實(shí)施例之中,每一個步驟都可以處理多個斷言,也就是,在步驟101之中,可 以識別一個模塊/檔案的多個NLAs,然后,在步驟102之中,所述些已識別的NLAs會被轉(zhuǎn)譯 為多個VLAs,接著,在步驟103之中,所述多個VLAs則是會再被轉(zhuǎn)譯回多個已解釋NLAs,在 此,需要注意的是,在此實(shí)施例之中,NLAs可以在模塊層次、或檔案層次上進(jìn)行處理。在一個實(shí)施例之中,為了提供速度強(qiáng)化的能力,任何新識別的NLA都會在步驟110 之中與已經(jīng)成功轉(zhuǎn)譯的一群NLAs進(jìn)行比較,而此群NLAs則是可以存儲在一高速緩沖存儲 器,也就是,若是一 NLA已經(jīng)進(jìn)行處理,則所述個處理的結(jié)果可以重新被使用,而程序則可 以直接跳至步驟105,以藉此最小化整體的處理程序。但若所述NLA并未經(jīng)過處理,則程序 會回到步驟102,正如先前所述。特別地是,對于所述高速緩沖存儲器的建構(gòu)可以在任何層次進(jìn)行,例如,經(jīng)由設(shè) 計(jì)、經(jīng)由使用者、或是經(jīng)由公司,在一實(shí)施例之中,所述高速緩沖存儲器可以包括所述NLA, 其語意樹,以及其VLA。在此,需要注意的是,藉由將所述語意樹以及所述VLA和與其相對應(yīng) 的NLA產(chǎn)生關(guān)聯(lián),則接下來若所述NLA自設(shè)計(jì)中被刪除時,所述語意樹以及所述VLA亦可以 簡單地被刪除,藉此可最小化存儲空間以及模擬器的使用。需要注意的是,在步驟101的一實(shí)施例之中,所述NLA可以被包括在所述IC的所 述RTL(暫存器轉(zhuǎn)移層次,Register Transfer Level)描述之中,而正如熟悉IC設(shè)計(jì)者所 熟知,所述RTL描述是用于一包括暫存器以及組合邏輯(combinational logic)的同步電 路。通常,暫存器轉(zhuǎn)移層次抽象(abstraction)會被用在HDL之中,以產(chǎn)生一 IC的高階表 述(high-level r印reservations),當(dāng)被包括在所述RTL之中時,一 NLA可以跟隨一 RTL登 錄(RTL entry)而作為一注釋。舉例而言,如此的一注釋可以明確地被識別為一 NLA,且可 使用在所述先前RTL描述中產(chǎn)生關(guān)聯(lián)的(多個)訊號名稱,藉此即可將所述NLA與所述個 RTL描述綁在一起。在步驟101的一另一實(shí)施例之中,所述NLA可以被包括在一標(biāo)準(zhǔn)字處理文件 (standard word processing document)之中。而且,在所述IC的一 RTL描述可以被取得 之前,此實(shí)施例就可以被使用。在此實(shí)施例之中,當(dāng)所述RTL可取得之后,再次地利用所述 的RTL敘述中所使用的所述(等)特殊信號,一額外的段落可以被增加至將每一個NLA與 一特殊RTL敘述綁在一起的文件之中,此型態(tài)的NLA實(shí)行有助于提供一能適應(yīng)任何測試平 臺的一般文件,也就是,若任何訊號名稱因使用一不同的測試平臺而改變時,將僅有所述綁 住的段落需要被修改。圖2為舉例說明包括自動驗(yàn)證的另一示范性NLA處理技術(shù)程序200。在程序200 的步驟201之中,會進(jìn)行一 NLA的識別,此時,在步驟202之中,所述NLA可以利用一 NLP以 及合成技術(shù)而被轉(zhuǎn)譯為一 VLA。然后,在步驟203之中,所述VLA會利用一 VLA解析器以及樣式匹配技術(shù)而被轉(zhuǎn)譯回一 NLA*,在步驟204之中,所述NLA*可以被轉(zhuǎn)譯為一 VLA*,在步驟 205之中,所述VLA以及所述VLA*會進(jìn)行比較。接著,在步驟206中決定兩者是否不相同, 并在步驟207提供使用者一警告,換言之,若是所述VLA以及所述VLA*并沒有不相同(亦 即,相同),則步驟208可以執(zhí)行所述VLA的驗(yàn)證。在一實(shí)施例之中,此驗(yàn)證可以包括模擬以 及形式檢查。再者,于步驟209之中,所述驗(yàn)證的結(jié)果(亦即,哪些失敗以及哪些通過的識 別結(jié)果)會回頭被注解在所述NLA之上。在此,需要注意的是,在一個實(shí)施例之中,每一個 步驟都可以處理多個斷言(請參閱圖1的敘述)。在一個實(shí)施例之中,為了提供速度強(qiáng)化的能力,任何新識別的NLA都會在步驟210 之中與已經(jīng)成功轉(zhuǎn)譯、且存儲于一高速緩沖存儲器中的一群NLAs進(jìn)行比較,也就是,若是 一 NLA已經(jīng)進(jìn)行處理,則處理的結(jié)果可以重新被使用,并且程序可直接跳至步驟208,以藉 此最小化整體的處理程序,但若所述NLA并未經(jīng)過處理,則程序會回到步驟202,正如先前 所述。圖3A舉例說明示范的控制器RTL碼300,其包括一 RTL識別符301 (用以為所述 控制器識別所述模塊),RTL輸入/輸出碼302,嵌入NLAs 303 (在此例子中,四個NLAs), 以及一終端模塊指定符304,而第圖3B至圖3E的每一個則是在于舉例說明依據(jù)本發(fā)明, VLAs以及產(chǎn)生自原始VLAs的已解釋NLAs的示范性編碼,其中,每一個示范編碼皆包括一 NLA識別符310 (在此例子中,會指示所述模塊的行數(shù)),所述原始NLA(0RIG)311,所述已解 釋NLA(亦即,NLA*) (INTERP)312,產(chǎn)生自所述NLA*的所述VLA 313 (已標(biāo)記的第一行),以 及一會約束所述NLA、NLA\以及VLA的約束子句(binding clause) 314。需要注意的是,約 束子句314關(guān)聯(lián)于所述模塊的一特定行數(shù),例如,在此例子中,行175(需要注意的是,僅所 述NLA模塊中的所述第一行可以產(chǎn)生關(guān)聯(lián),因?yàn)樵谒瞿P椭械拿恳粋€NLA理論上都可以 利用多行進(jìn)行表示)。需要注意的是,所述已解釋NLA(NLA*)可以將用以澄清的說明反映至所述原始 NLA。舉例而言,請參閱第圖3C,所述原始NLA為陳述“On thepositive edge of clk[a clock], if ceO_N[clock enable zero]or cel_N [clock enableone]or ce2_N[clock enable two]or ce3_N[clock enable three]rises,,,反之,所述已解釋 NLA 則是陳述"On the positive edge of elk, if ce0_N rises or cel_Nrises or ce2_N rises or ce3_ N rises”。因此,在此轉(zhuǎn)譯之中,所述NLA處理器已經(jīng)有效地把發(fā)生(rise)展開至每一個 信號,以藉此闡明所述等操作狀況。在另一個參照第圖3E的實(shí)例中,所述原始的NLA為陳 述“then b_ce_id1eshou1d stay high for at least one cycle followed by adxStrb high after 1 cycle”,反之,所述已解釋 NLA 則陳述“then b—ce—idle should stay high for at least one clkcycle followed by adxStrb should be at high on elk cycle 1”。因此,在此轉(zhuǎn)譯之中,所述NLA處理器已經(jīng)將“clock”轉(zhuǎn)變?yōu)椤癳lk[clock] cycle”,以 藉此闡明所述的詞匯,以及更進(jìn)一步地闡明,每一個暫時的斷言僅允許一個取樣,亦即,所 敘述的“if-then”子句僅可應(yīng)用于clock cycle 1期間。再者,第圖3F為舉例說明用于一 IC設(shè)計(jì)的一部分的示范性語意樹輸出320,其藉由以一 NLA作為基礎(chǔ)的一 NLP。圖4為顯示一包括所述NLA處理程序的示范性數(shù)字ASIC設(shè)計(jì)流程的一簡化代表 圖。在高階層次中,所述程序開始于產(chǎn)品構(gòu)想(步驟400),并于一 EDA軟件設(shè)計(jì)程序中實(shí) 現(xiàn)(步驟410)。接著,當(dāng)設(shè)計(jì)完成后,其就可以進(jìn)行下線(tape out)(事件440)。而在下線完成后,即開始制造程序(步驟450),以及封裝與組裝程序(步驟460),最終完成晶片成 品(結(jié)果470)。所述EDA軟件設(shè)計(jì)程序(步驟410)實(shí)際上是由數(shù)個步驟412-430所構(gòu)成。在此, 為了簡化,以線性的方式顯示。在一實(shí)際ASIC設(shè)計(jì)程序中,特殊的設(shè)計(jì)可能需要不斷地重 復(fù)同樣的步驟,直到某些測試通過為止,而類似地,在任何實(shí)際設(shè)計(jì)程序中,這些步驟也有 可能為不同的順序及組合,因此,此敘述是以前后關(guān)聯(lián)且一般的方式進(jìn)行解釋,而非一特殊 ASIC的特殊、或特別提出的設(shè)計(jì)流程。接下來即為EDA軟件設(shè)計(jì)程序(步驟410)的構(gòu)成步驟的簡短敘述系統(tǒng)設(shè)計(jì)(步驟412)設(shè)計(jì)者敘述其所需要執(zhí)行的功能,并且可以藉由執(zhí) 行假設(shè)規(guī)劃(what-if planning)而精進(jìn)功能、檢查成本等。在此階段,硬件軟件架 構(gòu)(hardware-software architecture)可以分開。作為舉例,可以用于此步驟的來自 Synopsys, Inc. ^ EDABnlt^ Model Architect, Saber, System Studio, DesignWare 等產(chǎn)品。邏輯設(shè)計(jì)與功能性驗(yàn)證(步驟414)在此階段,會撰寫系統(tǒng)中模型的VHDL或 Verilog程序碼(Verilog code),并且,會檢查此設(shè)計(jì)的功能正確性,更特別地是,所檢查 的設(shè)計(jì)是否確定會產(chǎn)生正確的輸出。作為舉例,可以用于此步驟的來自Synopsys,Inc.的 EDA 軟件產(chǎn)品就包括 VCS,VERA, DesignWare Magellan, Formality, ESP,以及 LEDA 等產(chǎn) 品。在一實(shí)施例之中,所述上述的NLA處理技術(shù)可以被包括在任何的模擬以及驗(yàn)證工具組 之中,例如,VCS (模擬)以及Magellan (驗(yàn)證)。測試的合成與設(shè)計(jì)(步驟416)在此,所述VHDL/Verilog會被轉(zhuǎn)譯為凈列表 (netlist),并且,所述凈列表可依目標(biāo)技術(shù)方法而進(jìn)行最佳化,此外,亦會進(jìn)行用以檢查最 終晶片的測試設(shè)計(jì)與實(shí)行。作為舉例,可以用于此步驟的來自Synopsys,Inc.的EDA軟件 產(chǎn)品就包括 Design Compile , PowerCompiler, Tetramax,以及 DesignWare 等產(chǎn)品。凈列表檢驗(yàn)(步驟418)在此步驟,會檢查所述凈列表的時序限制 (timingconstraint)的符合度,以及與VHDL/Verilog來源碼的對應(yīng)性。作為舉例,可以用 于此步驟的來自Synopsys,Inc.的EDA軟件產(chǎn)品就包括Formality,PrimeTime,以及VCS
寸j 口口。設(shè)計(jì)規(guī)劃(步驟420)在此,會建立晶片的整體平面圖,并分析時序與頂層路線 (top-level routing)。作為舉例,可以用于此步驟的來自Synopsys,Inc.的EDA軟件產(chǎn)品 就包括Astro,以及IC Compiler等產(chǎn)品。實(shí)體實(shí)行(步驟422)配置(電路元件的定位)以及路線分配(電路元件的連接) 都會在此步驟中執(zhí)行。作為舉例,可以用于此步驟的來自Synopsys,Inc.的EDA軟件產(chǎn)品 就包括Astro,以及IC Compiler等產(chǎn)品。分析與擷取(步驟424)在此步驟,電路功能會在電晶體層次進(jìn)行驗(yàn)證,而此則是 會依序?qū)崿F(xiàn)假設(shè)精進(jìn)(what-if refinement)。作為舉例,可以用于此步驟的來自Synopsys, Inc.的 EDA 軟件產(chǎn)品就包括 AstroRail, PrimeRail, PrimeTime,以及 Star RC/XT 等產(chǎn)品。實(shí)體驗(yàn)證(步驟426)在此步驟,會執(zhí)行各種的檢查功能,以確保制造、電性任 務(wù)、平版印刷任務(wù)、以及電路系統(tǒng)的正確性。作為舉例,可以用于此步驟的來自Synopsys, Inc.的EDA軟件產(chǎn)品包括Hercules這項(xiàng)產(chǎn)品。
解析度強(qiáng)化(步驟428)此步驟牽涉到布局的幾何操作,以改進(jìn)所述設(shè)計(jì)的可制 造性。作為舉例,可以用于此步驟的來自Syn0psys,lnc.的EDA軟件產(chǎn)品就包括Proteus, ProteusAF,以及 PSMGen 等產(chǎn)品。遮罩資料準(zhǔn)備(步驟430)此步驟提供用于生產(chǎn)最終晶片時,產(chǎn)生平版印刷所使 用的遮罩(mask)的下線(tape-out)資料。作為舉例,可以用于此步驟的來自Synopsys, Inc.的EDA軟件產(chǎn)品包括CATS (R)家族的產(chǎn)品。圖5A舉例說明可以執(zhí)行前述的邏輯設(shè)計(jì)以及功能性驗(yàn)證(步驟414)的一簡化系 統(tǒng)500。在系統(tǒng)500之中,一 NLA處理器502可以接收一 IC的一 RTL描述以及其嵌入在所 述RTL描述中的相對應(yīng)NLA,正如輸入501A,并且,利用輸入501的所述NLA部份(以及忽 略所述RTL部份),NLA處理器502可以產(chǎn)生相對應(yīng)的VLAs 503,然后,模擬器以及驗(yàn)證工 具504可以接收VLAs 503以及輸入501 (其中,因?yàn)樗龅萅LAs是注釋,所以,實(shí)際上僅輸 入501的所述RTL部份會被工具504所讀取),以產(chǎn)生一或多個報(bào)告505,在一實(shí)施例之中, 報(bào)告505可以用來識別落在所述RTL描述的上下文中的所述等VALs。此時,NLA處理器502有助于將如此的失敗的VLAs轉(zhuǎn)譯回已解釋NLAs,并產(chǎn)生比 對506,以藉此允許一使用者比較所述等原始NLAs以及已解釋NLAs,以及檢查錯誤。而在 一另一實(shí)施例之中則是,NLA處理器502可以將所有VLAs皆轉(zhuǎn)譯回已解釋NLAs,以產(chǎn)生比 對506。之后,根據(jù)比對506的結(jié)果,NLA處理器502可以回頭于輸入501A的所述NLA部份 上加上注解。在一顯示于圖5B的另一實(shí)施例之中,所述具NLA嵌入的RTL描述501A可以被一 僅RTL的描述501B所取代。在此例子之中,系統(tǒng)510可以將一般的NLAs (gNLAs)與一約束 段落(BP,binding paragraph)(亦即,輸入507),以及所述僅RTL描述501B,提供至NLA處 理器502。之后,利用輸入507,所述NLA處理器502可以產(chǎn)生相對應(yīng)的VLAs 503。在此,需 要注意的是,所述NLA處理器502亦可以接收RTL 501B,以識別所述IC設(shè)計(jì)的埠(ports)/ 變數(shù)(variables),并檢查所述NLA是否關(guān)聯(lián)至存在于所述設(shè)計(jì)中的物件(object)。然后, 模擬器以及驗(yàn)證工具504可以接收VLAs 503以及僅RTL描述501B,以產(chǎn)生一或多個報(bào)告 505。另外,在一個實(shí)施例之中,報(bào)告505可以用來識別落在所述RTL描述的上下文中的所 述等VALs。此時,NLA處理器502有助于將如此的VLAs轉(zhuǎn)譯回已解釋NLAs,并產(chǎn)生比對506, 以藉此允許一使用者比較所述等原始NLAs以及已解釋NLAs,以及檢查錯誤。而在一另一 實(shí)施例之中則是,NLA處理器502可以將所有VLAs皆轉(zhuǎn)譯回已解釋NLAs,以產(chǎn)生比對506。 之后,根據(jù)比對506的結(jié)果,NLA處理器502可以回頭于輸入507的所述約束段落上加上注解。以上敘述的是用于NLAs的一處理程序以及一處理器,在概念上,所述處理程序/ 處理器的特征可以視為包括二種不同的技術(shù)。在第一種技術(shù)中,廣義地說是,將所述NLA轉(zhuǎn) 換為一 VLA,所使用的是不需要演算的技術(shù),實(shí)質(zhì)上,此技術(shù)是一種形式的人工智慧,另外, 在第二種技術(shù)中,廣義地說是,將所述VLA轉(zhuǎn)換為一已解釋NLA,所使用的就是需要演算的 技術(shù),也就是,所述VLA基本上是一數(shù)學(xué)表達(dá)式,而這些特殊的碼轉(zhuǎn)換則可以提供驗(yàn)證工具 的使用者相當(dāng)重要的好處,亦即,讓使用者能夠通過所述NLA以及所述已解釋NLA之間的一 比較而提供有關(guān)所述VLA的一有意義檢閱,而此檢閱則是可以促進(jìn)所述VLA的錯誤校正,且大部分、或所有的步驟皆是由所述NLA處理器自動執(zhí)行。本發(fā)明可以在一、或多個電腦程序中實(shí)行,而此程序則是在包括至少一可程序化 處理器的一可程序化系統(tǒng)上執(zhí)行,以將資料以及指示接收自、以及傳輸至一資料存儲系統(tǒng), 至少一輸入裝置,以及至少一輸出裝置,其中,每一個電腦程序都可以實(shí)行為高階程序的 (high-level procedural)、或物件導(dǎo)向的(object-oriented)程序設(shè)計(jì)語言,或者,有需要 的話,實(shí)行為組合(assembly)、或機(jī)械(machine)語言。并且,在任何狀況下,所述語言都 可以是一編譯(compiled)、或解釋(interpreted)語言。另外,適合的處理器包括,舉例而 言,一般與特殊用途的微處理器,以及其他型態(tài)的微控制器,一般而言,一處理器將會接收 來自一只讀存儲器、及/或一隨機(jī)存取存儲器的指令與資料。并且,通常,一電腦會包括一、 或多個大量存儲裝置,以存儲資料檔案,其中,如此的裝置包括磁盤,例如,內(nèi)部硬盤以及卸 除式磁盤,磁光(magneto-optical)磁盤,以及光盤(optical disks)。另外,適合明確進(jìn)行 電腦程序指令與資料的具體化的存儲裝置包括,所有形式的非揮發(fā)性存儲器,包括,舉例而 言,半導(dǎo)體存儲器裝置(例如,EPROM, EEPR0M,以及快閃存儲器裝置),磁盤(例如,內(nèi)部硬 盤以及卸除式磁盤),磁光磁盤,以及CDR0M磁盤等。前述任者都可通過集成電路而,或并入 補(bǔ)充集成電路(ASICs)。雖然本發(fā)明用以舉例說明的實(shí)施例已經(jīng)以所附圖式做為參考而進(jìn)行詳細(xì)的敘述, 但需要了解的是,本發(fā)明并不受限于所述些特定的實(shí)施例,并且,這些實(shí)施例的目的并不 在于對本發(fā)明進(jìn)行詳盡的敘述、或?qū)⒈景l(fā)明限制為所揭示的特定形式。因此,就其本身而 言,許多修飾以及變化都將是顯而易見。舉例而言,在其他的實(shí)施例之中,可以使用一不同 的NLP,包括一對手邊的任務(wù)完全專屬的NLP,在此,需要注意的是,一自然語言可被用以 描述不僅是斷言,亦可描述同樣可于一 HDL、或測試平臺語言中被轉(zhuǎn)換的測試計(jì)畫、涵蓋點(diǎn) (coverage points)、以及限制(constraints),在一又一其他實(shí)施例之中,所述終端使用者 可以具體指定在所述NLA以及VLA之間轉(zhuǎn)換的規(guī)則。據(jù)此,本發(fā)明的范圍是藉由接下來的 權(quán)利要求書以及與其等義的內(nèi)容而加以定義。
權(quán)利要求
一種處理自然語言斷言(NLA)的方法,該方法包括識別一NLA;利用一自然語言解析器(NLP)以及合成技術(shù),將該NLA轉(zhuǎn)譯為一驗(yàn)證語言斷言(VLA);利用一VLA解析器以及樣式匹配技術(shù),將該VLA轉(zhuǎn)譯為一已解釋NLA(NLA*);允許該NLA*以及該NLA的使用者檢閱;以及利用以使用者檢閱作為基礎(chǔ)的該VLA而執(zhí)行驗(yàn)證。
2.根據(jù)權(quán)利要求1所述的方法,更包括將該驗(yàn)證的結(jié)果回頭注解于該NLA上。
3.根據(jù)權(quán)利要求2所述的方法,其中各識別以及轉(zhuǎn)譯步驟處理多個斷言。
4.根據(jù)權(quán)利要求1所述的方法,更包括將該NLA與在一高速緩沖存儲器中的一組NLA 進(jìn)行比較,并在該NLA匹配于該組NLA中的一個NLA時,直接繼續(xù)執(zhí)行驗(yàn)證,其中,利用儲存 在該高速緩沖存儲器中、且與該匹配的NLA關(guān)聯(lián)的一 VLA執(zhí)行該驗(yàn)證。
5.根據(jù)權(quán)利要求4所述的方法,更包括,當(dāng)該NLA不匹配于該個NLA時,繼續(xù)進(jìn)行該轉(zhuǎn)譯。
6.一種包括自動驗(yàn)證的處理自然語言斷言(NLA)的方法,該方法包括 識別一 NLA ;利用一自然語言解析器(NLP)以及合成技術(shù),將該NLA轉(zhuǎn)譯為一驗(yàn)證語言斷言(VLA);利用一 VLA解析器以及樣式匹配技術(shù),將該VLA轉(zhuǎn)譯為一已解釋NLA(NUO ;將該NLA*轉(zhuǎn)譯為一已解釋VLA (VLA*);比較該VLA以及該VLA* ;當(dāng)該VLA與該VLA*不相同時,提供一警告;以及當(dāng)該VLA與該VLA*不是不相同時,利用該VLA執(zhí)行驗(yàn)證。
7.根據(jù)權(quán)利要求6所述的方法,更包括將該驗(yàn)證的結(jié)果回頭注解于該NLA上。
8.根據(jù)權(quán)利要求7所述的方法,其中,各識別以及轉(zhuǎn)譯步驟處理多個斷言。
9.根據(jù)權(quán)利要求6所述的方法,更包括將該NLA與在一高速緩沖存儲器中的一組NLA 進(jìn)行比較,并在該NLA匹配于該組NLA中的一個NLA時,直接繼續(xù)執(zhí)行驗(yàn)證,其中,利用儲存 在該高速緩沖存儲器中且與該已匹配的NLA關(guān)聯(lián)的一 VLA執(zhí)行該驗(yàn)證。
10.根據(jù)權(quán)利要求9所述的方法,更包括,當(dāng)該NLA不匹配于該個NLA時,繼續(xù)進(jìn)行該轉(zhuǎn)譯。
11.一種電腦可讀媒體,其儲存用以處理自然語言斷言(NLAs)的電腦可執(zhí)行指令,且 在由一電腦執(zhí)行時進(jìn)行下列步驟識別一 NLA ;利用一自然語言解析器(NLP)以及合成技術(shù),將該NLA轉(zhuǎn)譯為一驗(yàn)證語言斷言(VLA); 利用一 VLA解析器以及樣式匹配技術(shù),將該VLA轉(zhuǎn)譯為一已解釋NLA(NUO ; 允許該NLA*以及該NLA的使用者檢閱;以及 利用以使用者檢閱作為基礎(chǔ)的該VLA而執(zhí)行驗(yàn)證。
12.根據(jù)權(quán)利要求11所述的電腦可讀媒體,更包括將該驗(yàn)證的結(jié)果回頭注解于該NLA 上的步驟。
13.根據(jù)權(quán)利要求12所述的電腦可讀媒體,其中,各識別以及轉(zhuǎn)譯步驟處理多個斷言。
14.根據(jù)權(quán)利要求11所述的電腦可讀媒體,更包括下列步驟將該NLA與在一高速緩沖存儲器中的一組NLA進(jìn)行比較,并在該NLA匹配于該組NLA 中的一個NLA時,直接繼續(xù)執(zhí)行驗(yàn)證,其中,利用儲存在該高速緩沖存儲器中、且與該已匹 配的NLA關(guān)聯(lián)的一 VLA執(zhí)行該驗(yàn)證。
15.根據(jù)權(quán)利要求14所述的電腦可讀媒體,更包括下列步驟 當(dāng)該NLA不匹配于該個NLA時,繼續(xù)進(jìn)行該轉(zhuǎn)譯。
16.一種電腦可讀媒體,其儲存用以處理自然語言斷言(NLAs)的電腦可執(zhí)行指令,且 在由一電腦執(zhí)行時系會進(jìn)行下列步驟識別一 NLA ;利用一自然語言解析器(NLP)以及合成技術(shù),將該NLA轉(zhuǎn)譯為一驗(yàn)證語言斷言(VLA);利用一 VLA解析器以及樣式匹配技術(shù),將該VLA轉(zhuǎn)譯為一已解釋NLA(NLf);將該NLA*轉(zhuǎn)譯為一已解釋VLA (VLA*);比較該VLA以及該VLA* ;當(dāng)該VLA與該VLA*不相同時,提供一警告;以及當(dāng)該VLA與該VLA*不是不相同時,利用該VLA執(zhí)行驗(yàn)證。
17.根據(jù)權(quán)利要求16所述的電腦可讀媒體,更包括將該驗(yàn)證的結(jié)果回頭注解于該NLA 上的步驟。
18.根據(jù)權(quán)利要求17所述的電腦可讀媒體,其中,各識別以及轉(zhuǎn)譯步驟處理多個斷言。
19.根據(jù)權(quán)利要求16所述的電腦可讀媒體,更包括下列步驟將該NLA與在一高速緩沖存儲器中的一組NLA進(jìn)行比較,并在該NLA匹配于該組NLA 中的一個NLA時,直接繼續(xù)執(zhí)行驗(yàn)證,其中,利用儲存在該高速緩沖存儲器中且與該已匹配 的NLA關(guān)聯(lián)的一 VLA執(zhí)行該驗(yàn)證。
20.根據(jù)權(quán)利要求19所述的電腦可讀媒體,更包括下列步驟 當(dāng)該NLA不匹配于該個NLA時,繼續(xù)進(jìn)行該轉(zhuǎn)譯。
21.一種用以處理自然語言斷言(NLA)的系統(tǒng),該系統(tǒng)包括一 NLA處理器,用以接收與一集成電路(IC)的一描述關(guān)聯(lián)的多個NLA,以及將該多個 NLA轉(zhuǎn)換為多個驗(yàn)證語言斷言(VLA);以及一組模擬器以及驗(yàn)證工具,用以接收該多個VLA以及該IC的該描述并產(chǎn)生指出該VLA 的失敗的一報(bào)告。
全文摘要
一種處理自然語言斷言(NLA)的方法可包括識別NLA以及接著利用自然語言解析器(NLP)以及合成技術(shù)而將所述NLA轉(zhuǎn)譯為一驗(yàn)證語言斷言(VLA),可利用VLA解析器以及樣式匹配技術(shù)將VLA轉(zhuǎn)譯為一已解釋的NLA(NLA*),此時,程序可允許使用者檢閱所述NLA*以及所述NLA,然后,當(dāng)所述使用者確定所述NLA*與所述NLA彼此相同、或具有的差異很微小時,就利用所述VLA執(zhí)行驗(yàn)證,而驗(yàn)證的結(jié)果則是接著會回頭被注解于所述NLA上。在完全自動的實(shí)施例中,除了比較所述NLA以及所述NLA*之外,所述VLA也可以與一VLA*(產(chǎn)生自所述NLA*)進(jìn)行比較,藉此在驗(yàn)證期間為使用者提供另一準(zhǔn)確性的測試。
文檔編號G06F17/27GK101884040SQ200980000269
公開日2010年11月10日 申請日期2009年9月1日 優(yōu)先權(quán)日2009年1月12日
發(fā)明者亞蘭·M·道格拉斯 申請人:新諾普系統(tǒng)公司