專利名稱:電路狀態(tài)掃描鏈、數(shù)據(jù)采集系統(tǒng)和仿真驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于仿真驗(yàn)證集成電路設(shè)計(jì)的電路狀態(tài)掃描鏈以及利用該掃描鏈的數(shù)據(jù)采集系統(tǒng)和仿真驗(yàn)證方法。
背景技術(shù):
集成電路產(chǎn)品能否及時(shí)上市是影響產(chǎn)品競(jìng)爭(zhēng)力的一個(gè)重要因素,隨著集成電路規(guī)模的不斷擴(kuò)大以及IP復(fù)用技術(shù)的發(fā)展,集成電路設(shè)計(jì)的仿真驗(yàn)證所需的時(shí)間越來越長(zhǎng),提高仿真驗(yàn)證效率成為目前壓縮集成電路產(chǎn)品設(shè)計(jì)時(shí)間的有效手段之一。
仿真包括軟件仿真與硬件仿真。軟件仿真是指把用硬件描述語言編寫的描述集成電路的代碼(如RTL Code等)輸入軟件仿真系統(tǒng),以軟件模擬該集成電路的邏輯功能。硬件仿真是指把所述的代碼輸入硬件仿真系統(tǒng)(FPGA平臺(tái)),用FPGA模擬該集成電路的邏輯功能。軟件仿真與硬件仿真各有優(yōu)缺點(diǎn)軟件仿真的內(nèi)部狀態(tài)全可見,可觀察被測(cè)設(shè)計(jì)(被軟件仿真系統(tǒng)模擬的集成電路)內(nèi)的任意信號(hào),所以能藉以對(duì)被測(cè)設(shè)計(jì)進(jìn)行具體的分析,但仿真速度慢;硬件仿真速度快,但限于針腳數(shù)的限制,其內(nèi)部信號(hào)的觀察十分困難。
因?yàn)閷?duì)被測(cè)設(shè)計(jì)除錯(cuò)(DEBUG)只需要在發(fā)生錯(cuò)誤前后的一小段時(shí)間對(duì)被測(cè)設(shè)計(jì)進(jìn)行詳細(xì)分析即可,所以只要把發(fā)生錯(cuò)誤前后的一小段測(cè)試項(xiàng)目放在軟件仿真系統(tǒng)上運(yùn)行即可。結(jié)合硬件仿真與軟件仿真的仿真驗(yàn)證方法在保證能對(duì)被測(cè)設(shè)計(jì)進(jìn)行具體的分析的同時(shí)提高了仿真驗(yàn)證效率。簡(jiǎn)而言之,測(cè)試項(xiàng)目的大部分在硬件仿真系統(tǒng)上運(yùn)行,把硬件仿真系統(tǒng)的輸出信號(hào)與標(biāo)準(zhǔn)的輸出信號(hào)進(jìn)行比較,判斷是否發(fā)生錯(cuò)誤,通過復(fù)制硬件仿真系統(tǒng)的電路狀態(tài)及輸入序列,使硬件仿真系統(tǒng)在發(fā)生錯(cuò)誤前后一小段時(shí)間的行為在軟件仿真系統(tǒng)上重現(xiàn),最后利用軟件仿真系統(tǒng)對(duì)被測(cè)設(shè)計(jì)進(jìn)行具體地分析,這種方法兼具硬件仿真與軟件仿真兩者的優(yōu)點(diǎn)。
任何單時(shí)鐘、同步的數(shù)字系統(tǒng)都可以看成是一個(gè)巨大的狀態(tài)機(jī),硬件仿真系統(tǒng)模擬的被測(cè)設(shè)計(jì)就是這樣一個(gè)系統(tǒng)。這里對(duì)以下幾個(gè)概念進(jìn)行說明輸入序列(以下簡(jiǎn)寫為input_seq)輸入信號(hào)由時(shí)鐘采樣得到的離散序列。
輸出序列(以下簡(jiǎn)寫為output_seq)輸出信號(hào)由時(shí)鐘信號(hào)采樣得到的離散序列。
狀態(tài)序列(以下簡(jiǎn)寫為state_seq)狀態(tài)由時(shí)鐘信號(hào)采樣得到的離散序列。
行為函數(shù)(behavior_function)由某個(gè)狀態(tài)和與其對(duì)應(yīng)的輸入序列得到輸出序列的函數(shù),由當(dāng)前狀態(tài)和輸入序列作為參數(shù),產(chǎn)生狀態(tài)序列和輸出序列兩個(gè)序列。
行為函數(shù)和狀態(tài)序列、輸入序列以及輸出序列的關(guān)系如下(state_seq,output_seq)=behavior_function(init_state,input_seq)。
上式可以描述為一段時(shí)間內(nèi),系統(tǒng)的行為(state_seq和output_seq)由系統(tǒng)的行為函數(shù)(behavior_function)、初始狀態(tài)(init_state)和輸入序列(input_seq)三者唯一決定。
如果需要在軟件仿真系統(tǒng)上復(fù)現(xiàn)被測(cè)設(shè)計(jì)在硬件仿真系統(tǒng)上的行為,就需要在硬件仿真系統(tǒng)上得到上述三種信息行為函數(shù)、初始狀態(tài)和輸入序列。
眾所周知,一個(gè)單時(shí)鐘、同步的集成電路,在任意時(shí)刻,其狀態(tài)由內(nèi)部存儲(chǔ)器存儲(chǔ)的數(shù)據(jù)唯一決定;其行為函數(shù)由其內(nèi)部所有的組合邏輯唯一決定;輸入序列則由外部決定。
硬件仿真系統(tǒng)中與軟件仿真系統(tǒng)中的該被測(cè)設(shè)計(jì)的組合邏輯相同(至少在正常工作模式下的組合邏輯相同),換言之,該集成電路在兩個(gè)平臺(tái)上的行為函數(shù)相同,因此,只要有硬件仿真系統(tǒng)上該被測(cè)設(shè)計(jì)的“初始狀態(tài)”和“輸入序列”就可以在軟件仿真系統(tǒng)上復(fù)現(xiàn)該被測(cè)設(shè)計(jì)在硬件仿真系統(tǒng)上的行為(即狀態(tài)序列與輸出序列)。這是前述結(jié)合硬件仿真與軟件仿真的仿真驗(yàn)證方案的基礎(chǔ)。
要在軟件仿真系統(tǒng)中復(fù)現(xiàn)硬件仿真系統(tǒng)所模擬的該被測(cè)設(shè)計(jì)的行為,首先需要從硬件仿真系統(tǒng)得到“初始狀態(tài)”和“輸入序列”。“輸入序列”可通過復(fù)制被測(cè)設(shè)計(jì)的輸入得到,比較容易實(shí)現(xiàn),問題在于如何得到“初始狀態(tài)”(該領(lǐng)域一般把獲得“初始狀態(tài)”的過程稱為拍照,SnapShot)。目前,業(yè)界一般的做法是把軟件仿真系統(tǒng)與硬件仿真系統(tǒng)以某一種方式連接,使兩者間可進(jìn)行電路狀態(tài)的相互傳輸,從而實(shí)現(xiàn)仿真在兩個(gè)系統(tǒng)間的切換。如美國(guó)專利第5937179號(hào)(以下稱179號(hào)專利)所揭示的方案,硬件仿真發(fā)生錯(cuò)誤時(shí),暫停測(cè)試項(xiàng)目的運(yùn)行,利用備份寄存器構(gòu)建的掃描鏈(Scan-Chain)把被測(cè)設(shè)計(jì)的電路狀態(tài)導(dǎo)出并輸入軟件仿真系統(tǒng),在軟件仿真系統(tǒng)上從這一刻繼續(xù)向前運(yùn)行或者向后運(yùn)行測(cè)試項(xiàng)目,在軟件仿真系統(tǒng)上復(fù)現(xiàn)該錯(cuò)誤并對(duì)之進(jìn)行分析(請(qǐng)參179號(hào)專利說明書第3欄第63行至第67行以及第4欄第39行至第43行)。然而,這種仿真驗(yàn)證方法仍有以下幾個(gè)缺點(diǎn)第一,用額外的備份寄存器構(gòu)建電路狀態(tài)掃描鏈,使集成電路門數(shù)大幅增加,提高了FPGA仿真的成本,對(duì)超大規(guī)模集成電路設(shè)計(jì)而言這點(diǎn)尤為突出;第二,仿真在軟件仿真與硬件仿真之間切換,切換次數(shù)比較多,使仿真效率降低;第三,硬件仿真系統(tǒng)發(fā)生錯(cuò)誤時(shí),分析該錯(cuò)誤的發(fā)生原因的最佳時(shí)刻已經(jīng)過去,而要在軟件仿真系統(tǒng)上通過回跑測(cè)試項(xiàng)目獲得該時(shí)刻的“初始狀態(tài)”非常困難,且不一定能夠?qū)崿F(xiàn)。
發(fā)明內(nèi)容
因此,為簡(jiǎn)化仿真驗(yàn)證,提高仿真驗(yàn)證的效率,降低仿真驗(yàn)證的成本,亟需設(shè)計(jì)一種新的仿真驗(yàn)證方案。
本發(fā)明提供一種電路狀態(tài)掃描鏈,包括多個(gè)寄存器以及與每個(gè)寄存器對(duì)應(yīng)的輸入端組合邏輯和輸出端組合邏輯,每個(gè)寄存器的輸出端口和與之相對(duì)應(yīng)的輸出端組合邏輯的輸入端口連接,所述電路狀態(tài)掃描鏈還包括與所述多個(gè)寄存器相對(duì)應(yīng)的多個(gè)第一復(fù)用模塊及多個(gè)第二復(fù)用模塊,其中,每個(gè)寄存器與相應(yīng)的一個(gè)第一復(fù)用模塊和相應(yīng)的一個(gè)第二復(fù)用模塊相關(guān),第一復(fù)用模塊與第二復(fù)用模塊都分別設(shè)有兩個(gè)輸入端口與一個(gè)輸出端口,其中,各第一復(fù)用模塊的第一輸入端口和與之相應(yīng)的寄存器的輸出端口連接,各第一復(fù)用模塊的第二輸入端口與前一寄存器的輸出端口連接,各第二復(fù)用模塊的第一輸入端口和與之相應(yīng)的寄存器所對(duì)應(yīng)的輸入端組合邏輯的輸出端口連接,各第二復(fù)用模塊的第二輸入端口和與之相應(yīng)的第一復(fù)用模塊的輸出端口連接,各第二復(fù)用模塊的輸出端口和與之相應(yīng)的寄存器的輸入端口連接,位于掃描鏈最后的寄存器的輸出端口與掃描鏈上第一個(gè)寄存器所對(duì)應(yīng)的第一復(fù)用模塊的第二輸入端口連接。
本發(fā)明還提供一種利用上述電路狀態(tài)掃描鏈的一種數(shù)據(jù)采集系統(tǒng),包括拍照控制模塊,通過控制所述多個(gè)第一復(fù)用模塊和所述多個(gè)第二復(fù)用模塊,來將所述電路狀態(tài)掃描鏈的工作狀態(tài)。
如上所述的數(shù)據(jù)采集系統(tǒng),所述電路狀態(tài)掃描鏈的工作狀態(tài)包括正常工作模式、保持模式和拍照模式。
如上所述的數(shù)據(jù)采集系統(tǒng),所述拍照控制模塊內(nèi)還設(shè)有計(jì)數(shù)器,用以控制所述電路狀態(tài)掃描鏈的寄存器的值的移位次數(shù)。
本發(fā)明還提供一種利用如上所述的電路狀態(tài)掃描鏈或數(shù)據(jù)采集系統(tǒng)的仿真驗(yàn)證方法,包括以下步驟在測(cè)試項(xiàng)目上設(shè)置多個(gè)檢測(cè)點(diǎn);在硬件仿真系統(tǒng)上運(yùn)行測(cè)試項(xiàng)目;在運(yùn)行測(cè)試項(xiàng)目的同時(shí)下載輸入數(shù)據(jù);在檢測(cè)點(diǎn)處對(duì)電路進(jìn)行拍照;把電路狀態(tài)和輸入數(shù)據(jù)提供給軟件仿真系統(tǒng),在軟件仿真系統(tǒng)上重現(xiàn)被測(cè)設(shè)計(jì)在硬件仿真系統(tǒng)上的行為。
圖1為被測(cè)設(shè)計(jì)的原始邏輯的簡(jiǎn)化框圖。
圖2為本發(fā)明被測(cè)設(shè)計(jì)的簡(jiǎn)化邏輯框圖。
圖3為本發(fā)明數(shù)據(jù)采集系統(tǒng)的簡(jiǎn)化硬件框圖。
圖4為本發(fā)明在測(cè)試項(xiàng)目上設(shè)置檢測(cè)點(diǎn)的示意圖。
具體實(shí)施例方式
本發(fā)明通過改變被測(cè)設(shè)計(jì)的邏輯,把被測(cè)設(shè)計(jì)內(nèi)部的寄存器串連成一條掃描鏈,以外部控制信號(hào)控制被測(cè)設(shè)計(jì)的工作模式(包括正常模式、拍照模式及保持模式)。另外,本發(fā)明的掃描鏈?zhǔn)孜蚕噙B,拍照完成后,被測(cè)設(shè)計(jì)的電路狀態(tài)隨即恢復(fù)到與拍照前相同,不需要額外的時(shí)間恢復(fù)被測(cè)設(shè)計(jì)的電路狀態(tài),使被測(cè)設(shè)計(jì)可繼續(xù)運(yùn)行測(cè)試項(xiàng)目,提高了仿真驗(yàn)證的效率。
參考圖1,圖1是被測(cè)設(shè)計(jì)的原始邏輯的簡(jiǎn)化框圖,其包括N個(gè)寄存器11(分別以11a、11b…11n表示)及其相應(yīng)的輸入端組合邏輯12(分別以12a、12b…12n表示)與相應(yīng)的輸出端組合邏輯13(分別以13a、13b…13n表示)。寄存器11具有輸入端口(圖中所示D端)與輸出端口(圖中所示Q端),輸出端口的值即寄存器所儲(chǔ)存的值,也就是寄存器的狀態(tài)。寄存器的特點(diǎn)在于,受到一個(gè)時(shí)鐘信號(hào)的驅(qū)動(dòng)時(shí),寄存器的輸出端口的值就變成輸入端口的值。要想得到多個(gè)寄存器的值,只要把寄存器串連成一條掃描鏈,再通過時(shí)鐘信號(hào)的驅(qū)動(dòng),這些寄存器就會(huì)隨著時(shí)鐘信號(hào)把存儲(chǔ)的值依次向前移位,在掃描鏈最末端的寄存器的輸出端口就可以接收到這些寄存器的值。如果不使用備份寄存器備份被測(cè)設(shè)計(jì)的N個(gè)寄存器的值,就需要改變被測(cè)設(shè)計(jì)本身的邏輯,在需要得到這些寄存器的值的時(shí)候,把這N個(gè)寄存器串連成一條掃描鏈,利用掃描鏈把這些寄存器中儲(chǔ)存的代表電路狀態(tài)的數(shù)據(jù)輸出到外部。
參考圖2,圖2是本發(fā)明被測(cè)設(shè)計(jì)的簡(jiǎn)化邏輯框圖,以寄存器為單位進(jìn)行劃分,與被測(cè)設(shè)計(jì)的原始邏輯相比較,增加了第一復(fù)用模塊14(分別以14a、14b、14n表示)和第二復(fù)用模塊15(分別以15a、15b、15n表示),下面以寄存器11b為例說明掃描鏈如何形成。第一復(fù)用模塊14b和第二復(fù)用模塊15b分別有兩個(gè)輸入端口和一個(gè)輸出端口。第二復(fù)用模塊15b的輸出端口與寄存器11b的輸入端口連接,第二復(fù)用模塊15b的第一輸入端口與輸入端組合邏輯12b的輸出端連接,第二復(fù)用模塊15b的第二輸入端口與第一復(fù)用模塊14b的輸出端口連接。第一復(fù)用模塊14b的第一輸入端口與寄存器11b的輸出端口連接,第一復(fù)用模塊14b的第二輸入端口與前一寄存器11a的輸出端口連接。處于掃描鏈最末端的寄存器11n的輸出端口與處于掃描鏈的第一個(gè)寄存器11a的第一復(fù)用模塊14a的第二輸入端口連接,如此構(gòu)成一個(gè)掃描鏈循環(huán)。
第一復(fù)用模塊14由shift enable信號(hào)控制,第二復(fù)用模塊15由strobeenable信號(hào)控制。這兩個(gè)控制信號(hào)的組合與被測(cè)設(shè)計(jì)的工作模式的關(guān)系如下表所示
當(dāng)strobe enable為0時(shí),第二復(fù)用模塊15選擇第一輸入端口的輸入(即輸入端組合邏輯12的輸出)作為輸出,第一復(fù)用模塊14的輸出不被選擇,此時(shí),被測(cè)設(shè)計(jì)回復(fù)原始的邏輯功能,工作在正常的模式下。
當(dāng)strobe enable為1且shift enable為0時(shí),第二復(fù)用模塊15選擇第二輸入端口的輸入(即第一復(fù)用模塊14的輸出)作為輸出;第一復(fù)用模塊14則選擇第一輸入端口的輸入(即當(dāng)前寄存器11的輸出)作為輸出。此時(shí),當(dāng)前寄存器的值保持不變,被測(cè)設(shè)計(jì)工作在保持模式下。何時(shí)需要被測(cè)設(shè)計(jì)工作在此模式下將在下文進(jìn)行說明。
當(dāng)strobe enable為1且shift enable為1時(shí),第二復(fù)用模塊15選擇第二輸入端口的輸入(即第一復(fù)用模塊14的輸出)作為輸出;第一復(fù)用模塊14則選擇第二輸入端口的輸入(即前一寄存器11的輸出)作為輸出。此時(shí),隨著系統(tǒng)時(shí)鐘,各寄存器的值在掃描鏈中向前移位,在掃描鏈末端的輸出端口根據(jù)該時(shí)鐘采樣得到這些寄存器的值,經(jīng)過N個(gè)時(shí)鐘后,得到所有寄存器的值,且所有寄存器的值恢復(fù)到移位以前的狀態(tài)。
參考圖3,圖3是本發(fā)明數(shù)據(jù)采集系統(tǒng)的簡(jiǎn)化硬件框圖,該數(shù)據(jù)采集系統(tǒng)包括采集電路狀態(tài)(即初始狀態(tài))數(shù)據(jù)的部分與輸入(即輸入序列)數(shù)據(jù)的部分。圖中被測(cè)設(shè)計(jì)(DUT)1的輸入信號(hào)被引至編碼器3,該輸入信號(hào)經(jīng)過編碼器3的編碼壓縮后輸出至第三復(fù)用模塊4。拍照控制模塊2控制被測(cè)設(shè)計(jì)1工作在何種模式下,同時(shí)控制所述的編碼器3以及第三復(fù)用模塊4的工作。因?yàn)槲床捎脗浞菁拇嫫鳂?gòu)建掃描鏈,所以拍照與測(cè)試不能同時(shí)進(jìn)行,換言之,電路狀態(tài)數(shù)據(jù)與輸入數(shù)據(jù)的上傳不會(huì)在時(shí)間上重疊,為節(jié)省硬件開銷降低成本,本發(fā)明的實(shí)施例通過第三復(fù)用模塊4使電路狀態(tài)數(shù)據(jù)與輸入數(shù)據(jù)通過同一數(shù)據(jù)通道上傳外部設(shè)備。但也可以采用兩條數(shù)據(jù)通道分開上傳。
只有精確地控制掃描鏈10的移位次數(shù)才能得到正確的電路狀態(tài)數(shù)據(jù)并且在拍照完成后使寄存器11恢復(fù)拍照前的狀態(tài)。首先,要明確掃描鏈10由多少個(gè)寄存器11構(gòu)成,這可通過一些邏輯分析軟件對(duì)被測(cè)設(shè)計(jì)的RTL Code進(jìn)行分析來完成(這是本領(lǐng)域公知的技術(shù)手段)。其次,是對(duì)掃描鏈10移位次數(shù)的精確控制,這是由拍照控制模塊2內(nèi)所設(shè)的計(jì)數(shù)器21來完成的。軟件把表示寄存器數(shù)量的值賦給計(jì)數(shù)器21,拍照開始后,掃描鏈10開始移位,每進(jìn)行一次移位,計(jì)數(shù)器21就把所賦的值減一,當(dāng)計(jì)數(shù)器21的值成為0時(shí)說明拍照完成并且寄存器恢復(fù)拍照前的狀態(tài),這時(shí)拍照控制模塊2通過strobe enable和shift enable兩個(gè)信號(hào)控制停止拍照。
數(shù)據(jù)采集系統(tǒng)在上傳數(shù)據(jù)時(shí)可能會(huì)發(fā)生溢出等錯(cuò)誤,這時(shí)需要暫停掃描鏈的數(shù)據(jù)輸出,否則自發(fā)生溢出至溢出消除期間,掃描鏈輸出的數(shù)據(jù)將會(huì)丟失,導(dǎo)致最終得到的并非完整的電路狀態(tài)數(shù)據(jù)。本發(fā)明的掃描鏈中的第一復(fù)用模塊14及第二復(fù)用模塊15的組合可以克服這個(gè)難題。當(dāng)數(shù)據(jù)上傳通道發(fā)生溢出錯(cuò)誤或者發(fā)生其他導(dǎo)致暫時(shí)無法接收數(shù)據(jù)的情況時(shí),系統(tǒng)將發(fā)送信號(hào)給拍照控制模塊2,拍照控制模塊2使strobe enable信號(hào)為1,使shift enable信號(hào)為0,此時(shí),寄存器11的輸出端口與輸入端口連接,寄存器的值保持不變。系統(tǒng)恢復(fù)正常后再繼續(xù)輸出掃描鏈中寄存器的數(shù)據(jù)。
另外,電路狀態(tài)數(shù)據(jù)包括了寄存器狀態(tài)與存儲(chǔ)器(如SRAM)的內(nèi)容,前文主要描述如何獲得寄存器的值,這也是本發(fā)明的重點(diǎn)所在,至于存儲(chǔ)器的內(nèi)容可通過讀操作獲得,此為業(yè)界一般技術(shù)人員所知,故在此不進(jìn)行贅述。
以上主要對(duì)本發(fā)明的掃描鏈結(jié)構(gòu)進(jìn)行描述,后文將對(duì)本發(fā)明的仿真驗(yàn)證方案進(jìn)行說明。參考圖4,圖4是本發(fā)明在測(cè)試項(xiàng)目上設(shè)置檢測(cè)點(diǎn)的示意圖。首先,根據(jù)實(shí)際情況在測(cè)試項(xiàng)目上設(shè)置多個(gè)測(cè)試點(diǎn),如圖中的A、B、C、D、E,這些測(cè)試點(diǎn)是進(jìn)行拍照的標(biāo)志(測(cè)試項(xiàng)目是在硬件仿真系統(tǒng)中運(yùn)行);當(dāng)測(cè)試項(xiàng)目運(yùn)行到這些測(cè)試點(diǎn)的時(shí)候,系統(tǒng)暫停對(duì)被測(cè)設(shè)計(jì)的輸入,同時(shí)把strobeenable信號(hào)置1,把shift enable信號(hào)置0,這時(shí)電路狀態(tài)保持不變;當(dāng)系統(tǒng)準(zhǔn)備好輸出電路狀態(tài)數(shù)據(jù)時(shí),再把shift enable信號(hào)置1,這時(shí)掃描鏈10中寄存器11的值開始移位;電路狀態(tài)數(shù)據(jù)輸出完成后,恢復(fù)系統(tǒng)對(duì)被測(cè)設(shè)計(jì)的輸入,同時(shí)把strobe enable置1,使被測(cè)設(shè)計(jì)恢復(fù)原來的邏輯功能,測(cè)試項(xiàng)目繼續(xù)運(yùn)行。整個(gè)測(cè)試項(xiàng)目結(jié)束后,輸入序列以及A、B、C、D、E五個(gè)測(cè)試點(diǎn)的電路狀態(tài)都已被記錄。若硬件仿真在C和D之間發(fā)生了一個(gè)錯(cuò)誤,就把C點(diǎn)的電路狀態(tài)導(dǎo)入軟件仿真系統(tǒng),同時(shí)把C和D點(diǎn)之間的輸入序列提供給軟件仿真系統(tǒng),如此,軟件仿真系統(tǒng)就能夠重現(xiàn)這段測(cè)試項(xiàng)目在硬件仿真系統(tǒng)上的運(yùn)行狀況,從而可利用軟件仿真的電路狀態(tài)全可見性對(duì)發(fā)生的錯(cuò)誤進(jìn)行詳細(xì)地分析。顯然,這種仿真驗(yàn)證方案不會(huì)錯(cuò)失對(duì)錯(cuò)誤進(jìn)行具體分析的時(shí)機(jī),不管錯(cuò)誤發(fā)生在何時(shí),只要把發(fā)生錯(cuò)誤前的一個(gè)測(cè)試點(diǎn)的電路狀態(tài)及對(duì)應(yīng)的輸入序列導(dǎo)入軟件仿真系統(tǒng)即可。
權(quán)利要求
1.一種電路狀態(tài)掃描鏈,設(shè)于被測(cè)設(shè)計(jì)內(nèi),該被測(cè)設(shè)計(jì)包括多個(gè)寄存器以及與每個(gè)寄存器對(duì)應(yīng)的輸入端組合邏輯和輸出端組合邏輯,每個(gè)寄存器的輸出端口和與之相對(duì)應(yīng)的輸出端組合邏輯的輸入端口連接,其特征在于,所述電路狀態(tài)掃描鏈還包括與所述多個(gè)寄存器相對(duì)應(yīng)的多個(gè)第一復(fù)用模塊及多個(gè)第二復(fù)用模塊,其中,每個(gè)寄存器與相應(yīng)的一個(gè)第一復(fù)用模塊和相應(yīng)的一個(gè)第二復(fù)用模塊相關(guān),第一復(fù)用模塊與第二復(fù)用模塊都分別設(shè)有兩個(gè)輸入端口與一個(gè)輸出端口,其中,各第一復(fù)用模塊的第一輸入端口和與之相應(yīng)的寄存器的輸出端口連接,各第一復(fù)用模塊的第二輸入端口與前一寄存器的輸出端口連接,各第二復(fù)用模塊的第一輸入端口和與之相應(yīng)的寄存器所對(duì)應(yīng)的輸入端組合邏輯的輸出端口連接,各第二復(fù)用模塊的第二輸入端口和與之相應(yīng)的第一復(fù)用模塊的輸出端口連接,各第二復(fù)用模塊的輸出端口和與之相應(yīng)的寄存器的輸入端口連接,位于掃描鏈最后的寄存器的輸出端口與掃描鏈上第一個(gè)寄存器所對(duì)應(yīng)的第一復(fù)用模塊的第二輸入端口連接。
2.一種數(shù)據(jù)采集系統(tǒng),包括電路狀態(tài)掃描鏈,用于采集電路狀態(tài);拍照控制模塊,用于控制所述電路狀態(tài)掃描鏈的工作狀態(tài),其特征在于,所述電路狀態(tài)掃描鏈包括多個(gè)寄存器以及與每個(gè)寄存器對(duì)應(yīng)的輸入端組合邏輯和輸出端組合邏輯,每個(gè)寄存器的輸出端口和與之相對(duì)應(yīng)的輸出端組合邏輯的輸入端口連接,所述電路狀態(tài)掃描鏈還包括與所述多個(gè)寄存器相對(duì)應(yīng)的多個(gè)第一復(fù)用模塊及多個(gè)第二復(fù)用模塊,其中,每個(gè)寄存器與相應(yīng)的一個(gè)第一復(fù)用模塊和相應(yīng)的一個(gè)第二復(fù)用模塊相關(guān),第一復(fù)用模塊與第二復(fù)用模塊都分別設(shè)有兩個(gè)輸入端口與一個(gè)輸出端口,其中,各第一復(fù)用模塊的第一輸入端口和與之相應(yīng)的寄存器的輸出端口連接,各第一復(fù)用模塊的第二輸入端口與前一寄存器的輸出端口連接,各第二復(fù)用模塊的第一輸入端口和與之相應(yīng)的寄存器所對(duì)應(yīng)的輸入端組合邏輯的輸出端口連接,各第二復(fù)用模塊的第二輸入端口和與之相應(yīng)的第一復(fù)用模塊的輸出端口連接,各第二復(fù)用模塊的輸出端口和與之相應(yīng)的寄存器的輸入端口連接,位于掃描鏈最后的寄存器的輸出端口與掃描鏈上第一個(gè)寄存器所對(duì)應(yīng)的第一復(fù)用模塊的第二輸入端口連接,其中,所述拍照控制模塊通過控制所述多個(gè)第一復(fù)用模塊和所述多個(gè)第二復(fù)用模塊,來將所述電路狀態(tài)掃描鏈的工作狀態(tài)。
3.如權(quán)利要求2所述的數(shù)據(jù)采集系統(tǒng),其特征在于,所述電路狀態(tài)掃描鏈的工作狀態(tài)包括正常工作模式、保持模式和拍照模式。
4.如權(quán)利要求2所述的數(shù)據(jù)采集系統(tǒng),其特征在于,所述拍照控制模塊內(nèi)還設(shè)有計(jì)數(shù)器,用以控制所述電路狀態(tài)掃描鏈的寄存器的值的移位次數(shù)。
5.一種利用權(quán)利要求1所述的電路狀態(tài)掃描鏈的仿真驗(yàn)證方法,包括以下步驟在測(cè)試項(xiàng)目上設(shè)置多個(gè)檢測(cè)點(diǎn);在硬件仿真系統(tǒng)上運(yùn)行測(cè)試項(xiàng)目;在運(yùn)行測(cè)試項(xiàng)目的同時(shí)下載輸入數(shù)據(jù);在檢測(cè)點(diǎn)處對(duì)電路進(jìn)行拍照;把電路狀態(tài)和輸入數(shù)據(jù)提供給軟件仿真系統(tǒng),在軟件仿真系統(tǒng)上重現(xiàn)被測(cè)設(shè)計(jì)在硬件仿真系統(tǒng)上的行為。
6.一種利用權(quán)利要求2所述的數(shù)據(jù)采集系統(tǒng)的仿真驗(yàn)證方法,包括以下步驟在測(cè)試項(xiàng)目上設(shè)置多個(gè)檢測(cè)點(diǎn);在硬件仿真系統(tǒng)上運(yùn)行測(cè)試項(xiàng)目;在運(yùn)行測(cè)試項(xiàng)目的同時(shí)下載輸入數(shù)據(jù);在檢測(cè)點(diǎn)處對(duì)電路進(jìn)行拍照;把電路狀態(tài)和輸入數(shù)據(jù)提供給軟件仿真系統(tǒng),在軟件仿真系統(tǒng)上重現(xiàn)被測(cè)設(shè)計(jì)在硬件仿真系統(tǒng)上的行為。
全文摘要
提供一種用于仿真驗(yàn)證集成電路設(shè)計(jì)的電路狀態(tài)掃描鏈以及利用該掃描鏈的數(shù)據(jù)采集系統(tǒng)和仿真驗(yàn)證方法。上述集成電路包括多個(gè)寄存器及其對(duì)應(yīng)的輸入端組合邏輯和輸出端組合邏輯,該掃描鏈結(jié)構(gòu)包括對(duì)應(yīng)每一寄存器所設(shè)第一復(fù)用模塊及第二復(fù)用模塊,通過第一復(fù)用模塊及第二復(fù)用模塊改變集成電路的工作模式,使集成電路有正常模式、保持模式及拍照模式三種工作模式,并在拍照模式下使寄存器構(gòu)成一個(gè)掃描鏈環(huán)。
文檔編號(hào)G06F17/50GK1940944SQ20051003017
公開日2007年4月4日 申請(qǐng)日期2005年9月29日 優(yōu)先權(quán)日2005年9月29日
發(fā)明者周振亞, 張亞林, 孫一江 申請(qǐng)人:上海奇碼數(shù)字信息有限公司