專利名稱:隊列亂序的芯片模擬方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及芯片設(shè)計驗證領(lǐng)域,尤其涉及一種隊列亂序的芯片模擬方法及系統(tǒng)。
技術(shù)背景
高性能芯片的功能驗證已經(jīng)成為制約高度復(fù)雜的電子系統(tǒng)和芯片設(shè)計的主要瓶頸。芯片特別是高性能網(wǎng)絡(luò)芯片設(shè)計存在以下問題不同數(shù)據(jù)流經(jīng)過仲裁后的順序?qū)⒆兊脽o序;進(jìn)入隊列的數(shù)據(jù)會有丟棄行為發(fā)生;進(jìn)入隊列的數(shù)據(jù)有各個等級的優(yōu)先級出隊列。
因此,有必要提供一種隊列亂序的芯片模擬方法及系統(tǒng)以克服上述問題。發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種隊列亂序的芯片模擬方法,可解決傳統(tǒng)隊列只能先入先出的缺陷,提出更加靈活的隊列出隊方式。
本發(fā)明的另一目的在于提供一種隊列亂序的芯片模擬系統(tǒng),該系統(tǒng)應(yīng)用于所述隊列亂序的芯片模擬方法。
相應(yīng)地,本發(fā)明的一種隊列亂序的芯片模擬方法,包括如下步驟 S10,對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置; S20,使元素按順序依次入隊;S30,選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;S40,選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;S50,檢查隊列元素總個數(shù)或有效元素個數(shù)。
作為本發(fā)明的進(jìn)一步改進(jìn),所述元素生存周期由隊列的最小延時與最大延時來決定,最小延時表示元素生存在隊列的時間不能小于該時間;最大延時表示元素生存在隊列內(nèi)的時間不能超過該時間。
作為本發(fā)明的進(jìn)一步改進(jìn),所述隊列元素連續(xù)一位、多位匹配查詢是利用查詢關(guān)鍵字內(nèi)容與關(guān)鍵字位寬,以及查詢的起始位置,按照入隊順序查找,找到與之匹配的第一個元素;所述隊列元素非連續(xù)位匹配查詢是利用查詢關(guān)鍵字內(nèi)容和掩碼矢量,按照入隊順序查找,找到與之匹配的第一個元素。
作為本發(fā)明的進(jìn)一步改進(jìn),所述順序出隊采取先入先出原則;隨機(jī)出隊則在隊列元素中隨機(jī)挑選元素移出隊列;首次匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的第一個元素,挑選該元素移出隊列;隨機(jī)匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的所有元素,從這些元素中挑選一個元素移出隊列;丟棄匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中第一個匹配的元素,在找到第一個匹配元素之前,丟棄不匹配的元素。
作為本發(fā)明的進(jìn)一步改進(jìn),所述首次匹配出隊和隨機(jī)匹配出隊在找不到元素時會有報警或者報錯。
相應(yīng)地,本發(fā)明的一種隊列亂序的芯片模擬系統(tǒng),包括配置模塊,用以對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置; 入隊操作模塊,用以使元素按順序依次入隊;查找模式控制模塊,用以選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;出隊模式控制模塊,用以選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;信息檢查模塊,用以檢查隊列元素總個數(shù)或有效元素個數(shù)。
作為本發(fā)明的進(jìn)一步改進(jìn),所述元素生存周期由隊列的最小延時與最大延時來決定,最小延時表示元素生存在隊列的時間不能小于該時間;最大延時表示元素生存在隊列內(nèi)的時間不能超過該時間。
作為本發(fā)明的進(jìn)一步改進(jìn),所述隊列元素連續(xù)一位、多位匹配查詢是利用查詢關(guān)鍵字內(nèi)容與關(guān)鍵字位寬,以及查詢的起始位置,按照入隊順序查找,找到與之匹配的第一個元素;所述隊列元素非連續(xù)位匹配查詢是利用查詢關(guān)鍵字內(nèi)容和掩碼矢量,按照入隊順序查找,找到與之匹配的第一個元素。
作為本發(fā)明的進(jìn)一步改進(jìn),所述順序出隊采取先入先出原則;隨機(jī)出隊則在隊列元素中隨機(jī)挑選元素移出隊列;首次匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的第一個元素,挑選該元素移出隊列;隨機(jī)匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的所有元素,從這些元素中挑選一個元素移出隊列;丟棄匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中第一個匹配的元素,在找到第一個匹配元素之前,丟棄不匹配的元素。
作為本發(fā)明的進(jìn)一步改進(jìn),所述首次匹配出隊和隨機(jī)匹配出隊在找不到元素時會有報警或者報錯。
本發(fā)明的有益效果是本發(fā)明提供了一種通用的亂序機(jī)制,可以較為貼切的模擬各種仲裁器,流量控制器的行為,方便高性能芯片的功能驗證。
圖1所示為本發(fā)明一實施方式一種隊列亂序的芯片模擬方法的流程圖; 圖2所示為本發(fā)明新型隊列的示意圖;圖3所示為本發(fā)明具體操作流程圖;圖4所示為本發(fā)明一實施方式一種隊列亂序的芯片模擬系統(tǒng)的模塊圖。
具體實施方式
以下將結(jié)合附圖所示的各實施方式對本發(fā)明進(jìn)行詳細(xì)描述。但這些實施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護(hù)范圍內(nèi)。
如圖1所示,本發(fā)明的一種隊列亂序的芯片模擬方法,包括如下步驟 S10,對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置;S20,使元素按順序依次入隊;S30,選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;S40,選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;S50,檢查隊列元素總個數(shù)或有效元素個數(shù)。
具體地,本發(fā)明采用C語言建立了一個隊列模型,用戶使用時采用PLI函數(shù)與硬件描述語言對接,只需要做簡單配置即可控制該隊列行為。
如圖2所示,本發(fā)明模型主要包括1.隊列標(biāo)志,每個隊列都有自己的標(biāo)志,所述標(biāo)志可以為一個字符串或數(shù)字。
2.隊列寬度,該隊列寬度自適應(yīng)可配,由用戶向隊列存放第一個元素時決定的,同一隊列的不同元素有相同的比特寬度。
3.隊列深度閾值,可以由用戶根據(jù)需要控制決定,可為任一整數(shù)。超過閾值,可報警或者報錯。該閥值用數(shù)字來表示,其中,0表示沒有限制;非0表示配置的深度閾值。
4.出隊模式,共有五種出隊模式,所有模式在隊列沒有數(shù)據(jù)時被使用都會有報警或者報錯。
模式一順序出隊,保留傳統(tǒng)隊列先入先出的功能; 模式二 隨機(jī)出隊,在隊列元素中隨機(jī)挑選元素移出隊列;模式三首次匹配出隊,按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的第一個元素,挑選該元素移出隊列。匹配方式跟查詢方式一樣。找不到會有報警或者報錯;模式四隨機(jī)匹配出隊,按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的所有元素,從這些元素中挑選一個元素移出隊列。匹配方式跟查詢方式一樣。找不到會有報警或者報錯;模式五丟棄匹配出隊,按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中第一個匹配的元素,在找到第一個匹配元素之前,丟棄不匹配的元素。
5.隊內(nèi)時間控制,隊列有最小延時與最大延時的配置,表示元素在隊列內(nèi)的生存周期。最小延時表示元素生存在隊列內(nèi)的時間不能小于該時間。最大延時表示元素生存在隊列內(nèi)的時間不能超過該時間。隊列中有一個仿真計時器,對每個進(jìn)入隊列的元素會有一個仿真時間的記錄。元素在出隊時,當(dāng)前仿真時間與記錄的仿真時間的差值與最小延時與最大延時比較,若落入最大延時與最小延時的區(qū)間內(nèi),則正常出對;否則報警或者報錯或者丟棄。
6.隊列元素查詢,提供兩種元素查詢方式方式一隊列元素連續(xù)一位、多位匹配查詢利用查詢關(guān)鍵字內(nèi)容與關(guān)鍵字位寬,以及查詢的起始位置,按照入隊順序查找,找到與之匹配的第一個元素。找不到報警或報錯,找到則返回該元素,但該元素不出隊列。
方式二 隊列元素非連續(xù)位匹配查詢利用查詢關(guān)鍵字內(nèi)容和掩碼矢量(關(guān)鍵字內(nèi)容和掩碼矢量的位寬跟隊列的位寬一致),按照入隊順序查找,找到與之匹配的第一個元素。找不到報警或報錯,找到則返回該元素,但該元素不出隊列。
7.出錯配置,提供上述報警、報錯、或丟棄的策略配置。同時也提供是否屏幕輸出或者文件輸出報警、報錯信息的策略配置。
8.隊列檢查,提供隊列元素總個數(shù)查詢,也可提供隊列元素有效元素個數(shù)查詢。有效元素表示在生存周期內(nèi)的元素。
如圖3和圖4所示,為本發(fā)明涉及的具體流程圖和系統(tǒng)模塊圖,可通過與硬件描述語言的編程語言接口(PLI)對接使用或單獨使用。其中具體流程如下一配置流程。分為外部文件配置操作,函數(shù)配置操作,和入隊配置操作(可提供隊列寬度和隊列標(biāo)志的配置)。這三種配置方式可單獨或搭配使用。通過一配置模塊,用以對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置。
二 入隊流程。通過一入隊操作模塊,使元素按照入隊順序依次入隊。
三隊列查找流程。通過一查找模式控制模塊,選擇所述隊列元素查詢中的一種查找方式進(jìn)行查找,并根據(jù)出錯配置進(jìn)行錯誤檢查。
四出隊流程。通過一出對模式控制模塊,選擇所述出隊模式中的一種出隊方式進(jìn)行出隊,并根據(jù)出錯配置進(jìn)行錯誤檢查。
五信息檢查流程通過一信息檢查模塊,按照所述隊列檢查進(jìn)行隊列信息檢查, 并根據(jù)出錯配置進(jìn)行錯誤檢查。
相應(yīng)地,本發(fā)明的一種隊列亂序的芯片模擬系統(tǒng),包括配置模塊,用以對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置; 入隊操作模塊,用以使元素按順序依次入隊;查找模式控制模塊,用以選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;出隊模式控制模塊,用以選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;信息檢查模塊,用以檢查隊列元素總個數(shù)或有效元素個數(shù)。
本發(fā)明提供了一種通用的亂序機(jī)制,可以較為貼切的模擬各種仲裁器,流量控制器的行為,方便高性能芯片的功能驗證。
為了描述的方便,描述以上系統(tǒng)時以功能分為各種單元分別描述。當(dāng)然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備 (可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施方式或者實施方式的某些部分所述的方法。
以上所描述的系統(tǒng)實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置,或通信設(shè)備中。例如個人計算機(jī)、服務(wù)器計算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)、大型計算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
本申請可以在由計算機(jī)執(zhí)行的計算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機(jī)存儲介質(zhì)中。
應(yīng)當(dāng)理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個整體,各實施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。
上文所列出的一系列的詳細(xì)說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種隊列亂序的芯片模擬方法,其特征在于,包括以下步驟S10,對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置;S20,使元素按順序依次入隊;S30,選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;S40,選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;S50,檢查隊列元素總個數(shù)或有效元素個數(shù)。
2.根據(jù)權(quán)利要求1所述的隊列亂序的芯片模擬方法,其特征在于,所述元素生存周期由隊列的最小延時與最大延時來決定,最小延時表示元素生存在隊列的時間不能小于該時間;最大延時表示元素生存在隊列內(nèi)的時間不能超過該時間。
3.根據(jù)權(quán)利要求1所述的隊列亂序的芯片模擬方法,其特征在于,所述隊列元素連續(xù)一位、多位匹配查詢是利用查詢關(guān)鍵字內(nèi)容與關(guān)鍵字位寬,以及查詢的起始位置,按照入隊順序查找,找到與之匹配的第一個元素;所述隊列元素非連續(xù)位匹配查詢是利用查詢關(guān)鍵字內(nèi)容和掩碼矢量,按照入隊順序查找,找到與之匹配的第一個元素。
4.根據(jù)權(quán)利要求1所述的隊列亂序的芯片模擬方法,其特征在于,所述順序出隊采取先入先出原則;隨機(jī)出隊則在隊列元素中隨機(jī)挑選元素移出隊列;首次匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的第一個元素,挑選該元素移出隊列;隨機(jī)匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的所有元素,從這些元素中挑選一個元素移出隊列;丟棄匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中第一個匹配的元素,在找到第一個匹配元素之前,丟棄不匹配的元素。
5.根據(jù)權(quán)利要求4所述的隊列亂序的芯片模擬方法,其特征在于,所述首次匹配出隊和隨機(jī)匹配出隊在找不到元素時會有報警或者報錯。
6.一種隊列亂序的芯片模擬系統(tǒng),其特征在于,包括配置模塊,用以對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置;入隊操作模塊,用以使元素按順序依次入隊;查找模式控制模塊,用以選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;出隊模式控制模塊,用以選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;信息檢查模塊,用以檢查隊列元素總個數(shù)或有效元素個數(shù)。
7.根據(jù)權(quán)利要求6所述的隊列亂序的芯片模擬系統(tǒng),其特征在于,所述元素生存周期由隊列的最小延時與最大延時來決定,最小延時表示元素生存在隊列的時間不能小于該時間;最大延時表示元素生存在隊列內(nèi)的時間不能超過該時間。
8.根據(jù)權(quán)利要求6所述的隊列亂序的芯片模擬系統(tǒng),其特征在于,所述隊列元素連續(xù)一位、多位匹配查詢是利用查詢關(guān)鍵字內(nèi)容與關(guān)鍵字位寬,以及查詢的起始位置,按照入隊順序查找,找到與之匹配的第一個元素;所述隊列元素非連續(xù)位匹配查詢是利用查詢關(guān)鍵字內(nèi)容和掩碼矢量,按照入隊順序查找,找到與之匹配的第一個元素。
9.根據(jù)權(quán)利要求6所述的隊列亂序的芯片模擬系統(tǒng),其特征在于,所述順序出隊采取先入先出原則;隨機(jī)出隊則在隊列元素中隨機(jī)挑選元素移出隊列;首次匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的第一個元素,挑選該元素移出隊列;隨機(jī)匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中匹配到的所有元素,從這些元素中挑選一個元素移出隊列;丟棄匹配出隊按照入隊順序,使用關(guān)鍵數(shù)據(jù)位找到隊列中第一個匹配的元素,在找到第一個匹配元素之前,丟棄不匹配的元素。
10.根據(jù)權(quán)利要求9所述的隊列亂序的芯片模擬系統(tǒng),其特征在于,所述首次匹配出隊和隨機(jī)匹配出隊在找不到元素時會有報警或者報錯。
全文摘要
本發(fā)明提供一種隊列亂序的芯片模擬方法及系統(tǒng),其中方法包括以下步驟對隊列標(biāo)志、隊列寬度、隊列深度、元素生存周期進(jìn)行配置;使元素按順序依次入隊;選擇隊列元素連續(xù)一位、多位匹配查詢或隊列元素非連續(xù)位匹配查詢中的一種查詢隊列元素;選擇順序出隊、隨機(jī)出隊、首次匹配出隊、隨機(jī)匹配出隊及丟棄匹配出隊中的一種來挑選需要移出隊列的元素;檢查隊列元素總個數(shù)或有效元素個數(shù)。本發(fā)明提供了一種通用的亂序機(jī)制,可以較為貼切的模擬各種仲裁器,流量控制器的行為,方便高性能芯片的功能驗證。
文檔編號G06F11/26GK102521095SQ20111042598
公開日2012年6月27日 申請日期2011年12月19日 優(yōu)先權(quán)日2011年12月19日
發(fā)明者胡國興, 陳諾 申請人:盛科網(wǎng)絡(luò)(蘇州)有限公司