本公開通常涉及電路的仿真,更具體地涉及迅速識(shí)別數(shù)字系統(tǒng)的不可預(yù)測(cè)的行為。
背景技術(shù):
已經(jīng)開發(fā)了仿真器來協(xié)助電路設(shè)計(jì)者設(shè)計(jì)和調(diào)試高度復(fù)雜的集成電路。仿真器包括可以一起模擬待測(cè)設(shè)計(jì)(dut)的操作的多個(gè)可重新配置的組件,諸如現(xiàn)場(chǎng)可編程門陣列(fpga)。通過使用仿真器來模擬dut的操作,設(shè)計(jì)人員可以在制造之前驗(yàn)證dut符合各種設(shè)計(jì)要求。
仿真的一個(gè)方面包括識(shí)別dut的功能性。在一種方法中,識(shí)別dut的功能性涉及對(duì)dut進(jìn)行仿真并分析來自被仿真dut的信號(hào),以驗(yàn)證不正確的、不確定的或未知的操作。例如,在電源關(guān)閉或初始化不正確的情況下,未正確地終止dut中的寄存器或邏輯電路,并且這些寄存器或邏輯電路的狀態(tài)變得未知。在dut的操作期間,未知狀態(tài)可能導(dǎo)致不正確的邏輯運(yùn)算,并且不正確的邏輯運(yùn)算的結(jié)果可能進(jìn)一步影響其他邏輯電路在整個(gè)dut中不正確地操作。
在常規(guī)方法中,數(shù)字信號(hào)以二進(jìn)制狀態(tài)(例如,高或低)來表示,并且識(shí)別dut的不正確或未知操作涉及執(zhí)行dut的仿真,直到在dut的輸出處檢測(cè)到不恰當(dāng)或不確定的結(jié)果。在高級(jí)過程(例如,22納米(nm)及以下)中,dut可以包括數(shù)十億個(gè)邏輯電路和信號(hào)。因此,識(shí)別dut的未知操作可能涉及由于未知狀態(tài)而執(zhí)行大量的數(shù)字邏輯運(yùn)算直到在輸出處傳出不正確的邏輯運(yùn)算,這可能是耗時(shí)的過程。結(jié)果,定位未知狀態(tài)的源并對(duì)它們進(jìn)行調(diào)試是低效的。
因此,需求一種用于在所執(zhí)行的仿真周期方面以時(shí)間有效的方式識(shí)別dut的操作的不確定性的方法。
附圖說明
所公開的實(shí)施例具有其他優(yōu)點(diǎn)和特征,其從詳細(xì)描述、所附權(quán)利要求和附圖(或圖)中將是更容易顯而易見的。下面簡(jiǎn)要介紹一下這些附圖。
圖1是根據(jù)一個(gè)實(shí)施例的仿真環(huán)境的框圖。
圖2是圖示出根據(jù)一個(gè)實(shí)施例的主機(jī)系統(tǒng)的框圖。
圖3是根據(jù)一個(gè)實(shí)施例的語義轉(zhuǎn)換模塊的框圖。
圖4a是根據(jù)一個(gè)語義表示的在仿真器上實(shí)現(xiàn)的信號(hào)的示例轉(zhuǎn)換。
圖4b是根據(jù)另一語義表示的在仿真器上實(shí)現(xiàn)的信號(hào)的另一示例轉(zhuǎn)換。
圖5是根據(jù)一個(gè)實(shí)施例的布爾邏輯電路的示例轉(zhuǎn)換。
圖6a是根據(jù)一個(gè)實(shí)施例的觸發(fā)器的示例轉(zhuǎn)換。
圖6b是根據(jù)一個(gè)實(shí)施例的鎖存器的示例轉(zhuǎn)換。
圖7是根據(jù)一個(gè)實(shí)施例的存儲(chǔ)器電路的示例轉(zhuǎn)換。
圖8是圖示出根據(jù)一個(gè)實(shí)施例的主機(jī)系統(tǒng)準(zhǔn)備用于仿真被轉(zhuǎn)換為表示數(shù)字信號(hào)的未知狀態(tài)的待測(cè)設(shè)備(dut)的流程圖。
圖9圖示出根據(jù)一個(gè)實(shí)施例在dut上執(zhí)行的轉(zhuǎn)換。
圖10是圖示出根據(jù)一個(gè)實(shí)施例的執(zhí)行數(shù)字邏輯運(yùn)算以基于信號(hào)狀態(tài)來識(shí)別dut的未知操作的仿真器的流程圖。
圖11是圖示出根據(jù)一個(gè)實(shí)施例的基于參考信號(hào)的確實(shí)狀況和推測(cè)狀況的觸發(fā)器或鎖存器的操作的流程圖。
圖12a是圖示出根據(jù)一個(gè)實(shí)施例的由仿真器執(zhí)行的存儲(chǔ)器寫入操作的流程圖。
圖12b是圖示出根據(jù)一個(gè)實(shí)施例的由仿真器執(zhí)行的存儲(chǔ)器讀取操作的流程圖。
圖13圖示出了能夠從機(jī)器可讀介質(zhì)讀取指令并在處理器(或控制器)中執(zhí)行它們的示例機(jī)器的組件的一個(gè)實(shí)施例。
具體實(shí)施方式
附圖(圖)和以下描述僅通過說明的方式與優(yōu)選實(shí)施例相關(guān)。應(yīng)當(dāng)注意,從下面的討論中,本文所公開的結(jié)構(gòu)和方法的替代實(shí)施例將很容易被認(rèn)為是在不脫離所要求保護(hù)的原理的情況下可以采用的可行替代方案。
現(xiàn)在將對(duì)若干個(gè)實(shí)施例進(jìn)行詳細(xì)參考,其示例在附圖中圖示出。附圖僅僅為了說明的目的而描繪了所公開的系統(tǒng)(或方法)的實(shí)施例。從下面的描述中應(yīng)當(dāng)認(rèn)識(shí)到,在不脫離本文所描述的原理的情況下,可以采用本文所圖示的結(jié)構(gòu)和方法的替代實(shí)施例。
配置概述
所公開的系統(tǒng)(和方法以及計(jì)算機(jī)程序產(chǎn)品)包括能夠指示信號(hào)的未知狀態(tài)并相應(yīng)地執(zhí)行數(shù)字邏輯運(yùn)算以用于提高識(shí)別dut的不正確或未知操作的速度和性能的仿真環(huán)境。在所公開的系統(tǒng)(和方法以及計(jì)算機(jī)程序產(chǎn)品)中,通過以所公開的語義所表示的數(shù)字邏輯電路來指示和傳播信號(hào)的未知狀態(tài),以便能夠迅速識(shí)別dut的例如由于電源關(guān)閉或不恰當(dāng)?shù)某跏蓟鸬牟徽_的操作。
dut的不正確或未知操作是指由于dut的任何信號(hào)具有未知狀態(tài)而使dut的輸出與其預(yù)期輸出相比變得未知或不正確的dut的操作。
仿真環(huán)境的一個(gè)實(shí)施例包括主機(jī)系統(tǒng)和仿真器。主機(jī)系統(tǒng)配置仿真器來加載待測(cè)設(shè)計(jì)(dut),并且仿真器相應(yīng)地對(duì)dut進(jìn)行仿真。主機(jī)系統(tǒng)根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換dut或dut的一部分,以實(shí)現(xiàn)dut的信號(hào)的未知狀態(tài)的表示和未知狀態(tài)的傳播。dut中的信號(hào)和邏輯電路(組合的以及順序的電路)被轉(zhuǎn)換,使得輸入信號(hào)的不確定性可以被攜帶至邏輯電路的輸出上。在一個(gè)實(shí)施例中,信號(hào)和邏輯電路的轉(zhuǎn)換在寄存器傳送語言(rtl)級(jí)別處執(zhí)行??商娲?,信號(hào)和邏輯電路的轉(zhuǎn)換可以在柵/晶體管級(jí)別或任何其他級(jí)別處執(zhí)行。
在一種方法中,主機(jī)系統(tǒng)將以兩狀態(tài)語義所表示的dut的數(shù)字信號(hào)的單個(gè)比特轉(zhuǎn)換為在三或四狀態(tài)語義(在本文中被稱為“四狀態(tài)語義”)中的至少兩個(gè)比特,以實(shí)現(xiàn)未知狀態(tài)的表示。在一個(gè)實(shí)現(xiàn)中,第一比特指示信號(hào)的可能的低狀態(tài)或可能的高狀態(tài),第二比特指示信號(hào)的狀態(tài)是已知的還是未知的。在另一實(shí)現(xiàn)中,第一比特指示可能的高狀態(tài),第二比特指示可能的低狀態(tài)。在兩種實(shí)現(xiàn)中,至少兩個(gè)比特的組合實(shí)現(xiàn)信號(hào)的未知狀態(tài)的表示。
此外,主機(jī)系統(tǒng)根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換布爾邏輯運(yùn)算器,以基于以四狀態(tài)語義所表示的輸入信號(hào)來確定已轉(zhuǎn)換的布爾邏輯運(yùn)算器的輸出以及輸出的不確定性。當(dāng)四狀態(tài)語義中的輸入信號(hào)的狀態(tài)未知時(shí),基于另一個(gè)輸入信號(hào)的已知狀態(tài)(例如,高或低)來確定已轉(zhuǎn)換的布爾邏輯運(yùn)算器的輸出狀態(tài)以及輸出狀態(tài)的確定性。因此,通過已轉(zhuǎn)換的布爾邏輯運(yùn)算器迅速地傳播未知狀態(tài)。
此外,主機(jī)系統(tǒng)根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換邊緣運(yùn)算器(例如,觸發(fā)器),以使得邊緣運(yùn)算器能夠利用推測(cè)轉(zhuǎn)變進(jìn)行操作,該推測(cè)轉(zhuǎn)變包括在參考信號(hào)的狀態(tài)中的從以四狀態(tài)語義所表示的未知狀態(tài)或到該未知狀態(tài)的轉(zhuǎn)變。本文中的推測(cè)轉(zhuǎn)變是指在參考信號(hào)中的轉(zhuǎn)變,該轉(zhuǎn)變由于參考信號(hào)中的狀態(tài)的不確定性而可能觸發(fā)觸發(fā)器的操作。例如,對(duì)于上升沿觸發(fā)的觸發(fā)器,當(dāng)參考信號(hào)從低狀態(tài)轉(zhuǎn)變到未知狀態(tài)或從未知狀態(tài)轉(zhuǎn)變到高狀態(tài)時(shí),發(fā)生推測(cè)轉(zhuǎn)變。已轉(zhuǎn)換的觸發(fā)器基于參考信號(hào)的推測(cè)轉(zhuǎn)變或確實(shí)轉(zhuǎn)變(即,不是推測(cè)的)來生成輸出信號(hào)。
另外,主機(jī)系統(tǒng)根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換鎖存器,以使得鎖存器能夠利用具有以四狀態(tài)語義所表示的未知狀態(tài)的參考信號(hào)進(jìn)行操作。已轉(zhuǎn)換的鎖存器基于具有確實(shí)狀態(tài)(即已知狀態(tài))或未知狀態(tài)的參考信號(hào)來生成輸出信號(hào)。
此外,主機(jī)系統(tǒng)根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換存儲(chǔ)器電路,以基于不明確的地址信號(hào)執(zhí)行讀取和寫入操作。不明確的地址信號(hào)包括具有未知狀態(tài)的至少一個(gè)比特。在利用所公開的語義的轉(zhuǎn)換之后,具有未知狀態(tài)的比特可以用兩個(gè)或多個(gè)比特來表示。在一個(gè)方面中,已轉(zhuǎn)換的存儲(chǔ)器電路實(shí)現(xiàn)存儲(chǔ)器指示符,其中每個(gè)存儲(chǔ)器指示符與其對(duì)應(yīng)內(nèi)容以及由地址信號(hào)指示的其對(duì)應(yīng)地址相關(guān)聯(lián)。存儲(chǔ)器指示符指示與存儲(chǔ)器指示符相關(guān)聯(lián)的對(duì)應(yīng)內(nèi)容的不確定性。
示例仿真環(huán)境
圖1是圖示出根據(jù)一個(gè)實(shí)施例的仿真環(huán)境100的框圖。仿真環(huán)境100包括主機(jī)系統(tǒng)110和仿真器120。主機(jī)系統(tǒng)110通過接口115來與仿真器120進(jìn)行通信。
主機(jī)系統(tǒng)110將仿真器120配置用于對(duì)dut進(jìn)行仿真并且在dut的仿真期間與仿真器120通信。dut是要由仿真器120仿真的一個(gè)或多個(gè)電路設(shè)計(jì)。主機(jī)系統(tǒng)110可以是單個(gè)計(jì)算機(jī)或多個(gè)計(jì)算機(jī)的集合。
在一個(gè)實(shí)施例中,主機(jī)系統(tǒng)110從用戶接收待仿真的dut的描述。dut的描述是以一種硬件描述語言(hdl)的類型,例如寄存器傳送語言(rtl)。主機(jī)系統(tǒng)110將dut或dut的一部分進(jìn)行轉(zhuǎn)換以使得能夠表示dut的信號(hào)的未知狀態(tài)。優(yōu)選地,主機(jī)系統(tǒng)110將傳統(tǒng)的兩狀態(tài)語義中的信號(hào)轉(zhuǎn)換為四狀態(tài)語義以表示dut的信號(hào)的未知狀態(tài)。此外,主機(jī)系統(tǒng)110轉(zhuǎn)換包括但不限于布爾邏輯運(yùn)算器、觸發(fā)器、鎖存器和存儲(chǔ)器電路的數(shù)字邏輯電路,以使得能夠利用以四狀態(tài)語義表示的信號(hào)進(jìn)行操作。
主機(jī)系統(tǒng)110基于根據(jù)四狀態(tài)語義的已轉(zhuǎn)換dut的hdl描述來創(chuàng)建門級(jí)網(wǎng)表。主機(jī)系統(tǒng)110使用門級(jí)網(wǎng)表對(duì)已轉(zhuǎn)換的dut進(jìn)行分區(qū),并將每個(gè)分區(qū)映射到仿真器120中包括的一個(gè)或多個(gè)邏輯電路。主機(jī)系統(tǒng)110通過接口115將已轉(zhuǎn)換的dut的門級(jí)描述在一個(gè)或多個(gè)比特流中傳送到仿真器120。比特流可以包括已轉(zhuǎn)換dut的門級(jí)邏輯的表示、分區(qū)信息、映射信息和用于配置仿真器120的設(shè)計(jì)約束。
在替代實(shí)施例中,主機(jī)系統(tǒng)110通過接口115將根據(jù)四狀態(tài)語義的已轉(zhuǎn)換dut的hdl描述發(fā)送到仿真器120。
在另一替代實(shí)施例中,主機(jī)系統(tǒng)110從用戶接收門級(jí)邏輯中的dut的描述。此外,主機(jī)系統(tǒng)110根據(jù)四狀態(tài)語義而將門級(jí)邏輯中的dut或dut的一部分進(jìn)行轉(zhuǎn)換以實(shí)現(xiàn)dut的信號(hào)的未知狀態(tài)的表示。類似地,主機(jī)系統(tǒng)110將包括已轉(zhuǎn)換dut的門級(jí)邏輯的表示的比特流發(fā)送到仿真器120。
在一種方法中,在塊/ip級(jí)硬件組件中對(duì)dut的一部分進(jìn)行預(yù)先定義。可替代地,用戶能夠選擇要被轉(zhuǎn)換成四狀態(tài)語義的dut的一部分。此外,dut的一部分可以以兩狀態(tài)語義和四狀態(tài)語義二者來表示,以同時(shí)并行地進(jìn)行仿真以如實(shí)地保留期望的行為。
另外,在由仿真器120對(duì)dut進(jìn)行仿真期間,主機(jī)系統(tǒng)110通過接口115接收來自仿真器120的仿真結(jié)果。仿真結(jié)果是由仿真器120基于dut的仿真而發(fā)送的信息。仿真結(jié)果包括描述在仿真期間dut中的多個(gè)信號(hào)的狀態(tài)的信息。例如,仿真器120發(fā)送以四狀態(tài)語義的仿真結(jié)果,并且主機(jī)系統(tǒng)110將來自仿真器120的仿真結(jié)果轉(zhuǎn)換為兩狀態(tài)語義。在另一示例中,在對(duì)主機(jī)系統(tǒng)110進(jìn)行發(fā)送之前,仿真器120將以四狀態(tài)語義的仿真結(jié)果轉(zhuǎn)換為兩狀態(tài)語義。
仿真器120是對(duì)dut進(jìn)行仿真的硬件系統(tǒng)。仿真器120包括多個(gè)可配置的邏輯電路,它們可以一起對(duì)dut進(jìn)行仿真。在一個(gè)實(shí)施例中,包括在仿真器120中的邏輯電路是現(xiàn)場(chǎng)可編程門陣列(fpga)。
對(duì)于待仿真的dut,仿真器120從主機(jī)系統(tǒng)110接收包括根據(jù)四狀態(tài)語義的已轉(zhuǎn)換dut的門級(jí)描述的一個(gè)或多個(gè)比特流,以表示dut中的信號(hào)的未知狀態(tài)。比特流進(jìn)一步描述了由主機(jī)系統(tǒng)110創(chuàng)建的dut的分區(qū),分區(qū)到仿真器120的fpga的映射、以及設(shè)計(jì)約束。在替代實(shí)施例中,仿真器120接收包括已轉(zhuǎn)換dut的hdl級(jí)別描述的比特流?;诒忍亓?,仿真器120配置fpga以執(zhí)行dut的功能。
仿真器120對(duì)根據(jù)四狀態(tài)語義的已轉(zhuǎn)換dut進(jìn)行仿真,以表示dut中的信號(hào)的未知狀態(tài)?;诜抡?,仿真器120生成仿真結(jié)果,所述仿真結(jié)果被發(fā)送到主機(jī)系統(tǒng)110以用于分析。
接口115是允許主機(jī)系統(tǒng)110和仿真器120之間的通信的通信介質(zhì)。在一個(gè)實(shí)施例中,接口115是具有電連接的電纜。例如,接口115可以是rs232、usb、lan、光學(xué)或定制電纜。在其它實(shí)施例中,接口115是無線通信介質(zhì)或網(wǎng)絡(luò)。例如,接口115可以是采用
圖2是根據(jù)一個(gè)實(shí)施例的更詳細(xì)地圖示主機(jī)系統(tǒng)110的框圖。主機(jī)系統(tǒng)110包括設(shè)計(jì)編譯器210、fpga映射模塊220、運(yùn)行時(shí)模塊230、語義轉(zhuǎn)換模塊240和存儲(chǔ)裝置250。這些組件中的每一個(gè)組件可以被實(shí)施為硬件、軟件、固件或其組合。這些組件一起提供了用于配置仿真器120并且基于信號(hào)的未知狀態(tài)來監(jiān)控仿真結(jié)果的設(shè)計(jì)。
在一個(gè)實(shí)施例中,設(shè)計(jì)編譯器210將dut的hdl轉(zhuǎn)換為門級(jí)邏輯。對(duì)于待仿真的dut,設(shè)計(jì)編譯器210接收hdl(例如,rtl或其他抽象級(jí))的dut的描述。設(shè)計(jì)編譯器210合成dut的hdl以根據(jù)門級(jí)邏輯來創(chuàng)建具有dut描述的門級(jí)網(wǎng)表。
映射模塊220對(duì)dut進(jìn)行分區(qū)并將分區(qū)映射到仿真器組件。在設(shè)計(jì)編譯器210創(chuàng)建門級(jí)網(wǎng)表之后,映射模塊220使用網(wǎng)表來將在門級(jí)處的dut分成多個(gè)分區(qū)。映射模塊220將每個(gè)分區(qū)映射到仿真器120的一個(gè)或多個(gè)fpga。映射模塊220使用設(shè)計(jì)規(guī)則、設(shè)計(jì)約束(例如,定時(shí)或邏輯約束)以及關(guān)于仿真器120的信息來執(zhí)行分區(qū)和映射。對(duì)于每個(gè)分區(qū),映射模塊220生成描述分區(qū)中包括的邏輯電路以及到仿真器120的一個(gè)或多個(gè)fpga的映射的比特流。比特流還可以包括關(guān)于組件之間的連接的信息和其他設(shè)計(jì)信息。映射模塊220將比特流發(fā)送到仿真器120,使得仿真器120的fpga可以被配置用于對(duì)dut進(jìn)行仿真。
運(yùn)行時(shí)模塊230控制在仿真器120上執(zhí)行的仿真。運(yùn)行時(shí)模塊230可以使仿真器120開始或停止執(zhí)行仿真。另外,運(yùn)行時(shí)模塊230可以向仿真器120提供輸入信號(hào)/數(shù)據(jù)。輸入信號(hào)可以通過接口115直接提供給仿真器120,或通過其它輸入信號(hào)設(shè)備間接提供給仿真器120。例如,具有運(yùn)行時(shí)模塊230的主機(jī)系統(tǒng)110可以控制諸如測(cè)試板的輸入信號(hào)設(shè)備、信號(hào)發(fā)生器或電源,以將輸入信號(hào)提供給仿真器120。
在一個(gè)實(shí)施例中,運(yùn)行時(shí)模塊230可以從仿真器120接收仿真結(jié)果。在一個(gè)實(shí)現(xiàn)中,運(yùn)行時(shí)模塊230接收以兩狀態(tài)語義和/或四狀態(tài)語義的仿真結(jié)果。運(yùn)行時(shí)模塊230還可以將接收到的仿真結(jié)果轉(zhuǎn)換為四狀態(tài)語義或兩狀態(tài)語義。
存儲(chǔ)裝置250是用于保存被用來配置仿真器120以加載dut的信息或者關(guān)于在仿真器120上執(zhí)行的dut的仿真的信息的貯存庫。存儲(chǔ)裝置250包含hdl和網(wǎng)表描述中的至少一個(gè)中的以兩狀態(tài)語義和/或四狀態(tài)語義表示的dut或dut的一部分。此外,存儲(chǔ)裝置250包含設(shè)計(jì)規(guī)則、設(shè)計(jì)約束(例如,定時(shí)或邏輯約束)以及由映射模塊220用來進(jìn)行映射的有關(guān)仿真器120的信息以及從映射生成的比特流。此外,存儲(chǔ)裝置250包含將由語義轉(zhuǎn)換模塊240使用的轉(zhuǎn)換規(guī)則。另外,存儲(chǔ)裝置250存儲(chǔ)從仿真器120接收的仿真結(jié)果。
語義轉(zhuǎn)換模塊240根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換dut以表示dut的信號(hào)的未知狀態(tài)。語義轉(zhuǎn)換模塊240執(zhí)行信號(hào)的轉(zhuǎn)換以實(shí)現(xiàn)未知狀態(tài)的表示。另外,語義轉(zhuǎn)換模塊240轉(zhuǎn)換包括但不限于布爾邏輯運(yùn)算器、觸發(fā)器、鎖存器和存儲(chǔ)器電路的邏輯電路,以便可利用信號(hào)的未知狀態(tài)的表示而操作,如關(guān)于圖4到圖7所詳細(xì)描述的??梢愿鶕?jù)轉(zhuǎn)換規(guī)則對(duì)整個(gè)dut或dut的一部分執(zhí)行語義轉(zhuǎn)換。
參考圖3,其圖示出了根據(jù)一個(gè)實(shí)施例的語義轉(zhuǎn)換模塊240的詳細(xì)框圖。在一個(gè)實(shí)施例中,語義轉(zhuǎn)換模塊240包括信號(hào)轉(zhuǎn)換模塊310、布爾邏輯轉(zhuǎn)換模塊320、觸發(fā)器轉(zhuǎn)換模塊330、鎖存器轉(zhuǎn)換模塊335和存儲(chǔ)器電路轉(zhuǎn)換模塊340。信號(hào)轉(zhuǎn)換模塊310以能夠表示未知狀態(tài)的格式對(duì)dut的信號(hào)進(jìn)行轉(zhuǎn)換。此外,布爾邏輯轉(zhuǎn)換模塊320轉(zhuǎn)換dut的布爾邏輯電路,以使得能夠利用具有未知狀態(tài)的信號(hào)進(jìn)行邏輯操作。另外,觸發(fā)器轉(zhuǎn)換模塊330轉(zhuǎn)換dut的觸發(fā)器,以使得觸發(fā)器能夠基于由于參考信號(hào)的未知狀態(tài)引起的參考信號(hào)的推測(cè)轉(zhuǎn)變進(jìn)行操作。此外,鎖存器轉(zhuǎn)換模塊335轉(zhuǎn)換dut的鎖存器以使得能夠利用具有未知狀態(tài)的參考信號(hào)進(jìn)行鎖存操作。此外,存儲(chǔ)器電路轉(zhuǎn)換模塊340轉(zhuǎn)換dut的存儲(chǔ)器電路以基于包含具有未知狀態(tài)的至少一個(gè)比特的不明確地址信號(hào)而可操作。這些組件一起將dut或dut的一部分轉(zhuǎn)換成四狀態(tài)語義,以實(shí)現(xiàn)未知狀態(tài)的信號(hào)的表示和未知狀態(tài)的傳播。
信號(hào)轉(zhuǎn)換模塊310將以兩狀態(tài)語義所表示的dut的數(shù)字信號(hào)進(jìn)行轉(zhuǎn)換,以使得能夠表示信號(hào)的未知狀態(tài)。信號(hào)以一個(gè)或多個(gè)比特來表示。單個(gè)比特由寄存器或另一個(gè)邏輯電路的輸出來表示。每個(gè)比特都具有二進(jìn)制狀態(tài),諸如高狀態(tài)(在本文中也稱為邏輯1、vdd和真)和低狀態(tài)(在本文中稱為邏輯0、gnd和假)。信號(hào)轉(zhuǎn)換模塊310實(shí)現(xiàn)至少兩個(gè)比特,以用于表示兩狀態(tài)語義中的一個(gè)比特以表示未知狀態(tài)(在本文中也稱為邏輯x、不清楚和不確定)。優(yōu)選地,信號(hào)轉(zhuǎn)換模塊310實(shí)現(xiàn)兩個(gè)比特,以用于表示兩狀態(tài)語義中的信號(hào)的一個(gè)比特的未知狀態(tài)。在一種方法中,通過使用在兩狀態(tài)語義中使用的基本電路或邏輯塊來實(shí)現(xiàn)語義轉(zhuǎn)換,如關(guān)于圖4到圖7所詳細(xì)描述的。
在圖4a中,圖示出了由信號(hào)轉(zhuǎn)換模塊310執(zhí)行的信號(hào)轉(zhuǎn)換400a的一個(gè)示例實(shí)施例。在這個(gè)示例中,在兩狀態(tài)語義中使用寄存器405以單個(gè)比特來表示信號(hào)410。根據(jù)信號(hào)轉(zhuǎn)換400a,使用附加寄存器的附加比特被實(shí)現(xiàn)以在四狀態(tài)語義中表示信號(hào)410。在一個(gè)方面中,實(shí)現(xiàn)第一寄存器405a以表示比特信號(hào)_bin410a,用于指示信號(hào)410的可能的低狀態(tài)或可能的高狀態(tài)。另外,實(shí)現(xiàn)第二寄存器405b以表示比特信號(hào)_x410b,用于指示信號(hào)的狀態(tài)是已知的還是未知的。在這種四狀態(tài)語義中,當(dāng)比特信號(hào)_x410b處于低狀態(tài)(例如,信號(hào)410的狀態(tài)是已知的)時(shí),信號(hào)410的狀態(tài)如比特信號(hào)_bin410a所指示。在比特信號(hào)_x410b處于高狀態(tài)(例如,信號(hào)410的狀態(tài)是未知的)的情況下,信號(hào)410被表示為具有未知狀態(tài)??梢愿鶕?jù)下面的示例verilog碼來實(shí)現(xiàn)信號(hào)轉(zhuǎn)換400a。
表1示出了信號(hào)轉(zhuǎn)換中的一種方法,如關(guān)于圖4a所解釋的。
在圖4b中圖示出了由信號(hào)轉(zhuǎn)換模塊310執(zhí)行的信號(hào)轉(zhuǎn)換400b的另一示例實(shí)施例。根據(jù)信號(hào)轉(zhuǎn)換400b,使用附加寄存器的附加比特被實(shí)現(xiàn)來以四狀態(tài)語義表示信號(hào)410。在該方法中,第一寄存器405c被實(shí)現(xiàn)以表示用于指示信號(hào)410的可能的高狀態(tài)的比特信號(hào)_高_(dá)可能410c。另外,第二寄存器405d被實(shí)現(xiàn)以表示用于指示信號(hào)410的可能的低狀態(tài)的比特信號(hào)_低_可能410d。在這個(gè)四狀態(tài)語義中,當(dāng)比特信號(hào)_高_(dá)可能410c和信號(hào)_低_可能410d均處于高狀態(tài)時(shí),信號(hào)410被表示為具有未知狀態(tài)。當(dāng)比特信號(hào)_高_(dá)可能410c處于高狀態(tài)并且比特信號(hào)_低_可能410d處于低狀態(tài)時(shí),信號(hào)410被表示為具有高狀態(tài)。類似地,當(dāng)比特信號(hào)_高_(dá)可能410c處于低狀態(tài)且比特信號(hào)_低_可能410d處于高狀態(tài)時(shí),信號(hào)410被表示為具有低狀態(tài)。當(dāng)比特信號(hào)_高_(dá)可能410c和信號(hào)_低_可能410d均處于低狀態(tài)時(shí),信號(hào)410可被表示為具有未知狀態(tài)或未分配狀態(tài)(即不影響邏輯運(yùn)算)。可以根據(jù)下面的示例verilog碼來實(shí)現(xiàn)信號(hào)轉(zhuǎn)換400b。
表2示出了信號(hào)轉(zhuǎn)換中的另一種方法,如關(guān)于圖4b所解釋的。
在圖5中,圖示出了由布爾邏輯轉(zhuǎn)換模塊320執(zhí)行的布爾邏輯轉(zhuǎn)換500的示例實(shí)施例。布爾邏輯轉(zhuǎn)換模塊320根據(jù)轉(zhuǎn)換規(guī)則轉(zhuǎn)換布爾邏輯運(yùn)算器,以基于具有未知狀態(tài)的輸入信號(hào)來確定已轉(zhuǎn)換的布爾邏輯運(yùn)算器的輸出以及輸出的不確定性。
作為圖5中所圖示的示例,布爾邏輯轉(zhuǎn)換500將布爾邏輯運(yùn)算器505a變換成已轉(zhuǎn)換的布爾邏輯運(yùn)算器505b,用于利用具有未知狀態(tài)的信號(hào)執(zhí)行邏輯運(yùn)算。在這個(gè)示例中,在兩狀態(tài)語義中的布爾邏輯運(yùn)算器505a基于輸入信號(hào)510和520來執(zhí)行布爾邏輯運(yùn)算以生成輸出信號(hào)530,其中每個(gè)信號(hào)以單個(gè)比特來表示。執(zhí)行布爾邏輯轉(zhuǎn)換500,使得布爾邏輯運(yùn)算器505b接收輸入信號(hào)510和520,并且在四個(gè)狀態(tài)語義的任何一個(gè)中生成輸出信號(hào)530,如關(guān)于圖4a和圖4b所解釋的。根據(jù)信號(hào)轉(zhuǎn)換400a和400b(在本文中稱為信號(hào)轉(zhuǎn)換器400)中的任何一個(gè),輸入信號(hào)510用輸入比特510a、510b表示,輸入信號(hào)520用輸入比特520a、520b表示,并且輸出信號(hào)530用輸出比特530a、530b表示。為了簡(jiǎn)潔起見,圖5中的布爾邏輯轉(zhuǎn)換500在具有兩個(gè)輸入信號(hào)510和520的布爾邏輯運(yùn)算器505a上執(zhí)行。然而,布爾邏輯轉(zhuǎn)換500可以在具有多于兩個(gè)輸入信號(hào)的其他邏輯電路上執(zhí)行,以確定一個(gè)或多個(gè)輸出信號(hào)的狀態(tài)和該一個(gè)或多個(gè)輸出信號(hào)的不確定性。
布爾邏輯運(yùn)算器505b基于輸入信號(hào)510和520的狀態(tài)來確定輸出信號(hào)530的狀態(tài)和輸出信號(hào)530的狀態(tài)的不確定性。例如,在布爾邏輯運(yùn)算器505a為“與”(and)或“與非”(nand)邏輯并且輸入信號(hào)510的狀態(tài)是未知的情況下,響應(yīng)于輸入信號(hào)520具有高狀態(tài),輸出信號(hào)530被確定為是未知的。在另一示例中,在布爾邏輯運(yùn)算器505a為“或”(or)或“或非”(nor)邏輯并且輸入信號(hào)510的狀態(tài)是未知的情況下,響應(yīng)于輸入信號(hào)520具有低狀態(tài),輸出信號(hào)530被確定為是未知的。在另一示例中,在布爾邏輯運(yùn)算器505a是xor、xnor、xand或xnand邏輯的情況下,響應(yīng)于輸入信號(hào)510和520中的任何一個(gè)具有未知狀態(tài),輸出信號(hào)530被確定為是未知的。以這種方式,未知狀態(tài)可以通過已轉(zhuǎn)換的布爾邏輯運(yùn)算器505b而被傳播。可以根據(jù)下面的示例verilog碼來實(shí)現(xiàn)and邏輯的布爾邏輯轉(zhuǎn)換500。
表3示出了根據(jù)四種狀態(tài)語義的and邏輯的示例轉(zhuǎn)換。
在圖6a中,圖示出了由觸發(fā)器轉(zhuǎn)換模塊330所執(zhí)行的觸發(fā)器轉(zhuǎn)換600的示例實(shí)施例。在兩狀態(tài)語義中的觸發(fā)器605a基于參考信號(hào)620的上升沿或下降沿以及在參考信號(hào)620的狀態(tài)轉(zhuǎn)變之前接收的輸入信號(hào)610來生成輸出信號(hào)630,其中每個(gè)信號(hào)以單個(gè)比特來表示。觸發(fā)器轉(zhuǎn)換模塊330根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換觸發(fā)器605a,使得已轉(zhuǎn)換的觸發(fā)器605b可利用具有未知狀態(tài)的信號(hào)以及參考信號(hào)620中的推測(cè)轉(zhuǎn)變而操作。
觸發(fā)器轉(zhuǎn)換600被執(zhí)行,使得觸發(fā)器605b接收輸入信號(hào)610和參考信號(hào)620,并且在四個(gè)狀態(tài)語義中的任何一個(gè)中生成輸出信號(hào)630,如關(guān)于圖4a和圖4b所解釋的。根據(jù)信號(hào)轉(zhuǎn)換400,輸入信號(hào)610用輸入比特610a、610b表示,參考信號(hào)620用參考比特620a、620b表示,輸出信號(hào)630用輸出比特630a、630b表示。
在信號(hào)被轉(zhuǎn)換以表示未知狀態(tài)的情況下,參考信號(hào)620可以從未知狀態(tài)轉(zhuǎn)變或轉(zhuǎn)變到該未知狀態(tài),由此引起具有上升沿或下降沿的推測(cè)轉(zhuǎn)變。作為示例,對(duì)于上升沿觸發(fā)的觸發(fā)器605b,對(duì)于參考信號(hào)620從低狀態(tài)到未知狀態(tài)(即,[0x])或從未知狀態(tài)到高狀態(tài)(即,[x1])的轉(zhuǎn)變,可能發(fā)生推測(cè)轉(zhuǎn)變。類似地,對(duì)于下降沿觸發(fā)的觸發(fā)器605b,對(duì)于參考信號(hào)620從高狀態(tài)到未知狀態(tài)(即,[1x])或從未知狀態(tài)到低狀態(tài)(即,[x0])的轉(zhuǎn)變,可能發(fā)生推測(cè)轉(zhuǎn)變。
在一個(gè)方面中,對(duì)于正沿觸發(fā)的觸發(fā)器605b,已轉(zhuǎn)換的觸發(fā)器605b使用寄存器或邏輯電路的輸出來實(shí)現(xiàn)轉(zhuǎn)變狀態(tài)比特650,以用于確定參考信號(hào)620從低狀態(tài)到未知狀態(tài)的推測(cè)轉(zhuǎn)變。在根據(jù)圖4a的信號(hào)轉(zhuǎn)換400a來對(duì)信號(hào)進(jìn)行轉(zhuǎn)換的情況下,通過對(duì)與指示參考信號(hào)620的可能低狀態(tài)的參考信號(hào)_bin相對(duì)應(yīng)的參考比特620a和與指示參考信號(hào)620的狀態(tài)已知的參考信號(hào)_x相對(duì)應(yīng)的參考比特620b執(zhí)行and運(yùn)算來獲得轉(zhuǎn)變狀態(tài)比特650。(例如,轉(zhuǎn)換狀態(tài)比特=(!參考信號(hào)_bin)&(!參考信號(hào)_x)=!(參考信號(hào)_bin|參考信號(hào)_x))。在參考信號(hào)620從低狀態(tài)轉(zhuǎn)變?yōu)槲粗獱顟B(tài)的情況下(即,當(dāng)轉(zhuǎn)換狀態(tài)比特650為高狀態(tài)時(shí),參考信號(hào)_x變?yōu)楦?,轉(zhuǎn)變狀態(tài)比特650的狀態(tài)轉(zhuǎn)變?yōu)榈蜖顟B(tài)。因此,檢測(cè)到轉(zhuǎn)變狀態(tài)比特650的下降沿之后跟隨處于未知狀態(tài)中的參考信號(hào)620,使得能夠檢測(cè)參考信號(hào)620從低狀態(tài)到未知狀態(tài)的轉(zhuǎn)變。
對(duì)于正沿觸發(fā)的觸發(fā)器605b,由于參考信號(hào)620從未知狀態(tài)轉(zhuǎn)變到高狀態(tài)(即,[x1]),可能發(fā)生參考信號(hào)620的另一推測(cè)轉(zhuǎn)變。在一種方法中,通過檢測(cè)到參考信號(hào)_x的下降沿之后跟隨處于高狀態(tài)中的參考信號(hào)_bin來實(shí)現(xiàn)確定參考信號(hào)620從未知狀態(tài)到高狀態(tài)的轉(zhuǎn)變。
一旦檢測(cè)到參考信號(hào)620的推測(cè)轉(zhuǎn)變,則觸發(fā)器605b可以更新輸出信號(hào)630的狀態(tài)。在一個(gè)方面中,響應(yīng)于檢測(cè)到推測(cè)轉(zhuǎn)變,可以將不確定性延續(xù)到輸出信號(hào)630上。在推測(cè)轉(zhuǎn)變的情況下,基于在推測(cè)轉(zhuǎn)變之前的輸出信號(hào)630的狀態(tài)和輸入信號(hào)610的狀態(tài)來確定輸出信號(hào)630的當(dāng)前狀態(tài)。
在一種方法中,可以將輸出信號(hào)630的當(dāng)前狀態(tài)確定為在推測(cè)轉(zhuǎn)變之前的輸出信號(hào)630的狀態(tài)和輸入信號(hào)610的狀態(tài)的組合(例如,{q}=merge_emul(q,d)或{q_bin,q_x}<=merge_emul(q_bin,q_x,d_bin,d_x),其中q是觸發(fā)器的輸出,d是觸發(fā)器的輸入)。例如,如果在推測(cè)轉(zhuǎn)變之前觸發(fā)器605b的輸出信號(hào)630和觸發(fā)器605b的輸入信號(hào)610處于相同狀態(tài),那么在推測(cè)轉(zhuǎn)變之后保持觸發(fā)器605b的輸出信號(hào)630。因此,當(dāng)在推測(cè)轉(zhuǎn)變之前的輸出信號(hào)630和輸入信號(hào)610處于相同狀態(tài)時(shí),參考信號(hào)620的推測(cè)轉(zhuǎn)變不影響輸出信號(hào)630。如果在推測(cè)轉(zhuǎn)變之前的觸發(fā)器605b的輸出信號(hào)630和輸入信號(hào)610處于不同狀態(tài),則觸發(fā)器605b的輸出信號(hào)630變得未知。
除了推測(cè)轉(zhuǎn)變之外,觸發(fā)器605b基于參考信號(hào)620的確實(shí)轉(zhuǎn)變來操作。在一個(gè)方面中,對(duì)于正沿觸發(fā)的觸發(fā)器605b,確定參考信號(hào)620的確實(shí)轉(zhuǎn)變是基于轉(zhuǎn)變狀態(tài)比特650。例如,通過檢測(cè)到轉(zhuǎn)變狀態(tài)比特650的下降沿之后跟隨處于已知狀態(tài)(例如,高狀態(tài))中的參考信號(hào)620,來確定參考信號(hào)620的正沿,使得能夠檢測(cè)參考信號(hào)620從低狀態(tài)到高狀態(tài)(即[01])的轉(zhuǎn)變。
觸發(fā)器轉(zhuǎn)換600的一個(gè)實(shí)施例可以根據(jù)下面的示例verilog碼來實(shí)現(xiàn)。
表4示出了根據(jù)四種狀態(tài)語義之一的觸發(fā)器的示例轉(zhuǎn)換。
在圖6b中,圖示出了由鎖存器轉(zhuǎn)換模塊335執(zhí)行的鎖存器轉(zhuǎn)換660的示例實(shí)施例。在兩狀態(tài)語義中的鎖存器665a基于參考信號(hào)620的狀態(tài)來生成輸出信號(hào)630,其中每個(gè)信號(hào)以單個(gè)比特來表示。鎖存器轉(zhuǎn)換模塊335根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換鎖存器665a,使得已轉(zhuǎn)換的鎖存器665b可利用具有未知狀態(tài)的信號(hào)而操作。
執(zhí)行鎖存器轉(zhuǎn)換660,使得鎖存器665b接收輸入信號(hào)610和參考信號(hào)620,并且在四個(gè)狀態(tài)語義的任一個(gè)中生成輸出信號(hào)630,如關(guān)于圖4a和圖4ba所解釋的。根據(jù)信號(hào)轉(zhuǎn)換400,輸入信號(hào)610用輸入比特610a、610b表示,參考信號(hào)620用參考比特620a、620b表示,輸出信號(hào)630用輸出比特630a、630b表示。除了鎖存器665b基于參考信號(hào)620的狀態(tài)而不是基于參考信號(hào)620的狀態(tài)的轉(zhuǎn)變來操作、并且可能不實(shí)現(xiàn)轉(zhuǎn)變狀態(tài)比特之外,鎖存器665b的操作類似于觸發(fā)器605b。
如果參考信號(hào)620的狀態(tài)未知,則鎖存器665b可以更新輸出信號(hào)630的狀態(tài)。在一個(gè)方面,響應(yīng)于檢測(cè)到參考信號(hào)620具有未知狀態(tài),可以將不確定性轉(zhuǎn)移到輸出信號(hào)630上。在參考信號(hào)620或輸入信號(hào)610具有評(píng)估狀態(tài)(例如,可能的高狀態(tài))的情況下,鎖存器665b執(zhí)行評(píng)估。當(dāng)參考信號(hào)620或輸入信號(hào)610具有評(píng)估狀態(tài)時(shí),可以連續(xù)地或離散地評(píng)估鎖存器665b的輸出。在評(píng)估期間參考信號(hào)620的狀態(tài)未知的情況下,可以基于輸入信號(hào)610的狀態(tài)和在評(píng)估之前接收的輸出信號(hào)630的狀態(tài)來確定輸出信號(hào)630的當(dāng)前狀態(tài)。
在一種方法中,可以將輸出信號(hào)630確定為在評(píng)估之前輸入信號(hào)610的狀態(tài)和輸出信號(hào)630的狀態(tài)的組合(例如,{q}<=merge_emul(q,d)或{q_bin,q_x}<=merge_emul(q_bin,q_x,d_bin,d_x),其中q是鎖存器的輸出,d是鎖存器的輸入)。例如,如果在評(píng)估之前的鎖存器665b的輸入信號(hào)610和輸出信號(hào)630處于相同的狀態(tài),則保持鎖存器665b的輸出信號(hào)630。因此,當(dāng)評(píng)估之前的輸入信號(hào)610和輸出信號(hào)630處于相同狀態(tài)時(shí),具有未知狀態(tài)的參考信號(hào)620不影響輸出信號(hào)630。如果在評(píng)估之前的鎖存器665b的輸入信號(hào)610和輸出信號(hào)630處于不同的狀態(tài),則鎖存器665b的輸出信號(hào)630變得未知。
鎖存器665b還基于參考信號(hào)620的確實(shí)狀態(tài)進(jìn)行操作。例如,響應(yīng)于檢測(cè)到參考信號(hào)620的評(píng)估狀態(tài),當(dāng)參考信號(hào)620處于評(píng)估狀態(tài)時(shí),根據(jù)輸入信號(hào)610來更新輸出信號(hào)630。
鎖存器轉(zhuǎn)換660的一個(gè)實(shí)施例可以根據(jù)以下示例verilog碼來實(shí)現(xiàn)。
表5示出了根據(jù)四種狀態(tài)語義之一的鎖存器的示例轉(zhuǎn)換。
在圖7中,圖示出了由存儲(chǔ)器電路轉(zhuǎn)換模塊340執(zhí)行的存儲(chǔ)器電路轉(zhuǎn)換700的示例實(shí)施例。在兩狀態(tài)語義中的存儲(chǔ)器電路705a基于地址信號(hào)710和控制信號(hào)730來執(zhí)行讀取和寫入操作。對(duì)于寫入操作,輸入信號(hào)720被存儲(chǔ)在存儲(chǔ)器電路705a中,并且對(duì)于讀取操作,基于存儲(chǔ)在存儲(chǔ)器電路705a中的內(nèi)容來生成輸出信號(hào)770。存儲(chǔ)器電路轉(zhuǎn)換模塊340根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換存儲(chǔ)器電路705a,使得已轉(zhuǎn)換的存儲(chǔ)器電路705b可利用具有未知狀態(tài)的信號(hào)以及不明確地址信號(hào)710而操作。
在兩狀態(tài)語義中的存儲(chǔ)器電路705a包括用于存儲(chǔ)所接收的輸入信號(hào)720的內(nèi)容760(0)、760(1)...760(n)(通常在本文中被稱為內(nèi)容760)。每個(gè)內(nèi)容760與來自地址740(0)、740(1)...740(n)(通常在本文中被稱為地址740)的對(duì)應(yīng)地址740相關(guān)聯(lián)??刂菩盘?hào)730指示是否執(zhí)行讀取操作或?qū)懭氩僮?。?duì)于寫入操作,將輸入信號(hào)720存儲(chǔ)在與由地址信號(hào)710指示的對(duì)應(yīng)地址740相關(guān)聯(lián)的內(nèi)容760中。對(duì)于讀取操作,基于與由地址信號(hào)710指示的對(duì)應(yīng)地址740相關(guān)聯(lián)的內(nèi)容760生成輸出信號(hào)770。
在一個(gè)實(shí)現(xiàn)中,存儲(chǔ)器電路轉(zhuǎn)換700將存儲(chǔ)器電路705a轉(zhuǎn)變成已轉(zhuǎn)換的存儲(chǔ)器電路705b,以可利用具有未知狀態(tài)的信號(hào)而操作。執(zhí)行存儲(chǔ)器電路轉(zhuǎn)換700使得存儲(chǔ)器電路705b接收地址信號(hào)710、輸入信號(hào)720和控制信號(hào)730,并且在四個(gè)狀態(tài)語義的任何一個(gè)中生成輸出信號(hào)770,如關(guān)于圖4a和圖4b所解釋的。在一個(gè)方面中,每個(gè)信號(hào)以一個(gè)或多個(gè)比特來表示。根據(jù)信號(hào)轉(zhuǎn)換400,地址信號(hào)710中的每個(gè)比特用地址比特710a、710b表示,輸入信號(hào)720中的每個(gè)比特用輸入比特720a、720b表示,控制信號(hào)730中的每個(gè)比特用控制比特730a、730b表示,以及輸出信號(hào)770中的每個(gè)比特用輸出比特770a、770b表示。
在信號(hào)被轉(zhuǎn)換以表示未知狀態(tài)的情況下,地址信號(hào)710可能變得不明確。優(yōu)選地,地址信號(hào)710以多個(gè)比特表示。當(dāng)至少一個(gè)比特未知時(shí),地址信號(hào)710變得不明確。例如,在地址信號(hào)710以三個(gè)比特表示并且包含未知狀態(tài)[1x1]的情況下,地址信號(hào)710可以是指地址[101]或[111],使得與該不明確的地址信號(hào)710相關(guān)聯(lián)的內(nèi)容760呈現(xiàn)是未知的。
在一個(gè)方面中,已轉(zhuǎn)換的存儲(chǔ)器電路705b實(shí)現(xiàn)存儲(chǔ)器指示符750(0)、750(1)...750(n)(通常在本文中被稱為存儲(chǔ)器指示符750),以指示與對(duì)應(yīng)地址740相關(guān)聯(lián)的內(nèi)容760是未知的。每個(gè)存儲(chǔ)器指示符750與對(duì)應(yīng)地址740和對(duì)應(yīng)內(nèi)容760相關(guān)聯(lián)。優(yōu)選地,每個(gè)存儲(chǔ)器指示符750以單個(gè)比特來實(shí)現(xiàn)。
為了執(zhí)行寫入操作,當(dāng)?shù)刂沸盘?hào)710是不明確時(shí),存儲(chǔ)器電路705b根據(jù)地址信號(hào)710識(shí)別兩個(gè)或更多候選地址740。與由地址信號(hào)710指示的候選地址740相關(guān)聯(lián)的存儲(chǔ)器指示符750被激活(例如,被設(shè)置為高狀態(tài))以表示與存儲(chǔ)器指示符750相關(guān)聯(lián)的對(duì)應(yīng)內(nèi)容760是未知的。優(yōu)選地,省略(或繞過)將輸入信號(hào)720存儲(chǔ)在與存儲(chǔ)器指示符750相關(guān)聯(lián)的對(duì)應(yīng)內(nèi)容760中。例如,地址信號(hào)710在[1x1]的情況下可以是不明確的,并且存儲(chǔ)器電路705b將[101]和[111]識(shí)別為候選地址。此外,存儲(chǔ)器電路705b激活與對(duì)應(yīng)于[101]和[111]的候選地址相關(guān)聯(lián)的存儲(chǔ)器指示符750,以指示與候選地址[101]和[111]相關(guān)聯(lián)的內(nèi)容是未知的。
在地址信號(hào)710是確實(shí)的(即,不是不明確的)且輸入信號(hào)720是未知的情況下,與由地址信號(hào)710指示的地址740相關(guān)聯(lián)的存儲(chǔ)器指示符750被激活。類似地,可以省略(或繞過)將具有未知狀態(tài)的輸入信號(hào)720存儲(chǔ)在與存儲(chǔ)器指示符750相關(guān)聯(lián)的對(duì)應(yīng)內(nèi)容760中。
為了執(zhí)行讀取操作,當(dāng)?shù)刂沸盘?hào)710是不明確時(shí),在一個(gè)實(shí)施例中,存儲(chǔ)器電路705b生成具有未知狀態(tài)的輸出信號(hào)770,并且繞過讀取任何內(nèi)容760。在一個(gè)實(shí)現(xiàn)中,存儲(chǔ)器電路705b根據(jù)地址信號(hào)710識(shí)別兩個(gè)或更多候選地址740。在另一實(shí)現(xiàn)中,存儲(chǔ)器電路705b根據(jù)地址信號(hào)710省略識(shí)別候選地址740。
此外,對(duì)于執(zhí)行讀取操作,在地址信號(hào)710是確實(shí)的(即,不是不明確的)并且與由地址信號(hào)710指示的對(duì)應(yīng)地址740相關(guān)聯(lián)的存儲(chǔ)器指示符750被激活的情況下,存儲(chǔ)器電路705b生成具有未知狀態(tài)的輸出信號(hào)770,并繞過讀取任何內(nèi)容760。
存儲(chǔ)器電路705b還利用已知狀態(tài)中的信號(hào)執(zhí)行讀取和寫入操作。對(duì)于寫入操作,存儲(chǔ)器電路705b將輸入信號(hào)720存儲(chǔ)在與由地址信號(hào)710指示的對(duì)應(yīng)地址740相關(guān)聯(lián)的內(nèi)容760中。對(duì)于讀取操作,存儲(chǔ)器電路705b基于與由地址信號(hào)710指示的對(duì)應(yīng)地址740相關(guān)聯(lián)的內(nèi)容760來生成輸出信號(hào)770。
通過以單個(gè)比特指示與存儲(chǔ)器指示符750相關(guān)聯(lián)的內(nèi)容760的確定性,可以提高讀取和寫入操作速度。優(yōu)選地,內(nèi)容760包括在存儲(chǔ)器電路705b中的多個(gè)比特,因此執(zhí)行讀取和寫入操作可能伴隨著高時(shí)延。結(jié)果,避免對(duì)不明確的地址信號(hào)710或不明確的輸入信號(hào)720的實(shí)際的讀取和寫入操作允許了存儲(chǔ)器電路705b的更快的讀取和寫入操作。
在一個(gè)方面中,所有存儲(chǔ)器指示符750在存儲(chǔ)器電路705b的初始化期間被激活,以指示所存儲(chǔ)的所有內(nèi)容760是未知的。因此,在沒有確實(shí)的存儲(chǔ)器分配(即,具有確實(shí)的地址信號(hào)710和已知的輸入信號(hào)720的寫入操作)的情況下,一個(gè)或多個(gè)存儲(chǔ)器指示符750保持被激活。優(yōu)選地,在確實(shí)的存儲(chǔ)器分配之后,存儲(chǔ)器指示符750被去激活(例如,被設(shè)置為低狀態(tài))。因此,可以容易地識(shí)別未初始化的存儲(chǔ)器地址,以促進(jìn)嚴(yán)格的設(shè)計(jì)實(shí)踐。
有益地,根據(jù)四狀態(tài)語義來對(duì)信號(hào)進(jìn)行初始化可以代表未知值的族,從而代替特定的單個(gè)分配。因此,可以暴露dut的未知操作,而執(zhí)行特定值分配的隨機(jī)初始化方法可能不會(huì)導(dǎo)致問題表現(xiàn)。
表示信號(hào)的未知狀態(tài)并傳播未知狀態(tài)可以實(shí)現(xiàn)在識(shí)別dut的不正確或未知操作(例如由于電源關(guān)閉或不正確的初始化引起)時(shí)的速度改善。在最近的工藝(例如,22nm及以下)中實(shí)現(xiàn)了數(shù)十億個(gè)邏輯電路的情況下,可以在100萬個(gè)仿真周期中實(shí)現(xiàn)識(shí)別在兩狀態(tài)語義中的dut的不正確或未知操作。相比之下,利用以四狀態(tài)語義表示信號(hào)的未知狀態(tài)并傳播未知狀態(tài)的能力,可以在1000個(gè)仿真周期內(nèi)實(shí)現(xiàn)識(shí)別dut的不正確或未知操作。
另外,四狀態(tài)語義中的dut可以用常規(guī)數(shù)字電路塊來實(shí)現(xiàn),而無需采用定制的模擬/混合信號(hào)電路(例如,三態(tài)緩沖器)。因此,可以以相對(duì)低的成本來實(shí)現(xiàn)dut的轉(zhuǎn)換。此外,當(dāng)在兩狀態(tài)邏輯中無縫地實(shí)現(xiàn)dut的一部分時(shí),可以在四狀態(tài)邏輯中實(shí)現(xiàn)dut的另一部分。
此外,可以識(shí)別引起故障的dut的ip/塊級(jí)硬件組件。因?yàn)閐ut的一部分可以被轉(zhuǎn)換成四狀態(tài)語義,所以可以進(jìn)一步檢查由用戶選擇的預(yù)定義的ip/塊級(jí)組件或區(qū)域或邏輯電路,以便在仿真周期的數(shù)量方面更加快速地分離出問題的根本原因。因此,用于在四狀態(tài)語義中實(shí)現(xiàn)dut的一部分的硬件資源保持在不會(huì)使仿真器120過載的合理水平處。
圖8是圖示出根據(jù)一個(gè)示例實(shí)施例的主機(jī)系統(tǒng)110準(zhǔn)備被轉(zhuǎn)換為表示數(shù)字信號(hào)的未知狀態(tài)的待測(cè)設(shè)備(dut)以用于仿真的流程圖。其他實(shí)施例可以以不同的順序來執(zhí)行圖8的步驟。此外,其他實(shí)施例可以包括與這里所描述的不同的和/或附加的步驟。
主機(jī)系統(tǒng)110從用戶獲得810hdl中的dut的描述。主機(jī)系統(tǒng)110對(duì)dut進(jìn)行轉(zhuǎn)換820以表示信號(hào)的未知狀態(tài)。主機(jī)系統(tǒng)110將已轉(zhuǎn)換dut的hdl描述進(jìn)行合成830以創(chuàng)建門級(jí)網(wǎng)表。在另一實(shí)施例中,代替在合成之前對(duì)dut進(jìn)行轉(zhuǎn)換,在合成dut的hdl描述之后對(duì)dut進(jìn)行轉(zhuǎn)換。
主機(jī)系統(tǒng)110使用門級(jí)網(wǎng)表來以門級(jí)將dut分區(qū)840成多個(gè)分區(qū)。主機(jī)系統(tǒng)110將每個(gè)分區(qū)映射850到仿真器120的一個(gè)或多個(gè)fpga。
在圖9中,圖示出了由主機(jī)系統(tǒng)110執(zhí)行的dut的轉(zhuǎn)換820。主機(jī)系統(tǒng)110以能夠表示信號(hào)的未知狀態(tài)的形式、根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換910信號(hào)。在一個(gè)方面中,通過針對(duì)信號(hào)中的每個(gè)比特實(shí)現(xiàn)至少兩個(gè)比特,將信號(hào)轉(zhuǎn)換成四狀態(tài)語義。此外,主機(jī)系統(tǒng)110根據(jù)轉(zhuǎn)換規(guī)則轉(zhuǎn)換920布爾邏輯運(yùn)算器505a,以基于表示未知狀態(tài)的輸入信號(hào)510來確定已轉(zhuǎn)換的布爾邏輯運(yùn)算器505b的輸出信號(hào)530以及輸出信號(hào)530的不確定性。此外,主機(jī)系統(tǒng)110根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換930觸發(fā)器605a。已轉(zhuǎn)換的觸發(fā)器605b可利用包括參考信號(hào)620的狀態(tài)從未知狀態(tài)的轉(zhuǎn)變或到未知狀態(tài)的轉(zhuǎn)變的推測(cè)轉(zhuǎn)變而操作。此外,主機(jī)系統(tǒng)110根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換935鎖存器665a。已轉(zhuǎn)換的鎖存器665b可利用具有未知狀態(tài)的參考信號(hào)620而操作。此外,主機(jī)系統(tǒng)110根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換940存儲(chǔ)器電路705a。已轉(zhuǎn)換的存儲(chǔ)器電路705b可利用不明確的地址信號(hào)710或包含具有未知狀態(tài)的至少一個(gè)比特的不明確的輸入信號(hào)720而操作。
在圖10中,圖示出了根據(jù)一個(gè)實(shí)施例的仿真器120執(zhí)行數(shù)字邏輯運(yùn)算以基于信號(hào)狀態(tài)識(shí)別dut的未知操作的流程圖。優(yōu)選地,被主機(jī)系統(tǒng)110以能夠表示dut中的信號(hào)的未知狀態(tài)的形式來轉(zhuǎn)換dut。其他實(shí)施例可以以不同的順序來執(zhí)行圖10的步驟。此外,其他實(shí)施例可以包括與這里所描述的不同的和/或附加的步驟。此外,其他實(shí)施例可以省略這里所描述的某些步驟。
在初始化步驟中,將dut中的信號(hào)初始化為1010或設(shè)置為未知狀態(tài)。例如,在存儲(chǔ)器電路705b中,存儲(chǔ)器指示符750被激活以指示存儲(chǔ)器電路705b中的內(nèi)容760是未知的。此外,其他信號(hào)或邏輯電路的狀態(tài)可以被初始化為未知狀態(tài)。在初始化步驟期間或在電源關(guān)閉之后打開dut期間,dut的所有信號(hào)或信號(hào)的子集將被分配為具有未知狀態(tài)。
仿真器120將具有已知狀態(tài)的輸入信號(hào)應(yīng)用1020于dut。輸入信號(hào)的一部分可以具有未知狀態(tài)。仿真器120基于輸入信號(hào)來執(zhí)行1030數(shù)字邏輯運(yùn)算,并且基于執(zhí)行1030的數(shù)字邏輯運(yùn)算來確定1040信號(hào)狀態(tài)。數(shù)字邏輯運(yùn)算的結(jié)果可以被用來執(zhí)行附加的數(shù)字邏輯運(yùn)算,從而可以針對(duì)dut的不正確或未知的操作而傳播未知狀態(tài)。仿真器120可以在具有已更新的輸入信號(hào)的另一個(gè)仿真周期中繼續(xù)1050仿真至少預(yù)定數(shù)量的周期。
對(duì)于正確設(shè)計(jì)的dut,dut被預(yù)期將從例如由于電源關(guān)閉而具有未知狀態(tài)的信號(hào)中恢復(fù)。因此,dut的輸出被預(yù)期在預(yù)定數(shù)量的周期之后具有良好定義的狀態(tài)??梢酝ㄟ^設(shè)計(jì)選擇或通過dut的仿真來獲得預(yù)定數(shù)量的周期。在對(duì)dut仿真了至少預(yù)定數(shù)量的周期之后,監(jiān)控dut的輸出,并且可以基于輸出信號(hào)來確定1060dut的未知操作。
參考圖11,圖示出了根據(jù)一個(gè)實(shí)施例的仿真器120操作觸發(fā)器605b或鎖存器665b的流程圖。優(yōu)選地,觸發(fā)器605b或鎖存器665b以能夠表示dut中的信號(hào)的未知狀態(tài)的形式由主機(jī)系統(tǒng)110轉(zhuǎn)換。因此,觸發(fā)器605b可利用參考信號(hào)620中的推測(cè)轉(zhuǎn)變而操作,并且鎖存器665b可利用具有未知狀態(tài)的參考信號(hào)620而操作。其他實(shí)施例可以以不同的順序執(zhí)行圖11的步驟。此外,其他實(shí)施例可以包括與這里所描述的不同的和/或附加的步驟。此外,其他實(shí)施例可以省略這里所描述的某些步驟。
觸發(fā)器605b或鎖存器665b接收1110輸入信號(hào)610和參考信號(hào)620。在一種方法中,輸入信號(hào)610和參考信號(hào)620以四狀態(tài)語義表示。
觸發(fā)器605b或鎖存器665b監(jiān)控1120推測(cè)狀況。對(duì)于觸發(fā)器605b,推測(cè)狀況可以是參考信號(hào)620中的推測(cè)轉(zhuǎn)變。對(duì)于鎖存器665b,如果參考信號(hào)620或輸入信號(hào)610具有評(píng)估狀態(tài)(例如,可能的高狀態(tài)),推測(cè)狀況可以是具有未知狀態(tài)的參考信號(hào)620。在一個(gè)方面中,響應(yīng)于檢測(cè)到推測(cè)狀況,觸發(fā)器605b或鎖存器665b基于推測(cè)狀況之前的輸入信號(hào)610和輸出信號(hào)630生成1150輸出信號(hào)。因此,可以將不確定性轉(zhuǎn)移到輸出信號(hào)630上。
此外,觸發(fā)器605b或鎖存器665b監(jiān)控1140參考信號(hào)620中的確實(shí)狀況。對(duì)于正沿觸發(fā)的觸發(fā)器605b,確實(shí)狀況可以是參考信號(hào)620從低狀態(tài)轉(zhuǎn)變到高狀態(tài)。對(duì)于鎖存器665b,確實(shí)狀況可以是具有評(píng)估狀態(tài)(例如,高狀態(tài))的參考信號(hào)620。對(duì)于觸發(fā)器605b,如果檢測(cè)到參考信號(hào)620的確實(shí)狀況,則觸發(fā)器605b基于參考信號(hào)620的確實(shí)轉(zhuǎn)變之前的輸入信號(hào)610來生成1160輸出信號(hào)630。對(duì)于鎖存器665b,如果檢測(cè)到參考信號(hào)620的確實(shí)狀況,則鎖存器665b基于當(dāng)參考信號(hào)620具有確實(shí)評(píng)估狀態(tài)時(shí)所接收的輸入信號(hào)610來生成1160輸出信號(hào)630。
如果參考信號(hào)620的推測(cè)狀況和確實(shí)狀況都沒有被檢測(cè)到,則觸發(fā)器605b或鎖存器665b保持1170輸出信號(hào)630。
參考圖12a和圖12b,圖示出了根據(jù)一個(gè)實(shí)施例的仿真器120操作存儲(chǔ)器電路705b的流程圖。優(yōu)選地,存儲(chǔ)器電路705b以能夠表示dut中的信號(hào)的未知狀態(tài)的形式由主機(jī)系統(tǒng)110轉(zhuǎn)換。因此,存儲(chǔ)器電路705b可利用不明確的地址信號(hào)710而操作。其它實(shí)施例可以以不同的順序執(zhí)行圖12a和圖12b的步驟。此外,其他實(shí)施例可以包括與這里所描述的不同的和/或附加的步驟。此外,其他實(shí)施例可以省略這里所描述的某些步驟。
圖12a圖示出了根據(jù)一個(gè)實(shí)施例的仿真器120對(duì)存儲(chǔ)器電路705b執(zhí)行寫入操作。存儲(chǔ)器電路705b接收1210輸入信號(hào)720和地址信號(hào)710。存儲(chǔ)器電路705b確定1220輸入信號(hào)720或地址信號(hào)710是否是不明確的。響應(yīng)于確定輸入信號(hào)720和地址信號(hào)710是確實(shí)的,存儲(chǔ)器電路705b將輸入信號(hào)720存儲(chǔ)1235在與由地址信號(hào)710指示的地址740相關(guān)聯(lián)的內(nèi)容760中。響應(yīng)于確定輸入信號(hào)720和地址信號(hào)710中的至少一個(gè)是不明確的,存儲(chǔ)器電路705b用存儲(chǔ)器指示符750來指示1230:與由地址信號(hào)710指示的地址740相關(guān)聯(lián)的內(nèi)容760是未知的。在一個(gè)示例中,存儲(chǔ)器電路705b根據(jù)地址信號(hào)710識(shí)別候選地址740。在一種方法中,存儲(chǔ)器指示符750被激活以指示內(nèi)容760是未知的,并且優(yōu)選地,省略了將輸入信號(hào)720存儲(chǔ)在內(nèi)容760中。
圖12b圖示出了根據(jù)一個(gè)實(shí)施例的仿真器120對(duì)存儲(chǔ)器電路705b執(zhí)行讀取操作。存儲(chǔ)器電路705b接收1250地址信號(hào)710,并且存儲(chǔ)器電路705b確定1260地址信號(hào)710是否是不明確的。響應(yīng)于確定地址信號(hào)710是不明確的,存儲(chǔ)器電路705b生成具有未知狀態(tài)的輸出信號(hào)770。優(yōu)選地,省略(或繞過)內(nèi)容760的實(shí)際讀取。
響應(yīng)于確定地址信號(hào)710是確實(shí)的,存儲(chǔ)器電路705b確定1270與由地址信號(hào)710指示的地址740相關(guān)聯(lián)的內(nèi)容760是否是未知的。在一種方法中,存儲(chǔ)器電路705b檢查與內(nèi)容760相關(guān)聯(lián)并與地址740相關(guān)聯(lián)的存儲(chǔ)器指示符750,以確定內(nèi)容760是否是未知的。例如,如果存儲(chǔ)器指示符750被激活,那么內(nèi)容760被確定為是未知的。此外,響應(yīng)于確定內(nèi)容760是未知的,存儲(chǔ)器電路705b生成1290具有未知狀態(tài)的輸出信號(hào)770。優(yōu)選地,省略(或繞過)內(nèi)容760的實(shí)際讀取。
響應(yīng)于確定內(nèi)容760是已知的,存儲(chǔ)器電路705b基于與由地址信號(hào)710指示的地址740相關(guān)聯(lián)的內(nèi)容760生成1280輸出信號(hào)770。
計(jì)算機(jī)器架構(gòu)
現(xiàn)在轉(zhuǎn)到圖13,其圖示出了能夠從機(jī)器可讀介質(zhì)讀取指令并在處理器(或控制器)中執(zhí)行它們的示例機(jī)器的組件的框圖。具體地,圖13以計(jì)算機(jī)系統(tǒng)1300的示例形式示出了機(jī)器的示意表示,在其中用于使機(jī)器進(jìn)行(執(zhí)行)利用圖1-圖12所描述的任何一個(gè)或多個(gè)方法的指令1324(例如,軟件或程序代碼)。計(jì)算機(jī)系統(tǒng)1300可以用于在圖1的仿真環(huán)境100中圖示出的一個(gè)或多個(gè)實(shí)體(例如,主機(jī)系統(tǒng)110,仿真器120)。
示例計(jì)算機(jī)系統(tǒng)1300包括硬件處理器1302(例如,中央處理單元(cpu)、圖形處理單元(gpu)、數(shù)字信號(hào)處理器(dsp)、一個(gè)或多個(gè)專用集成電路(asic)、一個(gè)或多個(gè)射頻集成電路(rfic)或這些的任何組合)、主存儲(chǔ)器1304和靜態(tài)存儲(chǔ)器1306,其被配置為經(jīng)由總線1308彼此通信。處理器1302可以包括一個(gè)或多個(gè)處理器。計(jì)算機(jī)系統(tǒng)1300還可以包括圖形顯示單元1310(例如等離子體顯示面板(pdp)、液晶顯示器(lcd)、投影儀或陰極射線管(crt))。計(jì)算機(jī)系統(tǒng)1300還可以包括字母數(shù)字輸入設(shè)備1312(例如鍵盤)、光標(biāo)控制設(shè)備1314(例如鼠標(biāo)、軌跡球、操縱桿、運(yùn)動(dòng)傳感器或其他指向儀器)、存儲(chǔ)單元1316、信號(hào)生成設(shè)備1318(例如揚(yáng)聲器)和網(wǎng)絡(luò)接口設(shè)備1320,其也被配置為經(jīng)由總線1308進(jìn)行通信。
存儲(chǔ)單元1316包括機(jī)器可讀介質(zhì)1322,其上存儲(chǔ)了體現(xiàn)本文所描述的任何一個(gè)或多個(gè)方法或功能的指令1324(例如,軟件)。在指令由計(jì)算機(jī)系統(tǒng)1300執(zhí)行期間,指令1324(例如,軟件)也可以完全地或至少部分地駐留在主存儲(chǔ)器1304內(nèi)或處理器1302內(nèi)(例如,在處理器的高速緩存存儲(chǔ)器內(nèi)),主存儲(chǔ)器1304和處理器1302也構(gòu)成機(jī)器可讀介質(zhì)??梢越?jīng)由網(wǎng)絡(luò)接口設(shè)備1320通過網(wǎng)絡(luò)1326發(fā)送或接收指令1324(例如,軟件)。
雖然在示例性實(shí)施例中將機(jī)器可讀介質(zhì)1322示出為單個(gè)介質(zhì),但是術(shù)語“機(jī)器可讀介質(zhì)”應(yīng)被認(rèn)為包括能夠存儲(chǔ)指令(例如,指令1324)的單個(gè)介質(zhì)或多個(gè)介質(zhì)(例如,集中式或分布式數(shù)據(jù)庫,或相關(guān)聯(lián)的高速緩存和服務(wù)器)。術(shù)語“機(jī)器可讀介質(zhì)”還應(yīng)被認(rèn)為包括能夠存儲(chǔ)指令(例如,指令1324)以供機(jī)器執(zhí)行并且使機(jī)器執(zhí)行本文公開的任何一個(gè)或多個(gè)方法的任何介質(zhì)。術(shù)語“機(jī)器可讀介質(zhì)”包括但不限于固態(tài)存儲(chǔ)器、光學(xué)介質(zhì)和磁介質(zhì)形式的數(shù)據(jù)貯存庫。
如本領(lǐng)域中已知的,計(jì)算機(jī)系統(tǒng)1300可以具有與圖13所示出的不同的和/或其他組件。此外,計(jì)算機(jī)系統(tǒng)1300可以缺少某些所示出的組件。例如,用作仿真器120的計(jì)算機(jī)系統(tǒng)1300可以包括硬件處理器1302、存儲(chǔ)單元1316、網(wǎng)絡(luò)接口設(shè)備1320以及多個(gè)可配置邏輯電路(如上面參考圖1所描述的)以及其他組件,但是可以缺少字母數(shù)字輸入設(shè)備1312和光標(biāo)控制設(shè)備1314。
其他配置考慮
注意,雖然在用于仿真數(shù)字電路和系統(tǒng)的仿真環(huán)境的上下文中描述了主題,但是所描述的原理可以被應(yīng)用于任何數(shù)字電子設(shè)備的分析。所公開的配置的優(yōu)點(diǎn)包括以能夠表示未知狀態(tài)的形式變換信號(hào)和數(shù)字邏輯電路。以這種方式,可以將未知狀態(tài)傳播到其他邏輯電路,因此可以以計(jì)算有效的方式識(shí)別例如由于電源關(guān)閉或不正確的初始化而造成的dut的不正確或未知操作。此外,雖然本文的示例是在仿真環(huán)境的上下文中,但是本文所描述的原理可以應(yīng)用于數(shù)字電路的硬件實(shí)現(xiàn)的其他分析,包括fpga和asic或諸如eda的軟件仿真。
在整個(gè)說明書中,多個(gè)實(shí)例可以實(shí)現(xiàn)被描述為單個(gè)實(shí)例的組件、操作或結(jié)構(gòu)。雖然一個(gè)或多個(gè)方法的個(gè)體操作被圖示出和描述為分離的操作,但是可以并行地執(zhí)行一個(gè)或多個(gè)個(gè)體操作,并且不需要以所圖示出的順序執(zhí)行操作。作為示例配置中的分離組件而呈現(xiàn)的結(jié)構(gòu)和功能可以被實(shí)現(xiàn)為組合結(jié)構(gòu)或組件。類似地,作為單個(gè)組件而呈現(xiàn)的結(jié)構(gòu)和功能可以被實(shí)現(xiàn)為分離的組件。這些和其他變型、修改、添加和改進(jìn)落入本文主題的范圍內(nèi)。
某些實(shí)施例在本文中被描述為包括邏輯或多個(gè)組件、模塊或機(jī)制,例如如圖1-圖12所圖示的。模塊可以構(gòu)成軟件模塊(例如,在機(jī)器可讀介質(zhì)上或在傳輸信號(hào)中體現(xiàn)的代碼)或硬件模塊。硬件模塊是能夠執(zhí)行某些操作的有形單元并且可以以某種方式被配置或布置。在示例實(shí)施例中,一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)(例如,獨(dú)立的計(jì)算機(jī)系統(tǒng)、客戶端計(jì)算機(jī)系統(tǒng)或服務(wù)器計(jì)算機(jī)系統(tǒng))或者計(jì)算機(jī)系統(tǒng)的一個(gè)或多個(gè)硬件模塊(例如,處理器或一組處理器)可以由軟件(例如,應(yīng)用或應(yīng)用部分)配置為操作以執(zhí)行如本文所描述的某些操作的硬件模塊。
在各種實(shí)施例中,硬件模塊可以被機(jī)械地或電子地實(shí)現(xiàn)。例如,硬件模塊可以包括被永久配置(例如,作為諸如現(xiàn)場(chǎng)可編程門陣列(fpga)或?qū)S眉呻娐?asic)的專用處理器)來執(zhí)行某些操作的專用電路或邏輯。硬件模塊還可以包括由軟件臨時(shí)配置來執(zhí)行某些操作的可編程邏輯或電路(例如,包含在通用處理器或其他可編程處理器內(nèi))。應(yīng)當(dāng)理解,在專用和永久配置的電路中或在(例如,由軟件配置的)臨時(shí)配置的電路中機(jī)械地實(shí)現(xiàn)硬件模塊的決定可以由成本和時(shí)間考慮來驅(qū)動(dòng)。
可以至少部分地由一個(gè)或多個(gè)處理器例如處理器1302來執(zhí)行本文所描述的示例方法的各種操作,所述處理器被臨時(shí)配置(例如由軟件)或被永久配置來執(zhí)行相關(guān)操作。無論是臨時(shí)還是永久配置,此類處理器可以構(gòu)成操作為執(zhí)行一個(gè)或多個(gè)操作或功能的處理器實(shí)現(xiàn)的模塊。在一些示例實(shí)施例中,本文所指代的模塊可以包括處理器實(shí)現(xiàn)的模塊。
一個(gè)或多個(gè)處理器還可以操作為支持“云計(jì)算”環(huán)境中的相關(guān)操作的執(zhí)行或作為“軟件即服務(wù)”(saas)。例如,至少一些操作可以由一組計(jì)算機(jī)(作為包括處理器的機(jī)器的示例)執(zhí)行,這些操作可以經(jīng)由網(wǎng)絡(luò)(例如,因特網(wǎng))以及經(jīng)由一個(gè)或多個(gè)適當(dāng)?shù)慕涌?例如,應(yīng)用程序接口(api))進(jìn)行訪問。
某些操作的執(zhí)行可以分布在一個(gè)或多個(gè)處理器中,不僅駐留在單個(gè)機(jī)器內(nèi),而且部署在多個(gè)機(jī)器上。在一些示例實(shí)施例中,一個(gè)或多個(gè)處理器或處理器實(shí)現(xiàn)的模塊可以位于單個(gè)地理位置(例如,在家庭環(huán)境、辦公室環(huán)境或服務(wù)器群組內(nèi))。在其他示例實(shí)施例中,一個(gè)或多個(gè)處理器或處理器實(shí)現(xiàn)的模塊可以分布在多個(gè)地理位置。
在機(jī)器存儲(chǔ)器(例如,計(jì)算機(jī)存儲(chǔ)器)內(nèi)存儲(chǔ)為比特或二進(jìn)制數(shù)字信號(hào)的數(shù)據(jù)上的操作的算法或符號(hào)表示方面,呈現(xiàn)本說明書的一些部分。這些算法或符號(hào)表示是數(shù)據(jù)處理領(lǐng)域中的普通技術(shù)人員用于將其工作的實(shí)質(zhì)傳達(dá)給本領(lǐng)域其他技術(shù)人員的技術(shù)的示例。如本文所使用的,“算法”是導(dǎo)致期望結(jié)果的自我一致的操作序列或類似的處理。在這種上下文中,算法和操作涉及物理量的物理操縱。通常但不是必定的,這樣的量可以采取能夠被機(jī)器存儲(chǔ)、訪問、傳送、組合、比較或以其他方式操縱的電、磁或光信號(hào)的形式。有時(shí),主要是出于公共使用的原因,使用諸如“數(shù)據(jù)”、“內(nèi)容”、“比特”、“值”、“元素”、“符號(hào)”、“字符”“項(xiàng)”、“數(shù)字”、“數(shù)”等。然而,這些詞僅僅是方便的標(biāo)簽,并且與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)。
除非另有說明,否則本文中使用諸如“處理”、“計(jì)算”、“運(yùn)算”、“確定”、“呈現(xiàn)”、“顯示”等等之類的詞語的討論可以是指機(jī)器(例如,計(jì)算機(jī))的動(dòng)作或過程,其在一個(gè)或多個(gè)存儲(chǔ)器(例如,易失性存儲(chǔ)器、非易失性存儲(chǔ)器或其組合)、寄存器、或其他接收、存儲(chǔ)、發(fā)送或顯示信息的機(jī)器組件內(nèi)操縱或變換被表示為物理(例如,電子、磁或光)量的數(shù)據(jù)。
如本文所使用的,對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的任何引用意味著結(jié)合該實(shí)施例描述的特定元件、特征、結(jié)構(gòu)或特性被包括在至少一個(gè)實(shí)施例中。在說明書中各處出現(xiàn)的短語“在一個(gè)實(shí)施例中”不一定都指代同一實(shí)施例。
可以使用表達(dá)“耦合”和“連接”及其派生詞來描述一些實(shí)施例。例如,一些實(shí)施例可以使用術(shù)語“耦合”來描述以指示兩個(gè)或更多個(gè)元件處于直接物理或電接觸。然而,術(shù)語“耦合”還可以表示兩個(gè)或更多個(gè)元件彼此不直接接觸,但是仍然彼此協(xié)作或交互。實(shí)施例不限于此上下文。
如本文所使用的,術(shù)語“包括”、“包含”、“具有”或其任何其它變體旨在涵蓋非排他性的包括。例如,包括元素列表的過程、方法、物品或裝置不一定僅限于那些元素,而是可以包括未明確列出或固有于這些過程、方法、物品或裝置的其他元素。此外,除非明確地相反指出,否則“或”是指包括性的或而不是排他性的或。例如,狀況a或b由以下任何一個(gè)滿足:a是真(或存在)且b是假(或不存在),a是假(或不存在)且b是真(或存在),并且a和b都是真(或存在)。
此外,使用“一”或“一個(gè)”來描述本文中的實(shí)施例的元件和組件。這僅僅是為了方便和給出本發(fā)明的一般意義。該描述應(yīng)該被理解為包括一個(gè)或至少一個(gè),并且單數(shù)也包括復(fù)數(shù),除非明顯有其它含義。
在閱讀本公開內(nèi)容后,本領(lǐng)域技術(shù)人員將理解本文所述實(shí)施例的另外的替代結(jié)構(gòu)和功能設(shè)計(jì)。因此,盡管已經(jīng)示出和描述了特定實(shí)施例和應(yīng)用,但是應(yīng)當(dāng)理解,所公開的實(shí)施例不限于本文公開的精確構(gòu)造和組件。在不脫離所附權(quán)利要求中限定的精神和范圍的情況下,可以對(duì)本文公開的方法和裝置的布置、操作和細(xì)節(jié)進(jìn)行對(duì)于本領(lǐng)域技術(shù)人員顯而易見的各種修改、改變和變型。