專利名稱:先進(jìn)先出仿真單元及邏輯驗(yàn)證仿真系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)仿真技術(shù)領(lǐng)域,更具體的說,本發(fā)明涉及一種應(yīng)用于計(jì)算機(jī)邏輯仿真中的先進(jìn)先出仿真單元以及邏輯驗(yàn)證仿真系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)仿真(CS,Computer Simulation)是一門利用計(jì)算機(jī)軟件模擬真實(shí)環(huán)境的技術(shù)。目前,采用計(jì)算機(jī)仿真技術(shù)實(shí)現(xiàn)邏輯驗(yàn)證的邏輯驗(yàn)證仿真系統(tǒng)主要包括仿真測(cè)試用例單元、先進(jìn)先出(FIFO,F(xiàn)irst In First Out)仿真單元、仿真總線功能模型單元以及被驗(yàn)證邏輯,其中仿真測(cè)試用例單元產(chǎn)生驗(yàn)證所需的數(shù)據(jù)激勵(lì),經(jīng)過FIFO仿真單元緩存,然后發(fā)送給仿真總線功能模型單元,再由仿真總線功能模型單元經(jīng)過接口適配后發(fā)送給被驗(yàn)證邏輯;經(jīng)被驗(yàn)證邏輯處理過的數(shù)據(jù)發(fā)送給仿真總線功能模型單元,再經(jīng)過FIFO仿真單元緩存后發(fā)送給仿真測(cè)試用例單元進(jìn)行校驗(yàn),最終確認(rèn)被驗(yàn)證邏輯是否正確。
一般的,在實(shí)現(xiàn)所述FIFO仿真單元時(shí),現(xiàn)有技術(shù)通常采用同步或異步FIFO。同步或異步FIFO按照讀寫時(shí)鐘工作,對(duì)外使用讀寫控制信號(hào)和數(shù)據(jù)線實(shí)現(xiàn)與其他模塊的接口。參考圖1,該圖是傳統(tǒng)邏輯驗(yàn)證仿真系統(tǒng)中的FIFO示意圖。所述FIFO主要根據(jù)仿真的寫時(shí)鐘信號(hào)、讀時(shí)鐘信號(hào)等控制信號(hào)與外界通信,另外所述FIFO與邏輯驗(yàn)證仿真系統(tǒng)中的仿真測(cè)試用例單元之間還包括仿真的寫使能信號(hào)、寫數(shù)據(jù)信號(hào)、空信號(hào)以及滿信號(hào),與仿真總線功能模型單元之間還包括仿真的讀使能信號(hào)、讀數(shù)據(jù)信號(hào)、空信號(hào)以及滿信號(hào)等。
上述現(xiàn)有技術(shù)可實(shí)現(xiàn)仿真實(shí)際的FIFO電路工作,進(jìn)一步可實(shí)現(xiàn)邏輯驗(yàn)證仿真,但還存在如下缺點(diǎn)
首先,上述現(xiàn)有技術(shù)實(shí)現(xiàn)的FIFO仿真單元比較復(fù)雜,需要仿真FIFO仿真單元與邏輯驗(yàn)證仿真系統(tǒng)中其他模塊間接口的大量電路連線及控制信號(hào),特別是對(duì)于需要多個(gè)FIFO的設(shè)計(jì)則更為復(fù)雜,大大增加了仿真工作量。
例如,如圖2所示,以一個(gè)同步FIFO為例,需要仿真以下控制信號(hào)rst復(fù)位信號(hào);full滿信號(hào);alfull幾乎滿信號(hào);empty空信號(hào);alempty幾乎空信號(hào);rd_en讀使能信號(hào);wr_en寫使能信號(hào);clk工作時(shí)鐘;data_in數(shù)據(jù)輸入信號(hào);data_out數(shù)據(jù)輸出信號(hào);count存儲(chǔ)空間計(jì)數(shù);err錯(cuò)誤上報(bào)信號(hào)等,即使較簡(jiǎn)單的實(shí)現(xiàn)通常也需要仿真FIFO仿真單元與與外部模塊間接口的多個(gè)控制信號(hào)來實(shí)現(xiàn)FIFO自身的狀態(tài)上報(bào)和讀寫控制。在實(shí)現(xiàn)多個(gè)FIFO時(shí),仿真處理將更為復(fù)雜。
其次,現(xiàn)有技術(shù)實(shí)現(xiàn)的FIFO仿真單元使用不靈活,不能適應(yīng)更高的仿真要求。由于現(xiàn)有技術(shù)中FIFO仿真單元按照讀寫時(shí)鐘工作,每隔一個(gè)讀/寫時(shí)鐘周期才能完成一次讀/寫操作,無法根據(jù)邏輯驗(yàn)證的測(cè)試需要靈活的調(diào)整激勵(lì)產(chǎn)生的速度,使用上并不靈活。
再次,由于現(xiàn)有技術(shù)需仿真FIFO仿真單元與其他模塊間的物理連接,因此,模塊的易用性和可重用性均大大降低。例如,對(duì)于一個(gè)FIFO就需要仿真設(shè)計(jì)該FIFO與外部模塊間的物理連接,對(duì)于多個(gè)FIFO,則需要仿真設(shè)計(jì)多個(gè)FIFO與外部模塊的物理連接,因此,模塊的易用性和可重用性大大降低。
再次,現(xiàn)有技術(shù)通過所述FIFO仿真單元實(shí)現(xiàn)的邏輯驗(yàn)證仿真系統(tǒng)還存在效率較低的缺點(diǎn)。由于FIFO仿真單元按照讀寫時(shí)鐘工作,每次讀/寫一個(gè)地址空間的操作都要占用一個(gè)讀/寫時(shí)鐘周期。這樣,必然會(huì)占用一定的仿真時(shí)間,降低仿真效率。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種實(shí)現(xiàn)簡(jiǎn)單、使用靈活的先進(jìn)先出仿真單元以及邏輯驗(yàn)證仿真系統(tǒng),以進(jìn)一步提高仿真效率。
為解決上述問題,本發(fā)明的先進(jìn)先出仿真單元,包括仿真緩存裝置,用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù);另外,還包括仿真控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出先進(jìn)先出的仿真數(shù)據(jù)。
其中,所述預(yù)設(shè)的先進(jìn)先出功能任務(wù)包括讀任務(wù),如果所述先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),首先判斷所述先進(jìn)先出仿真單元是否為空,如果不為空,從所述先進(jìn)先出仿真單元當(dāng)前地址中讀出數(shù)據(jù),然后讀地址加一;寫任務(wù),如果所述先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),先判斷所述先進(jìn)先出仿真單元是否為滿,如果不為滿,向所述先進(jìn)先出仿真單元當(dāng)前地址中寫入數(shù)據(jù),然后寫地址加一;查詢是否空任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為空的狀態(tài)值;查詢是否滿任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為滿的狀態(tài)值;查詢是否幾乎空任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為幾乎空的狀態(tài)值;查詢是否幾乎滿任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為幾乎滿的狀態(tài)值;所述仿真控制裝置包括讀任務(wù)模塊,用于控制執(zhí)行所述讀任務(wù);寫任務(wù)模塊,用于控制執(zhí)行所述寫任務(wù);查詢是否空任務(wù)模塊,用于控制執(zhí)行所述查詢是否空任務(wù);查詢是否滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否滿任務(wù);查詢是否幾乎空任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎空任務(wù);查詢是否幾乎滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎滿任務(wù)。
其中,所述仿真緩存裝置包括仿真數(shù)據(jù)緩存裝置,用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù);仿真狀態(tài)寄存器,用于仿真存儲(chǔ)所述先進(jìn)先出仿真單元的空滿狀態(tài)。
相應(yīng)地,本發(fā)明的邏輯驗(yàn)證仿真系統(tǒng),包括仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元,用于產(chǎn)生邏輯驗(yàn)證仿真使用的測(cè)試用例,并對(duì)待驗(yàn)證邏輯處理過的測(cè)試用例進(jìn)行驗(yàn)證,以確認(rèn)被驗(yàn)證邏輯是否正確;仿真總線功能模型單元,用于將仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元產(chǎn)生的測(cè)試用例數(shù)據(jù)以被驗(yàn)證邏輯所約定的特定時(shí)序發(fā)送給待驗(yàn)證邏輯;或按與被驗(yàn)證邏輯約定的特定時(shí)序接收被驗(yàn)證邏輯處理后的數(shù)據(jù);另外,還包括發(fā)送先進(jìn)先出仿真單元,用于根據(jù)預(yù)設(shè)的先進(jìn)先出功能任務(wù)將仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元產(chǎn)生的測(cè)試用例仿真緩存發(fā)送給仿真總線功能模型單元;接收先進(jìn)先出仿真單元,用于根據(jù)預(yù)設(shè)的先進(jìn)先出功能任務(wù)將仿真總線功能模型單元接收的、經(jīng)被驗(yàn)證邏輯處理后的仿真數(shù)據(jù)緩存返回給仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元進(jìn)行驗(yàn)證。
其中,所述發(fā)送先進(jìn)先出仿真單元包括仿真發(fā)送緩存裝置,用于仿真緩存所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù);仿真發(fā)送控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù)。
其中,所述接收先進(jìn)先出仿真單元包括仿真接收緩存裝置,用于仿真緩存所述總線功能模型單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù);仿真接收控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以向所述仿真接收緩存裝置寫入或讀出所述仿真總線功能模型單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù)。
其中,所述預(yù)設(shè)的先進(jìn)先出功能任務(wù)包括讀任務(wù),如果所述發(fā)送或接收先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),首先判斷所述發(fā)送或接收先進(jìn)先出仿真單元是否為空,如果不為空,從所述發(fā)送或接收先進(jìn)先出仿真單元當(dāng)前地址中讀出數(shù)據(jù),然后讀地址加一;寫任務(wù),如果所述發(fā)送或接收先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),先判斷所述發(fā)送或接收先進(jìn)先出仿真單元是否為滿,如果不為滿,向所述發(fā)送或接收先進(jìn)先出仿真單元當(dāng)前地址中寫入數(shù)據(jù),然后寫地址加一;查詢是否空任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為空的狀態(tài)值;查詢是否滿任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為滿的狀態(tài)值;查詢是否幾乎空任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為幾乎空的狀態(tài)值;查詢是否幾乎滿任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為幾乎滿的狀態(tài)值;所述仿真發(fā)送控制裝置和所述仿真接收控制裝置均包括讀任務(wù)模塊,用于控制執(zhí)行所述讀任務(wù);寫任務(wù)模塊,用于控制執(zhí)行所述寫任務(wù);查詢是否空任務(wù)模塊,用于控制執(zhí)行所述查詢是否空任務(wù);查詢是否滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否滿任務(wù);查詢是否幾乎空任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎空任務(wù);查詢是否幾乎滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎滿任務(wù)。
其中,所述仿真發(fā)送緩存裝置包括
仿真發(fā)送數(shù)據(jù)緩存單元,用于仿真緩存所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的、待發(fā)送的先進(jìn)先出的測(cè)試用例數(shù)據(jù);仿真發(fā)送狀態(tài)寄存器,用于仿真存儲(chǔ)所述發(fā)送先進(jìn)先出仿真單元的空滿狀態(tài)。
其中,所述仿真接收緩存裝置包括仿真接收數(shù)據(jù)緩存單元,用于仿真緩存所述仿真總線功能模型單元發(fā)來的、經(jīng)待驗(yàn)證邏輯處理過的先進(jìn)先出的仿真數(shù)據(jù);仿真接收狀態(tài)寄存器,用于仿真存儲(chǔ)所述接收先進(jìn)先出仿真單元的空滿狀態(tài)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果首先,本發(fā)明相比現(xiàn)有技術(shù)實(shí)現(xiàn)更簡(jiǎn)單,F(xiàn)IFO仿真單元與周邊模塊無需仿真物理連線及控制信號(hào),大大縮減了仿真工作量。
其次,本發(fā)明實(shí)現(xiàn)的FIFO仿真單元相比現(xiàn)有技術(shù)使用更靈活,可以根據(jù)需要便捷的設(shè)置FIFO仿真單元的讀寫速度,且由于無需仿真FIFO仿真單元與外部模塊的對(duì)外物理連線及控制信號(hào),大大提高了FIFO仿真單元的易用性和可重用性。
再次,本發(fā)明實(shí)現(xiàn)的邏輯驗(yàn)證仿真系統(tǒng)中FIFO仿真單元寫入或讀出數(shù)據(jù)無需時(shí)鐘控制,對(duì)FIFO仿真單元的讀寫不占用仿真時(shí)間,因此,可大大提高邏輯驗(yàn)證仿真系統(tǒng)的仿真效率。
圖1是現(xiàn)有技術(shù)邏輯驗(yàn)證仿真系統(tǒng)中的FIFO示意圖;圖2是現(xiàn)有技術(shù)一種FIFO仿真單元涉及的控制信號(hào)示意圖;圖3是本發(fā)明FIFO仿真單元示意圖;圖4是圖3所示仿真控制裝置的一種組成示意圖;
圖5是本發(fā)明邏輯驗(yàn)證仿真系統(tǒng)的組成示意圖;圖6是本發(fā)明邏輯驗(yàn)證仿真系統(tǒng)中向FIFO仿真單元寫入數(shù)據(jù)的寫過程流程圖;圖7是本發(fā)明邏輯驗(yàn)證仿真系統(tǒng)中從FIFO仿真單元讀出數(shù)據(jù)的讀過程流程圖。
具體實(shí)施例方式
在邏輯驗(yàn)證仿真中通常需要采用先進(jìn)先出仿真單元作為速率不匹配的接口電路處理的仿真數(shù)據(jù)的中間緩存。傳統(tǒng)的先進(jìn)先出仿真單元按照時(shí)鐘周期進(jìn)行數(shù)據(jù)讀寫操作,在實(shí)際操作中極不方便,本發(fā)明的核心即在于通過預(yù)設(shè)先進(jìn)先出仿真單元執(zhí)行的先進(jìn)先出功能任務(wù),進(jìn)而在需要時(shí)執(zhí)行相應(yīng)的先進(jìn)先出功能任務(wù)即可實(shí)現(xiàn)先進(jìn)先出單元的相應(yīng)功能,可避免現(xiàn)有技術(shù)通過時(shí)鐘周期控制讀寫操作靈活性較差的缺點(diǎn),從而提高邏輯仿真驗(yàn)證的效率。
參考圖3,該圖是本發(fā)明先進(jìn)先出仿真單元的組成框圖。本發(fā)明的先進(jìn)先出仿真單元主要包括仿真緩存裝置11和仿真控制裝置12;其中所述仿真緩存裝置11,主要用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù)以及所述先進(jìn)先出單元空滿狀態(tài),其實(shí)現(xiàn)的功能與一個(gè)靜態(tài)存儲(chǔ)器功能相當(dāng),與一個(gè)FIFO單元類似,其存儲(chǔ)的主要是需要中間緩存的數(shù)據(jù)(本發(fā)明中即邏輯驗(yàn)證的仿真數(shù)據(jù))以及FIFO仿真的存儲(chǔ)狀態(tài)數(shù)據(jù)(也即FIFO的狀態(tài)數(shù)據(jù),如空滿狀態(tài)等),還請(qǐng)參考圖3,具體實(shí)現(xiàn)時(shí),本發(fā)明所述仿真緩存裝置11可進(jìn)一步包括仿真數(shù)據(jù)緩存裝置111,用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù),也即緩存邏輯驗(yàn)證所需的仿真數(shù)據(jù);仿真狀態(tài)寄存器112,用于仿真存儲(chǔ)所述先進(jìn)先出仿真單元的空滿狀態(tài)。
另外,所述仿真控制裝置12,主要用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出先進(jìn)先出的仿真數(shù)據(jù)。具體實(shí)施時(shí),根據(jù)先進(jìn)先出單元的功能,可預(yù)設(shè)如下的先進(jìn)先出功能任務(wù)讀任務(wù),如果所述先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),首先判斷所述先進(jìn)先出仿真單元是否為空,如果不為空,從所述先進(jìn)先出仿真單元當(dāng)前地址中讀出數(shù)據(jù),然后讀地址加一;寫任務(wù),如果所述先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),先判斷所述先進(jìn)先出仿真單元是否為滿,如果不為滿,向所述先進(jìn)先出仿真單元當(dāng)前地址中寫入數(shù)據(jù),然后寫地址加一;查詢是否空任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為空的狀態(tài)值;查詢是否滿任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為滿的狀態(tài)值;查詢是否幾乎空任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為幾乎空的狀態(tài)值;查詢是否幾乎滿任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為幾乎滿的狀態(tài)。
上述僅列舉了先進(jìn)先出仿真單元的基本功能任務(wù),實(shí)際實(shí)現(xiàn)時(shí),還可預(yù)設(shè)其他的先進(jìn)先出功能任務(wù),由于無法窮舉,且不是本發(fā)明的關(guān)鍵點(diǎn),這里不再細(xì)述。
參考圖4所示,為控制執(zhí)行上述先進(jìn)先出功能任務(wù),本發(fā)明所述仿真控制裝置12相應(yīng)包括如下組成模塊讀任務(wù)模塊121、寫任務(wù)模塊122、查詢是否空任務(wù)123、模塊查詢是否滿任務(wù)模塊124、查詢是否幾乎空任務(wù)模塊125、查詢是否滿任務(wù)模塊126;其中所述讀任務(wù)模塊121,用于控制執(zhí)行所述讀任務(wù);所述寫任務(wù)模塊122,用于控制執(zhí)行所述寫任務(wù);所述查詢是否空任務(wù)模塊123,用于控制執(zhí)行所述查詢是否空任務(wù);所述查詢是否滿任務(wù)模塊124,用于控制執(zhí)行所述查詢是否滿任務(wù);所述查詢是否幾乎空任務(wù)模塊125,用于控制執(zhí)行所述查詢是否幾乎空任務(wù);所述查詢是否幾乎滿任務(wù)模塊126,用于控制執(zhí)行所述查詢是否幾乎滿任務(wù)。
下面以優(yōu)選的具體實(shí)施例進(jìn)一步進(jìn)行說明。本優(yōu)選實(shí)施例中使用Verilog語言設(shè)計(jì)所述FIFO仿真單元,不使用仿真的物理連線和控制信號(hào),而是通過調(diào)用讀/寫FIFO任務(wù)和查詢FIFO狀態(tài)任務(wù)等FIFO功能任務(wù)作為外部模塊與FIFO仿真單元之間的接口,不需要時(shí)鐘控制實(shí)現(xiàn)FIFO功能,可提高仿真效率。
具體的,Verilog語言標(biāo)準(zhǔn)中所規(guī)定的關(guān)鍵字TASK可用于預(yù)設(shè)所述的FIFO功能任務(wù),在需要讀寫數(shù)據(jù)或查詢FIFO狀態(tài)時(shí),通過調(diào)用相應(yīng)的TASK即可實(shí)現(xiàn)FIFO的相應(yīng)功能,對(duì)于基本的FIFO功能任務(wù)簡(jiǎn)單說明如下1、讀FIFO任務(wù)如果FIFO仿真單元不處于復(fù)位狀態(tài),先判斷FIFO仿真單元是否空,如果不空,從FIFO仿真單元當(dāng)前地址中讀出數(shù)據(jù)(數(shù)據(jù)由出口參數(shù)輸出),然后讀地址加一。
Task read_fifo;//任務(wù)聲明Output[7:0]data_out;//出口參數(shù)2、寫FIFO任務(wù)如果FIFO仿真單元不處于復(fù)位狀態(tài),先判斷FIFO仿真單元是否滿,如果不滿,向FIFO仿真單元當(dāng)前地址中寫入數(shù)據(jù)(數(shù)據(jù)由入口參數(shù)輸入),然后寫地址加一。
Task write_fifo;//任務(wù)聲明input[7:0]data_in;//入口參數(shù)3、查詢FIFO是否空任務(wù)將FIFO仿真單元是否空的狀態(tài)寄存器的值由出口參數(shù)輸出。
Task empty_status;//任務(wù)聲明Output empty_flag;//出口參數(shù)4、FIFO是否滿任務(wù)將FIFO仿真單元是否滿的狀態(tài)寄存器的值由出口參數(shù)輸出。
Task full_status;//任務(wù)聲明Output full_flag;//出口參數(shù)5、FIFO是否幾乎空任務(wù)將FIFO仿真單元是否幾乎空的狀態(tài)寄存器的值由出口參數(shù)輸出。
Task alempty_status;//任務(wù)聲明Output alempty_flag;//出口參數(shù)6、查詢FIFO是否幾乎滿任務(wù)將FIFO仿真單元是否幾乎滿的狀態(tài)寄存器的值由出口參數(shù)輸出。
Task alfull_status;//任務(wù)聲明Output alfull_flag;//出口參數(shù)。
通過調(diào)用上述預(yù)設(shè)的先進(jìn)先出功能任務(wù)可實(shí)現(xiàn)FIFO仿真單元的各種功能,例如通過調(diào)用查詢FIFO空滿狀態(tài)的相應(yīng)查詢?nèi)蝿?wù)完成傳統(tǒng)FIFO空滿指示信號(hào)的功能。通過調(diào)用讀寫任務(wù)完成向FIFO讀出或?qū)懭霐?shù)據(jù)的功能。
需要說明的是,本優(yōu)選實(shí)施例中FIFO仿真單元不限于預(yù)設(shè)上述基本的FIFO功能任務(wù),還可根據(jù)用戶需要自行定義其他的任務(wù)。另外本實(shí)施例以Verilog語言設(shè)計(jì)的先進(jìn)先出仿真單元進(jìn)行了描述,需要說明的是,本發(fā)明FIFO仿真單元也可采用其他語言如VHDL等語言實(shí)現(xiàn),由于具體的語言實(shí)現(xiàn)不是本發(fā)明的關(guān)鍵點(diǎn),這里不再進(jìn)行詳細(xì)描述。
另外,本發(fā)明中還可在FIFO功能任務(wù)調(diào)用之間根據(jù)需要插入一定的時(shí)延,控制FIFO讀寫或查詢速度,以獲得最高的效率。
參考圖5,本發(fā)明上述實(shí)現(xiàn)的先進(jìn)先出仿真單元,可進(jìn)一步應(yīng)用在邏輯驗(yàn)證仿真系統(tǒng)中,以提高邏輯驗(yàn)證仿真系統(tǒng)的靈活性和仿真效率,具體的,本發(fā)明實(shí)現(xiàn)的邏輯驗(yàn)證仿真系統(tǒng)包括仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21、仿真總線功能模型單元22、發(fā)送先進(jìn)先出仿真單元23、接收先進(jìn)先出仿真單元24。其中所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21,用于產(chǎn)生邏輯驗(yàn)證仿真使用的測(cè)試用例,并對(duì)待驗(yàn)證邏輯處理過的測(cè)試用例進(jìn)行驗(yàn)證,以確認(rèn)待驗(yàn)證邏輯是否正確,具體實(shí)現(xiàn)時(shí),可根據(jù)不同的邏輯驗(yàn)證需求設(shè)計(jì)不同的測(cè)試用例;所述仿真總線功能模型單元22,用于將所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21產(chǎn)生的測(cè)試用例數(shù)據(jù)以待驗(yàn)證邏輯所約定的特定時(shí)序發(fā)送給待驗(yàn)證邏輯;或按與待驗(yàn)證邏輯約定的特定時(shí)序接收待驗(yàn)證邏輯處理后的數(shù)據(jù);所述發(fā)送先進(jìn)先出仿真單元23,作為仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21和仿真總線功能模型單元22之間傳送的數(shù)據(jù)的中間緩存,根據(jù)預(yù)設(shè)的先進(jìn)先出功能任務(wù)將仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21產(chǎn)生的測(cè)試用例仿真緩存發(fā)送給仿真總線功能模型單元22;所述接收先進(jìn)先出仿真單元24,同樣作為仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21和仿真總線功能模型單元22之間傳送的數(shù)據(jù)的中間緩存,用于根據(jù)預(yù)設(shè)的先進(jìn)先出功能任務(wù)將仿真總線功能模型單元22接收的、經(jīng)被驗(yàn)證邏輯處理后的仿真數(shù)據(jù)緩存返回給仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21進(jìn)行驗(yàn)證。
根據(jù)上述本發(fā)明先進(jìn)先出仿真單元原理,本發(fā)明所述邏輯驗(yàn)證仿真系統(tǒng)中所述發(fā)送先進(jìn)先出仿真單元23可進(jìn)一步包括仿真發(fā)送緩存裝置231和仿真發(fā)送控制裝置232,其中所述仿真發(fā)送緩存裝置231,用于仿真緩存所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù),另外還可緩存所述發(fā)送先進(jìn)先出仿真單元空滿狀態(tài)等;
所述仿真發(fā)送控制裝置232,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù)。
另外,所述接收先進(jìn)先出仿真單元24可進(jìn)一步包括仿真接收緩存裝置241和仿真接收控制裝置242,其中所述仿真接收緩存裝置241,用于仿真緩存所述總線功能模型單元22發(fā)來的先進(jìn)先出的仿真數(shù)據(jù),同前,所述仿真接收緩存裝置還可緩存所述接收先進(jìn)先出仿真單元的空滿狀態(tài)等;所述仿真接收控制裝置242,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以向所述仿真接收緩存裝置寫入或讀出所述仿真總線功能模型單元22發(fā)來的先進(jìn)先出的仿真數(shù)據(jù)。
同樣的,根據(jù)本發(fā)明上述先進(jìn)先出仿真單元設(shè)計(jì)原理,本發(fā)明邏輯驗(yàn)證仿真單元中所述預(yù)設(shè)的先進(jìn)先出功能任務(wù)主要包括讀任務(wù),如果所述發(fā)送或接收先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),首先判斷所述發(fā)送或接收先進(jìn)先出仿真單元是否為空,如果不為空,從所述發(fā)送或接收先進(jìn)先出仿真單元當(dāng)前地址中讀出數(shù)據(jù),然后讀地址加一;寫任務(wù),如果所述發(fā)送或接收先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),先判斷所述發(fā)送或接收先進(jìn)先出仿真單元是否為滿,如果不為滿,向所述發(fā)送或接收先進(jìn)先出仿真單元當(dāng)前地址中寫入數(shù)據(jù),然后寫地址加一;查詢是否空任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為空的狀態(tài)值;查詢是否滿任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為滿的狀態(tài)值;查詢是否幾乎空任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為幾乎空的狀態(tài)值;查詢是否幾乎滿任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為幾乎滿的狀態(tài)值;而所述仿真發(fā)送控制裝置231和所述仿真接收控制裝置241進(jìn)一步包括如下模塊讀任務(wù)模塊,用于控制執(zhí)行所述讀任務(wù);寫任務(wù)模塊,用于控制執(zhí)行所述寫任務(wù);查詢是否空任務(wù)模塊,用于控制執(zhí)行所述查詢是否空任務(wù);查詢是否滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否滿任務(wù);查詢是否幾乎空任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎空任務(wù);查詢是否幾乎滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎滿任務(wù)。
不難理解,還可根據(jù)需求預(yù)設(shè)其他的先進(jìn)先出功能任務(wù),相應(yīng)還需在所述仿真發(fā)送控制裝置232和所述仿真接收控制裝置242設(shè)置相應(yīng)的模塊。
下面具體說明所述仿真發(fā)送緩存裝置231,本發(fā)明中對(duì)于所述仿真發(fā)送緩存裝置231可進(jìn)一步包括仿真發(fā)送數(shù)據(jù)緩存單元,所述仿真發(fā)送數(shù)據(jù)緩存單元主要用于仿真緩存所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21發(fā)來的、待發(fā)送的先進(jìn)先出的測(cè)試用例數(shù)據(jù);仿真發(fā)送狀態(tài)寄存器,所述仿真發(fā)送狀態(tài)寄存器主要用于仿真存儲(chǔ)所述發(fā)送先進(jìn)先出仿真單元的空滿狀態(tài)。
同樣的,本發(fā)明所述仿真接收緩存裝置241可進(jìn)一步包括仿真接收數(shù)據(jù)緩存單元,所述仿真接收數(shù)據(jù)緩存單元主要用于仿真緩存所述仿真總線功能模型單元22發(fā)來的、經(jīng)待驗(yàn)證邏輯處理過的先進(jìn)先出的仿真數(shù)據(jù);仿真接收狀態(tài)寄存器,所述仿真接收狀態(tài)寄存器主要用于仿真存儲(chǔ)所述接收先進(jìn)先出仿真單元的空滿狀態(tài)。
上述對(duì)于發(fā)送先進(jìn)先出仿真單元以及接收先進(jìn)先出仿真單元的具體組成可參考前述先進(jìn)先出仿真單元的敘述,這里不再贅述。
下面簡(jiǎn)單說明上述邏輯驗(yàn)證仿真系統(tǒng)主要工作原理。
參考圖6,該圖是上述邏輯驗(yàn)證仿真系統(tǒng)中向FIFO仿真單元寫入數(shù)據(jù)的寫過程。具體的,當(dāng)仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元21產(chǎn)生激勵(lì)數(shù)據(jù)后,先調(diào)用查詢FIFO是否滿任務(wù)查詢FIFO仿真單元是否滿,如果滿,則等待若干時(shí)間后再次查詢;如果不滿,則調(diào)用寫任務(wù)將數(shù)據(jù)寫入FIFO仿真單元。
參考圖7,該圖是上述邏輯驗(yàn)證仿真系統(tǒng)中從FIFO仿真單元讀出數(shù)據(jù)的讀過程。具體的,當(dāng)仿真總線功能模型單元需要發(fā)送數(shù)據(jù)時(shí),先調(diào)用查詢FIFO是否空任務(wù)查詢FIFO是否空,如果空,則等待若干時(shí)間后再次查詢;如果不空,則調(diào)用讀任務(wù)將數(shù)據(jù)讀出FIFO仿真單元,發(fā)送到與仿真總線功能模型單元連接的總線上。
本發(fā)明無需時(shí)鐘,以任務(wù)調(diào)用作為與其它模塊的接口,實(shí)現(xiàn)簡(jiǎn)單,F(xiàn)IFO仿真單元與周邊模塊無需物理連線和控制信號(hào),大大縮減了仿真工作量;另一方面,本發(fā)明可以根據(jù)需要便捷的設(shè)置FIFO仿真單元的讀寫速度,使用靈活,沒有對(duì)外物理連線,提高了易用性和可重用性;而且由于無需時(shí)鐘控制讀寫操作,所以本發(fā)明在邏輯驗(yàn)證仿真系統(tǒng)中對(duì)FIFO仿真單元的讀寫不占用仿真時(shí)間,大大提高了效率。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種先進(jìn)先出仿真單元,用于計(jì)算機(jī)邏輯仿真,包括仿真緩存裝置,用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù);其特征在于,還包括仿真控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出先進(jìn)先出的仿真數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的先進(jìn)先出仿真單元,其特征在于,所述預(yù)設(shè)的先進(jìn)先出功能任務(wù)包括讀任務(wù),如果所述先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),首先判斷所述先進(jìn)先出仿真單元是否為空,如果不為空,從所述先進(jìn)先出仿真單元當(dāng)前地址中讀出數(shù)據(jù),然后讀地址加一;寫任務(wù),如果所述先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),先判斷所述先進(jìn)先出仿真單元是否為滿,如果不為滿,向所述先進(jìn)先出仿真單元當(dāng)前地址中寫入數(shù)據(jù),然后寫地址加一;查詢是否空任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為空的狀態(tài)值;查詢是否滿任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為滿的狀態(tài)值;查詢是否幾乎空任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為幾乎空的狀態(tài)值;查詢是否幾乎滿任務(wù),查詢并輸出所述先進(jìn)先出仿真單元是否為幾乎滿的狀態(tài)值;所述仿真控制裝置包括讀任務(wù)模塊,用于控制執(zhí)行所述讀任務(wù);寫任務(wù)模塊,用于控制執(zhí)行所述寫任務(wù);查詢是否空任務(wù)模塊,用于控制執(zhí)行所述查詢是否空任務(wù);查詢是否滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否滿任務(wù);查詢是否幾乎空任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎空任務(wù);查詢是否幾乎滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎滿任務(wù)。
3.根據(jù)權(quán)利要求1或2所述的先進(jìn)先出仿真單元,其特征在于,所述仿真緩存裝置包括仿真數(shù)據(jù)緩存裝置,用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù);仿真狀態(tài)寄存器,用于仿真存儲(chǔ)所述先進(jìn)先出仿真單元的空滿狀態(tài)。
4.一種邏輯驗(yàn)證仿真系統(tǒng),包括仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元,用于產(chǎn)生邏輯驗(yàn)證仿真使用的測(cè)試用例,并對(duì)待驗(yàn)證邏輯處理過的測(cè)試用例進(jìn)行驗(yàn)證,以確認(rèn)被驗(yàn)證邏輯是否正確;仿真總線功能模型單元,用于將仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元產(chǎn)生的測(cè)試用例數(shù)據(jù)以被驗(yàn)證邏輯所約定的特定時(shí)序發(fā)送給待驗(yàn)證邏輯;或按與被驗(yàn)證邏輯約定的特定時(shí)序接收被驗(yàn)證邏輯處理后的數(shù)據(jù);其特征在于,還包括發(fā)送先進(jìn)先出仿真單元,用于根據(jù)預(yù)設(shè)的先進(jìn)先出功能任務(wù)將仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元產(chǎn)生的測(cè)試用例仿真緩存發(fā)送給仿真總線功能模型單元;接收先進(jìn)先出仿真單元,用于根據(jù)預(yù)設(shè)的先進(jìn)先出功能任務(wù)將仿真總線功能模型單元接收的、經(jīng)被驗(yàn)證邏輯處理后的仿真數(shù)據(jù)緩存返回給仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元進(jìn)行驗(yàn)證。
5.根據(jù)權(quán)利要求4所述的邏輯驗(yàn)證仿真系統(tǒng),其特征在于,所述發(fā)送先進(jìn)先出仿真單元包括仿真發(fā)送緩存裝置,用于仿真緩存所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù);仿真發(fā)送控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù)。
6.根據(jù)權(quán)利要求4所述的邏輯驗(yàn)證仿真系統(tǒng),其特征在于,所述接收先進(jìn)先出仿真單元包括仿真接收緩存裝置,用于仿真緩存所述總線功能模型單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù);仿真接收控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以向所述仿真接收緩存裝置寫入或讀出所述仿真總線功能模型單元發(fā)來的先進(jìn)先出的仿真數(shù)據(jù)。
7.根據(jù)權(quán)利要求5或6所述的邏輯驗(yàn)證仿真系統(tǒng),其特征在于,所述預(yù)設(shè)的先進(jìn)先出功能任務(wù)包括讀任務(wù),如果所述發(fā)送或接收先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),首先判斷所述發(fā)送或接收先進(jìn)先出仿真單元是否為空,如果不為空,從所述發(fā)送或接收先進(jìn)先出仿真單元當(dāng)前地址中讀出數(shù)據(jù),然后讀地址加一;寫任務(wù),如果所述發(fā)送或接收先進(jìn)先出仿真單元未處于復(fù)位狀態(tài),先判斷所述發(fā)送或接收先進(jìn)先出仿真單元是否為滿,如果不為滿,向所述發(fā)送或接收先進(jìn)先出仿真單元當(dāng)前地址中寫入數(shù)據(jù),然后寫地址加一;查詢是否空任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為空的狀態(tài)值;查詢是否滿任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為滿的狀態(tài)值;查詢是否幾乎空任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為幾乎空的狀態(tài)值;查詢是否幾乎滿任務(wù),查詢并輸出所述發(fā)送或接收先進(jìn)先出仿真單元是否為幾乎滿的狀態(tài)值;所述仿真發(fā)送控制裝置和所述仿真接收控制裝置均包括讀任務(wù)模塊,用于控制執(zhí)行所述讀任務(wù);寫任務(wù)模塊,用于控制執(zhí)行所述寫任務(wù);查詢是否空任務(wù)模塊,用于控制執(zhí)行所述查詢是否空任務(wù);查詢是否滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否滿任務(wù);查詢是否幾乎空任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎空任務(wù);查詢是否幾乎滿任務(wù)模塊,用于控制執(zhí)行所述查詢是否幾乎滿任務(wù)。
8.根據(jù)權(quán)利要求7所述的邏輯驗(yàn)證仿真系統(tǒng),其特征在于,所述仿真發(fā)送緩存裝置包括仿真發(fā)送數(shù)據(jù)緩存單元,用于仿真緩存所述仿真數(shù)據(jù)產(chǎn)生驗(yàn)證單元發(fā)來的、待發(fā)送的先進(jìn)先出的測(cè)試用例數(shù)據(jù);仿真發(fā)送狀態(tài)寄存器,用于仿真存儲(chǔ)所述發(fā)送先進(jìn)先出仿真單元的空滿狀態(tài)。
9.根據(jù)權(quán)利要求7所述的邏輯驗(yàn)證仿真系統(tǒng),其特征在于,所述仿真接收緩存裝置包括仿真接收數(shù)據(jù)緩存單元,用于仿真緩存所述仿真總線功能模型單元發(fā)來的、經(jīng)待驗(yàn)證邏輯處理過的先進(jìn)先出的仿真數(shù)據(jù);仿真接收狀態(tài)寄存器,用于仿真存儲(chǔ)所述接收先進(jìn)先出仿真單元的空滿狀態(tài)。
全文摘要
本發(fā)明公開一種計(jì)算機(jī)邏輯仿真中應(yīng)用的先進(jìn)先出仿真單元,該先進(jìn)先出仿真單元包括仿真緩存裝置,用于仿真緩存先進(jìn)先出的仿真數(shù)據(jù);另外還包括仿真控制裝置,用于控制執(zhí)行預(yù)設(shè)的先進(jìn)先出功能任務(wù),以從所述仿真緩存裝置寫入或讀出先進(jìn)先出的仿真數(shù)據(jù)。另外,本發(fā)明還公開了一種相應(yīng)的邏輯驗(yàn)證仿真系統(tǒng)。由于不需根據(jù)時(shí)鐘控制進(jìn)行先進(jìn)先出單元數(shù)據(jù)緩存操作,因此,本發(fā)明實(shí)現(xiàn)簡(jiǎn)單,使用方便,可進(jìn)一步提高仿真效率。
文檔編號(hào)G06F17/50GK1773513SQ20041008893
公開日2006年5月17日 申請(qǐng)日期2004年11月9日 優(yōu)先權(quán)日2004年11月9日
發(fā)明者陳樂 申請(qǐng)人:華為技術(shù)有限公司