本發(fā)明涉及芯片設(shè)計(jì)技術(shù)領(lǐng)域,具體地說(shuō)是一種構(gòu)造行為激勵(lì)的數(shù)據(jù)處理方法及系統(tǒng)。
背景技術(shù):
隨著芯片制作的工藝技術(shù)以及芯片應(yīng)用領(lǐng)域的不斷發(fā)展,其復(fù)雜度不斷提高。相對(duì)應(yīng)的,對(duì)芯片仿真驗(yàn)證工作的要求也在不斷提高,需要進(jìn)行仿真驗(yàn)證的功能點(diǎn)越來(lái)越繁復(fù)。為了盡可能地減少驗(yàn)證工程師在構(gòu)造底層激勵(lì)時(shí)大量重復(fù)而容易出錯(cuò)的工作,在系統(tǒng)級(jí)驗(yàn)證和模型驗(yàn)證的階段,基于行為級(jí)描述的驗(yàn)證更為合適。
與行為級(jí)相對(duì)應(yīng)的就是rtl(registertransferlevel,寄存器級(jí))。rtl指的是用寄存器這一級(jí)別的描述方式來(lái)描述電路的數(shù)據(jù)流方式。而行為級(jí)指的是僅僅描述電路的功能而不用考慮對(duì)應(yīng)電路實(shí)現(xiàn)。兩者的區(qū)別在于用寄存器級(jí)的描述可以進(jìn)行更加準(zhǔn)確可靠的設(shè)計(jì),而行為級(jí)描述的驗(yàn)證,特別是功能驗(yàn)證,可以明顯地降低構(gòu)造激勵(lì)的復(fù)雜度和工作量。
現(xiàn)有的芯片驗(yàn)證流程中,按照實(shí)現(xiàn)的層次,行為級(jí)驗(yàn)證有兩種。一種是完全的抽象化的行為級(jí)驗(yàn)證,通過(guò)基于行為級(jí)的描述語(yǔ)言(比如c/c++)構(gòu)造激勵(lì)。另一種是依然采用verilog語(yǔ)言,通過(guò)verilog的行為級(jí)描述來(lái)構(gòu)造激勵(lì)。具體到對(duì)數(shù)據(jù)的處理而言,用比如c++之類的抽象化程度較高的語(yǔ)言,可以使用特有的抽象化的數(shù)據(jù)結(jié)構(gòu)來(lái)定義一些不需要位寬限制的數(shù)據(jù)。而verilog做不到這一點(diǎn),雖然verilog的行為級(jí)描述語(yǔ)法中可以定義不帶位寬信息的數(shù)值,但一旦需要與rtl設(shè)計(jì)接口發(fā)生交互(比如注入激勵(lì)),驗(yàn)證人員就不得不考慮位寬限制。也就是說(shuō),在涉及到數(shù)據(jù)的激勵(lì)描述中,用verilog實(shí)現(xiàn)的行為級(jí)描述更像是簡(jiǎn)單地把寄存器級(jí)描述翻譯了一下,還是需要按照接口位寬和時(shí)鐘周期進(jìn)行每一拍的描述,無(wú)法真正體現(xiàn)出行為級(jí)驗(yàn)證的優(yōu)勢(shì)。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)存在的用verilog語(yǔ)言無(wú)法實(shí)現(xiàn)行為級(jí)驗(yàn)證優(yōu)勢(shì)的不足,本發(fā)明的目的在于提供一種構(gòu)造行為激勵(lì)的數(shù)據(jù)處理方法及系統(tǒng),能夠明顯降低構(gòu)造激勵(lì)的復(fù)雜度,發(fā)揮行為級(jí)驗(yàn)證的優(yōu)勢(shì)。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種構(gòu)造行為激勵(lì)的數(shù)據(jù)處理方法,包括以下步驟:
在行為級(jí)數(shù)據(jù)端設(shè)置數(shù)據(jù)fifo;
在rtl數(shù)據(jù)端定義接口fifo;
在數(shù)據(jù)fifo與接口fifo之間設(shè)置緩存寄存器及相應(yīng)的存取數(shù)據(jù)邏輯,進(jìn)行行為級(jí)數(shù)據(jù)端與rtl數(shù)據(jù)端的數(shù)據(jù)傳輸。
進(jìn)一步地,所述數(shù)據(jù)fifo的寬度為待驗(yàn)證芯片的存取位數(shù),數(shù)據(jù)fifo的寬度與深度的乘積為行為級(jí)數(shù)據(jù)端數(shù)據(jù)接口的寬度。
進(jìn)一步地,按照數(shù)據(jù)fifo的寬度,把事務(wù)級(jí)數(shù)據(jù)按照從低位到高位的順序輸入數(shù)據(jù)fifo中。
進(jìn)一步地,所述接口fifo的深度與數(shù)據(jù)fifo的寬度一致,接口fifo的寬度與數(shù)據(jù)fifo的深度一致。
進(jìn)一步地,緩存寄存器數(shù)據(jù)接口的寬度為數(shù)據(jù)fifo的寬度與數(shù)據(jù)fifo深度的乘積;傳輸數(shù)據(jù)時(shí),緩存寄存器按照讀數(shù)據(jù)邏輯從數(shù)據(jù)fifo中讀取數(shù)據(jù),按照存數(shù)據(jù)邏輯把數(shù)據(jù)存入接口fifo。
進(jìn)一步地,所述緩存寄存器的存數(shù)據(jù)操作按照rtl數(shù)據(jù)端的數(shù)據(jù)接口時(shí)序周期進(jìn)行,讀數(shù)據(jù)操作和存數(shù)據(jù)操作交替進(jìn)行。
進(jìn)一步地,所述數(shù)據(jù)fifo有多個(gè),當(dāng)一個(gè)數(shù)據(jù)fifo存滿時(shí),用下一個(gè)fifo繼續(xù)存儲(chǔ)數(shù)據(jù);所述接口fifo的個(gè)數(shù)與數(shù)據(jù)fifo的個(gè)數(shù)相同。
一種構(gòu)造行為激勵(lì)的數(shù)據(jù)處理系統(tǒng),包括數(shù)據(jù)fifo模塊、數(shù)據(jù)傳輸模塊和接口fifo模塊;所述數(shù)據(jù)fifo模塊設(shè)置在行為級(jí)數(shù)據(jù)單元中,數(shù)據(jù)fifo模塊的數(shù)據(jù)輸入端連接事務(wù)級(jí)數(shù)據(jù)接口,數(shù)據(jù)輸出端連接數(shù)據(jù)傳輸模塊的數(shù)據(jù)輸入端;所述接口fifo模塊設(shè)置在rtl數(shù)據(jù)單元中,接口fifo模塊的數(shù)據(jù)輸入端連接數(shù)據(jù)傳輸模塊的數(shù)據(jù)輸出端。
進(jìn)一步地,所述數(shù)據(jù)fifo模塊的數(shù)據(jù)接口寬度與深度的乘積、所述數(shù)據(jù)傳輸模塊的數(shù)據(jù)接口寬度和所述接口fifo模塊的數(shù)據(jù)接口寬度與深度的乘積均為事務(wù)級(jí)數(shù)據(jù)接口的寬度。
采用本發(fā)明的技術(shù)手段獲得的有益效果有:
1、通過(guò)verilog行為級(jí)描述的語(yǔ)法,分別構(gòu)造數(shù)據(jù)fifo、fifo接口和緩存寄存器,使數(shù)據(jù)從行為數(shù)據(jù)端傳輸至rtl數(shù)據(jù)端,實(shí)現(xiàn)了行為級(jí)描述的激勵(lì)到寄存器級(jí)描述的設(shè)計(jì)之間數(shù)據(jù)的直接使用,無(wú)需添加額外的數(shù)據(jù)接口或高級(jí)語(yǔ)言,降低了構(gòu)造激勵(lì)的復(fù)雜度和工作量,充分發(fā)揮行為級(jí)驗(yàn)證的優(yōu)勢(shì)。
2、使數(shù)據(jù)fifo的寬度固定,相應(yīng)的緩存寄存器寬度以及接口fifo的深度也會(huì)固定,且數(shù)據(jù)fifo的寬度與待驗(yàn)芯片的存取位數(shù)相同,這樣設(shè)置避免數(shù)據(jù)fifo寬度增加造成資源的浪費(fèi),數(shù)據(jù)fifo寬度減小造成數(shù)據(jù)存取不完全的情況,同時(shí)使設(shè)計(jì)更加簡(jiǎn)單。
3、將數(shù)據(jù)fifo的數(shù)量設(shè)置為多個(gè),當(dāng)需要處理的數(shù)據(jù)位數(shù)較大時(shí),調(diào)用另外的數(shù)據(jù)fifo,實(shí)現(xiàn)本方法的通用性,能夠滿足實(shí)際應(yīng)用中大數(shù)據(jù)位數(shù)的需求。
附圖說(shuō)明
圖1是本發(fā)明的方法流程圖;
圖2是利用本方法的數(shù)據(jù)傳輸路徑示意圖;
圖3是本發(fā)明的系統(tǒng)機(jī)構(gòu)示意圖。
具體實(shí)施方式
為能清楚說(shuō)明本方案的技術(shù)特點(diǎn),下面通過(guò)具體實(shí)施方式,并結(jié)合其附圖,對(duì)本發(fā)明進(jìn)行詳細(xì)闡述。下文的公開(kāi)提供了許多不同的實(shí)施例或例子用來(lái)實(shí)現(xiàn)本發(fā)明的不同結(jié)構(gòu)。為了簡(jiǎn)化本發(fā)明的公開(kāi),下文中對(duì)特定例子的部件和設(shè)置進(jìn)行描述。此外,本發(fā)明可以在不同例子中重復(fù)參考數(shù)字和/或字母。這種重復(fù)是為了簡(jiǎn)化和清楚的目的,其本身不指示所討論各種實(shí)施例和/或設(shè)置之間的關(guān)系。應(yīng)當(dāng)注意,在附圖中所圖示的部件不一定按比例繪制。本發(fā)明省略了對(duì)公知組件和處理技術(shù)及工藝的描述以避免不必要地限制本發(fā)明。
在芯片仿真驗(yàn)證中,本發(fā)明針對(duì)使用verilog語(yǔ)言構(gòu)造行為級(jí)驗(yàn)證遇到的數(shù)據(jù)問(wèn)題,用verilog語(yǔ)言構(gòu)造一個(gè)虛擬的數(shù)據(jù)結(jié)構(gòu),用來(lái)實(shí)現(xiàn)行為級(jí)描述的激勵(lì)到寄存器級(jí)描述的設(shè)計(jì)之間數(shù)據(jù)的直接使用。
如圖1所示,本發(fā)明的一種構(gòu)造行為激勵(lì)的數(shù)據(jù)處理方法,包括以下步驟:
s1,在行為級(jí)數(shù)據(jù)端設(shè)置數(shù)據(jù)fifo;
s2,在rtl數(shù)據(jù)端定義接口fifo;
s3,在數(shù)據(jù)fifo與接口fifo之間設(shè)置緩存寄存器及相應(yīng)的存取數(shù)據(jù)邏輯,進(jìn)行行為級(jí)數(shù)據(jù)端與rtl數(shù)據(jù)端的數(shù)據(jù)傳輸。
將行為級(jí)數(shù)據(jù)端原本用來(lái)聲明和存放數(shù)據(jù)的寄存器替換為數(shù)據(jù)fifo(firstinputfirstoutput,先入先出隊(duì)列),并將數(shù)據(jù)fifo的寬度和深度固定,且數(shù)據(jù)fifo的寬度為待驗(yàn)證芯片的存取位數(shù),數(shù)據(jù)fifo的寬度與深度的乘積為行為級(jí)數(shù)據(jù)端數(shù)據(jù)接口的寬度。這樣設(shè)計(jì)簡(jiǎn)化了工作流程,并且使數(shù)據(jù)fifo的數(shù)據(jù)接口得到充分利用,避免浪費(fèi)。
利用行為級(jí)激勵(lì)給數(shù)據(jù)賦值時(shí),按照數(shù)據(jù)fifo的寬度,把事務(wù)級(jí)數(shù)據(jù)從低位到高位打入數(shù)據(jù)fifo中去,直到所有數(shù)據(jù)都已經(jīng)存入fifo或者fifo已存滿。因?yàn)槭怯糜隍?yàn)證的行為級(jí)描述,數(shù)據(jù)fifo的存取操作不需要考慮時(shí)序問(wèn)題。用阻塞賦值的方式保證數(shù)據(jù)的順序即可,不需要時(shí)鐘信息,提高數(shù)據(jù)傳輸效率。
接口fifo的寬度與數(shù)據(jù)fifo的深度相一致,接口fifo的深度與數(shù)據(jù)fifo的寬度相一致。這樣設(shè)置使接口fifo寬度與深度的乘積跟數(shù)據(jù)fifo寬度與深度的乘積相等,即接口fifo與數(shù)據(jù)fifo能夠存取的數(shù)據(jù)量是相同的。接口fifo的數(shù)據(jù)操作需要按照rtl數(shù)據(jù)端的數(shù)據(jù)接口的時(shí)序進(jìn)行,傳輸數(shù)據(jù)時(shí)按照rtl數(shù)據(jù)端的數(shù)據(jù)接口的時(shí)鐘周期發(fā)送。
緩存寄存器的寬度為數(shù)據(jù)fifo的寬度與接口寬度的乘積,在傳輸數(shù)據(jù)時(shí),先從數(shù)據(jù)fifo中讀取數(shù)據(jù),然后把數(shù)據(jù)存入接口fifo中。其中對(duì)數(shù)據(jù)fifo取數(shù)據(jù)的操作不需要時(shí)鐘控制,對(duì)接口fifo存數(shù)據(jù)的操作為了避免與接口fifo發(fā)送數(shù)據(jù)項(xiàng)沖突,必須按照rtl數(shù)據(jù)端的數(shù)據(jù)接口時(shí)鐘周期進(jìn)行。因此,緩存寄存器存數(shù)據(jù)和取數(shù)據(jù)的操作需交替進(jìn)行,不能同時(shí)。
直接使用數(shù)據(jù)fifo的寬度與接口寬度的乘積來(lái)作為緩存寄存器寬度是為了實(shí)現(xiàn)簡(jiǎn)單(理論上采用位寬較小的寄存器加上移位的組合邏輯也能實(shí)現(xiàn)同樣的功能)。如果數(shù)據(jù)fifo的接口寬度增加,相應(yīng)的緩存寄存器寬度以及接口fifo深度也會(huì)增加,為了減少不必要的浪費(fèi),因此對(duì)于數(shù)據(jù)寬度的選擇盡可能不要太大。
實(shí)際應(yīng)用中,可能會(huì)遇到一次性處理位數(shù)大到無(wú)法估量的數(shù)據(jù),可以增加一組邏輯,當(dāng)數(shù)據(jù)fifo存滿之后,利用另外的fifo繼續(xù)存。相應(yīng)的,后續(xù)的取數(shù)據(jù)的操作也需要加上一組邏輯,當(dāng)fifo為空之后,調(diào)用下一個(gè)fifo繼續(xù)取。且接口fifo的數(shù)量也要相應(yīng)的增加到與數(shù)據(jù)fifo相同。
利用上述方法,芯片驗(yàn)證過(guò)程中的數(shù)據(jù)傳輸路徑如圖2所示,數(shù)據(jù)fifo從事務(wù)級(jí)數(shù)據(jù)中獲取數(shù)據(jù),順序輸入到fifo中,緩存寄存器按照讀數(shù)據(jù)邏輯從數(shù)據(jù)fifo中讀取數(shù)據(jù),按照存數(shù)據(jù)邏輯把數(shù)據(jù)存入接口fifo,從而實(shí)現(xiàn)行為級(jí)描述的激勵(lì)到寄存器級(jí)描述的設(shè)計(jì)之間數(shù)據(jù)的直接使用,無(wú)需添加額外的數(shù)據(jù)接口或高級(jí)語(yǔ)言,降低了構(gòu)造激勵(lì)的復(fù)雜度和工作量,充分發(fā)揮行為級(jí)驗(yàn)證的優(yōu)勢(shì)。
其中讀數(shù)據(jù)邏輯和存數(shù)據(jù)邏輯,在設(shè)計(jì)代碼中可以理解為有特定功能的代碼,在設(shè)計(jì)網(wǎng)表里可以理解為實(shí)現(xiàn)特定功能的電路,即一種標(biāo)準(zhǔn)實(shí)現(xiàn)方法,屬于現(xiàn)有技術(shù)。
如圖3所示,本發(fā)明的一種構(gòu)造行為激勵(lì)的數(shù)據(jù)處理系統(tǒng),包括數(shù)據(jù)fifo模塊1、數(shù)據(jù)傳輸模塊2和接口fifo模塊3;數(shù)據(jù)fifo模塊1設(shè)置在行為級(jí)數(shù)據(jù)單元中,數(shù)據(jù)fifo模塊1的數(shù)據(jù)輸入端連接事務(wù)級(jí)數(shù)據(jù)接口,數(shù)據(jù)輸出端連接數(shù)據(jù)傳輸模塊2的數(shù)據(jù)輸入端;所述接口fifo模塊3設(shè)置在rtl數(shù)據(jù)單元中,接口fifo模塊3的數(shù)據(jù)輸入端連接數(shù)據(jù)傳輸模塊的數(shù)據(jù)輸出端。
數(shù)據(jù)fifo模塊1的數(shù)據(jù)接口寬度與深度的乘積、所述數(shù)據(jù)傳輸模塊2的數(shù)據(jù)接口寬度和所述接口fifo模塊3的數(shù)據(jù)接口寬度與深度的乘積均為事務(wù)級(jí)數(shù)據(jù)接口的寬度。
以上所述只是本發(fā)明的優(yōu)選實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也被視為本發(fā)明的保護(hù)范圍。