亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于uvm平臺的pcie回環(huán)自檢測的方法

文檔序號:6515193閱讀:470來源:國知局
一種基于uvm平臺的pcie回環(huán)自檢測的方法
【專利摘要】本發(fā)明涉及一種基于UVM平臺的PCIE回環(huán)自檢測技術,其特征在于:將總線接口橋的主模塊和從模塊通過信號匹配模塊連接起來,信號匹配模塊通過更改主模塊和從模塊的輸出信號的時序來實現(xiàn)主模塊和從模塊的自檢測,將主模塊發(fā)送給應用層的讀寫請求包以及完成包作為應用層發(fā)送給從模塊的讀寫請求包以及完成包。本發(fā)明大大減少了UVM平臺中的組件,提高了UVM平臺各組件的利用率,降低平臺bug的產(chǎn)生。
【專利說明】—種基于UVM平臺的PCIE回環(huán)自檢測的方法
【技術領域】
[0001]本發(fā)明涉及一種基于UVM平臺的PCIE回環(huán)自檢測的方法,具體涉及UVM驗證平臺以及PCIE橋的主從塊的連接問題。
【背景技術】
[0002]現(xiàn)有PCIE的總線接口(AXI)橋沒有涉及到其中主(master)模塊和從(slave)模塊相連接的問題?,F(xiàn)有的PCIE也沒有涉及到使用UVM驗證平臺來驗證PCIE模塊。
[0003]如圖1,即為現(xiàn)有的一個基本組件搭建的UVM驗證平臺。
[0004]如圖2,即為現(xiàn)有的一個基本驗證PCIE的原理流程圖。
[0005]圖1中的UVM平臺中的各個組件應用到了圖2中,UVM平臺的各個組件的大意如下:
組件定義包模塊(transaction):用來組成數(shù)據(jù)包,包括數(shù)據(jù)包的各個部分。
[0006]組件激勵產(chǎn)生器(sequence):將數(shù)據(jù)包按照一定的順序及數(shù)量,發(fā)送給sequencer。
[0007]組件定序器(sequencer):管理sequence對數(shù)據(jù)包的發(fā)送。
[0008]組件驅(qū)動器(driver):它的功能主要就是向sequencer索要sequence_item,即transaction,并且再把sequence_item里的信息驅(qū)動到待測試模塊(DUT, Design UnderTest)的接口上,這相當于完成了從transaction級別到DUT能夠接受的pin級別的信息的轉(zhuǎn)變。Driver和DUT是通過接口(interface)來連接的,而interface是唯一的將verilog和systemverilog兩種語言連接起來的方式。
[0009]組件數(shù)據(jù)監(jiān)測器(monitor):它的功能與driver的功能相反,driver向DUT的pin上發(fā)送數(shù)據(jù),而monitor則是從DUT的pin上接收數(shù)據(jù),并且把接收到的數(shù)據(jù)轉(zhuǎn)換成transaction級別的sequence_item,并且把轉(zhuǎn)換后的數(shù)據(jù)發(fā)送給比較器(scoreboard),供 scoreboard 比較。
[0010]組件代理器(agent):它只是把driver和monitor封裝在一起,根據(jù)參數(shù)值來決定實例化 monitor,還是 sequencer 和 driver。
[0011]組件功能模型(reference model):作用就是模仿DUT,完成與DUT相同的功能。DUT是用verilog寫成的時序電路,而reference model則可以直接使用systemverilog高級語言的特性,同時還可以通過分布協(xié)議接口(DPI, Distributed ProtocolInterface),接口調(diào)用其它語言來完成與DUT相同的功能。
[0012]組件scoreboard:它的功能就是比較reference model和monitor分別發(fā)送來的數(shù)據(jù),根據(jù)比較結果判斷DUT是否正確工作。
[0013]對于圖2中,PCIE主動對應用層進行的操作,是通過AXI橋的master模塊來完成的,而應用層對PCIE發(fā)送數(shù)據(jù)的時候是通過AXI橋的slave模塊來完成的。
[0014]對于一個存儲器寫包,數(shù)據(jù)包通過將定義包模塊(transaction)產(chǎn)生的數(shù)據(jù)包發(fā)送到定序器(generator)中,然后驅(qū)動器(driver)從generator中獲得數(shù)據(jù)包發(fā)送給連接mac層接收端的interface,因為interface中信號是與mac層的接收信號相連,所以,就相當于完成了對mac層接收端的寫存儲器包的輸入。該包會經(jīng)過數(shù)據(jù)鏈路層的LCRC檢測,事物層的ECRC檢測,以及事物層的畸形包檢測等。如果包的格式、內(nèi)容等是正確的,則該包會順利的通過PCIE的三層,進入到AXI橋的主(master)模塊。AXI橋中的master模塊,將該包進行一定的處理,使得各個信號與AXI總線匹配,最后發(fā)送到應用層的存儲器。由于沒有現(xiàn)成的應用層模塊,所以,在這里要加一個UVM平臺中的數(shù)據(jù)監(jiān)測器(monitor)組件,用于監(jiān)測接收數(shù)據(jù)包的輸出,然后按照寫地址、寫數(shù)據(jù)、寫標志位等信號存放到自己定義的存儲器中。寫完成以后,返回一個寫地址以及完成標志位等信號,然后驅(qū)動器I (driverl)將這些信號發(fā)送到AXI橋的接收端,然后PCIE會對這些信號進行組合,最后以一個完成包的形式通過PCIE的發(fā)送端發(fā)送出去。
[0015]此時,如果我們再定義一個存儲器讀TLP包,同樣的,數(shù)據(jù)包通過將transaction產(chǎn)生的數(shù)據(jù)包發(fā)送到generator中,generator將數(shù)據(jù)包發(fā)送給driver,然后driver再施加給mac層的接收端,完成對mac層接收端的讀存儲器包的輸入。假設該包正確,當該包經(jīng)過PCIE各層的檢測后,則該包會順利的通過PCIE的三層,進入到AXI橋的master模塊,然后發(fā)送出去,輸出信號會被monitor檢測到,然后monitor會將讀地址等信號發(fā)送給存儲器進行讀取數(shù)據(jù)操作,讀出的存儲器的數(shù)據(jù)及地址會被收集(assemble)模塊收集起來,然后發(fā)送到driverl中,driverl將收集到的數(shù)據(jù)及地址以及包的格式類型,發(fā)送到AXI橋的master的接收端,然后通過PCIE里面的XADM等模塊進行組包,以一個完成包的形式通過PCIE的發(fā)送端發(fā)送出去。
[0016]應用層對PCIE發(fā)送數(shù)據(jù)的時候是通過AXI橋的slave模塊來完成的。如圖2中,使用驅(qū)動器2 (driverf)來模擬應用層,發(fā)送存儲器寫請求相關的信號,例如寫地址,寫數(shù)據(jù)等等,發(fā)送到AXI橋的slave模塊,然后slave模塊再發(fā)送到PCIE中的XADM模塊進行組包,通過PCIE的發(fā)送端發(fā)送出去。最后,在out_agent中的monitor對mac層的輸出端口進行監(jiān)測,當監(jiān)測到從應用層發(fā)過來的存儲器寫請求包時,monitor組件通過對該包進行解析,解析出我們需要的數(shù)據(jù)位,地址位等等,然后通過這些信號,將寫數(shù)據(jù)存放到monitor中的存儲器中。同時,monitor會通知driver發(fā)送一個相關的完成報文到mac層的輸入端。最后通過slave模塊發(fā)送給應用層,通過監(jiān)測器2 (monitor2)來進行監(jiān)測收集。
[0017]當應用層發(fā)送存儲器讀請求包的時候,同樣的,driver2會模擬應用層,發(fā)送存儲器讀請求相關的信號,例如讀地址,數(shù)據(jù)包類型,讀標志等等信號,然后經(jīng)過PCIE進行組包,再發(fā)送出去,當out_agent中的monitor監(jiān)測接收到該包的時候,對其進行解析,發(fā)現(xiàn)該包是一個讀請求包,那么,monitor會將解析出來的讀信息(例如讀地址等)發(fā)送到MEM中讀取數(shù)據(jù),并將讀出來的數(shù)據(jù)通知給driver,然后driver組合一個帶數(shù)據(jù)的完成包發(fā)送到mac層的輸入端。最后通過slave模塊發(fā)送給應用層,通過monitor2來進行監(jiān)測收集。
[0018]現(xiàn)有的技術方案需要多個激勵產(chǎn)生器,需要多個數(shù)據(jù)監(jiān)測器,組件要求多,并且利用率較低,并不是發(fā)每種TLP包都會用到各個組件。相應的,在許多的testcase中,有的組件是不工作的。并且,對驗證平臺的要求極高,各個組件的聯(lián)系比較多,很容易在平臺中產(chǎn)生 bug。

【發(fā)明內(nèi)容】
[0019]本發(fā)明的目的在于克服上述不足,提供一種基于UVM平臺的PCIE回環(huán)自檢測的方法,減少了 UVM平臺中的組件,提高UVM平臺各組件的利用率,降低平臺bug的產(chǎn)生。
[0020]本發(fā)明的目的是這樣實現(xiàn)的:一種基于UVM平臺的PCIE回環(huán)自檢測的方法,通過信號匹配模塊將AXI橋的master和slave模塊連接起來,來實現(xiàn)master和slave的自檢測,將master發(fā)送給應用層的讀寫請求包以及完成包,作為應用層發(fā)送給slave模塊的讀寫請求包以及完成包。
[0021]其進一步的技術方案具體步驟如下:
1)在對于一個存儲器寫TLP包,通過將transaction產(chǎn)生的數(shù)據(jù)包發(fā)送到sequencer中,然后driver從sequencer中獲得數(shù)據(jù)包并發(fā)送給連接mac層接收端的interface,完成對mac層接收端的寫存儲器包的輸入;
2)該包會經(jīng)過數(shù)據(jù)鏈路層的LCRC檢測,事物層的ECRC檢測,以及事物層的畸形包檢測等。如果包的格式、內(nèi)容等是正確的,則該包會順利的通過PCIE的三層,進入到AXI橋的master 模塊;
3)經(jīng)過上述master模塊以后,最后將地址信號、數(shù)據(jù)信號、標志信號幾種信號發(fā)送給AXI橋的slave模塊;
4)上述slave模塊對信號進行組合以后,發(fā)送給PCIE中的發(fā)送器模塊,信號在發(fā)送器模塊中進行組合,組合成TLP包的格式發(fā)送給PCIE事物層的發(fā)送端并進行添加ECRC,然后在數(shù)據(jù)鏈路層添加LCRC,最后通過mac層發(fā)送出去;
5)在mac層的輸出端,有一個out_agent組件,out_agent組件中的monitor組件用來監(jiān)測收集mac層的輸出端,并具有解析TLP包的功能。當解析到該TLP包為存儲器寫TLP包以后,它會將寫地址與寫數(shù)據(jù)解析出來,然后將寫地址與寫數(shù)據(jù)存放到本地的存儲器中。
[0022]與現(xiàn)有技術相比,本發(fā)明的有益效果是:
本發(fā)明通過在AXI橋的master模塊和slave模塊之間添加一個信號匹配模塊,將master模塊和slave模塊連接起來,省去了 PCIE需應用層的連接來進行檢測的問題;大大減少了 UVM平臺中的組件,僅需要一個monitor和兩個driver就完成了數(shù)據(jù)的發(fā)送與監(jiān)測,大大減少了工作量,和UVM平臺各組件的利用率;減少了 interface的定義,僅在PCIE的mac層的發(fā)送與輸出端定義一個interface,而在PCIE于應用層連接的那一端則不需要重新定義interface。
【專利附圖】

【附圖說明】
[0023]圖1是現(xiàn)有的UVM驗證平臺。
[0024]圖2是現(xiàn)有PCIE的驗證流程。
[0025]圖3是本發(fā)明中涉及的PCIE回環(huán)自檢測模式。
[0026]圖4是本發(fā)明中涉及的PCIE驗證流程。
【具體實施方式】
[0027]如圖3所示,本發(fā)明涉及一種基于UVM平臺的PCIE回環(huán)自檢測的方法,所述方法通過將總線接口(AXI)橋的主(master)和從(slave)模塊連接起來,來實現(xiàn)master和slave的自檢測,將master發(fā)送給應用層的讀寫請求包以及完成包,作為應用層發(fā)送給slave模塊的讀寫請求包以及完成包。
[0028]如圖4所示,圖中主模塊I (masterl)和主模塊2 (master2)在設計中為同一個模塊,從模塊I (slavel)和從模塊2 (slave2)在設計中為同一個模塊。在對于一個存儲器寫TLP包,數(shù)據(jù)包通過將定義包模塊(transaction)產(chǎn)生的數(shù)據(jù)包發(fā)送到定序器(sequencer)中,然后驅(qū)動器(driver)從sequencer中獲得數(shù)據(jù)包發(fā)送給連接mac層接收端的interface,因為interface中信號是與mac層的接收信號相連,所以,就相當于完成了對mac層接收端的寫存儲器包的輸入。同樣的,該包會經(jīng)過數(shù)據(jù)鏈路層的LCRC檢測,事物層的ECRC檢測,以及事物層的畸形包檢測等。如果包的格式、內(nèi)容等是正確的,則該包會順利的通過PCIE的三層,進入到AXI橋的master模塊。AXI橋中的masterl模塊將這些相應的信號發(fā)送給信號匹配(signal_match_mstr)模塊,該模塊是本提案中的一個創(chuàng)新點,它解決了 AXI橋中masterl的輸出信號與slavel的輸入信號不匹配的問題。該信號匹配器的作用是將masterl發(fā)送出來的信號延時發(fā)送,將其位寬改成需要的位寬,使這些信號以正確的時序發(fā)送,并且變成可以令AXI橋中slavel識別的信號。經(jīng)過該模塊以后,最后將數(shù)據(jù)等信號發(fā)送給AXI橋的slave模塊。slavel模塊對信號進行一定的處理以后,發(fā)送給PCIE中的XADM,信號在XADM中進行組合,組合成TLP包的格式發(fā)送給PCIE事物層的發(fā)送端進行添加ECRC,然后在數(shù)據(jù)鏈路層添加LCRC,最后通過mac層發(fā)送出去。在mac層的輸出端,有一個out_agent組件,out_agent中的monitor組件用來監(jiān)測收集mac層的輸出端,并具有解析TLP包的功能。當解析到該TLP包為存儲器寫TLP包以后,它會將寫地址與寫數(shù)據(jù)解析出來,然后將數(shù)據(jù)存放到本地的存儲器中。通過這種方法,我們可以完成兩項任務的檢測,首先是PCIE的接收端接收存儲器TLP包的能力,以及TLP包在PCIE接收端流動的正確性,如果PCIE的接收端有錯誤,則該TLP包不會到達AXI橋的master模塊。另外,通過將AXI橋的masterl模塊與slavel模塊連接起來,本來是PCIE接收端的寫存儲器操作就可以應用到PCIE的發(fā)送端了,就可以檢測寫TLP包在PCIE發(fā)送端流動的正確性。同時,也不用再考慮應用層主動發(fā)送寫存儲器操作。這樣,省去了一個應用層這個很大的模塊。另外,out_agent中的monitor組件中還具有LCRC和ECRC檢測功能,可以檢測接收到的數(shù)據(jù)包的LCRC和ECRC是否正確。
[0029]當我們向PCIE的mac層接收端發(fā)送一個讀存儲器TLP包的時候,讀地址應該與之前寫tip包的寫地址一致,這樣才可以進行讀操作,否則,讀出的數(shù)據(jù)可能是存儲器中的初始值。同樣的,該TLP包會經(jīng)過PCIE的接收端,進行各種數(shù)據(jù)包格式以及內(nèi)容的檢測以后發(fā)送到接收處理模塊(RADM),RADM模塊經(jīng)過判斷數(shù)據(jù)包的類型再送入到AXI橋的master模塊,然后master模塊將這些信號發(fā)送到信號匹配模塊signal_match_mstr,該模塊對各個信號重新進行調(diào)整,調(diào)整為可以被AXI橋的slave模塊接收的信號,然后將這些信號發(fā)送給AXI橋的slave模塊。slave模塊將信號發(fā)送給XADM模塊,經(jīng)過XADM模塊的組包操作,進入到PCIE的發(fā)送端,經(jīng)過發(fā)送端的ECRC和LCRC的添加,最終由mac層的輸出端輸出到interface中。同時out_agent中的monitor會對interface中的輸出包進行監(jiān)測收集,收集完一個整TLP包以后,會對該TLP包進行解析,可以解析出該包的類型,地址以及數(shù)據(jù)(如果帶數(shù)據(jù))。當發(fā)現(xiàn)該包是一個存儲器讀請求包,那么就會根據(jù)地址來讀取本地的存儲器的數(shù)據(jù),然后將該地址和讀出的數(shù)據(jù)組合成一個transaction發(fā)送到另一個單獨的in_agent I中的driver中。其中,out_agent和in_agentl之間是通過UVM平臺中定義的端口相連接的,而out_agent中的port是和其中的monitor的port直接相連,in_agentl中的port是和其中的driver的port直接相連,這樣就達到的out_agent中的monitor和in_agent中的driver相連的目的。當in_agentl中的driver接收到out_agent中的monitor發(fā)送過來的帶有地址和數(shù)據(jù)的數(shù)據(jù)包以后,會對該數(shù)據(jù)包把地址和數(shù)據(jù)解析出來,然后將地址和數(shù)據(jù)組合成完成包,包中的其他內(nèi)容由自己定義,尤其是表示cpl包的類型的比特位。將cpl包組合完成以后,再通過in_agentl中的driver發(fā)送到PCIE的接收端的mac層,該完成包再經(jīng)過PCIE的接收端的mac層、數(shù)據(jù)鏈路層(主要對LCRC進行檢測)、事物層(主要ECRC檢測以及畸形包檢測)以后,發(fā)送到RADM,RADM檢測到該包的數(shù)據(jù)類型為存儲器讀的完成包,則會發(fā)送到AXI橋的slave模塊,該模塊將包解析以后再把解析后的信號發(fā)送到信號匹配模塊(signal_match_SlV)。各個信號經(jīng)過信號匹配以后,會被匹配模塊發(fā)送到AXI橋的master模塊。而此時,AXI橋的master模塊會認為是應用層發(fā)送過來的模塊,并不會報錯。然后master模塊將信號發(fā)送到PCIE發(fā)送端的XADM模塊進行組包,最后又PCIE發(fā)送端mac層的輸出端輸出。而此時,連接mac層輸出端的out_agent又回監(jiān)測收集到該包,發(fā)現(xiàn)該包是一個存儲器讀的完成包,然后,將該包進行解析,解析出地址與數(shù)據(jù)以后,與本地的相應的地址所對應的數(shù)據(jù)進行對比,檢查該完成包在PCIE中流動的過程中有沒有出現(xiàn)錯誤。
[0030]另夕卜,當in_agent中的driver向PCIE接收端發(fā)送配置寄存器的寫請求TLP包時,會把數(shù)據(jù)送入到配置模塊中。然后再發(fā)送一個配置寄存器讀請求TLP包,該包會將配置模塊中的相應寄存器的數(shù)據(jù)讀出來,經(jīng)過本地總線控制器(LBC, Local Bus Controller)送入到XADM中,最后傳送到mac層的輸出端,又傳送到了 out_agent的monitor中,該monitor又會對該數(shù)據(jù)包進行解析,將其中的地址位以及數(shù)據(jù)位解析出來與之前發(fā)送到寫地址及寫數(shù)據(jù)進行對比。
[0031]以上所述的僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明不限于以上實施例??梢岳斫?,本領域技術人員在不脫離本發(fā)明的精神和構思的前提下直接導出或聯(lián)想到的其他改進和變化,均應認為包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種基于UVM平臺的PCIE回環(huán)自檢測技術,其特征在于:將總線接口橋的主模塊和從模塊通過信號匹配模塊連接起來,信號匹配模塊通過更改主模塊和從模塊的輸出信號的時序來實現(xiàn)主模塊和從模塊的自檢測,將主模塊發(fā)送給應用層的讀寫請求包以及完成包作為應用層發(fā)送給從模塊的讀寫請求包以及完成包。
2.根據(jù)權利要求1所述一種基于UVM平臺的PCIE回環(huán)自檢測技術,其特征在于所述方法包括以下步驟:1)在對于一個存儲器寫TLP包,定義包模塊通過將產(chǎn)生的數(shù)據(jù)包發(fā)送到定序器中,然后驅(qū)動器從定序器中獲得數(shù)據(jù)包發(fā)送給連接物理層接收端的接口,完成了對物理層接收端的寫存儲器包的輸入;2)該包會經(jīng)過數(shù)據(jù)鏈路層的循環(huán)冗余校驗,事物層的循環(huán)冗余校驗,以及事物層的畸形包檢測;3)經(jīng)過主模塊以后,再將地址數(shù)據(jù)信號發(fā)送到信號匹配模塊,信號匹配模塊會使地址信號先于數(shù)據(jù)信號一個周期發(fā)送給從模塊,然后數(shù)據(jù)信號及數(shù)據(jù)標志信號發(fā)送給總線接口橋的從模塊;4)從模塊對信號進行組合以后,發(fā)送給PCIE中的發(fā)送器,信號在發(fā)送器中進行組合,組合成TLP包的格式發(fā)送給PCIE事物層的發(fā)送端進行添加循環(huán)冗余校驗,然后在數(shù)據(jù)鏈路層添加循環(huán)冗余校驗,最后通過物理層發(fā)送出去;5)在物理層的輸出端有一個輸出代理組件,輸出代理組件中的數(shù)據(jù)監(jiān)測器組件用來監(jiān)測收集物理層的輸出端,并具有解析TLP包的功能,當解析到該TLP包為存儲器寫TLP包以后,它會將寫地址與寫數(shù)據(jù)解析出來,然后將數(shù)據(jù)存放到本地的存儲器中。
【文檔編號】G06F11/22GK103530211SQ201310474618
【公開日】2014年1月22日 申請日期:2013年10月12日 優(yōu)先權日:2013年10月12日
【發(fā)明者】林谷, 王新亮, 李冰, 丁賢根 申請人:江蘇華麗網(wǎng)絡工程有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1