两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于存儲(chǔ)器抽象和使用該存儲(chǔ)器抽象來(lái)驗(yàn)證的方法和裝置的制作方法

文檔序號(hào):6592459閱讀:184來(lái)源:國(guó)知局
專利名稱:用于存儲(chǔ)器抽象和使用該存儲(chǔ)器抽象來(lái)驗(yàn)證的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路設(shè)計(jì),尤其涉及電子設(shè)計(jì)自動(dòng)化工具以及對(duì)包括存儲(chǔ)器的復(fù)雜設(shè)計(jì)進(jìn)行驗(yàn)證與分析的工具。
背景技術(shù)
利用在比個(gè)體導(dǎo)線和基本門的級(jí)別高的級(jí)別上獲取的設(shè)計(jì)信息來(lái)進(jìn)行字級(jí)設(shè)計(jì) 的分析是硬件驗(yàn)證中的一個(gè)新領(lǐng)域。在字級(jí)上,相對(duì)于一組不具有特殊語(yǔ)義的位級(jí)信號(hào),數(shù) 據(jù)通路單元和數(shù)據(jù)包本身被視為實(shí)體。目前的模型檢查技術(shù)針對(duì)檢查面向控制的屬性運(yùn)轉(zhuǎn)良好。然而,目前的模型檢查 技術(shù)針對(duì)具有寬數(shù)據(jù)通路和大型存儲(chǔ)器的設(shè)計(jì)運(yùn)轉(zhuǎn)并不良好。以前的方法通過(guò)讀取設(shè)計(jì)者 注釋或遞增地計(jì)算設(shè)計(jì)的精確抽象來(lái)設(shè)法加速處理。然而,注釋對(duì)于設(shè)計(jì)者來(lái)說(shuō)是非常耗 時(shí)的,而抽象的計(jì)算可以與解決原始問(wèn)題一樣困難。最近圍繞例如SMT 求解器(S. Ranise 和 C. Tinelli. Satisfiabilitymodulo theories. Trends and Controversies-IEEE Intelligent SystemsMagazine,2006 年12 月)的字級(jí)公式判別過(guò)程,以及像UCLID(在2002年的Computer Aided Verification 會(huì)議 紀(jì)錄 中,R. Bryant, S. Lahiri,和 S. Seshia 的.Modeling and verifying systems using a logicof counter arithmetic with lambda expressions and uninterpretedfunctions.)和 BAT (在 2007 年的 Computer Aided Verification 會(huì)議紀(jì) 錄中,P. Manolios, S. Srinivasan和 D. Vroon. BAT :The bit-levelanalysis tool.)的基 于歸約的過(guò)程已經(jīng)有了許多研究。然而,隨著此研究方向預(yù)期的興起,使用這些過(guò)程來(lái)進(jìn)行 模型檢查在本質(zhì)上受到限制,因?yàn)檫@些過(guò)程對(duì)公式進(jìn)行分析而不是對(duì)時(shí)序系統(tǒng)進(jìn)行分析。 這有兩種結(jié)果第一,時(shí)序?qū)傩詢H能依靠諸如利用邊界檢查推斷無(wú)界正確性的歸約和插值 之類的方法,來(lái)利用這些過(guò)程進(jìn)行檢查。第二,這些過(guò)程不適用于進(jìn)行時(shí)序系統(tǒng)驗(yàn)證的基 于變換的方法(在2006年的CAD會(huì)議中的Formal Methods的會(huì)議記錄,J. Baumgartner, T. Gloekler, D. Shanmugam, R. Seigler, G. V. Huben, H. Mony, P. Roessler,和 B. Ramanandray 的 Enabling large-scale pervasive logic verificationthrough multi-algorithmic formal reasoning.),其中時(shí)序驗(yàn)證問(wèn)題由后端模型檢查器的大規(guī)模集合中的任何一個(gè)來(lái) 迭代地簡(jiǎn)化并處理。傳統(tǒng)模型檢查的最大障礙之一是混合了復(fù)雜控制邏輯的大型存儲(chǔ)器的存在。這典 型地導(dǎo)致了非常困難或難于控制的模型檢查問(wèn)題。因此,對(duì)包括大型存儲(chǔ)器的硬件設(shè)計(jì)的 有界及無(wú)界屬性的實(shí)際字級(jí)模型檢查需要有效地實(shí)現(xiàn)。

發(fā)明內(nèi)容
本發(fā)明提供了一種網(wǎng)表減小方法,其中一個(gè)用于包括存儲(chǔ)器的電路設(shè)計(jì)的網(wǎng)表被 抽象為一個(gè)能夠用標(biāo)準(zhǔn)驗(yàn)證工具和操作網(wǎng)表的其它工具進(jìn)行分析的更小的網(wǎng)表。這樣的系 統(tǒng)的正確性可能需要相比于原始電路設(shè)計(jì)中存在的存儲(chǔ)器項(xiàng)數(shù)量進(jìn)行更少地推理。通過(guò)將這樣的存儲(chǔ)器抽象為更少的項(xiàng),驗(yàn)證問(wèn)題的計(jì)算復(fù)雜度大大地減小。在將電路設(shè)計(jì)表示為一個(gè)數(shù)據(jù)結(jié)構(gòu)的方法中,計(jì)算機(jī)實(shí)現(xiàn)的電路設(shè)計(jì)表示能夠得 以簡(jiǎn)化,這個(gè)數(shù)據(jù)結(jié)構(gòu)定義一個(gè)包括多個(gè)節(jié)點(diǎn)的網(wǎng)表,例如以有向非循環(huán)圖DAG形式。例 如,用高級(jí)描述語(yǔ)言表示的電路設(shè)計(jì)能夠在處理后產(chǎn)生這種類型的輸入數(shù)據(jù)結(jié)構(gòu)。輸入數(shù) 據(jù)結(jié)構(gòu)處理后產(chǎn)生一種在試圖保持預(yù)先指定的用網(wǎng)表表示的電路設(shè)計(jì)的屬性時(shí),具有更小 復(fù)雜度和需要實(shí)現(xiàn)更少存儲(chǔ)器槽的更新的網(wǎng)表。輸入網(wǎng)表的處理包括標(biāo)識(shí)電路設(shè)計(jì)中的存儲(chǔ)器和在標(biāo)識(shí)出的存儲(chǔ)器中標(biāo)識(shí)單個(gè) 槽的地址或者多個(gè)槽的地址,對(duì)于該存儲(chǔ)器而言,相應(yīng)的單個(gè)槽或者相應(yīng)的多個(gè)槽需要滿 足所關(guān)注的指定屬性。用實(shí)現(xiàn)單個(gè)槽或者多個(gè)槽的替代節(jié)點(diǎn)來(lái)替換在表示這樣的存儲(chǔ)器的 網(wǎng)表中的節(jié)點(diǎn)。實(shí)現(xiàn)驗(yàn)證條件,該驗(yàn)證條件支持使用替代節(jié)點(diǎn)對(duì)指定屬性的檢查。應(yīng)用這 里所描述的處理,更新的網(wǎng)表中表示的存儲(chǔ)器的尺寸通過(guò)消除表示無(wú)需滿足指定屬性的槽 的節(jié)點(diǎn)來(lái)減小。網(wǎng)表中已標(biāo)識(shí)存儲(chǔ)器的單個(gè)槽或多個(gè)槽用替代節(jié)點(diǎn)來(lái)替換,針對(duì)每一個(gè)已表示的 槽,該替代節(jié)點(diǎn)包括包含這個(gè)已表示的槽的數(shù)據(jù)的當(dāng)前狀態(tài)替代節(jié)點(diǎn)(在下面例子中命名 為“cont”)、下一狀態(tài)替代節(jié)點(diǎn)、以及用其地址標(biāo)識(shí)已表示的槽的節(jié)點(diǎn)(在下面的例子中命 名為“sel”)和相應(yīng)的下一狀態(tài)節(jié)點(diǎn)。代表向已表示的槽的寫入的節(jié)點(diǎn)利用多路復(fù)用器實(shí) 現(xiàn),如果寫入地址與標(biāo)識(shí)槽的節(jié)點(diǎn)的內(nèi)容相匹配,則多路復(fù)用器用寫入數(shù)據(jù)更新該槽的下 一狀態(tài)替代節(jié)點(diǎn)的內(nèi)容,否則用當(dāng)前狀態(tài)替代節(jié)點(diǎn)的內(nèi)容更新已表示的槽的下一狀態(tài)替代 節(jié)點(diǎn)的內(nèi)容。對(duì)于網(wǎng)表中代表從已表示的槽的讀取的節(jié)點(diǎn),替代節(jié)點(diǎn)包括多路復(fù)用器,如果 讀取地址與標(biāo)識(shí)槽的節(jié)點(diǎn)的內(nèi)容相匹配,則這個(gè)多路復(fù)用器返回已表示的槽的當(dāng)前狀態(tài)替 代節(jié)點(diǎn)的內(nèi)容,否則返回從環(huán)境讀取的非確定數(shù)據(jù)。標(biāo)識(shí)輸入網(wǎng)表中存儲(chǔ)器的處理過(guò)程包括標(biāo)識(shí)可重建模存儲(chǔ)器(包括存儲(chǔ)器陣列 的部分或全部),可重建模存儲(chǔ)器的特征在于定址于存儲(chǔ)器的當(dāng)前狀態(tài)和下一狀態(tài)節(jié)點(diǎn)的 所有讀和寫節(jié)點(diǎn)讀取和寫入相同寬度的數(shù)據(jù),并且使用相同寬度的地址節(jié)點(diǎn),以及存儲(chǔ)器 中單個(gè)槽或多個(gè)槽以通用方式初始化為確定值。通過(guò)標(biāo)識(shí)抽象對(duì)來(lái)選擇已更新網(wǎng)表中的所要表示的槽,該抽象對(duì)包含描述必須被 表示的存儲(chǔ)器的相應(yīng)槽和描述在必須被表示的周期內(nèi)已更新網(wǎng)表中為符合例如電路設(shè)計(jì) 的安全性定義一類的屬性的各個(gè)節(jié)點(diǎn)。因而,抽象對(duì)與在已更新網(wǎng)表中已表示的槽相對(duì)應(yīng), 并包括標(biāo)識(shí)已表示槽的節(jié)點(diǎn)和表明讀取已表示槽以符合屬性的周期的延遲參數(shù)。重寫組合輸出形式的驗(yàn)證功能以便當(dāng)抽象對(duì)指定的節(jié)點(diǎn)已經(jīng)擁有適當(dāng)在前的多 個(gè)周期時(shí)間內(nèi)相應(yīng)槽的對(duì)應(yīng)值時(shí)檢查輸出。在實(shí)現(xiàn)已更新網(wǎng)表時(shí)使用與一個(gè)所關(guān)注的特殊 屬性相關(guān)的抽象對(duì),以在已更新網(wǎng)表中建立一個(gè)節(jié)點(diǎn)集合,其為每一個(gè)抽象對(duì)在已表明周 期中指定一個(gè)已表示槽,將已抽象的節(jié)點(diǎn)與在抽象對(duì)的延遲參數(shù)表明的周期中標(biāo)識(shí)已表示 槽的節(jié)點(diǎn)相比較。如果針對(duì)相關(guān)的抽象對(duì)表明匹配,則檢查所關(guān)注屬性的輸出。這里描述的一種實(shí)現(xiàn)中用一種反例指導(dǎo)精化處理來(lái)標(biāo)識(shí)抽象對(duì)。例如,通過(guò)開始 于一個(gè)例如沒有抽象對(duì)的實(shí)現(xiàn)的初始的已更新網(wǎng)表,在已更新網(wǎng)表上迭代地執(zhí)行一種模型 檢查處理,可標(biāo)識(shí)出抽象對(duì)。如果模型檢查在一個(gè)特殊狀態(tài)失敗,將捕獲引起失敗的跡線, 然后基于特殊狀態(tài)跡線所確定的輸入和初始狀態(tài)變量賦值的集合,利用該原始輸入網(wǎng)表運(yùn)行一種仿真。如果原始網(wǎng)表的仿真沒有表明失敗,則已更新網(wǎng)表被處理以找到造成失敗的錯(cuò)誤讀取。選擇抽象對(duì)以解決錯(cuò)誤讀取,并且將所選擇的抽象對(duì)加入到已更新網(wǎng)表中。迭 代返回到模型檢查步驟,并重復(fù)處理,直至已更新網(wǎng)表通過(guò)模型檢查,直至在仿真步驟探測(cè) 到真正的缺陷,或者直至已更新網(wǎng)表變得比目標(biāo)尺寸更大。在用上面提及的使用有向非循環(huán)圖數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)中,圖中頂部節(jié)點(diǎn)包括表示電 路輸出的字級(jí)節(jié)點(diǎn)和下一狀態(tài)變量,圖中底部節(jié)點(diǎn)包括表示輸入的所述字級(jí)節(jié)點(diǎn)、狀態(tài)變 量和二進(jìn)制常向量,圖中內(nèi)部節(jié)點(diǎn)包括存儲(chǔ)器和表示運(yùn)算符的字級(jí)節(jié)點(diǎn)。本申請(qǐng)?zhí)岢龅募夹g(shù)處理字級(jí)網(wǎng)表以標(biāo)識(shí)可重建模存儲(chǔ)器,可重建模存儲(chǔ)器僅用專 用的讀和寫節(jié)點(diǎn)與它們的環(huán)境進(jìn)行交互,以統(tǒng)一方式初始化并統(tǒng)一存取。當(dāng)通過(guò)推理相比 于一個(gè)標(biāo)準(zhǔn)位級(jí)模型檢查需要數(shù)量顯著更少的存儲(chǔ)器槽和時(shí)間實(shí)例得到證明時(shí),能夠以允 許屬性證據(jù)的形式抽象可重建模存儲(chǔ)器。這里描述的技術(shù)可作為一種在數(shù)據(jù)處理機(jī)上執(zhí)行的處理,可作為適于執(zhí)行所描述 過(guò)程的一種數(shù)據(jù)處理機(jī),也可作為數(shù)據(jù)處理機(jī)的一種計(jì)算機(jī)可執(zhí)行程序并存儲(chǔ)在計(jì)算機(jī)可 讀數(shù)據(jù)存儲(chǔ)介質(zhì)上。另外,這里的技術(shù)是制造集成電路的處理的一部分,集成電路制造包括 定義例如在集成電路制造中用于光刻處理的掩?;蜓谀<系牟季?jǐn)?shù)據(jù)一類的模式的數(shù) 據(jù)開發(fā)。這里描述的處理過(guò)程的特點(diǎn)包括實(shí)現(xiàn)能夠在標(biāo)準(zhǔn)安全性屬性驗(yàn)證問(wèn)題上操作,能 夠無(wú)需抽象提示完全自動(dòng)化,能夠作為后端判定過(guò)程在典型位級(jí)模型檢查器中可用,還能 夠無(wú)縫地適合一種標(biāo)準(zhǔn)變換驗(yàn)證范例。本發(fā)明的其它方面和優(yōu)勢(shì)可在下面的附圖,具體描述和權(quán)利要求中看到。


圖1是一種示例性集成電路設(shè)計(jì)流程的簡(jiǎn)化表示。圖2是一種適用于與這種技術(shù)的實(shí)施例以及這種技術(shù)的電路設(shè)計(jì)和電路實(shí)施方 式一起使用的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化結(jié)構(gòu)圖。圖3是一種用于減小表示包括存儲(chǔ)器的電路設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)尺寸并用減小后的 數(shù)據(jù)結(jié)構(gòu)執(zhí)行驗(yàn)證過(guò)程的過(guò)程簡(jiǎn)化流程圖。圖4是實(shí)現(xiàn)包括存儲(chǔ)器和多個(gè)節(jié)點(diǎn)的網(wǎng)表的有向無(wú)環(huán)圖的代表性例子。圖5是圖4所示電路設(shè)計(jì)的一種抽象。圖6是與圖5中抽象一起使用的安全性屬性的一種實(shí)現(xiàn)。圖7-8是一種通過(guò)抽象存儲(chǔ)器來(lái)減小代表電路設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)的過(guò)程的更詳細(xì) 流程圖。圖9是讀節(jié)點(diǎn)的多路復(fù)用器樹的一種實(shí)現(xiàn)。圖10是用于與包括多個(gè)抽象對(duì)的已更新網(wǎng)表一起使用的安全性屬性的一種實(shí) 現(xiàn)。圖11是一種計(jì)算機(jī)實(shí)現(xiàn)的、反例指導(dǎo)的、抽象精化循環(huán)的框圖。
具體實(shí)施例方式圖1是一種示例性集成電路設(shè)計(jì)流程的簡(jiǎn)化表示。利用這里所有的流程圖,可以 理解,圖1中的許多步驟可以組合、并行執(zhí)行或以不影響完成功能的不同順序執(zhí)行。在某些情況下,只有也做出某些其他改變的情況下,步驟的重新排列才可能實(shí)現(xiàn)相同的結(jié)果,而在 其它情況下,只有滿足某些條件的情況下,步驟的重新排列才能實(shí)現(xiàn)相同的結(jié)果。這樣的重 新排列可能性對(duì)讀者而言是明顯的。在高級(jí)處,圖1的過(guò)程開始于產(chǎn)生構(gòu)思(塊100)并在EDA (電子設(shè)計(jì)自動(dòng)化)軟 件設(shè)計(jì)過(guò)程中實(shí)現(xiàn)(塊110)。當(dāng)該設(shè)計(jì)最終定稿時(shí),發(fā)生制造處理(塊150)及封裝和組裝 處理(塊160),最終導(dǎo)致完成集成電路芯片(結(jié)果170)。 EDA軟件設(shè)計(jì)處理(塊110)事實(shí)上由多個(gè)步驟112-130組成,但是為了簡(jiǎn)化以線 性形式示出。在實(shí)際的集成電路設(shè)計(jì)處理中,特殊設(shè)計(jì)可能不得不返回執(zhí)行這些步驟直至 某些測(cè)試通過(guò)。類似地,在任何一種實(shí)際的設(shè)計(jì)處理中,這些步驟可能以不同的順序或組合 發(fā)生。因此,這里描述采用上下文和一般性解釋提出,而不是作為特殊集成電路的一種具體 的或推薦的設(shè)計(jì)流程。現(xiàn)在提出EDA軟件設(shè)計(jì)處理(塊110)的組成步驟的簡(jiǎn)要描述。系統(tǒng)設(shè)計(jì)(塊112)設(shè)計(jì)者描述想要實(shí)現(xiàn)的功能性,他們執(zhí)行假設(shè)規(guī)劃去精化 功能性,檢查成本等等。硬件-軟件體系結(jié)構(gòu)可在這個(gè)階段發(fā)生。在此步驟中可使用的 來(lái)自 Synopsys 公司的示例性 EDA 軟件包括 Model Architect, Saber, System Studio 和 Design Ware 產(chǎn)品。邏輯設(shè)計(jì)和功能驗(yàn)證(塊114)在這個(gè)階段,用于系統(tǒng)中模塊的、例如VHDL或 Verilog代碼的高級(jí)描述語(yǔ)言(HDL)代碼被編寫并且針對(duì)功能準(zhǔn)確性檢查該設(shè)計(jì)。更具體 地,檢查該設(shè)計(jì)以確保其響應(yīng)于特定輸入激勵(lì)而產(chǎn)生正確的輸出。在此步驟中可使用的來(lái) 自 Synopsys 公司的示例性 EDA 軟件包括 VCS,VERA,Design Ware ,Magellan,F(xiàn)ormality, ESP和LEDA產(chǎn)品。利用下面更具體描述的存儲(chǔ)器抽象的字級(jí)網(wǎng)表減小技術(shù)可實(shí)現(xiàn)為例如 Magellan產(chǎn)品的一個(gè)部分或一個(gè)附加工具。合成和可測(cè)性設(shè)計(jì)(塊116)這里,VHDL/Verilog轉(zhuǎn)譯為網(wǎng)表??蔀槟繕?biāo)技術(shù)優(yōu) 化網(wǎng)表。另外,發(fā)生用于準(zhǔn)許對(duì)已完成芯片進(jìn)行檢查的測(cè)試的設(shè)計(jì)和實(shí)現(xiàn)。在此步驟中可使 用的來(lái)自Synopsys公司的示例性EDA軟件包括Design Compiler ,Physical Compiler, TestCompiIer, Power Compiler, FPGA Compiler, TetraMAX 禾口 Design Ware 產(chǎn)品°網(wǎng)表驗(yàn)證(塊118)在這個(gè)步驟,針對(duì)服從定時(shí)約束和與VHDL/Verilog源代碼一 致來(lái)檢查網(wǎng)表。在此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括Formality, PrimeTime 和 VCS 產(chǎn)品。設(shè)計(jì)規(guī)劃(塊120)這里,針對(duì)定時(shí)和頂層布線來(lái)構(gòu)造并分析芯片的整體平面 布置圖。在此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括Astro和IC Compiler 產(chǎn)品。物理實(shí)現(xiàn)(塊122)在這個(gè)步驟發(fā)生布置(電路元件的定位)和布線(電路元 件的連接)。在此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括AstroRail, Primetime 和 Star RC/XT 產(chǎn)品。分析和提取(決124)在這個(gè)步驟,在晶體管級(jí)驗(yàn)證電路功能,這繼而允許假定精 化。在此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括AstroRai 1,PrimeRai 1, Primetime 和 Star RC/XT 產(chǎn)品。物理驗(yàn)證(塊126)在這個(gè)階段執(zhí)行各種功檢查能以確保制造,電力問(wèn)題,光刻問(wèn)題和線路的正確性。在此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括 Hercules 產(chǎn)品。流片(塊127)這個(gè)階段提供“流片”數(shù)據(jù),用于為產(chǎn)生成品芯片產(chǎn)生供光刻使用 的掩模。在此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括CATS (R)系列產(chǎn)品。分辨率增強(qiáng)(塊128)這個(gè)階段涉及布局的幾何操作,以改善設(shè)計(jì)的可制造性。在 此步驟中可使用的來(lái)自Synopsys公司的示例性EDA軟件包括Proteus/Progen,ProteusAF 禾口 PSMGen產(chǎn)品。掩模制備(塊130)這個(gè)階段包括掩模數(shù)據(jù)制備和掩模自身的刻寫。在此步驟中 可使用的來(lái)自Synopsys公司的示例性EDA軟件包括CATS (R)系列產(chǎn)品。這里描述的網(wǎng)表減小技術(shù)的實(shí)施例可在上述階段的一個(gè)或多個(gè)中應(yīng)用。例如,本 發(fā)明的實(shí)施例可在邏輯設(shè)計(jì)和功能驗(yàn)證(圖1的塊114)中應(yīng)用。在這個(gè)階段,用于系統(tǒng)中 模塊的VHDL或Verilog代碼被編寫并且針對(duì)功能準(zhǔn)確性檢查該設(shè)計(jì)。更具體地,檢查該設(shè) 計(jì)以確保響應(yīng)于特定輸入激勵(lì)來(lái)產(chǎn)生正確輸出。圖2是適于與這種技術(shù)實(shí)施例一起使用的計(jì)算機(jī)系統(tǒng)210的簡(jiǎn)化結(jié)構(gòu)圖。計(jì)算機(jī) 系統(tǒng)210典型地包括通過(guò)總線子系統(tǒng)212與許多外設(shè)通信的至少一個(gè)處理器214。這些外 設(shè)可以包括包含存儲(chǔ)器子系統(tǒng)226和文件存儲(chǔ)子系統(tǒng)228的存儲(chǔ)子系統(tǒng)224、用戶接口輸入 設(shè)備222、用戶接口輸出設(shè)備220和網(wǎng)絡(luò)接口子系統(tǒng)216。輸入和輸出設(shè)備允許用戶與計(jì)算 機(jī)系統(tǒng)210交互。網(wǎng)絡(luò)接口子系統(tǒng)216提供接口(包括去往通信網(wǎng)絡(luò)218的接口)給外部 網(wǎng)絡(luò),并且通過(guò)通信網(wǎng)絡(luò)218耦合至其它計(jì)算機(jī)系統(tǒng)中的相應(yīng)接口設(shè)備。通信網(wǎng)絡(luò)218可 以包括許多互連計(jì)算機(jī)系統(tǒng)和通信鏈接。這些通信鏈接可能是有線鏈路、光纖鏈路、無(wú)線鏈 路或任何用于信息通信的其它機(jī)制。在一個(gè)實(shí)施例中,通信網(wǎng)絡(luò)218是因特網(wǎng),在其它實(shí)施 例中,通信網(wǎng)絡(luò)218可以是任何合適的計(jì)算機(jī)網(wǎng)絡(luò)。用戶接口輸入設(shè)備222可包括鍵盤、鼠標(biāo)一類的指示設(shè)備、跟蹤球、觸摸墊或圖形 寫字板、掃描器、合并入顯示器的觸摸屏、語(yǔ)音識(shí)別系統(tǒng)一類的音頻輸入設(shè)備、麥克風(fēng)以及 其它類型的輸入設(shè)備。一般而言,術(shù)語(yǔ)“輸入設(shè)備”的使用意在包括用于將信息輸入到計(jì)算 機(jī)系統(tǒng)210或輸入通信網(wǎng)絡(luò)218上的所有可能的設(shè)備類型和方式。用戶接口輸出設(shè)備220可包括顯示子系統(tǒng)、打印機(jī)、傳真機(jī)或如音頻輸出設(shè)備一 類的非視覺顯示。顯示子系統(tǒng)可包括陰極射線管(CRT)、液晶顯示器(LCD) —類的平板設(shè) 備、投影設(shè)備或者用于創(chuàng)建可視圖像的某一其它機(jī)制。顯示子系統(tǒng)也可以諸如經(jīng)音頻輸出 設(shè)備提供非可視顯示。一般而言,術(shù)語(yǔ)“輸出設(shè)備”的使用意在包括用于將信息從計(jì)算機(jī)系 統(tǒng)210輸出到用戶或另一個(gè)機(jī)器或計(jì)算機(jī)系統(tǒng)的所有可能的設(shè)備類型和方式。存儲(chǔ)子系統(tǒng)224存儲(chǔ)基本編程和數(shù)據(jù)構(gòu)造,其提供這里描述的某一個(gè)或所有EDA 工具的功能,包括網(wǎng)表減小技術(shù)和應(yīng)用于分析已減小網(wǎng)表的驗(yàn)證工具。這些軟件模塊通常 由處理器214執(zhí)行。存儲(chǔ)器子系統(tǒng)226典型地包括許多存儲(chǔ)器,其中包括一個(gè)用于在程序執(zhí)行期 間存儲(chǔ)指令和數(shù)據(jù)的主隨機(jī)存取存儲(chǔ)器(RAM) 230和一個(gè)存儲(chǔ)固定指令的只讀存儲(chǔ)器 (ROM) 232。文件存儲(chǔ)子系統(tǒng)228為程序和數(shù)據(jù)文件提供永久性存儲(chǔ),并可包括硬盤驅(qū)動(dòng)器、 與相關(guān)可移動(dòng)介質(zhì)一起的軟盤驅(qū)動(dòng)器、CD-ROM驅(qū)動(dòng)器、光驅(qū)或可移動(dòng)介質(zhì)磁帶盤。實(shí)現(xiàn)某些實(shí)施例功能性的數(shù)據(jù)庫(kù)和模塊可存儲(chǔ)在文件存儲(chǔ)子系統(tǒng)228中。總線子系統(tǒng)212提供一種讓計(jì)算機(jī)系統(tǒng)210的各種組成部分和子系統(tǒng)相互之間按 期望進(jìn)行通信的機(jī)制。盡管總線子系統(tǒng)212簡(jiǎn)化圖示為單條總線,但是總線子系統(tǒng)的可選 實(shí)施例可采用多條總線。
計(jì)算機(jī)可讀介質(zhì)240可以是一種與文件存儲(chǔ)子系統(tǒng)228和/或網(wǎng)絡(luò)接口子系統(tǒng) 216相關(guān)聯(lián)的介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是硬盤、軟盤、CD-ROM、光學(xué)介質(zhì)、可移動(dòng)媒體磁帶 盤或電磁波。計(jì)算機(jī)可讀介質(zhì)240被示出為存儲(chǔ)有電路設(shè)計(jì)280,包括例如電路設(shè)計(jì)的HDL 描述和利用所描述技術(shù)創(chuàng)建的簡(jiǎn)化的網(wǎng)表。還示出利用所描述技術(shù)創(chuàng)建的電路290。計(jì)算機(jī)系統(tǒng)210本身可以包括各種類型,這些類型包括個(gè)人計(jì)算機(jī)、便攜式計(jì)算 機(jī)、工作站、計(jì)算機(jī)終端、網(wǎng)絡(luò)計(jì)算機(jī)、電視、大型機(jī)或任何一種其它數(shù)據(jù)處理系統(tǒng)或用戶設(shè) 備。由于計(jì)算機(jī)和網(wǎng)絡(luò)不斷變化的性質(zhì),圖2所示的計(jì)算機(jī)系統(tǒng)210的描述意在僅僅是用 于示出優(yōu)選實(shí)施例的具體例子。計(jì)算機(jī)系統(tǒng)210的許多其它配置可能比圖2所示計(jì)算機(jī)系 統(tǒng)擁有更多或更少的組成部分。圖3是針對(duì)包含操作減小的網(wǎng)表的電路設(shè)計(jì)而執(zhí)行驗(yàn)證步驟的處理的一個(gè)基本 流程圖。在圖3的處理中,包括多個(gè)節(jié)點(diǎn)的字級(jí)網(wǎng)表從電路設(shè)計(jì)的高級(jí)描述語(yǔ)言描述編譯 而來(lái),優(yōu)選地采用節(jié)點(diǎn)的有向無(wú)環(huán)圖形式(塊300)。存儲(chǔ)器抽象技術(shù)的實(shí)施例在字級(jí)節(jié)點(diǎn) 上操作。然而,備選系統(tǒng)可應(yīng)用到位級(jí)實(shí)現(xiàn)。標(biāo)準(zhǔn)前端流程采取用例如硬件描述語(yǔ)言(HDL) 表達(dá)的寄存器傳送級(jí)(RTL)描述,補(bǔ)充以用戶約束、屬性和其它信息的定義;以及產(chǎn)生下面 具體描述的隱含時(shí)鐘DAG表示。所用的標(biāo)準(zhǔn)前端流程是通過(guò)將具有屬性和約束的硬件設(shè)計(jì) 處理成代表一組無(wú)約束輸入I、狀態(tài)變量S和常量上的組合邏輯的多個(gè)節(jié)點(diǎn),將電路設(shè)計(jì)編 譯成網(wǎng)表。作為結(jié)果的多個(gè)節(jié)點(diǎn)的頂部包含下一狀態(tài)變量S’和單比特輸出0??梢允褂?這種技術(shù)驗(yàn)證的屬性包括其失敗由某個(gè)假定值為“false”的輸出來(lái)發(fā)信號(hào)的所有安全性屬 性。安全性屬性是電路設(shè)計(jì)屬性的子類,其具有某個(gè)輸出總是具有的形式(也就是說(shuō),其失 敗可總是由有限跡(finite trace)來(lái)表明)。另外,在一些實(shí)施例中,每個(gè)狀態(tài)變量可以假 定為具有未知的初始狀態(tài)。在以這種方式編譯的圖中的內(nèi)部節(jié)點(diǎn)包括如下nodel = not (node2)nodel = and(node2,node3)nodel = arithOp (node2, node3),arithOp 是{+,-,...}的成員nodel = compOp (node2, node3),compOp 是{ d =、興、>、> }的成員nodel = mux (selector, node2, node3)nodel = extract(x,node2)nodel = concat (node2, node3,…)nodel = read (op 1,addr j)nodel = write (opk, addri, dataj)在結(jié)果的位i是通過(guò)將布爾運(yùn)算符應(yīng)用到輸入節(jié)點(diǎn)的位i這種意義上, "not (非)”和“and (與)”運(yùn)算符是逐位運(yùn)算符。如果selector (選擇信號(hào))為真,則“mux” 節(jié)點(diǎn)返回node2,否則返回n0de3?!癳xtract”節(jié)點(diǎn)通過(guò)從其操作數(shù)的位置(χ)到(x+k_l) 取出k位,而構(gòu)造一個(gè)更小的位向量。最終,“concat”節(jié)點(diǎn)通過(guò)串接其操作數(shù)形成更大的位向量,而形成更大的信號(hào)。供連接的自變量列表中在前的運(yùn)算符變成更高階位,所以 concat (01,00)變成 0100。mux節(jié)點(diǎn)的選擇信號(hào)和比較運(yùn)算符節(jié)點(diǎn)的輸出限制為具有一位的寬度。這樣的信 號(hào)就是所謂的位級(jí)信號(hào)。不是位級(jí)信號(hào)的信號(hào)稱為字級(jí)信號(hào)。術(shù)語(yǔ)“segment (段)”指的 是一組連續(xù)的位,并且可以表示整個(gè)字或字的部分。讀節(jié)點(diǎn)和寫節(jié)點(diǎn)用于建模存儲(chǔ)器。讀節(jié)點(diǎn)的語(yǔ)義指示針對(duì)寬度為w的 讀節(jié)點(diǎn),該節(jié)點(diǎn)返回結(jié)果,該結(jié)果是在它的自變量里從位向量op中取出位置 addr^w. . . (addr+1)* (w-1)的多個(gè)位。對(duì)具有寬度為w的數(shù)據(jù)操作數(shù)的寫節(jié)點(diǎn),寫節(jié)點(diǎn)返回 用其自變量中的數(shù)據(jù)重寫其自變量中位向量op的區(qū)域addr*W... (addr+l)*(w-l)得到的 結(jié)果位向量。讀節(jié)點(diǎn)和寫節(jié)點(diǎn)的地址空間無(wú)需限制為任何一種特定形式。越界讀取針對(duì)不 存在的位返回非確定值。越界寫入不做任何事。專用“(存儲(chǔ)器)”寄存器節(jié)點(diǎn)或?qū)ψx節(jié)點(diǎn) 和寫節(jié)點(diǎn)可以應(yīng)用于什么信號(hào)的約束不是必需的。因而,RTL存儲(chǔ)器設(shè)計(jì)就像任何其它節(jié) 點(diǎn)一樣可建模為位向量寄存器。通過(guò)控制邏輯的合理使用并配合多個(gè)讀節(jié)點(diǎn)和寫節(jié)點(diǎn),在 本例中的DAG支持具有大量讀端口和寫端口的任意復(fù)合存儲(chǔ)器接口。此外,通過(guò)嵌套讀、寫 和其它節(jié)點(diǎn),復(fù)合策略可在作為同周期讀和寫結(jié)果的更新命令和讀命令上實(shí)現(xiàn)。返回至圖3,遍歷輸入網(wǎng)表以標(biāo)識(shí)可重建模存儲(chǔ)器和這些存儲(chǔ)器的讀節(jié)點(diǎn)和寫節(jié) 點(diǎn)(塊301)。可重建模存儲(chǔ)器是一種可用這種技術(shù)提取的存儲(chǔ)器?;旧?,一種實(shí)際實(shí)現(xiàn) 中的可重建模存儲(chǔ)器可以限于其中的所有槽以統(tǒng)一方式尋址的那些,其僅以另一個(gè)實(shí)現(xiàn)能 夠容易替換的方式與設(shè)計(jì)的其余部分通信,并且具有特定簡(jiǎn)單結(jié)構(gòu)的下一狀態(tài)函數(shù)。更正 式地,在一個(gè)給出寄存器變量mem的實(shí)現(xiàn)中,對(duì)mem標(biāo)記為“純存儲(chǔ)器節(jié)點(diǎn)”的存儲(chǔ)器節(jié)點(diǎn) 的集合可以遞歸地定義如下1)節(jié)點(diǎn)mem是mem的純存儲(chǔ)器節(jié)點(diǎn);2)因opk是mem的純存儲(chǔ)器節(jié)點(diǎn),所以write (opk,addrj, dataj)是純存儲(chǔ)器節(jié) 占.3)如果 optruek 禾口 opfalsek 是 mem 的純存儲(chǔ)器節(jié)點(diǎn),貝Ij mux(sell,optruek, opfalsek)是純存儲(chǔ)器節(jié)點(diǎn)。狀態(tài)變量mem的純讀節(jié)點(diǎn)集合由所有網(wǎng)表讀節(jié)點(diǎn)read(0pi,addrj)組成,其中opi 是mem的純存儲(chǔ)器節(jié)點(diǎn)。此外,對(duì)mem的寫節(jié)點(diǎn)集合由所有write (opk,addrj, dataj)組 成,其中opk是mem的純存儲(chǔ)器節(jié)點(diǎn)。給定此專有名詞,可重建存儲(chǔ)器可定義為滿足以下要求的寄存器狀態(tài)變量mem 1)支持mem的所有讀節(jié)點(diǎn)和寫節(jié)點(diǎn)用相同寬度a的地址節(jié)點(diǎn)讀和寫相同寬度w的 數(shù)據(jù)。此外,mem的位寬是w的整數(shù)m倍,并且2a 使得所有存儲(chǔ)器存取發(fā)生在存儲(chǔ) 器內(nèi)部。2) mem初始化為布爾常量0000. ..0,1111... 1,或者另一個(gè)確定的初始化值。3) mem的下一狀態(tài)函數(shù)是mem的純存儲(chǔ)器節(jié)點(diǎn),并且沒有其它下一狀態(tài)函數(shù)是mem 的純存儲(chǔ)器節(jié)點(diǎn)。4)來(lái)自mem的每一個(gè)扇出路徑包括終結(jié)于(l)mem的下一狀態(tài)節(jié)點(diǎn)或(2)純讀節(jié) 點(diǎn)的純存儲(chǔ)器節(jié)點(diǎn)的序列。第一要求確保存儲(chǔ)器被視為以統(tǒng)一方式讀和寫的槽的位向量。第二要求確保所有槽具有相同的初始狀態(tài),其保證為在已更新網(wǎng)表中表示而選擇的槽都具有相同的初始狀態(tài)。剩下的要求確保存儲(chǔ)器寄存器僅在其它狀態(tài)寄存器的扇入和通過(guò)讀節(jié)點(diǎn)輸出處發(fā)生, 并且存儲(chǔ)器的下一狀態(tài)函數(shù)是在更新存儲(chǔ)器的不同寫節(jié)點(diǎn)之間選擇的簡(jiǎn)單多路復(fù)用器樹。在此描述中運(yùn)用的可重建模存儲(chǔ)器的定義在能夠覆蓋大多數(shù)感興趣的存儲(chǔ)器實(shí) 現(xiàn)與足夠簡(jiǎn)單以提供相對(duì)直接的存儲(chǔ)器抽象算法之間提供了一種平衡。其它類型存儲(chǔ)器也 能用適當(dāng)?shù)奶幚淼靡灾亟?,以考慮例外情況。針對(duì)編碼為字級(jí)DAG的網(wǎng)表,一種直接線性遍歷算法可用于提取可重建模存儲(chǔ)器 的集合,并且計(jì)算它們相關(guān)的讀節(jié)點(diǎn)和寫節(jié)點(diǎn)的集合。再次返回至圖3,一旦可重建模存儲(chǔ)器已經(jīng)隨其讀節(jié)點(diǎn)和寫節(jié)點(diǎn)的集合一起被標(biāo) 識(shí),存儲(chǔ)器便可被重建模以將所表示的存儲(chǔ)器槽的數(shù)量減小為滿足所感興趣的指定屬性 (諸如安全性屬性或安全性屬性的集合)所需的那些槽,如下面(塊302)具體描述的。然后,減小的網(wǎng)表被處理以確定電路設(shè)計(jì)是滿足指定屬性,還是可以執(zhí)行更嚴(yán)格 的模型檢查(塊303)。如下所述,在特定的已減小網(wǎng)表上的模型檢查在代表性實(shí)施例中實(shí) 現(xiàn)為抽象精化循環(huán)的一部分。此外,已減小網(wǎng)表可用非常多樣的工具處理,包括在用于時(shí)序 電路驗(yàn)證的基于變換的方法中進(jìn)行操作的工具。圖4是以一種包括含有存儲(chǔ)器的電路設(shè)計(jì)的DAG形式實(shí)現(xiàn)的一個(gè)示例性網(wǎng)表。在DAG的底部,網(wǎng)表包括meml6384(即具有16384位寬的存儲(chǔ)器的當(dāng)前狀態(tài)節(jié)點(diǎn)400)、寬度 為9的讀地址節(jié)點(diǎn)raddr9401、寬度為9的寫地址節(jié)點(diǎn)waddr9402、寬度為32的數(shù)據(jù)節(jié)點(diǎn) data32403和寬度為32的常量節(jié)點(diǎn)032404。DAG的頂部包括寬度為1的輸出節(jié)點(diǎn)safel 418和存儲(chǔ)器的下一狀態(tài)節(jié)點(diǎn)mem,16384 419。讀節(jié)點(diǎn)405通過(guò)用節(jié)點(diǎn)401的地址讀取存 儲(chǔ)器節(jié)點(diǎn)400產(chǎn)生輸出。比較器節(jié)點(diǎn)406比較讀節(jié)點(diǎn)405的輸出和存儲(chǔ)在節(jié)點(diǎn)407中的常 量 10032。>運(yùn)算符節(jié)點(diǎn)408比較數(shù)據(jù)節(jié)點(diǎn)403的內(nèi)容與節(jié)點(diǎn)409中的常量20032的內(nèi)容。 節(jié)點(diǎn)408運(yùn)算符的結(jié)果作為多路復(fù)用器410的selector輸入。當(dāng)節(jié)點(diǎn)408的輸出為真時(shí), 多路復(fù)用器410選擇數(shù)據(jù)節(jié)點(diǎn)403的內(nèi)容,當(dāng)節(jié)點(diǎn)408的輸出為假時(shí),從節(jié)點(diǎn)404中選擇常 量032。利用多路復(fù)用器節(jié)點(diǎn)410的輸出所提供的數(shù)據(jù),在寫地址節(jié)點(diǎn)402所給出的地址 處,寫節(jié)點(diǎn)411為存儲(chǔ)器節(jié)點(diǎn)400寫下一狀態(tài)寄存器406。因此,在每一個(gè)時(shí)鐘周期,系統(tǒng)從mem讀取地址raddr處的槽的內(nèi)容。如果數(shù)據(jù)大 于200,則系統(tǒng)還將輸入數(shù)據(jù)寫入地址waddr處的槽,否則向其寫入0。所實(shí)現(xiàn)的屬性是安 全性屬性,要求從mem讀取的值絕不等于100。顯然,這對(duì)于在此簡(jiǎn)單系統(tǒng)中任何執(zhí)行跡線 都為真。并且,這個(gè)命題可通過(guò)推理存儲(chǔ)器中單個(gè)槽的隨著時(shí)間的內(nèi)容(即,最后一個(gè)槽讀 取)來(lái)得到證明。圖4中建模的電路可概念性地劃分為兩個(gè)部分。第一部分(虛線415所包圍的) 包含大型存儲(chǔ)器mem,并且通過(guò)兩個(gè)輸入和兩個(gè)輸出與設(shè)計(jì)的其余部分通信,這兩個(gè)輸入和 輸出是節(jié)點(diǎn)402和411之間的9比特寬度的寫地址端口 wa,節(jié)點(diǎn)410和411之間的32比 特寬度的寫數(shù)據(jù)端口 wd,節(jié)點(diǎn)401和405之間的9比特寬度的讀地址端口 ra,節(jié)點(diǎn)405和 406之間的32比特寬度的讀數(shù)據(jù)端口 rd。圖4電路的第二部分是電路的平衡。圖4所示存儲(chǔ)器可抽象為圖5所示用兩個(gè)寄存器的當(dāng)前狀態(tài)和下一狀態(tài)版本來(lái)替 換16384位寬的當(dāng)前狀態(tài)和下一狀態(tài)存儲(chǔ)器節(jié)點(diǎn),其中寄存器的當(dāng)前狀態(tài)和下一狀態(tài)版本是如通過(guò)包含槽地址來(lái)標(biāo)識(shí)已表示的存儲(chǔ)器槽的9位寬的sel節(jié)點(diǎn)500和sel’節(jié)點(diǎn)501, 以及作為已表示槽內(nèi)容的容器的32比特寬度的cont節(jié)點(diǎn)502和cont’節(jié)點(diǎn)503。以這種 方式表示的槽在電路初始化期間被選擇,并在后續(xù)系統(tǒng)執(zhí)行期間保持不變。在這個(gè)實(shí)現(xiàn)中 節(jié)點(diǎn)sel具有無(wú)約束初始狀態(tài)和只將當(dāng)前狀態(tài)值傳給下一狀態(tài)節(jié)點(diǎn)501的下一狀態(tài)函數(shù)。 寄存器COnt502、503初始化為存儲(chǔ)器槽的指定初始值,如全為0。從圖4實(shí)現(xiàn)得到的寫節(jié)點(diǎn)由多路復(fù)用器504替換,如果sel節(jié)點(diǎn)500的內(nèi)容等于 比較器505的輸出所指示寫地址端口 wa9的地址,則多路復(fù)用器504用寫數(shù)據(jù)端口 wd32的 數(shù)據(jù)更新cont的下一狀態(tài)值,否則其將cont的當(dāng)前狀態(tài)節(jié)點(diǎn)502傳給下一狀態(tài)節(jié) 點(diǎn)503。 從圖4實(shí)現(xiàn)得到的讀節(jié)點(diǎn)由多路復(fù)用器506替換,如果sel節(jié)點(diǎn)500的內(nèi)容等于讀地址端 口 ra9的地址(如比較器507的輸出所指示的),則多路復(fù)用器504將cont的當(dāng)前狀態(tài)節(jié) 點(diǎn)502的內(nèi)容提供給讀端口 rd32,否則其提供來(lái)自非確定讀節(jié)點(diǎn)508的非確定數(shù)據(jù)。另外,在圖6所示例子中,更新網(wǎng)表以改變正確性的定義,以便僅當(dāng)從當(dāng)前時(shí)鐘周 期讀取的地址是sel節(jié)點(diǎn)500指示的已表示槽的地址的時(shí)候,才檢查感興趣的屬性。因此, 節(jié)點(diǎn)408的輸出安全由implication運(yùn)算符601的輸出提供。如果如節(jié)點(diǎn)600的輸出所表 明的,提供讀地址端口 ra的節(jié)點(diǎn)401與sel節(jié)點(diǎn)500的內(nèi)容相匹配,則implication運(yùn)算 符601僅檢查原始安全定義電路safedefl 602的輸出。這種實(shí)現(xiàn)可防止因發(fā)生(1)最終 周期中raddr的值不同于sel所選擇的初始值和(2)ndtrd 508的內(nèi)容是100的情況下由 存儲(chǔ)器抽象引入的干擾性反例。在這個(gè)反例中,由sel初始化選來(lái)用于表示的槽與反例中 讀取的地址不是同步的。這導(dǎo)致可能錯(cuò)誤地觸發(fā)安全定義的假輸出的錯(cuò)誤讀取。通過(guò)重新 實(shí)現(xiàn)圖6所示的驗(yàn)證條件,產(chǎn)生錯(cuò)誤的假顯示的可能性得以消除。在根據(jù)圖4-6描述的例子中,存儲(chǔ)器在raddr節(jié)點(diǎn)401標(biāo)識(shí)的槽的當(dāng)前值上進(jìn)行 抽象。這對(duì)那個(gè)例子運(yùn)轉(zhuǎn)良好。然而對(duì)于許多系統(tǒng),從多個(gè)在前的時(shí)間實(shí)例和周期中進(jìn)行 存儲(chǔ)器存取不得不正確的運(yùn)行來(lái)保證在當(dāng)前周期中能夠檢查系統(tǒng)的正確性。例如,為了檢 查完全的多部分信息總是正確地傳送,安全性定義需要讀取序列的隨著時(shí)間的執(zhí)行都是正 確的。為了處理這些類型的系統(tǒng),在抽象對(duì)(Vydi)的集合上的此方法過(guò)程中抽象可重建模 存儲(chǔ)器,其中vi是例如raddr節(jié)點(diǎn)401的信號(hào),包含所要表示的槽的讀地址,di是表明在當(dāng) 前周期之前的多個(gè)周期的整數(shù)時(shí)間延遲。節(jié)點(diǎn)vi和所有抽象對(duì)必須具有存儲(chǔ)器上操作的 讀和寫的地址節(jié)點(diǎn)同樣的寬度。在圖4-6所描述的例子中,在單個(gè)的抽象對(duì){(raddr9,0)} 上抽象存儲(chǔ)器。在已減小網(wǎng)表的特殊實(shí)現(xiàn)中利用的抽象對(duì)集合由下面描述的過(guò)程來(lái)標(biāo)識(shí)。假定抽 象對(duì)已經(jīng)被標(biāo)識(shí),圖7和圖8提供了一種流程圖來(lái)引入已表示的槽,重實(shí)現(xiàn)讀節(jié)點(diǎn)以及改變 驗(yàn)證條件來(lái)產(chǎn)生已更新網(wǎng)表。該處理涉及遍歷輸入網(wǎng)表來(lái)標(biāo)識(shí)一個(gè)可重建模存儲(chǔ)器(塊700,塊701)。對(duì)于每 個(gè)可重建模存儲(chǔ)器引入抽象對(duì)的數(shù)量“η” (塊702)。每個(gè)抽象對(duì)(Vi,(Ii)按照塊703所示 去處理,這是通過(guò)用一個(gè)未初始化的初始狀態(tài)函數(shù)和一個(gè)將前一狀態(tài)值傳給下一狀態(tài)變量 sel’i (塊704)的下一狀態(tài)函數(shù)為(、,屯)引入當(dāng)前狀態(tài)變量seli。seli寄存器將包含系 統(tǒng)運(yùn)行期間此抽象對(duì)所表示的槽的具體數(shù)量。另外,為已表示的槽引入容器寄存器conti 和它的下一狀態(tài)寄存器cont’ i。容器寄存器以對(duì)應(yīng)原始mem節(jié)點(diǎn)的初始化的方式進(jìn)行初 始化。驅(qū)動(dòng)下一狀態(tài)寄存器cont’的函數(shù)在已更新網(wǎng)表中作為已標(biāo)識(shí)存儲(chǔ)器的下一狀態(tài)函數(shù)的節(jié)點(diǎn)。這是可能的,因?yàn)楸纠锌芍亟4鎯?chǔ)器的定義保證了 mem的下一狀態(tài)函數(shù)是 mem的純存儲(chǔ)器節(jié)點(diǎn)。接下來(lái),已標(biāo)識(shí)的可重建模存儲(chǔ)器mem的網(wǎng)表中純存儲(chǔ)器節(jié)點(diǎn)由替代節(jié)點(diǎn)所替 換。如塊705所示,如果節(jié)點(diǎn)是已標(biāo)識(shí)的存儲(chǔ)器,則容器寄存器(conti)和對(duì)應(yīng)于當(dāng)前抽 象對(duì)的初始化向量用作存儲(chǔ)器的替代節(jié)點(diǎn)(塊706)。如果節(jié)點(diǎn)是一個(gè)write (opk,addrl, datam)形式的寫節(jié)點(diǎn)(塊707),將用邏輯mux (sell = addrl, datam, s0)來(lái)替換它,其中 s0表示圖5 (塊708)中如容器寄存器cont —類已更新網(wǎng)表中對(duì)應(yīng)opk的節(jié)點(diǎn)。進(jìn)入圖8,如果節(jié)點(diǎn)是mux(selector,optrue,opfalse)形式的一個(gè)多路復(fù)用器 (塊709),將用邏輯mux (seli = addrl, s0, si)來(lái)替換它,其中s0和si是在已更新網(wǎng)表中 分別表示optrue和opfalse的節(jié)點(diǎn)(塊710)。接下來(lái),替代節(jié)點(diǎn)連接到相應(yīng)槽的下一狀態(tài)容器寄存器cont’ i,如圖5中節(jié)點(diǎn)504 連接到cont’ 503(塊711)。這個(gè)處理以這種方式遍歷抽象對(duì)直至它們都在已更新網(wǎng)表中 重新實(shí)現(xiàn)(塊712,塊713)。接下來(lái)重新實(shí)現(xiàn)讀節(jié)點(diǎn)。如果節(jié)點(diǎn)具有read(0pk,addrl)的形式,其中opk由用 于抽象對(duì)的存儲(chǔ)器中的已表示槽來(lái)替換,然后改變讀節(jié)點(diǎn)多路復(fù)用器樹以包含這個(gè)已表示 槽(塊714)。讀節(jié)點(diǎn)的多路復(fù)用器樹的實(shí)現(xiàn)將參照?qǐng)D10在下面描述。在處理對(duì)應(yīng)已標(biāo)識(shí)存儲(chǔ)器的節(jié)點(diǎn)之后,改變驗(yàn)證條件(塊715)以便于僅當(dāng)抽象節(jié) 點(diǎn)標(biāo)識(shí)的信號(hào)vi已經(jīng)具有在之前時(shí)間實(shí)例di處選擇的合適的值的時(shí)候檢查屬性。實(shí)現(xiàn)驗(yàn) 證條件的一種技術(shù)是定義一個(gè)臨時(shí)公式prevdi (s),如果t > d其在系統(tǒng)精確執(zhí)行的時(shí)間點(diǎn) t處,值為真,和組合信號(hào)s在時(shí)間點(diǎn)t_d估為真。假定對(duì)信號(hào)s有11個(gè)抽象對(duì)(vydi),新 的安全輸出可由為臨時(shí)公式合成一個(gè)檢查器來(lái)產(chǎn)生
/ -ι/Λ
λ prevd,[sel' = ν' j safedef ν=0其中safedef當(dāng)作提供舊的安全輸出的組合節(jié)點(diǎn)。在圖4描述的例子中,safedef 將是當(dāng)讀數(shù)據(jù)端口 rd的數(shù)據(jù)不等于100時(shí)為真的節(jié)點(diǎn)406。該檢查器可用延遲某些網(wǎng)表節(jié) 點(diǎn)比較的在前值的多個(gè)寄存器鏈的簡(jiǎn)單形式來(lái)實(shí)現(xiàn)。參照?qǐng)D10在下面描述這個(gè)例子。注 意,已標(biāo)識(shí)存儲(chǔ)器mem是可重建模存儲(chǔ)器。因此其只能通過(guò)讀節(jié)點(diǎn)在其它狀態(tài)變量扇入處 出現(xiàn)。已更新網(wǎng)表為滿足安全性條件重新實(shí)現(xiàn)所有必要的讀節(jié)點(diǎn)。因此,網(wǎng)表的減小可以 通過(guò)移除原始存儲(chǔ)器mem和所有以上述方式依賴于它的邏輯得到。塊716-718示出了處理的某些實(shí)施例重新實(shí)現(xiàn)網(wǎng)表所涉及的附加步驟。在流程 圖中插入這些節(jié)點(diǎn)來(lái)反映它們是所使用處理實(shí)例的一部分,而不是表明處理執(zhí)行的一種順 序。首先,如上所述,在一種方法中為所有讀節(jié)點(diǎn)引入寄存器ndtrd。備選實(shí)現(xiàn)可應(yīng)用雙軌 編碼,在信號(hào)通道中將寄存器增加額外位以作為表明內(nèi)容是否非確定的標(biāo)志。網(wǎng)表可被評(píng) 估以確定哪種方法對(duì)給定電路設(shè)計(jì)實(shí)現(xiàn)和所選擇技術(shù)更加有效(塊716)。這可以通過(guò)一次 用雙軌編碼執(zhí)行重新實(shí)現(xiàn)循環(huán)(如節(jié)點(diǎn)702-715)、一次用非確定數(shù)據(jù)節(jié)點(diǎn)執(zhí)行重新實(shí)現(xiàn)循 環(huán)并比較結(jié)果來(lái)完成。此外,為各種節(jié)點(diǎn)設(shè)立初始化函數(shù),包括不是全0或全1存儲(chǔ)器的容 器節(jié)點(diǎn),放寬可重建模存儲(chǔ)器的定義以允許非統(tǒng)一初始化(塊717)。最終,可重建模存儲(chǔ)器 的定義可放寬到允許無(wú)約束地址寬度,在這些情況下已更新網(wǎng)表可通過(guò)增加檢查讀和寫節(jié)點(diǎn)的越界地址進(jìn)一步更新(塊718)。一旦生成已更新網(wǎng)表,該處理進(jìn)行到執(zhí)行一種反例指導(dǎo)抽象精化處理來(lái)確定是否 需要增加附加抽象對(duì)(塊719)。參照?qǐng)D11描述一種代表性的反例指導(dǎo)抽象精化處理的細(xì)節(jié)。參照上面塊714所提及的,用圖9所示多路復(fù)用器樹的形式在已更新網(wǎng)表中表示 純讀節(jié)點(diǎn)。圖9所示多路復(fù)用器樹返回其地址與讀地址端口 ra的地址相匹配的第一個(gè)所選 槽的內(nèi)容。如果地址與任何一個(gè)所選槽不匹配,則從輸入節(jié)點(diǎn)ndtrd901的環(huán)境讀取一個(gè)非 確定值。這個(gè)多路復(fù)用器樹包括多路復(fù)用器905-0到905-n,并且接收標(biāo)識(shí)已表示槽selO 到seln的節(jié)點(diǎn)作為輸入,其在比較器節(jié)點(diǎn)902-0到902_n處與讀地址端口的地址相比較。 比較器節(jié)點(diǎn)902-0到902-n的輸出用作相應(yīng)多路復(fù)用器905-0到905_n上的selector輸 入。此外,多路復(fù)用器樹接收用于已表示的槽contO到contn的替代節(jié)點(diǎn)以作為輸入。如 果比較器節(jié)點(diǎn)902-0的輸出為真,多路復(fù)用器905-0選擇contO的內(nèi)容,否則選擇多路復(fù)用 器905-1(未示出)的輸出。如果比較器節(jié)點(diǎn)902-n的輸出為真,樹中最后一個(gè)多路復(fù)用器 905-n選擇contn的內(nèi)容,否則選擇ndtrd節(jié)點(diǎn)901中的值。圖10表示上面提及的參照塊713的驗(yàn)證條件的重新實(shí)現(xiàn)。在這個(gè)例子中,“safe” 輸出920由隱含運(yùn)算符921驅(qū)動(dòng)。當(dāng)AND節(jié)點(diǎn)922的輸出為真時(shí),隱含運(yùn)算符僅僅操作去 檢查安全性定義safedefl的輸出。AND節(jié)點(diǎn)922由一個(gè)其輸出由被在抽象對(duì)中所表明的 合適延遲時(shí)間進(jìn)行延遲的抽象對(duì)上的比較器集合驅(qū)動(dòng)。因此,來(lái)自抽象對(duì)(Vtl,(Ici)910-0的 值v0與標(biāo)識(shí)抽象對(duì)所表示槽的selO節(jié)點(diǎn)相比較。因?yàn)檠舆t值d0是0,表明抽象對(duì)應(yīng)于在 當(dāng)前周期中的槽讀取,所以比較器911-0的輸出無(wú)延遲地應(yīng)用到AND節(jié)點(diǎn)922。來(lái)自抽象 對(duì)(Vpd1MlO-I的值vl與標(biāo)識(shí)抽象對(duì)所表示槽的sell節(jié)點(diǎn)相比較。因?yàn)檠舆t值dl是1, 表明抽象對(duì)對(duì)應(yīng)于在先于當(dāng)前周期1個(gè)周期的周期中的槽讀取,所以比較器911-1的輸出 通過(guò)寄存器912以一個(gè)1周期延遲應(yīng)用到AND節(jié)點(diǎn)922。來(lái)自抽象對(duì)(v2,d2) 910-2的值v2 與標(biāo)識(shí)抽象對(duì)所表示槽的sel2節(jié)點(diǎn)相比較。因?yàn)檠舆t值d2是2,表明抽象對(duì)對(duì)應(yīng)于在先 于當(dāng)前周期2個(gè)周期的周期中讀數(shù),所以比較器911-2的輸出通過(guò)寄存器913和914以一 個(gè)2周期延遲應(yīng)用到AND節(jié)點(diǎn)922。在圖10中延遲寄存器被簡(jiǎn)化以避免圖的擁擠。在一個(gè) 代表性的系統(tǒng)中,延遲912通過(guò)建立一個(gè)具有下一狀態(tài)節(jié)點(diǎn)dl’的節(jié)點(diǎn)dl來(lái)實(shí)現(xiàn)。比較器 911-1在當(dāng)前周期中提供節(jié)點(diǎn)dl’。將寄存器dl的內(nèi)容作為輸入提供至AND節(jié)點(diǎn)922。同 樣地,延遲913和914通過(guò)創(chuàng)建寄存器dl和d2來(lái)實(shí)現(xiàn),其中下一狀態(tài)節(jié)點(diǎn)寄存器dl’由比 較器911-2的輸出來(lái)驅(qū)動(dòng),當(dāng)前狀態(tài)寄存器dl驅(qū)動(dòng)下一狀態(tài)節(jié)點(diǎn)寄存器d2’,并且將d2作 為輸入提供至AND節(jié)點(diǎn)922。圖11示出了一個(gè)針對(duì)特殊設(shè)計(jì)問(wèn)題找到抽象對(duì)的過(guò)程。一種可選擇方法是將依 賴于用戶提供一種抽象對(duì)集合的標(biāo)識(shí)作為到該過(guò)程的輸入。然而,圖11所示的自動(dòng)方法 是優(yōu)選的。因此,對(duì)于圖11的過(guò)程,在設(shè)計(jì)中維護(hù)每一個(gè)可重建模存儲(chǔ)器的抽象對(duì)的當(dāng)前 集合。每一個(gè)可重建模存儲(chǔ)器的抽象對(duì)集合在圖11所示的迭代過(guò)程中單調(diào)增長(zhǎng)。這種過(guò) 程提供了一種具有0個(gè)抽象對(duì)的初始抽象,其中沒有表示可重建模存儲(chǔ)器的存儲(chǔ)器槽(塊 950)。在這種初始抽象中,表示一個(gè)系統(tǒng),其中存儲(chǔ)器的每個(gè)讀數(shù)返回一個(gè)非確定結(jié)果。給 定初始抽象,計(jì)算已抽象的系統(tǒng)來(lái)提供使用了圖7和圖8示例上述方法過(guò)程的一個(gè)已更新 網(wǎng)表(塊951)。將已更新網(wǎng)表應(yīng)用到一個(gè)位級(jí)模型檢查路徑,如典型的用于現(xiàn)有技術(shù)去檢查設(shè)計(jì)的正確性(塊952)。如果所檢查屬性在已更新網(wǎng)表上維持,則抽象過(guò)程進(jìn)行至在原 始系統(tǒng)上的有界檢查(塊953)。在這個(gè)步驟中,使用一種標(biāo)準(zhǔn)的基于SAT的有界檢查程序 檢查原始系統(tǒng)的有界正確性,由對(duì)應(yīng)于已更新網(wǎng)表中抽象對(duì)集合的最大延遲值的多個(gè)周期 所界定的。如果此檢查通過(guò),則聲明系統(tǒng)正確(塊960)。如果原始系統(tǒng)的有界檢查失敗,則 原始系統(tǒng)是有故障的并報(bào)告錯(cuò)誤(塊955)。
如果塊952的模型檢查在更新的網(wǎng)表表示的已抽象系統(tǒng)上探測(cè)到一個(gè)反例,則本 方法過(guò)程試圖精化抽象。已抽象系統(tǒng)的輸入是原始系統(tǒng)輸入的超集。所以在原始系統(tǒng)上 用從表明已更新網(wǎng)表失敗的跡線中確定的輸入和狀態(tài)變量進(jìn)行的仿真可以重現(xiàn)這個(gè)反例 (塊954)。如果在仿真中探測(cè)到缺陷,則將錯(cuò)誤報(bào)告給用戶(塊955)。如果在仿真中沒有 發(fā)生缺陷,就有必要精化抽象集合以移除錯(cuò)誤跡線。因?yàn)樵谠枷到y(tǒng)與可能引入干擾性反例的抽象系統(tǒng)之間的唯一區(qū)別在于存儲(chǔ)器 編碼,在某個(gè)時(shí)間實(shí)例處的某個(gè)已抽象讀節(jié)點(diǎn)必須返回一個(gè)未表示槽的內(nèi)容。通過(guò)檢查在 原始系統(tǒng)上運(yùn)行的仿真和比較在抽象前讀節(jié)點(diǎn)和在抽象后讀節(jié)點(diǎn),隨著時(shí)間的錯(cuò)誤讀數(shù)在 抽象系統(tǒng)的執(zhí)行中能夠得以標(biāo)識(shí)(塊956)。不是所有的錯(cuò)誤讀數(shù)都會(huì)對(duì)已檢查屬性造成影響。通過(guò)在抽象系統(tǒng)仿真中最初對(duì) 所有錯(cuò)誤讀數(shù)強(qiáng)行置數(shù)為正確值和迭代地以貪婪方式縮減已校正的集合直至確定依然移 除錯(cuò)誤的強(qiáng)置讀數(shù)的局部最小值,這個(gè)方法過(guò)程確定讀數(shù)的最小集合以及相關(guān)的時(shí)間點(diǎn)。給定要校正的一個(gè)錯(cuò)誤讀數(shù)的集合和其中發(fā)生錯(cuò)誤讀取的錯(cuò)誤周期的時(shí)間距離, 必須為每一個(gè)時(shí)間點(diǎn)標(biāo)識(shí)抽象信號(hào)。抽象信號(hào)可用如下的啟發(fā)性方法進(jìn)行選擇如果存儲(chǔ) 器讀節(jié)點(diǎn)的片段相對(duì)于存儲(chǔ)器槽數(shù)量比某個(gè)選擇的如20%—類的經(jīng)驗(yàn)值小,則用在其離最 終周期的相應(yīng)時(shí)間距離處失敗讀取的地址信號(hào)來(lái)創(chuàng)建新的抽象對(duì)。然而,如果存儲(chǔ)器讀節(jié) 點(diǎn)的片段相對(duì)于存儲(chǔ)器槽數(shù)量大于所選擇值,則這個(gè)過(guò)程檢索一種寄存器,這種寄存器(1) 與存儲(chǔ)器的地址寬度相同,(2)在存儲(chǔ)器的影響錐中,和(3)包含在執(zhí)行讀取的時(shí)間實(shí)例處 錯(cuò)誤讀節(jié)點(diǎn)讀取的地址值。經(jīng)找到滿足這些標(biāo)準(zhǔn)的寄存器后,已標(biāo)識(shí)的寄存器節(jié)點(diǎn)用于創(chuàng) 建一個(gè)新的抽象對(duì)。在具有大量讀節(jié)點(diǎn)的電路設(shè)計(jì)中,為了成功抽象存儲(chǔ)器,包含已標(biāo)識(shí)槽 的寄存器入口應(yīng)當(dāng)出現(xiàn)在設(shè)計(jì)的其它地方。這種假設(shè)對(duì)于處理某些類型的存儲(chǔ)器是關(guān)鍵 的,如其中每個(gè)周期讀取存儲(chǔ)器的每一個(gè)條目但在給定時(shí)間事件只有少量讀取的內(nèi)容可編 址存儲(chǔ)器。例如,對(duì)一個(gè)具有32個(gè)槽和兩個(gè)讀節(jié)點(diǎn)的單個(gè)可重建模存儲(chǔ)器設(shè)計(jì)的抽象版本 假定一個(gè)長(zhǎng)度為15個(gè)周期的反例。如果形式為reacKmenuraddri)的讀節(jié)點(diǎn)需要在失敗周 期之前的一個(gè)時(shí)間步長(zhǎng)周期13具有一個(gè)正確值,則為了移除缺陷跡線將當(dāng)前抽象集合增 加一個(gè)抽象對(duì)(raddri,1)。然而如果存儲(chǔ)器有28個(gè)讀節(jié)點(diǎn),則這個(gè)過(guò)程將檢索在周期13 包含讀取失敗的具體地址的寄存器reg,并且找到的寄存器將形成一個(gè)新抽象集合(reg, 1)的基礎(chǔ)。如果沒有這樣的寄存器存在,則這個(gè)方法過(guò)程回復(fù)到原始的未抽象的存儲(chǔ)器建 模。在塊957已經(jīng)選擇出抽象對(duì)的新集合后,該過(guò)程執(zhí)行評(píng)估處理是否完成的步驟 (塊959)。當(dāng)然這個(gè)步驟隨同圖11所示處理的其它步驟可以任何合適的順序發(fā)生。例如, 例如塊951之后確定的已抽象尺寸大于原始網(wǎng)表尺寸的75%,則這個(gè)方法過(guò)程可分支到使 用原始網(wǎng)表(塊958)。在一種可選情況下,在塊959系統(tǒng)檢查以確定處理是否超過(guò)一個(gè)時(shí)間限制或超過(guò)一個(gè)表明是否實(shí)現(xiàn)改進(jìn)的預(yù)先指定數(shù)量的循環(huán)。在任何事件中,抽象系統(tǒng)增加抽象對(duì)的新集合并且完成適應(yīng)這個(gè)抽象對(duì)的新集合 所需要的改變(塊951)。這個(gè)方法過(guò)程如圖11所示迭代的循環(huán)直至模型檢查成功(塊 960),報(bào)告錯(cuò)誤(塊955),或作出判定使用原始網(wǎng)表(塊958)。引入一種使用字級(jí)網(wǎng)表信息標(biāo)識(shí)可重建模存儲(chǔ)器的技術(shù)。這些僅用專用讀和寫節(jié) 點(diǎn)與環(huán)境交互 的存儲(chǔ)器,用一種指定方式初始化并統(tǒng)一存取。應(yīng)用包含這樣存儲(chǔ)器的網(wǎng)表 的一種抽象,以準(zhǔn)許證明某些類型的屬性,其中通過(guò)推理一個(gè)比標(biāo)準(zhǔn)位級(jí)模型檢查所需存 儲(chǔ)器槽和時(shí)間實(shí)例更小的數(shù)量來(lái)完成證明。為了避免不得不依賴來(lái)自用戶的抽象信息,使 用一種反例驅(qū)動(dòng)抽象精化框架來(lái)分析干擾性反例以遞增地精化抽象。技術(shù)特點(diǎn)包括(1)適用于一種標(biāo)準(zhǔn)基于變換的安全性屬性驗(yàn)證的驗(yàn)證系統(tǒng),(2) 算法是全自動(dòng)的,(3)不需用戶輸入抽象,和(4)任一位級(jí)模型檢查器可在我們的抽象精化 框架內(nèi)用作判定過(guò)程。當(dāng)根據(jù)較佳實(shí)施例和上面描述的例子說(shuō)明本發(fā)明時(shí),可以理解這些例子意在解釋 而不是限定范圍??梢灶A(yù)期的是,對(duì)于現(xiàn)有的本領(lǐng)域技術(shù)人員不難完成變形和組合,這些變 形和組合均在本發(fā)明的精神和下面權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
一種用于對(duì)電路設(shè)計(jì)的計(jì)算機(jī)實(shí)現(xiàn)的表示進(jìn)行處理的方法,包括將機(jī)器可讀介質(zhì)中的所述電路設(shè)計(jì)表示為數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)將網(wǎng)表定義為多個(gè)節(jié)點(diǎn);標(biāo)識(shí)在所述數(shù)據(jù)結(jié)構(gòu)中表示存儲(chǔ)器的節(jié)點(diǎn),并處理所述網(wǎng)表來(lái)產(chǎn)生已更新的網(wǎng)表,包括標(biāo)識(shí)所述存儲(chǔ)器中的一個(gè)槽或多個(gè)槽以便表示在所述已更新的網(wǎng)表中;用實(shí)現(xiàn)所標(biāo)識(shí)的一個(gè)槽或多個(gè)槽的替代節(jié)點(diǎn)替換所述網(wǎng)表中表示所述存儲(chǔ)器的節(jié)點(diǎn);以及實(shí)現(xiàn)所述電路設(shè)計(jì)的驗(yàn)證條件,所述驗(yàn)證條件支持使用所述替代節(jié)點(diǎn)對(duì)所述電路設(shè)計(jì)的預(yù)先指定屬性的檢查。
2.根據(jù)權(quán)利要求1的方法,其中所述替代用替代節(jié)點(diǎn)的集合替換所述存儲(chǔ)器,包括針對(duì)每個(gè)已表示的槽,當(dāng)前狀態(tài)和下一狀態(tài)替代節(jié)點(diǎn)和當(dāng)前狀態(tài)和下一狀態(tài)節(jié)點(diǎn)標(biāo)識(shí) 所述已表示的槽,以及針對(duì)表示向?qū)崿F(xiàn)多路復(fù)用器的相應(yīng)槽進(jìn)行寫入的節(jié)點(diǎn),如果寫地址與標(biāo)識(shí)所述已表示 的槽的當(dāng)前狀態(tài)節(jié)點(diǎn)的輸出相匹配,則用寫數(shù)據(jù)更新所述槽的下一狀態(tài)替代節(jié)點(diǎn)的內(nèi)容, 否則用所述槽的當(dāng)前狀態(tài)替代節(jié)點(diǎn)的內(nèi)容更新所述槽的下一狀態(tài)替代節(jié)點(diǎn)的內(nèi)容,以及針對(duì)網(wǎng)表中表示對(duì)實(shí)現(xiàn)多路復(fù)用器的相應(yīng)槽進(jìn)行讀取的節(jié)點(diǎn),如果讀地址與標(biāo)識(shí)所述 已表示的槽的當(dāng)前狀態(tài)節(jié)點(diǎn)的輸出相匹配,則返回槽的當(dāng)前狀態(tài)替代節(jié)點(diǎn)的內(nèi)容,否則返 回非確定數(shù)據(jù)。
3.根據(jù)權(quán)利要求1的方法,其中所述網(wǎng)表包含排列在有向非循環(huán)圖中的節(jié)點(diǎn),其包括 表示邏輯運(yùn)算符和算術(shù)運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示多路復(fù)用器運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示串接 運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示提取運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示讀取的字級(jí)節(jié)點(diǎn)、表示寫入的字級(jí)節(jié) 點(diǎn)、表示狀態(tài)變量的字級(jí)節(jié)點(diǎn)和表示二進(jìn)制常量的字級(jí)節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1的方法,其中所述標(biāo)識(shí)表示存儲(chǔ)器的節(jié)點(diǎn)包括為存儲(chǔ)器和存儲(chǔ)器的 下一狀態(tài)函數(shù)確定所有定址于所述存儲(chǔ)器的讀和寫節(jié)點(diǎn)、相同寬度的讀和寫數(shù)據(jù)以及使用 相同寬度的地址節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1的方法,包括通過(guò)標(biāo)識(shí)抽象對(duì)來(lái)實(shí)現(xiàn)所述驗(yàn)證條件,所述抽象對(duì)包 括已更新網(wǎng)表中對(duì)應(yīng)于已更新網(wǎng)表中的當(dāng)前狀態(tài)替代節(jié)點(diǎn)的已抽象節(jié)點(diǎn)和表明使用該已 抽象節(jié)點(diǎn)的輸出來(lái)讀取當(dāng)前狀態(tài)替代節(jié)點(diǎn)的周期的延遲參數(shù),并且在已更新網(wǎng)表中建立節(jié) 點(diǎn)集合,其將所述已抽象節(jié)點(diǎn)與標(biāo)識(shí)已表明周期中對(duì)應(yīng)當(dāng)前狀態(tài)替代節(jié)點(diǎn)的已表示的槽的 節(jié)點(diǎn)相比較,并且如果針對(duì)已標(biāo)識(shí)抽象對(duì)指示匹配,則檢查預(yù)先指定的屬性。
6.根據(jù)權(quán)利要求5的方法,包括執(zhí)行反例指導(dǎo)的精化處理以標(biāo)識(shí)所述抽象對(duì)。
7.根據(jù)權(quán)利要求5的方法,包括 提供初始已更新網(wǎng)表;在所述初始已更新網(wǎng)表上執(zhí)行模型檢查處理,并且如果模型檢查在特定狀態(tài)失敗,則 使用所述輸入網(wǎng)表、基于從所述特定狀態(tài)確定的初始狀態(tài)變量賦值和輸入的集合來(lái)運(yùn)行仿 真;如果所述仿真通過(guò),則查找導(dǎo)致已更新網(wǎng)表中檢測(cè)到的失敗的錯(cuò)誤讀取,選擇抽象對(duì)來(lái) 解決所述錯(cuò)誤讀取,并將所選擇的抽象對(duì)添加到所述已更新網(wǎng)表中。
8.根據(jù)權(quán)利要求1的方法,其中所述預(yù)先指定的屬性是安全性定義。
9.根據(jù)權(quán)利要求1的方法,其中已更新數(shù)據(jù)結(jié)構(gòu)包括網(wǎng)表。
10.根據(jù)權(quán)利要求1的方法,包括使用所述電路設(shè)計(jì)制造集成電路。
11.一種適用于對(duì)電路設(shè)計(jì)的計(jì)算機(jī)實(shí)現(xiàn)的表示進(jìn)行處理的數(shù)據(jù)處理系統(tǒng),包括數(shù)據(jù)處理器和耦合至所述數(shù)據(jù)處理器的存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)由所述數(shù)據(jù)處理器執(zhí) 行的、將所述存儲(chǔ)器中的電路設(shè)計(jì)表示為數(shù)據(jù)結(jié)構(gòu)的指令,所述數(shù)據(jù)結(jié)構(gòu)將網(wǎng)表定義為多 個(gè)節(jié)點(diǎn);包括指令用于標(biāo)識(shí)在所述數(shù)據(jù)結(jié)構(gòu)中表示存儲(chǔ)器的節(jié)點(diǎn),并用于處理所述網(wǎng)表以產(chǎn)生已更新網(wǎng)表,包括標(biāo)識(shí)所述存儲(chǔ)器中的一個(gè)槽或多個(gè)槽以便表示在所述已更新網(wǎng)表中;用實(shí)現(xiàn)所標(biāo)識(shí)的一個(gè)槽或多個(gè)槽的替代節(jié)點(diǎn)來(lái)替代在所述網(wǎng)表中表示存儲(chǔ)器的節(jié)點(diǎn);以及實(shí)現(xiàn)所述電路設(shè)計(jì)的驗(yàn)證條件,所述驗(yàn)證條件支持使用所述替代節(jié)點(diǎn)對(duì)指定的安全性 定義的檢查。
12.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中所述替代使用每個(gè)已表示的槽的替代節(jié) 點(diǎn)集合來(lái)替換所述存儲(chǔ)器,所述集合包括標(biāo)識(shí)已表示的槽的當(dāng)前狀態(tài)和下一狀態(tài)節(jié)點(diǎn)和當(dāng) 前狀態(tài)和下一狀態(tài)替換節(jié)點(diǎn),并且針對(duì)表示對(duì)實(shí)現(xiàn)多路復(fù)用器的相應(yīng)槽進(jìn)行寫入的節(jié)點(diǎn), 如果寫地址與標(biāo)識(shí)已表示的槽的當(dāng)前狀態(tài)節(jié)點(diǎn)的輸出相匹配,則用寫數(shù)據(jù)更新槽的下一狀 態(tài)替代節(jié)點(diǎn)的內(nèi)容,否則用槽的當(dāng)前狀態(tài)替代節(jié)點(diǎn)的內(nèi)容更新槽的下一狀態(tài)替代節(jié)點(diǎn)的內(nèi) 容,并且針對(duì)網(wǎng)表中表示對(duì)實(shí)現(xiàn)多路復(fù)用器的相應(yīng)槽進(jìn)行讀取的節(jié)點(diǎn),如果讀地址與標(biāo)識(shí) 已表示的槽的當(dāng)前狀態(tài)節(jié)點(diǎn)的輸出相匹配,則返回槽的當(dāng)前狀態(tài)替代節(jié)點(diǎn)的內(nèi)容,否則返 回非確定數(shù)據(jù)。
13.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中所述網(wǎng)表包括排列在有向非循環(huán)圖中的節(jié) 點(diǎn),其包括表示邏輯運(yùn)算符和算術(shù)運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示多路復(fù)用器運(yùn)算符的字級(jí)節(jié)點(diǎn)、 表示串接運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示提取運(yùn)算符的字級(jí)節(jié)點(diǎn)、表示讀取的字級(jí)節(jié)點(diǎn)、表示寫入 的字級(jí)節(jié)點(diǎn)、表示狀態(tài)變量的字級(jí)節(jié)點(diǎn)和表示二進(jìn)制常量的字級(jí)節(jié)點(diǎn)。
14.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中所述用于標(biāo)識(shí)表示存儲(chǔ)器的節(jié)點(diǎn)的指令包 括用于為存儲(chǔ)器和存儲(chǔ)器的下一狀態(tài)函數(shù)確定所有定址于所述存儲(chǔ)器的讀和寫節(jié)點(diǎn)、相 同寬度的讀取和寫入數(shù)據(jù)以及使用相同寬度的地址節(jié)點(diǎn)的指令。
15.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),所述用于通過(guò)標(biāo)識(shí)抽象對(duì)來(lái)實(shí)現(xiàn)所述驗(yàn)證條件 的指令,所述抽象對(duì)包括已更新網(wǎng)表中的對(duì)應(yīng)于已更新網(wǎng)表中當(dāng)前狀態(tài)替代節(jié)點(diǎn)的已抽象 節(jié)點(diǎn)和表明使用所述已抽象節(jié)點(diǎn)的輸出讀取當(dāng)前狀態(tài)替代節(jié)點(diǎn)的周期的延遲參數(shù),并且在 已更新網(wǎng)表中建立節(jié)點(diǎn)集合,其將所述已抽象節(jié)點(diǎn)與標(biāo)識(shí)已表明周期中對(duì)應(yīng)當(dāng)前狀態(tài)替代 節(jié)點(diǎn)的已表示的槽的節(jié)點(diǎn)相比較,如果針對(duì)已標(biāo)識(shí)的抽象對(duì)指示匹配,則檢查預(yù)先指定的 屬性。
16.根據(jù)權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),包括用于執(zhí)行反例指導(dǎo)精化處理來(lái)標(biāo)識(shí)所述抽 象對(duì)的指令。
17.根據(jù)權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),包括指令提供初始已更新網(wǎng)表;以及在所述初始已更新網(wǎng)表上執(zhí)行模型檢查處理,并且如果模型檢查在特定狀態(tài)失敗,則使用輸入網(wǎng)表、基于所述特定狀態(tài)確定的初始狀態(tài)變量賦值和輸入的集合運(yùn)行仿真;如果 所述仿真通過(guò),則查找導(dǎo)致已更新網(wǎng)表中檢測(cè)到的失敗的錯(cuò)誤讀取,選擇抽象對(duì)以解決所 述錯(cuò)誤讀取,并將所選擇的抽象對(duì)添加到已更新網(wǎng)表。
18.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中所述預(yù)先指定的屬性是安全性定義。
19.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中已更新數(shù)據(jù)結(jié)構(gòu)包含網(wǎng)表。
20.一種提供適用于對(duì)電路設(shè)計(jì)的計(jì)算機(jī)實(shí)現(xiàn)的表示進(jìn)行處理的產(chǎn)品,包括 可由數(shù)據(jù)處理器讀取的存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)可由所述數(shù)據(jù)處理器執(zhí)行的、將所述存儲(chǔ)器中的電路設(shè)計(jì)表示為數(shù)據(jù)結(jié)構(gòu)的指令,所述數(shù)據(jù)結(jié)構(gòu)將網(wǎng)表定義為多個(gè)節(jié)點(diǎn);并且 包括指令用于標(biāo)識(shí)在所述數(shù)據(jù)結(jié)構(gòu)中表示存儲(chǔ)器的節(jié)點(diǎn),并用于處理所述網(wǎng)表以產(chǎn)生已更新網(wǎng) 表,包括標(biāo)識(shí)所述存儲(chǔ)器的一個(gè)槽或多個(gè)槽以便表示在所述已更新網(wǎng)表中;用實(shí)現(xiàn)所標(biāo)識(shí)的一個(gè)槽或多個(gè)槽的替代節(jié)點(diǎn)來(lái)替換在所述網(wǎng)表中表示存儲(chǔ)器的節(jié)點(diǎn);以及實(shí)現(xiàn)所述電路設(shè)計(jì)的驗(yàn)證條件,所述驗(yàn)證條件支持使用所述替代節(jié)點(diǎn)對(duì)所述電路設(shè)計(jì) 的預(yù)先指定的安全性定義的檢查。
全文摘要
本發(fā)明公開了一種將包括存儲(chǔ)器的電路設(shè)計(jì)的計(jì)算機(jī)實(shí)現(xiàn)的表示抽象為更小的網(wǎng)表,其可用標(biāo)準(zhǔn)驗(yàn)證工具和操作網(wǎng)表的其它工具進(jìn)行分析。這些系統(tǒng)的正確性需要推理比電路設(shè)計(jì)中存在的存儲(chǔ)器條目的數(shù)量少得多的數(shù)量,并且通過(guò)將這些存儲(chǔ)器抽象為小得多的數(shù)量的條目,大大減小了驗(yàn)證問(wèn)題的計(jì)算復(fù)雜度。
文檔編號(hào)G06F17/40GK101842789SQ200980000167
公開日2010年9月22日 申請(qǐng)日期2009年8月31日 優(yōu)先權(quán)日2008年10月27日
發(fā)明者P·M·布杰塞 申請(qǐng)人:新思科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
长沙市| 北辰区| 余干县| 乾安县| 云梦县| 华阴市| 石城县| 乌兰察布市| 乌拉特后旗| 台南市| 白沙| 博客| 新巴尔虎左旗| 宁安市| 静宁县| 上虞市| 河间市| 任丘市| 翁牛特旗| 准格尔旗| 乐亭县| 朝阳市| 简阳市| 双峰县| 湟中县| 山阳县| 高阳县| 乌兰察布市| 永胜县| 嘉黎县| 余姚市| 开原市| 瑞丽市| 西安市| 镇雄县| 阜平县| 枝江市| 台南市| 白水县| 蒙山县| 宿州市|