一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種節(jié)點(diǎn)互連芯片模塊檢測(cè)方法,具體地說(shuō)是一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法。
【背景技術(shù)】
[0002]隨著FPGA驗(yàn)證工作的深入,出現(xiàn)了一些驗(yàn)證工作上瓶頸,主要是隨著多CPU多線程正常工作后,數(shù)據(jù)包大量并發(fā),而限于軟件采樣頻率和數(shù)據(jù)量的緣由,無(wú)法簡(jiǎn)單的使用Chipscope抓取相應(yīng)信號(hào)。這種情況下會(huì)出現(xiàn)CPU宕機(jī)后,無(wú)法利用傳統(tǒng)簡(jiǎn)單方法進(jìn)行查詢消息報(bào)文,無(wú)法對(duì)FPGA代碼進(jìn)行實(shí)時(shí)調(diào)試。所以現(xiàn)階段迫切需要一種更好的NC平臺(tái)調(diào)試手段,能夠做到監(jiān)測(cè)由CPU發(fā)出以及由NC返回的各種消息報(bào)文。鑒于Xi I inx FPGA軟件I SE自帶的調(diào)試工具Chipscope存儲(chǔ)資源有限且采樣頻率的限制,以及邏輯分析儀雖然可以保存遠(yuǎn)超Chipscope保存數(shù)據(jù)量的數(shù)據(jù),但是相比于復(fù)雜的試驗(yàn)環(huán)境,仍然捉襟見(jiàn)肘,且無(wú)法從存儲(chǔ)的的大量數(shù)據(jù)中簡(jiǎn)單快速的查找到關(guān)鍵信息,加之采買價(jià)格頗貴。
[0003]
【發(fā)明內(nèi)容】
本發(fā)明的技術(shù)任務(wù)是提供一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法,來(lái)解決邏輯分析儀價(jià)格昂貴,且由于邏輯分析儀針腳有限,無(wú)法抓取太多信號(hào),存儲(chǔ)的數(shù)據(jù)也無(wú)法快速簡(jiǎn)單的查找定位關(guān)鍵信息的問(wèn)題。
[0004]本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法,步驟如下:
(1)以獨(dú)立模塊的形式嵌入節(jié)點(diǎn)互連芯片邏輯,隨節(jié)點(diǎn)互連邏輯同時(shí)運(yùn)行,監(jiān)聽(tīng)各個(gè)信道交互的報(bào)文信息,按照相應(yīng)協(xié)議規(guī)則進(jìn)行錯(cuò)誤檢測(cè),報(bào)出超時(shí)和報(bào)文錯(cuò)誤信息,全自動(dòng)運(yùn)行;
(2)將CPU發(fā)出的主動(dòng)QPI報(bào)文存儲(chǔ),當(dāng)有QPI報(bào)文從NC端返回時(shí),與相對(duì)應(yīng)的已經(jīng)存儲(chǔ)下來(lái)的源QPI報(bào)文進(jìn)行比較,確定是否為所期望的報(bào)文;同時(shí)每個(gè)CPU發(fā)出的報(bào)文都會(huì)加一時(shí)間戳(Timestamp)用來(lái)判斷是否超時(shí)。
[0005]作為優(yōu)選,所述步驟(I)中的模塊包括一下模塊:
(1)存儲(chǔ)模塊設(shè)計(jì):該模塊負(fù)責(zé)存儲(chǔ)所有由CPU發(fā)起的主動(dòng)QPI報(bào)文,以方便對(duì)由NC返回的QPI報(bào)文進(jìn)行檢測(cè);在應(yīng)用中,所有的發(fā)送和回復(fù)報(bào)文都是亂序傳輸?shù)?,而RAM存儲(chǔ)器又具有隨機(jī)讀寫的功能,故采用RAM作為存儲(chǔ)介質(zhì);
(2)存儲(chǔ)器控制信號(hào)產(chǎn)生模塊:在有CPU發(fā)送請(qǐng)求報(bào)文頭抵達(dá)時(shí),根據(jù)報(bào)文頭的messageclass位區(qū)分六個(gè)信道的報(bào)文類型,按照優(yōu)先級(jí)分別存儲(chǔ),即優(yōu)先級(jí)高的先存儲(chǔ),優(yōu)先級(jí)低的延后存儲(chǔ),以報(bào)頭的RTID為Addr,寫使能置位,將報(bào)頭寫入輸入端口 ;在沒(méi)有CPU發(fā)送請(qǐng)求報(bào)文的空閑狀態(tài),將讀使能置位,以RTID為地址將報(bào)文頭讀出,這樣既不會(huì)出現(xiàn)覆蓋寫入的問(wèn)題,同時(shí)也可以針對(duì)返回的包RTID快速查找到對(duì)應(yīng)的存儲(chǔ)報(bào)文頭包;
(3)超時(shí)處理模塊:當(dāng)在CPU收取回復(fù)報(bào)文的時(shí)間閾值之內(nèi)沒(méi)有對(duì)應(yīng)的協(xié)議報(bào)文回復(fù),本模塊進(jìn)行這種情況判定,并產(chǎn)生Timeout報(bào)警信號(hào);具體行為如下:使用循環(huán)計(jì)算的計(jì)數(shù)器作為local時(shí)鐘,當(dāng)CPU的請(qǐng)求報(bào)文到達(dá)時(shí),將當(dāng)時(shí)的local時(shí)鐘的數(shù)值作為時(shí)間戳,寫入到報(bào)文頭包的相應(yīng)位置,并將處理過(guò)的報(bào)文頭包寫入存儲(chǔ)器中;當(dāng)存儲(chǔ)器沒(méi)有被動(dòng)的寫入和讀出的時(shí)候,要對(duì)存儲(chǔ)器中各個(gè)報(bào)文頭包的時(shí)間戳遍歷;與local時(shí)鐘比較,若超過(guò)設(shè)定閾值則報(bào)警;
(4)錯(cuò)誤處理模塊:本模塊的功能是判定NC返回的響應(yīng)報(bào)文是否為CPU鎖期望的正確回復(fù)類型,即寬松判定;具體行為如下:
每當(dāng)NC返回一個(gè)QPI響應(yīng)報(bào)文的時(shí),根據(jù)報(bào)文中的RTID[5:0],即可提取出存儲(chǔ)器中對(duì)應(yīng)的源QPI報(bào)文頭包。依據(jù)從QPI協(xié)議提取的判定算法,判定NC所返回的報(bào)文是否為滿足協(xié)議要求的正確報(bào)文,如果滿足要求則擦除存儲(chǔ)的報(bào)文頭包,反之即可產(chǎn)生Error信號(hào)報(bào)警。
[0006]本發(fā)明的一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
(I)本發(fā)明具有實(shí)現(xiàn)簡(jiǎn)單,效果優(yōu)秀的特點(diǎn),可以方便的移植到需要大量報(bào)文交互的FPGA驗(yàn)證平臺(tái)。根據(jù)驗(yàn)證平臺(tái)交互報(bào)文的寬度定義存儲(chǔ)位寬,根據(jù)報(bào)文格式定義分類和存儲(chǔ)算法。檢測(cè)算法需要依據(jù)相關(guān)的節(jié)點(diǎn)互連協(xié)議,本發(fā)明基于Intel公司的QPI協(xié)議開(kāi)發(fā),但可根據(jù)具體環(huán)境少量修改代碼實(shí)現(xiàn)其他互連協(xié)議的支持,其主旨思想不變,符合自動(dòng)化檢測(cè)的思想,可大大提高驗(yàn)證人員工作效率。
[0007](2)本發(fā)明中設(shè)置有獨(dú)立模塊,需要驗(yàn)證人員將其集成到需要進(jìn)行相應(yīng)驗(yàn)證的主體工作模塊中,將需要驗(yàn)證的數(shù)據(jù)接口接入。本發(fā)明設(shè)計(jì)的檢測(cè)模塊較精煉,占用FPGA芯片資源較小,在資源允許的情況下可升級(jí)檢測(cè)算法,支持更復(fù)雜的錯(cuò)誤檢測(cè)。
[0008](3)本發(fā)明實(shí)現(xiàn)的全自動(dòng)化的可潛入NC邏輯的全局檢測(cè)模塊,可用來(lái)實(shí)時(shí)對(duì)NC平臺(tái)QPI報(bào)文進(jìn)行監(jiān)聽(tīng)檢測(cè)并遇錯(cuò)報(bào)警。本發(fā)明已模塊化,可以方便地嵌入到NC平臺(tái)的各個(gè)部分中,可輕松移植到類似的FPGA驗(yàn)證平臺(tái),提高驗(yàn)證人員效率。
[0009]本發(fā)明具有設(shè)計(jì)合理、結(jié)構(gòu)簡(jiǎn)單、使用方便、一物多用等特點(diǎn),因而,具有很好的推廣使用價(jià)值。
【附圖說(shuō)明】
[0010]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0011]附圖1為一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法的工作流程框圖。
【具體實(shí)施方式】
[0012]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0013]本發(fā)明的一種用于節(jié)點(diǎn)互連芯片驗(yàn)證的全局檢測(cè)模塊方法,步驟如下:
(1)以獨(dú)立模塊的形式嵌入節(jié)點(diǎn)互連芯片邏輯,隨節(jié)點(diǎn)互連邏輯同時(shí)運(yùn)行,監(jiān)聽(tīng)各個(gè)信道交互的報(bào)文信息,按照相應(yīng)協(xié)議規(guī)則進(jìn)行錯(cuò)誤檢測(cè),報(bào)出超時(shí)和報(bào)文錯(cuò)誤信息,全自動(dòng)運(yùn)行;
(2)將CPU發(fā)出的主動(dòng)QPI報(bào)文存儲(chǔ),當(dāng)有QPI報(bào)文從NC端返回時(shí),與相對(duì)應(yīng)的已經(jīng)存儲(chǔ)下來(lái)的源QPI報(bào)文進(jìn)行比較,確定是否為所期望的報(bào)文;同時(shí)每個(gè)CPU發(fā)出的報(bào)文都會(huì)加一時(shí)間戳(Timestamp)用來(lái)判斷是否超時(shí)。
[0014]作為優(yōu)選,所述步驟(I)中的模塊包括一下模塊: (1)存儲(chǔ)模塊設(shè)計(jì):該模塊負(fù)責(zé)存儲(chǔ)所有由CPU發(fā)起的主動(dòng)QPI報(bào)文,以方便對(duì)由NC返回的QPI報(bào)文進(jìn)行檢測(cè);在應(yīng)用中,所有的發(fā)送和回復(fù)報(bào)文都是亂序傳輸?shù)模鳵AM存儲(chǔ)器又具有隨機(jī)讀寫的功能,故采用RAM作為存儲(chǔ)介質(zhì);
(2)存儲(chǔ)器控制信號(hào)產(chǎn)生模塊:在有CPU發(fā)送請(qǐng)求報(bào)文頭抵達(dá)時(shí),根據(jù)報(bào)文頭的messageclass位區(qū)分六個(gè)信道的報(bào)文類型,按照優(yōu)先級(jí)分別存儲(chǔ),即優(yōu)先級(jí)高的先存儲(chǔ),優(yōu)先級(jí)低的延后存儲(chǔ),以報(bào)頭的RTID為Addr,寫使能置位,將報(bào)頭寫入輸入端口 ;在沒(méi)有CPU發(fā)送請(qǐng)求報(bào)文的空閑狀態(tài),將讀使能置位,以RTID為地址將報(bào)文頭讀出,這樣既不會(huì)出現(xiàn)覆蓋寫