一種基于uvm構(gòu)建1394鏈路層事務(wù)級模型的制作方法
【專利摘要】本發(fā)明提供一種基于UVM構(gòu)建1394鏈路層事務(wù)級模型,該模型提供了非常方便的控制接口,使使用人員很容易的模擬驗證設(shè)計的各種場景。該基于UVM構(gòu)建1394鏈路層事務(wù)級模型包括鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型、鏈路層監(jiān)控模型、全局配置表;應(yīng)用該基于UVM構(gòu)建1394鏈路層事務(wù)級模型時,1394鏈路層和應(yīng)用層的驗證人員可以分開工作而互不影響,具有良好的重用性,顯著減小了驗證人員的工作量,加快芯片驗證的進(jìn)度。
【專利說明】一種基于UVM構(gòu)建1394鏈路層事務(wù)級模型
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于SoC芯片設(shè)計驗證【技術(shù)領(lǐng)域】,涉及一種分層協(xié)議的事務(wù)級建模,特別是涉及一種一種基于UVM構(gòu)建1394鏈路層事務(wù)級模型。
【背景技術(shù)】
[0002]IEEE-1394協(xié)議是分層的協(xié)議,從上到下分為應(yīng)用層、鏈路層、物理層,在基于該協(xié)議研制不同1394系列芯片過程中,1394物理層芯片的驗證需要開發(fā)1394鏈路層模型和1394總線網(wǎng)絡(luò)拓?fù)淠P停?394鏈路層模型和物理層模型可以組建多樣的1394總線網(wǎng)絡(luò)拓?fù)?,此外不同的?yīng)用層協(xié)議的實現(xiàn)要求不同的應(yīng)用層模型,開發(fā)分層協(xié)議模型可以為1394鏈路層、應(yīng)用層芯片、集成1394專用引擎的SoC芯片等的驗證環(huán)境所復(fù)用,因此,產(chǎn)品研制早期開發(fā)滿足1394鏈路層協(xié)議的事務(wù)級模型是非常重要的。
[0003]采用事務(wù)級模型作為芯片驗證環(huán)境的一部分而提供事務(wù)級激勵時,為了能驗證更多的功能點,盡可能能覆蓋更多的代碼和功能,往往需要產(chǎn)生大量的有效驗證激勵序列,采用基于verilog方法構(gòu)建的1394鏈路層模型時,往往鏈路層和其上的應(yīng)用層模型一起實現(xiàn),這樣不同協(xié)議驗證人員修改自己的配置或激勵時,容易影響到鏈路層或應(yīng)用層,且這種模型提供的多個激勵序列相互獨立,不能在已有驗證序列基礎(chǔ)上重用而形成新的驗證項,不能很好組合已有的多個驗證序列而形成新的驗證序列,同時對驗證序列的隨機(jī)約束具有一定的局限性,這樣驗證人員使用這種方法開發(fā)的模型而編寫驗證激勵序列時需要較多的精力和時間。
【發(fā)明內(nèi)容】
[0004]為了解決【背景技術(shù)】中存在的問題,本發(fā)明提供一種基于UVM構(gòu)建1394鏈路層事務(wù)級模型的方法,該方法提供了非常方便的控制接口,使使用人員很容易的模擬驗證設(shè)計的各種場景。
[0005]本發(fā)明的解決方案是:
[0006]該基于UVM構(gòu)建1394鏈路層事務(wù)級模型包括鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型、鏈路層監(jiān)控模型、全局配置表;
[0007]所述鏈路層請求模型用于實現(xiàn)1394鏈路層的請求,并可根據(jù)配置,發(fā)送不同的請求;所述鏈路層數(shù)據(jù)包模型用于實現(xiàn)1394鏈路層各種類型的數(shù)據(jù)包,并可根據(jù)配置,發(fā)送不同的數(shù)據(jù)包;所述應(yīng)用層數(shù)據(jù)包模型用于實現(xiàn)應(yīng)用層AS5643協(xié)議定義的各種類型的數(shù)據(jù)包,并可根據(jù)配置,發(fā)送不同的數(shù)據(jù)包;所述鏈路層監(jiān)控模型,用于收集和分析PHY-LINK接口所有傳輸?shù)臄?shù)據(jù);所述全局配置表定義了鏈路層監(jiān)控模型觸發(fā)的事件和收集的部分?jǐn)?shù)據(jù)原型,并用于控制鏈路層事務(wù)級模型或應(yīng)用層數(shù)據(jù)包模型產(chǎn)生特定的激勵序列;
[0008]用戶使用該模型發(fā)送鏈路層數(shù)據(jù)包時,首先啟動鏈路層請求模型,由鏈路層請求模型向物理層模型發(fā)送請求信號,發(fā)送請求信號時,鏈路層監(jiān)控模型監(jiān)控該信號并記錄,物理層模型接收到請求信號后進(jìn)行仲裁,并將授權(quán)信息反饋至PHY-1ink接口,同時鏈路層監(jiān)控模型記錄授權(quán)信息,并觸發(fā)全局配置表中定義的授權(quán)事件,當(dāng)鏈路層數(shù)據(jù)包模型監(jiān)控到授權(quán)事件時,將授權(quán)信息與鏈路層監(jiān)控模型記錄的請求信號進(jìn)行匹配,如果授權(quán)信息匹配成功,則鏈路層數(shù)據(jù)包模型向物理層發(fā)送數(shù)據(jù)包,同時將該數(shù)據(jù)包收集至積分板;數(shù)據(jù)包收集至積分板具體可以采用鏈路層數(shù)據(jù)包模型向積分板發(fā)送,或鏈路層監(jiān)控模型向積分板發(fā)送;
[0009]用戶使用該模型發(fā)送應(yīng)用層數(shù)據(jù)包時,首先啟動鏈路層請求模型,由鏈路層請求模型向物理層模型發(fā)送請求信號,發(fā)送請求信號時,鏈路層監(jiān)控模型監(jiān)控該信號并記錄,物理層模型接收到請求信號后進(jìn)行仲裁,并將授權(quán)信息反饋至PHY-1ink接口,同時鏈路層監(jiān)控模型記錄授權(quán)信息,并觸發(fā)全局配置表中定義的授權(quán)事件,當(dāng)應(yīng)用層數(shù)據(jù)包模型監(jiān)控到授權(quán)事件時,將授權(quán)信息與鏈路層監(jiān)控模型記錄的請求信號進(jìn)行匹配,如果授權(quán)信息匹配成功,則應(yīng)用層數(shù)據(jù)包模型將數(shù)據(jù)包發(fā)送至鏈路層數(shù)據(jù)包模型,再由鏈路層數(shù)據(jù)包模型向物理層發(fā)送數(shù)據(jù)包;同時將該數(shù)據(jù)包收集至積分板;
[0010]用戶使用該模型接收數(shù)據(jù)包時,鏈路層監(jiān)控模型通過PHY-1ink接口收集來自物理層的所有數(shù)據(jù)信息并解析,對解析后的數(shù)據(jù)包進(jìn)行校驗,校驗正確的數(shù)據(jù)包進(jìn)行發(fā)送,發(fā)送前進(jìn)行目標(biāo)判斷,判斷該數(shù)據(jù)包應(yīng)發(fā)送至應(yīng)用層或鏈路層,判斷完成后發(fā)送。
[0011]上述鏈路層請求模型包括鏈路層請求序列、鏈路層請求單元、鏈路層請求通道、鏈路層請求驅(qū)動和鏈路層請求接口 ;當(dāng)啟動鏈路層請求序列時,鏈路層請求通道將鏈路層請求序列包含的鏈路層請求單元發(fā)送至鏈路層請求驅(qū)動,提取鏈路層請求單元中的參數(shù)數(shù)據(jù),依據(jù)鏈路層請求類型的時序格式將請求信號經(jīng)鏈路層請求接口發(fā)送至物理層。
[0012]上述鏈路層數(shù)據(jù)包模型包括鏈路層數(shù)據(jù)包序列、鏈路層數(shù)據(jù)包單元、鏈路層數(shù)據(jù)包通道、鏈路層數(shù)據(jù)包驅(qū)動和鏈路層數(shù)據(jù)包接口 ;當(dāng)啟動鏈路層數(shù)據(jù)包序列時,鏈路層數(shù)據(jù)包通道將鏈路層數(shù)據(jù)包序列包含的鏈路層數(shù)據(jù)包單元發(fā)送至鏈路層數(shù)據(jù)包驅(qū)動,提取鏈路層數(shù)據(jù)包單元中的參數(shù)并根據(jù)數(shù)據(jù)包類型進(jìn)行打包,按鏈路層數(shù)據(jù)包發(fā)送時序的格式將數(shù)據(jù)包經(jīng)鏈路層數(shù)據(jù)包接口發(fā)送至物理層。
[0013]上述應(yīng)用層數(shù)據(jù)包模型包括應(yīng)用層數(shù)據(jù)包序列、應(yīng)用層數(shù)據(jù)包單元、應(yīng)用層數(shù)據(jù)包通道、偽隨機(jī)數(shù)據(jù)通道發(fā)生器,應(yīng)用層監(jiān)控模塊;當(dāng)啟動應(yīng)用層數(shù)據(jù)包序列時,應(yīng)用層數(shù)據(jù)包通道將應(yīng)用層數(shù)據(jù)包序列包含的應(yīng)用層數(shù)據(jù)包單元發(fā)送至偽隨機(jī)數(shù)據(jù)通道發(fā)生器,偽隨機(jī)數(shù)據(jù)通道發(fā)生器從應(yīng)用層數(shù)據(jù)包單元通道接收應(yīng)用層數(shù)據(jù)包并將該數(shù)據(jù)包發(fā)送至鏈路層數(shù)據(jù)模型;應(yīng)用層監(jiān)控模塊用于接收來自鏈路層監(jiān)控模型的數(shù)據(jù)包信息。
[0014]本發(fā)明的優(yōu)點在于:
[0015]該基于UVM構(gòu)建1394鏈路層事務(wù)級模型通過分別實現(xiàn)鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型、鏈路層監(jiān)控模型和全局配置表,能完整地模擬1394鏈路層的行為。
[0016]該基于UVM構(gòu)建1394鏈路層事務(wù)級模型的鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型均提供了基本的激勵序列,該激勵序列具有繼承性和靈活的隨機(jī)約束性,可以重用原有的隨機(jī)序列形成新的隨機(jī)序列,可以將多個隨機(jī)激勵序列組成新的分層隨機(jī)激勵序列,可以重用原有的激勵場景而構(gòu)成新的激勵場景。
[0017]同時,應(yīng)用該基于UVM構(gòu)建1394鏈路層事務(wù)級模型時,1394鏈路層和應(yīng)用層的驗證人員可以分開工作而互不影響,具有良好的重用性,顯著減小了驗證人員的工作量,加快芯片驗證的進(jìn)度。
【專利附圖】
【附圖說明】
[0018]圖1為支持分層協(xié)議的1394鏈路層和應(yīng)用層事務(wù)級模型結(jié)構(gòu)框圖;
[0019]圖2為1394鏈路層請求模型結(jié)構(gòu)框圖;
[0020]圖3為1394鏈路層數(shù)據(jù)包模型結(jié)構(gòu)框圖;
[0021]圖4為支持AS5643協(xié)議的應(yīng)用層數(shù)據(jù)包模型結(jié)構(gòu)框圖;
[0022]圖5為基于UVM構(gòu)建的1394鏈路層事務(wù)級模型詳細(xì)結(jié)構(gòu)示意圖。
【具體實施方式】
[0023]該基于UVM構(gòu)建1394鏈路層事務(wù)級模型包括鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型、全局配置表和鏈路層監(jiān)控模型;其中,
[0024]鏈路層請求模型用于實現(xiàn)1394鏈路層各種類型的請求,并可根據(jù)配置,發(fā)送不同的請求;
[0025]鏈路層數(shù)據(jù)包模型用于實現(xiàn)1394鏈路層各種類型的數(shù)據(jù)包,并可根據(jù)配置,發(fā)送不同的數(shù)據(jù)包;
[0026]全局配置表定義了鏈路層監(jiān)控模型觸發(fā)的事件和收集的部分?jǐn)?shù)據(jù)原型,并用于控制鏈路層事務(wù)級模型或應(yīng)用層數(shù)據(jù)包模型產(chǎn)生特定的激勵序列;
[0027]鏈路層監(jiān)控模型用于收集和分析PHY-LINK接口所有傳輸?shù)臄?shù)據(jù);應(yīng)用層數(shù)據(jù)包模型用于實現(xiàn)應(yīng)用層AS5643協(xié)議定義的各種類型的數(shù)據(jù)包,并可根據(jù)配置,發(fā)送不同的數(shù)據(jù)包。
[0028]鏈路層請求模型是一種分層的結(jié)構(gòu),自頂向下順序包括鏈路層請求序列、鏈路層請求單元、鏈路層請求單元通道、鏈路層請求驅(qū)動、鏈路層請求接口 ;其中鏈路層請求序列為鏈路層模型發(fā)送鏈路層請求單元的載體,該序列按1394鏈路層協(xié)議約束鏈路層請求單元的值,是發(fā)送鏈路層請求的基本單元,所有鏈路層請求都由其擴(kuò)展;
[0029]鏈路層請求單元用于實現(xiàn)1394鏈路層請求的參數(shù),是鏈路層請求序列要約束發(fā)送的核心數(shù)據(jù);鏈路層請求單元通道,用來將鏈路層請求序列里包含的鏈路層請求單元發(fā)送到鏈路層請求驅(qū)動;
[0030]鏈路層請求驅(qū)動用來將從鏈路層請求單元通道不斷獲取的鏈路層請求單元轉(zhuǎn)化成PHY-LINK接口鏈路層請求的時序信號發(fā)送出去;
[0031 ] 鏈路層請求接口為鏈路層請求模型和具有標(biāo)準(zhǔn)PHY-LINK接口的物理層模型或物理層設(shè)計相連接的接口。
[0032]鏈路層數(shù)據(jù)包模型也是一種分層的結(jié)構(gòu),自頂向下順序包括鏈路層數(shù)據(jù)包序列、鏈路層數(shù)據(jù)包單元、鏈路層數(shù)據(jù)包通道、鏈路層數(shù)據(jù)包驅(qū)動、鏈路層數(shù)據(jù)包接口,其中,
[0033]鏈路層數(shù)據(jù)包序列為鏈路層模型發(fā)送鏈路層數(shù)據(jù)包單元的載體,該序列按1394鏈路層協(xié)議約束鏈路層數(shù)據(jù)包單元的值,從而構(gòu)成不同的鏈路層數(shù)據(jù)包,所有鏈路層數(shù)據(jù)包都應(yīng)由其擴(kuò)展;
[0034]鏈路層數(shù)據(jù)包單元用于實現(xiàn)1394鏈路層協(xié)議定義的1394鏈路層數(shù)據(jù)包組成部分,是鏈路層數(shù)據(jù)包要約束發(fā)送的核心數(shù)據(jù);
[0035]鏈路層數(shù)據(jù)包單元通道用來將鏈路層數(shù)據(jù)包序列里包含的鏈路層數(shù)據(jù)包單元發(fā)送到鏈路層數(shù)據(jù)包驅(qū)動;
[0036]鏈路層數(shù)據(jù)包驅(qū)動用來將從鏈路層數(shù)據(jù)包單元通道獲取的鏈路層數(shù)據(jù)包單元轉(zhuǎn)化成1394PHY-LINK接口數(shù)據(jù)包的時序信號發(fā)送出去;
[0037]鏈路層數(shù)據(jù)包接口為鏈路層數(shù)據(jù)包模型和物理層模型或物理層設(shè)計相連接的接
□ O
[0038]應(yīng)用層數(shù)據(jù)包模型亦是一種分層的結(jié)構(gòu),自頂向下順序包括應(yīng)用層數(shù)據(jù)包序列、應(yīng)用層數(shù)據(jù)包單元、應(yīng)用層數(shù)據(jù)包通道、偽隨機(jī)數(shù)據(jù)通道發(fā)生器;其中,
[0039]應(yīng)用層數(shù)據(jù)包序列為應(yīng)用層模型發(fā)送應(yīng)用層數(shù)據(jù)包單元的載體,該序列按AS5643協(xié)議約束STOF包或異步流包;
[0040]應(yīng)用層數(shù)據(jù)包單元用于實現(xiàn)AS5643協(xié)議定義的STOF包或異步流包組成部分的參數(shù)集合,是應(yīng)用層數(shù)據(jù)包序列要約束發(fā)送的核心數(shù)據(jù);
[0041]應(yīng)用層數(shù)據(jù)包單元通道用來將應(yīng)用層數(shù)據(jù)包序列里包含的應(yīng)用層數(shù)據(jù)包單元發(fā)送到偽隨機(jī)數(shù)據(jù)通道發(fā)生器;
[0042]偽隨機(jī)數(shù)據(jù)通道發(fā)生器,用來從應(yīng)用層數(shù)據(jù)包單元通道接收STOF包或異步流包,并將其轉(zhuǎn)發(fā)到1394鏈路層數(shù)據(jù)包模型。
[0043]下面結(jié)合附圖和具體實施例,對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地表述。顯然,所表述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提所獲得的所有其他實施例,都屬于本發(fā)明的保護(hù)范圍。
[0044]如圖1所示,鏈路層請求模型和鏈路層數(shù)據(jù)包模型分別能發(fā)出鏈路層請求和鏈路層數(shù)據(jù)包,兩者配置的鏈路層工作模式和數(shù)據(jù)包的發(fā)送速度必須匹配,全局配置表定義的數(shù)據(jù)類型和事件用來控制鏈路層請求模型和鏈路層數(shù)據(jù)包模型產(chǎn)生特定的激勵序列,在1394鏈路層事務(wù)級模型中任何一個組件都可以獲取全局配置表,全局配置表定義的事件和部分?jǐn)?shù)據(jù)由鏈路層監(jiān)控模型觸發(fā)和收集,鏈路層監(jiān)控模型收集發(fā)送的數(shù)據(jù)和從PHY接收來的數(shù)據(jù),并將收集的部分?jǐn)?shù)據(jù)和觸發(fā)的事件存儲在全局配置表,將收集的正確數(shù)據(jù)包完整的發(fā)送到記分板組件和應(yīng)用層數(shù)據(jù)包模型,應(yīng)用層數(shù)據(jù)包模型能發(fā)送AS5643定義的數(shù)據(jù)包,該數(shù)據(jù)包先被發(fā)送到鏈路層數(shù)據(jù)包模型,然后由鏈路層數(shù)據(jù)包模型發(fā)送到物理層或設(shè)計;
[0045]鏈路層請求模型,用于實現(xiàn)發(fā)送1394鏈路層各種數(shù)據(jù)包的請求類型,以獲取1394總線的授權(quán);鏈路層數(shù)據(jù)包模型用于實現(xiàn)1394鏈路層協(xié)議定義的不同類型數(shù)據(jù)包的發(fā)送、CRC的計算、錯誤的注入等;應(yīng)用層數(shù)據(jù)包模型用于實現(xiàn)AS5643協(xié)議定義的不同類型數(shù)據(jù)包的發(fā)送,如發(fā)送STOF包和異步流包。
[0046]全局配置表用于控制鏈路層事務(wù)級模型或應(yīng)用層數(shù)據(jù)包模型產(chǎn)生特定的激勵序列,如鏈路層數(shù)據(jù)包模型或應(yīng)用層數(shù)據(jù)包模型等待授權(quán)事件后開始發(fā)送數(shù)據(jù)包或由于CRC錯誤事件而停止發(fā)送數(shù)據(jù)包等;
[0047]鏈路層監(jiān)控模型用于監(jiān)控PHY-LINK接口發(fā)生的所有事件,收集來自PHY的所有數(shù)據(jù),收集發(fā)送的請求和數(shù)據(jù)包信息,并將來自PHY的數(shù)據(jù)包廣播到記分板組件或應(yīng)用層數(shù)據(jù)包模型,實現(xiàn)了 1394鏈路層協(xié)議定義的cyclemaster同步功能等;
[0048]PHY為物理層設(shè)計或物理層模型。PHY-LINK接口為物理層和鏈路層的接口。記分板組件為使用1394鏈路層事務(wù)級模型時,驗證環(huán)境的基本構(gòu)成部分,用來進(jìn)行平臺數(shù)據(jù)運行的合法性檢查。
[0049]所述組件,為1394鏈路層事務(wù)級模型的任何一個組成部分。
[0050]UVM(Universal Verificat1n Methodology)是SoC芯片驗證方法學(xué)的行業(yè)標(biāo)準(zhǔn),目前正在進(jìn)行IEEE的標(biāo)準(zhǔn)化工作,其提供了一套開源的基于systemverilog的類庫,目的是便于驗證環(huán)境的可重用和移植,本發(fā)明基于其類庫而進(jìn)行的設(shè)計。
[0051]如圖2所示,本實施方式中的鏈路層請求模型,是一種分層的結(jié)構(gòu),包括:
[0052]鏈路層請求序列,繼承類uvm_sequence的特性,其按照1394鏈路層協(xié)議定義約束相應(yīng)的鏈路層請求單元而實現(xiàn)不同的激勵序列,不同的激勵序列通過鏈路層請求通道仲裁后,發(fā)送到鏈路層請求驅(qū)動,從而實現(xiàn)激勵的注入,仲裁機(jī)制是uvm_sequencer的內(nèi)嵌特性,該序列是發(fā)送鏈路層請求的基本單元,所有鏈路層請求都由其擴(kuò)展;
[0053]鏈路層請求單元,繼承類uvm_sequence_item,其符合IEEE-1394-2008協(xié)議關(guān)于鏈路層請求參數(shù)的定義,包括了 link工作的模式(枚舉類型,值為alpha或beta)、alpha請求類型(枚舉模式,值為立即IMMREQ、等時IS0REQ、優(yōu)先級PRIREQ等)、beta請求類型(枚舉模式,值為立即請求PH_IMMED_REQ、下次奇間隔請求PH_NEXT_EVEN等)、請求速度、寄存器地址、寄存器數(shù)據(jù)、請求的格式(beta或alpha)、請求的級聯(lián)等;
[0054]鏈路層請求通道,繼承類uvnusequencer的特性,當(dāng)有鏈路層請求序列發(fā)送請求信息時,其提供了將帶有約束隨機(jī)的產(chǎn)生的鏈路層請求單元發(fā)送到鏈路層請求驅(qū)動通道,是所有鏈路層請求序列要約束發(fā)送的核心數(shù)據(jù);
[0055]鏈路層請求驅(qū)動,繼承類uvm_driver的特性,其實現(xiàn)了 IEEE-1394-2008協(xié)議關(guān)于鏈路層發(fā)送的alpha和beta請求時序的驅(qū)動任務(wù),通過不斷獲取的鏈路層請求單元參數(shù)決定發(fā)起alpha或beta請求;
[0056]鏈路層請求接口,由PHY-LINK接口信號Lreq和物理層時鐘Sclk信號構(gòu)成,負(fù)責(zé)鏈路層請求模型和PHY-LINK接口之間的連接;
[0057]上述實施例所述的鏈路層請求模型,能模擬發(fā)送鏈路層的請求和請求取消的功能,和其它模型獨立,使用起來而互不影響。
[0058]如圖3所示,本實施方式中的鏈路層數(shù)據(jù)包模型,是一種分層的結(jié)構(gòu),包括:
[0059]鏈路層數(shù)據(jù)包單元,繼承類uvm_sequence_item的特性,根據(jù)ΙΕΕΕ_1394_2008協(xié)議定義了數(shù)據(jù)包組成結(jié)構(gòu),包括了異步包、異步流包、等時包、cycle_start包、ack包、phy包的組成位段、crc等注入錯誤機(jī)制,以枚舉類型定義數(shù)據(jù)包的類型、發(fā)送速度和發(fā)送模式,根據(jù)包的類型重新構(gòu)建包,并計算crc,然后重新實現(xiàn)uvm內(nèi)嵌的do_pack,do_unpack函數(shù),將不同數(shù)據(jù)包打包成位寬8位的動態(tài)數(shù)組等。
[0060]鏈路層數(shù)據(jù)包通道,繼承類uvm_sequencer,其提供了將帶有約束隨機(jī)產(chǎn)生的鏈路層數(shù)據(jù)包單元發(fā)送到鏈路層數(shù)據(jù)包驅(qū)動的通道。
[0061]鏈路層數(shù)據(jù)包驅(qū)動,繼承類uvnudriver的特性,通過不斷獲取鏈路層數(shù)據(jù)包單元,按IEEE-1394-2008鏈路層協(xié)議數(shù)據(jù)包發(fā)送的alpha和beta時序發(fā)送數(shù)據(jù)包。
[0062]鏈路層數(shù)據(jù)包接口,由PHY-LINK接口信號和物理層時鐘Sclk信號構(gòu)成。
[0063]鏈路層數(shù)據(jù)包序列,繼承類uvm_sequence的特性,按ΙΕΕΕ_1394_2008鏈路層協(xié)議定義的數(shù)據(jù)包發(fā)送和接收流程來模擬數(shù)據(jù)包的發(fā)送和接收,可充分利用鏈路層監(jiān)控模塊監(jiān)控下來的總線信息來控制數(shù)據(jù)包的收發(fā)。
[0064]上述實施例鏈路層數(shù)據(jù)包模型可以精確模擬鏈路層各種約束條件下的數(shù)據(jù)包的發(fā)送行為,另外添加了錯誤注入功能,如產(chǎn)生CRC錯誤的數(shù)據(jù)包、產(chǎn)生數(shù)據(jù)長度和有效載荷不一致的數(shù)據(jù)包、產(chǎn)生分片的不完整數(shù)據(jù)包、產(chǎn)生校驗錯誤的ack包、PHY包等,提供了非常方便的控制接口,使使用人員很容易的模擬驗證設(shè)計的各種場景。
[0065]如圖4所示,本實施方式中的應(yīng)用層數(shù)據(jù)包模型,是一種分層的結(jié)構(gòu),包括:
[0066]應(yīng)用層數(shù)據(jù)包激勵序列,繼承類uvm_sequence的特性,用于實現(xiàn)AS5643協(xié)議定義的STOF包和異步流包,包的組成部分可以由模型使用者約束;
[0067]應(yīng)用層請求單元,繼承類uvm_sequence_item,實現(xiàn)了 AS5643協(xié)議定義數(shù)據(jù)包組成部分,包括AS5643定義的STOF和異步流包的位段Datalength、tag、channel,Tcode,Sy,MessagelD,Node ID、CCBranch Status、Pr1rity,Message Payload Data Length,HealthStatus Word,Hearbeat,Message Data,STOF Transmit Offset、VPC 等。
[0068]應(yīng)用層數(shù)據(jù)包通道,繼承類uvm_sequencer,其提供了將帶有約束隨機(jī)產(chǎn)生的應(yīng)用層數(shù)據(jù)包單元發(fā)送到偽隨機(jī)數(shù)據(jù)通道發(fā)生器;
[0069]偽隨機(jī)數(shù)據(jù)通道發(fā)生器,用于將AS5643發(fā)送的數(shù)據(jù)包轉(zhuǎn)發(fā)到1394鏈路層通道,其繼承類UVm_seqUenCe,在該發(fā)生器中需要申明一個通用的數(shù)據(jù)包通道,從該通道獲取應(yīng)用層請求單元,然后將應(yīng)用層請求單元定義的數(shù)據(jù)約束給鏈路層請求單元,這樣應(yīng)用層數(shù)據(jù)包就能發(fā)送到鏈路層,實現(xiàn)這樣一種機(jī)制關(guān)鍵在于應(yīng)用層數(shù)據(jù)包通道與鏈路層數(shù)據(jù)包的通道的互聯(lián),本設(shè)計中所有模型及其組件均以UVM定義的pull模式進(jìn)行互聯(lián),鏈路層數(shù)據(jù)包通道使用端口 uvm_seq_item_pull_port的方法來與應(yīng)用層數(shù)據(jù)包通道互聯(lián);
[0070]應(yīng)用層監(jiān)控模塊,用來接收和分析來自鏈路層監(jiān)控模型的STOF包、異步流包、STOF發(fā)送事件、STOF接收事件等;
[0071]這種應(yīng)用層模型,可以使1394鏈路層和AS5643協(xié)議的驗證人員分開工作而互不影響,實際上應(yīng)用層模型的架構(gòu)不僅可以支持AS5643協(xié)議,稍微修改就可以支持OHCI等其它應(yīng)用層協(xié)議,很容易移植,其可以作為不同系列芯片驗證環(huán)境的激勵模型在模塊級、系統(tǒng)級復(fù)用,因此這種協(xié)議分層的模型結(jié)構(gòu)具有良好的可重用性。
[0072]如圖1和圖5所示,本實施方式中的全局配置表,其定義如請求類型、速度、ack碼、授權(quán)類型、授權(quán)格式、總線狀態(tài)、PHY-LINK接口狀態(tài)、當(dāng)前相位、cyclejnaster類型等的結(jié)構(gòu)體、枚舉類型,定義事件,如請求發(fā)送ack包事件、接收到或發(fā)送cycle_start包事件、子務(wù)間隔事件、仲裁復(fù)位間隔事件、Phy授權(quán)事件、物理層中斷事件、主動或被動傳輸Phy寄存器值事件、請求取消事件等、可以定義整型值,如節(jié)點的physical_id,bus_id、鏈路層是否有充分緩沖資源resource_avail、crc錯誤計數(shù)等。
[0073]這種全局的配置表,可以在擴(kuò)展的激勵序列中獲取,使用起來方便,定位事件準(zhǔn)確,可以精確控制模擬1394鏈路層的行為;
[0074]如圖1和圖5所示,本實施方式中的鏈路層監(jiān)控模型,實現(xiàn)鏈路層需要監(jiān)控的內(nèi)容,鏈路層監(jiān)控模型觸發(fā)的部分事件和收集的數(shù)據(jù)被添加到全局配置表中,鏈路層監(jiān)控模型監(jiān)控的事務(wù)包括:
[0075]a)監(jiān)控并且記錄鏈路層請求模型分別工作在alpha和beta模式下發(fā)出的所有請求信息,包括請求的類型,請求的速度,請求的格式,寄存器請求的地址和數(shù)據(jù),同時觸發(fā)請求開始和結(jié)束事件,alpha模式時,觸發(fā)異步請求、等時請求、立即請求、優(yōu)先級請求發(fā)送事件,beta模式時,觸發(fā)立即、NEXT_ODD或NEXT_EVEN、等時奇偶相位請求、寄存器讀寫請求、cycle_start奇偶相位請求、接收到cycle_start包,發(fā)送cycle_start_due的事件等;
[0076]b)監(jiān)控鏈路層模型與物理層模型在beta模式下的請求相位關(guān)系;
[0077]c)監(jiān)控請求取消的情況來實現(xiàn)與物理層的同步,如監(jiān)控總線復(fù)位或PHY-LINK接口復(fù)位來觸發(fā)請求取消事件,當(dāng)1394鏈路層模型監(jiān)控到這個事件時,等待總線復(fù)位結(jié)束或PHY-LINK接口復(fù)位完成后,再次重新發(fā)起數(shù)據(jù)包的請求;
[0078]d)監(jiān)控beta模式下more_info信息來進(jìn)行數(shù)據(jù)包發(fā)送的級聯(lián);
[0079]e)監(jiān)控級聯(lián)包的請求類型和速度編碼情況;
[0080]f)通過接收cycle_start包,并校驗其CRC數(shù)據(jù)的正確性,以監(jiān)控當(dāng)前鏈路層模型當(dāng)前處理的是異步事務(wù)還是等時事務(wù),以使1394鏈路層模型對接收的流包進(jìn)行區(qū)分;
[0081 ] g)監(jiān)控PHY-LINK接口初始化狀態(tài);
[0082]h)監(jiān)控發(fā)送包的hold_cycle長度;
[0083]i)監(jiān)控并記錄Link當(dāng)前處于接收、發(fā)送、授權(quán)、保持、空閑等狀態(tài),監(jiān)控并記錄beta的pint信息等;
[0084]j)監(jiān)控并記錄當(dāng)前beta授權(quán)的類型和速度,由鏈路層數(shù)據(jù)包或應(yīng)用層數(shù)據(jù)包模型來決定是否發(fā)送當(dāng)前的數(shù)據(jù)包,即當(dāng)前的授權(quán)信息與鏈路層模型發(fā)送的請求信息必須相匹配;
[0085]k)監(jiān)控來自物理層的狀態(tài)信息及總線狀態(tài),如處理來自PHY的中斷,寄存器主動傳輸,總線當(dāng)前處于子務(wù)間隔或仲裁復(fù)位間隔、等時奇偶相位等;
[0086]I)實現(xiàn)IEEE-1394-2008協(xié)議定義的cycle sync事件模型,當(dāng)計時達(dá)到125us時,發(fā)出cycle start發(fā)送事件,用于控制當(dāng)鏈路層模型為cyle_master時何時發(fā)送cyle_start 包;
[0087]m)實現(xiàn)AS5643協(xié)議定義的STOF包發(fā)送頻率事件模型,當(dāng)計時達(dá)到STOF帶寬或發(fā)送頻率時,發(fā)出stof start事件,該事件用于控制應(yīng)用層模型發(fā)送STOF包的頻率;
[0088]η)實現(xiàn)協(xié)議定義的鏈路層狀態(tài)機(jī),該狀態(tài)機(jī)可用于統(tǒng)計使用模型時各種條件的跳轉(zhuǎn),以檢查使用模型觸發(fā)激勵的完備性等。
[0089]ο)監(jiān)控并記錄當(dāng)前接收包的速度編碼;
[0090]ρ)監(jiān)控并記錄分析接收到的所有數(shù)據(jù)包,如果接收到兩個字,分析判斷是PHY包還是負(fù)載為O的流包,如果是PHY包,要檢查PHY包的第一個字與第二個字是否互為反,流包要檢查頭部CRC,如果大于兩個字,檢查bus_id、physical_id和數(shù)據(jù)包的頭部和數(shù)據(jù)crc是否正確,對CRC校驗正確的包,打包成鏈路層數(shù)據(jù)包單元通過廣播端口發(fā)送到需要處理該數(shù)據(jù)包的其它組件,如發(fā)送到應(yīng)用層監(jiān)控模塊或模型之外的記分板組件;
[0091]鏈路層監(jiān)控模型實時監(jiān)控PHY-LINK接口傳輸?shù)臄?shù)據(jù),和產(chǎn)生的事件,能精確反映鏈路層的工作狀態(tài),另外在使用本模型的平臺中,可以將所有收集的數(shù)據(jù)和觸發(fā)產(chǎn)生的事件打印出來,方便調(diào)試使用。
[0092]鏈路層事務(wù)級模型的各個組件詳細(xì)的互聯(lián)關(guān)系見圖5,其中填充為灰色的部分為應(yīng)用層模型。
[0093]下面進(jìn)一步詳述實施例鏈路層事務(wù)級模型的使用方法:
[0094]當(dāng)使用上述鏈路層事務(wù)級模型作為驗證環(huán)境的組件時,需要擴(kuò)展uvmjest類來實現(xiàn)向PHY注入指定的激勵,如從全局配置表獲取鏈路層監(jiān)控模型觸發(fā)的事件或收集的數(shù)據(jù),來控制鏈路層請求序列或鏈路層數(shù)據(jù)包序列,僅發(fā)送請求時,擴(kuò)展鏈路層請求序列,隨機(jī)或受控約束請求類型的參數(shù),然后通過在鏈路層請求通道啟動該序列,即可將需要的請求發(fā)送到物理層。
[0095]當(dāng)發(fā)送鏈路層數(shù)據(jù)包時,擴(kuò)展鏈路層請求序列和鏈路層數(shù)據(jù)包序列,請求模式(alpha或beta)和速度必須相匹配,請求發(fā)送之后,利用鏈路層監(jiān)控模型獲取的授權(quán)信息來發(fā)送當(dāng)前的鏈路層數(shù)據(jù)包,鏈路層數(shù)據(jù)包的發(fā)送需要啟動鏈路層數(shù)據(jù)包通道,從而將鏈路層數(shù)據(jù)包發(fā)送到PHY。
[0096]當(dāng)發(fā)送應(yīng)用層AS5643數(shù)據(jù)包時,需要將偽隨機(jī)數(shù)據(jù)通道發(fā)生器申明的數(shù)據(jù)包通道指向應(yīng)用層數(shù)據(jù)包通道,步驟如下:
[0097]a)啟動鏈路層請求序列,發(fā)送鏈路層請求;
[0098]b)利用鏈路層監(jiān)控模型判斷PHY的授權(quán)信息;
[0099]c)啟動應(yīng)用層數(shù)據(jù)包序列,通過應(yīng)用層數(shù)據(jù)包通道,將STOF數(shù)據(jù)包或異步流包發(fā)送到偽隨機(jī)數(shù)據(jù)通道發(fā)生器,要求應(yīng)用層數(shù)據(jù)包序列的模式(alpha或beta)和速度必須與當(dāng)前發(fā)送的請求相匹配;
[0100]d)啟動偽隨機(jī)數(shù)據(jù)通道發(fā)生器,將接收的應(yīng)用層數(shù)據(jù)包先發(fā)送到鏈路層數(shù)據(jù)包模型,然后由鏈路層數(shù)據(jù)包模型發(fā)送到物理層設(shè)計或模型。
[0101]基于uvm_sequence集成而產(chǎn)生的鏈路層請求序列、鏈路層數(shù)據(jù)包序列、應(yīng)用層數(shù)據(jù)包序列具有繼承性,且所有參數(shù)以靈活的systemverilog的約束實現(xiàn),這樣可以將多個隨機(jī)激勵序列分層的組成新的隨機(jī)激勵序列,如等時包的發(fā)送,使用發(fā)送cycle_start包的激勵序列以級聯(lián)的形式發(fā)送第一個等時包,緊接著利用鏈路層請求序列發(fā)送等時請求,獲得PHY授權(quán)后發(fā)送第二個等時包,同時向PHY發(fā)送cycle_start_due請求等等而構(gòu)成新的激勵,因此很容易模擬鏈路層的行為而產(chǎn)生大量的激勵序列,不同的激勵場景也可以復(fù)用,這可以簡化驗證人員的工作量。
[0102]本發(fā)明通過分別實現(xiàn)鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型、鏈路層監(jiān)控模型和全局配置表,能完整地模擬1394鏈路層的行為,鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型均提供了基本的激勵序列,該激勵序列具有繼承性和靈活的隨機(jī)約束性,可以重用原有的隨機(jī)序列形成新的隨機(jī)序列,可以將多個隨機(jī)激勵序列組成新的分層隨機(jī)激勵序列,可以重用原有的激勵場景而構(gòu)成新的激勵場景,此外,1394鏈路層和應(yīng)用層的驗證人員可以分開工作而互不影響,這種分層的模型結(jié)構(gòu)具有良好的重用性,顯著減小了驗證人員的工作量,加快芯片驗證的進(jìn)度。
[0103]最后應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對前述各實施例記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種基于UVM構(gòu)建1394鏈路層事務(wù)級模型,其特征在于:包括鏈路層請求模型、鏈路層數(shù)據(jù)包模型、應(yīng)用層數(shù)據(jù)包模型、鏈路層監(jiān)控模型、全局配置表; 所述鏈路層請求模型用于實現(xiàn)1394鏈路層的請求,并可根據(jù)配置,發(fā)送不同的請求;所述鏈路層數(shù)據(jù)包模型用于實現(xiàn)1394鏈路層各種類型的數(shù)據(jù)包,并可根據(jù)配置,發(fā)送不同的數(shù)據(jù)包;所述應(yīng)用層數(shù)據(jù)包模型用于實現(xiàn)應(yīng)用層AS5643協(xié)議定義的各種類型的數(shù)據(jù)包,并可根據(jù)配置,發(fā)送不同的數(shù)據(jù)包;所述鏈路層監(jiān)控模型,用于收集和分析PHY-LINK接口所有傳輸?shù)臄?shù)據(jù);所述全局配置表定義了鏈路層監(jiān)控模型觸發(fā)的事件和收集的部分?jǐn)?shù)據(jù)原型,并用于控制鏈路層事務(wù)級模型或應(yīng)用層數(shù)據(jù)包模型產(chǎn)生特定的激勵序列; 用戶使用該模型發(fā)送鏈路層數(shù)據(jù)包時,首先啟動鏈路層請求模型,由鏈路層請求模型向物理層模型發(fā)送請求信號,發(fā)送請求信號時,鏈路層監(jiān)控模型監(jiān)控該信號并記錄,物理層模型接收到請求信號后進(jìn)行仲裁,并將授權(quán)信息反饋至PHY-1ink接口,同時鏈路層監(jiān)控模型記錄授權(quán)信息,并觸發(fā)全局配置表中定義的授權(quán)事件,當(dāng)鏈路層數(shù)據(jù)包模型監(jiān)控到授權(quán)事件時,將授權(quán)信息與鏈路層監(jiān)控模型記錄的請求信號進(jìn)行匹配,如果授權(quán)信息匹配成功,則鏈路層數(shù)據(jù)包模型向物理層發(fā)送數(shù)據(jù)包,同時將該數(shù)據(jù)包收集至積分板;數(shù)據(jù)包收集至積分板具體可以采用鏈路層數(shù)據(jù)包模型向積分板發(fā)送,或鏈路層監(jiān)控模型向積分板發(fā)送; 用戶使用該模型發(fā)送應(yīng)用層數(shù)據(jù)包時,首先啟動鏈路層請求模型,由鏈路層請求模型向物理層模型發(fā)送請求信號,發(fā)送請求信號時,鏈路層監(jiān)控模型監(jiān)控該信號并記錄,物理層模型接收到請求信號后進(jìn)行仲裁,并將授權(quán)信息反饋至PHY-1ink接口,同時鏈路層監(jiān)控模型記錄授權(quán)信息,并觸發(fā)全局配置表中定義的授權(quán)事件,當(dāng)應(yīng)用層數(shù)據(jù)包模型監(jiān)控到授權(quán)事件時,將授權(quán)信息與鏈路層監(jiān)控模型記錄的請求信號進(jìn)行匹配,如果授權(quán)信息匹配成功,則應(yīng)用層數(shù)據(jù)包模型將數(shù)據(jù)包發(fā)送至鏈路層數(shù)據(jù)包模型,再由鏈路層數(shù)據(jù)包模型向物理層發(fā)送數(shù)據(jù)包;同時將該數(shù)據(jù)包收集至積分板; 用戶使用該模型接收數(shù)據(jù)包時,鏈路層監(jiān)控模型通過PHY-1ink接口收集來自物理層的所有數(shù)據(jù)信息并解析,對解析后的數(shù)據(jù)包進(jìn)行校驗,并將校驗正確的數(shù)據(jù)包進(jìn)行發(fā)送,發(fā)送前進(jìn)行目標(biāo)判斷,判斷該數(shù)據(jù)包應(yīng)發(fā)送至應(yīng)用層或鏈路層,判斷完成后發(fā)送。
2.根據(jù)權(quán)利要求1所述的基于UVM構(gòu)建1394鏈路層事務(wù)級模型,其特征在于:所述鏈路層請求模型包括鏈路層請求序列、鏈路層請求單元、鏈路層請求通道、鏈路層請求驅(qū)動和鏈路層請求接口 ;當(dāng)啟動鏈路層請求序列時,鏈路層請求通道將鏈路層請求序列包含的鏈路層請求單元發(fā)送至鏈路層請求驅(qū)動,提取鏈路層請求單元中的參數(shù)數(shù)據(jù),依據(jù)鏈路層請求類型的時序格式將請求信號經(jīng)鏈路層請求接口發(fā)送至物理層。
3.根據(jù)權(quán)利要求1所述的基于UVM構(gòu)建1394鏈路層事務(wù)級模型,其特征在于:所述鏈路層數(shù)據(jù)包模型包括鏈路層數(shù)據(jù)包序列、鏈路層數(shù)據(jù)包單元、鏈路層數(shù)據(jù)包通道、鏈路層數(shù)據(jù)包驅(qū)動和鏈路層數(shù)據(jù)包接口 ;當(dāng)啟動鏈路層數(shù)據(jù)包序列時,鏈路層數(shù)據(jù)包通道將鏈路層數(shù)據(jù)包序列包含的鏈路層數(shù)據(jù)包單元發(fā)送至鏈路層數(shù)據(jù)包驅(qū)動,提取鏈路層數(shù)據(jù)包單元中的參數(shù)并根據(jù)數(shù)據(jù)包類型進(jìn)行打包,按鏈路層數(shù)據(jù)包發(fā)送時序的格式將數(shù)據(jù)包經(jīng)鏈路層數(shù)據(jù)包接口發(fā)送至物理層。
4.根據(jù)權(quán)利要求1所述的基于UVM構(gòu)建1394鏈路層事務(wù)級模型,其特征在于:所述應(yīng)用層數(shù)據(jù)包模型包括應(yīng)用層數(shù)據(jù)包序列、應(yīng)用層數(shù)據(jù)包單元、應(yīng)用層數(shù)據(jù)包通道、偽隨機(jī)數(shù)據(jù)通道發(fā)生器,應(yīng)用層監(jiān)控模塊;當(dāng)啟動應(yīng)用層數(shù)據(jù)包序列時,應(yīng)用層數(shù)據(jù)包通道將應(yīng)用層數(shù)據(jù)包序列包含的應(yīng)用層數(shù)據(jù)包單元發(fā)送至偽隨機(jī)數(shù)據(jù)通道發(fā)生器,偽隨機(jī)數(shù)據(jù)通道發(fā)生器從應(yīng)用層數(shù)據(jù)包單元通道接收應(yīng)用層數(shù)據(jù)包并將該數(shù)據(jù)包發(fā)送至鏈路層數(shù)據(jù)包模型;應(yīng)用層監(jiān)控模塊用于接收來自鏈路層監(jiān)控模型的數(shù)據(jù)包信息。
【文檔編號】G06F17/50GK104462693SQ201410753512
【公開日】2015年3月25日 申請日期:2014年12月9日 優(yōu)先權(quán)日:2014年12月9日
【發(fā)明者】王世中, 蔡葉芳, 魏美榮, 楊峰, 姜麗云, 吳曉成 申請人:中國航空工業(yè)集團(tuán)公司第六三一研究所