專利名稱:一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種單芯片系統(tǒng)的驗(yàn)證方法,尤其涉及一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法,具體適用于采用json格式進(jìn)行數(shù)據(jù)交流。
背景技術(shù):
當(dāng)前單芯片系統(tǒng)的功能模塊的驗(yàn)證方法主要有以下幾種模式RTL模塊代碼+行為級(jí)描述代碼;RTL模塊代碼+專用驗(yàn)證語言行為級(jí)描述代碼;RTL模塊代碼+PLI調(diào)用C函數(shù)。但是以上的幾個(gè)模式一般只在專用集成電路(ASIC)領(lǐng)域的驗(yàn)證方法上大量使用,而在單芯片系統(tǒng)(SOC)領(lǐng)域則有以下幾個(gè)缺點(diǎn)首先,單芯片系統(tǒng)的功能模塊一般通過軟件驅(qū)動(dòng),驅(qū)動(dòng)程序的復(fù)雜程度隨著被測(cè)功能模塊的復(fù)雜度大幅度提升,現(xiàn)有的行為級(jí)描述代碼、專用驗(yàn)證語言行為級(jí)描述代碼和 PLI調(diào)用在這個(gè)方面編程的效率都不高。其次,在以上的幾個(gè)模式中,測(cè)例和驗(yàn)證環(huán)境高度耦合,測(cè)例必須運(yùn)行在仿真環(huán)境下,必須使用單一語言編程,不利于測(cè)例的管理和回滾測(cè)試。再次,驗(yàn)證環(huán)境和測(cè)例程序接口沒有標(biāo)準(zhǔn)化,不利于出錯(cuò)跟蹤。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的編程效率不高、不利于測(cè)例的管理和回滾測(cè)試、不利于出錯(cuò)跟蹤的缺陷與問題,提供一種編程效率較高、有利于測(cè)例的管理和回滾測(cè)試、有利于出錯(cuò)跟蹤的跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法。為實(shí)現(xiàn)以上目的,本發(fā)明的技術(shù)解決方案是一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法,該驗(yàn)證方法依次包括以下步驟第一步先針對(duì)被測(cè)對(duì)象構(gòu)建一個(gè)驗(yàn)證模塊,構(gòu)建用的建模語言為systemc語言, 然后在驗(yàn)證模塊中實(shí)現(xiàn)一個(gè)偵聽指定端口的服務(wù)器線程,該指定端口與客戶端之間通過 tcp/ip鏈接傳遞數(shù)據(jù)流,并在指定端口內(nèi)設(shè)置一個(gè)用于解析數(shù)據(jù)流的循環(huán)體,該循環(huán)體采用json解析函數(shù)解析數(shù)據(jù)流;第二步先由客戶端通過編程語言編寫測(cè)例,然后把對(duì)驗(yàn)證模塊的操作通過相應(yīng)編程語言的json庫(kù)打包,再通過tcp/ip鏈接發(fā)送至驗(yàn)證模塊內(nèi)的指定端口,然后由循環(huán)體采用json解析函數(shù)解析,再通過分支判斷做出相應(yīng)的反應(yīng),然后構(gòu)建返回的json模式的數(shù)據(jù)包返回,重復(fù)上述步驟,直到鏈接中斷退出仿真為止。所述第二步中客戶端驅(qū)動(dòng)的編程語言為c、c++、python、perl或java語言。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為1、由于本發(fā)明一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法中在驗(yàn)證模塊與客戶端之間通過tcp/ip鏈接傳遞數(shù)據(jù)流,且該數(shù)據(jù)流的形式為json格式,同時(shí)在驗(yàn)證模塊與客戶端內(nèi)均設(shè)置了打包的json庫(kù)以及json解析函數(shù),完全將json格式應(yīng)用于數(shù)據(jù)交流中,通過創(chuàng)造性的使用json格式作為測(cè)例和驗(yàn)證環(huán)境的數(shù)據(jù)交換,解放了測(cè)例編寫對(duì)于編程語言,平臺(tái)的限制,提升了測(cè)例編寫的效率,并可以通過現(xiàn)有的json庫(kù)對(duì)數(shù)據(jù)結(jié)構(gòu)序列化和反序列化,很容易的跟蹤測(cè)試數(shù)據(jù)包的發(fā)送和反饋。因此本發(fā)明不僅編程的效率較高,而且有利于測(cè)例的管理和回滾測(cè)試、有利于出錯(cuò)跟蹤。
圖1是本發(fā)明的結(jié)構(gòu)示意圖。圖2是本發(fā)明中采用的json格式的一種實(shí)施例的說明示意圖。圖3是本發(fā)明中采用的json格式的另一種實(shí)施例的說明示意圖。圖中被測(cè)對(duì)象1,驗(yàn)證模塊2,指定端口 3,服務(wù)器線程4,客戶端5,tcp/ip鏈接 6,循環(huán)體7。
具體實(shí)施例方式以下結(jié)合
和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明參見圖1至圖3,一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法,該驗(yàn)證方法依次包括以下步驟第一步先針對(duì)被測(cè)對(duì)象1構(gòu)建一個(gè)驗(yàn)證模塊2,構(gòu)建用的建模語言為system c語言,然后在驗(yàn)證模塊2中實(shí)現(xiàn)一個(gè)偵聽指定端口 3的服務(wù)器線程4,該指定端口 3與客戶端 5之間通過tcp/ip鏈接6傳遞數(shù)據(jù)流,并在指定端口 3內(nèi)設(shè)置一個(gè)用于解析數(shù)據(jù)流的循環(huán)體7,該循環(huán)體7采用json解析函數(shù)解析數(shù)據(jù)流;第二步先由客戶端5通過編程語言編寫測(cè)例,然后把對(duì)驗(yàn)證模塊2的操作通過相應(yīng)編程語言的json庫(kù)打包,再通過tcp/ip鏈接6發(fā)送至驗(yàn)證模塊2內(nèi)的指定端口 3,然后由循環(huán)體7采用json解析函數(shù)解析,再通過分支判斷做出相應(yīng)的反應(yīng),然后構(gòu)建返回的 json模式的數(shù)據(jù)包返回,重復(fù)上述步驟,直到鏈接中斷退出仿真為止。所述第二步中客戶端5驅(qū)動(dòng)的編程語言為c、c++、python、perl或java語言。本發(fā)明的原理說明如下本發(fā)明的目的在于提供一種單芯片系統(tǒng)驗(yàn)證方法,它不但能跨平臺(tái),跨編程語言開發(fā)測(cè)例,而且能大大節(jié)約測(cè)例開發(fā)時(shí)間。本發(fā)明的目的是這樣實(shí)現(xiàn)的使用system c構(gòu)建一個(gè)驗(yàn)證模塊2,該模塊中實(shí)現(xiàn)一個(gè)服務(wù)器線程4,服務(wù)器線程4偵聽一個(gè)指定端口 3,建立一個(gè)tcp/ip鏈接6服務(wù),通過一個(gè)循環(huán)體7解析該指定端口 3的數(shù)據(jù)流,使用標(biāo)準(zhǔn)的json解析函數(shù)得到客戶端5發(fā)送過來的數(shù)據(jù)結(jié)構(gòu),通過分支判斷做出相應(yīng)的反應(yīng),構(gòu)建返回的json數(shù)據(jù)包返回,重復(fù)上述步驟, 直到鏈接中斷退出仿真為止。在客戶端5可以自由選擇編程語言,編寫測(cè)例,把要對(duì)驗(yàn)證模塊2的操作通過相應(yīng)語言的json庫(kù)打包,通過tcp/ip鏈接6發(fā)送過去,起到控制被測(cè)的驗(yàn)證模塊2的流程的功能,客戶端5驅(qū)動(dòng)的常見的編程語言可以是c、c++、python、perl或java。參見圖1,本發(fā)明的驗(yàn)證環(huán)境使用systemc模塊來構(gòu)建tcp/ip服務(wù)器,服務(wù)器把收來的數(shù)據(jù)流發(fā)送到j(luò)son解析器,由解析器恢復(fù)得到發(fā)送方發(fā)送的數(shù)據(jù)結(jié)構(gòu)。參見圖2和圖3,詳細(xì)說明json數(shù)據(jù)格式。
json即Javakript Object Natation,它是一種輕量級(jí)的數(shù)據(jù)交換格式,通常的用法是服務(wù)器與Jav必cript、Actior^cript語言交互,具備跨平臺(tái)特性,在本發(fā)明中用于驗(yàn)證環(huán)境和測(cè)例語言的交互,下列將詳細(xì)介紹json格式及其分別在客戶端和服務(wù)器進(jìn)行 json格式數(shù)據(jù)的處理。和XML —樣,json也是基于純文本的數(shù)據(jù)格式。由于它天生是為JavMcript等一寫腳本語言準(zhǔn)備的,因此其數(shù)據(jù)的格式非常簡(jiǎn)單,你可以用JSON傳輸一個(gè)簡(jiǎn)單的字符串、 數(shù)字、布爾值、數(shù)組,或者一個(gè)復(fù)雜的Object對(duì)象。String,Number和Boolean用JSON表示非常簡(jiǎn)單。例如,用json表示一個(gè)簡(jiǎn)單的Mring “abc”,其格式為“abc”。json還可以表示一個(gè)數(shù)組對(duì)象,使用[]包含所有元素,每個(gè)元素用逗號(hào)分隔,元素可以是任意類型, 如,以下數(shù)據(jù)包含了一個(gè) String, Number, Boolean 和一個(gè) Object [” abc",123,false, null]Object對(duì)象在json中是用{}包含一系列無序的Key-Value鍵值對(duì)表示的,實(shí)際上此處的Object相當(dāng)于Java中的Map<String,0bject>,而不是Java的Class。注意Key 只能用String表示。json格式的實(shí)施例1:參見圖2,一個(gè)Address對(duì)象包含如下的key-Value city ShangHai street :YiJiang Road postcode :202014用json表示如下{〃 city" “ ShangHai“ , “ street" “ YiJiang Road" , “ postcode" 202014}其中Value也可以是另一個(gè)Object或數(shù)組,因此復(fù)雜的Object可以嵌套表示,json格式的實(shí)施例2:參見圖3,一個(gè)Person對(duì)象包含name和address,可以表示如下{〃 name" ‘‘ Samson",‘‘ address"{〃 city" “ ShangHai“ , “ street" “ YiJiang Road" , “ postcode" 202014}}通過創(chuàng)造性的使用json格式作為測(cè)例和驗(yàn)證環(huán)境的數(shù)據(jù)交換,解放了測(cè)例編寫對(duì)于編程語言,平臺(tái)的限制,提升了測(cè)例編寫的效率,并可以通過現(xiàn)有的json庫(kù)對(duì)數(shù)據(jù)結(jié)構(gòu)序列化和反序列化,很容易的跟蹤測(cè)試數(shù)據(jù)包的發(fā)送和反饋。由上可見,本發(fā)明不僅編程的效率較高,而且有利于測(cè)例的管理和回滾測(cè)試、有利
牟昔足艮S宗。以上所述僅為本發(fā)明的較佳實(shí)施方式,本發(fā)明的保護(hù)范圍并不以上述實(shí)施方式為限,但凡本領(lǐng)域普通技術(shù)人員根據(jù)本發(fā)明所揭示內(nèi)容所作的等效修飾或變化,皆應(yīng)納入權(quán)利要求書中記載的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法,其特征在于該驗(yàn)證方法依次包括以下步驟第一步先針對(duì)被測(cè)對(duì)象(1)構(gòu)建一個(gè)驗(yàn)證模塊O),構(gòu)建用的建模語言為system c語言,然后在驗(yàn)證模塊O)中實(shí)現(xiàn)一個(gè)偵聽指定端口(3)的服務(wù)器線程G),該指定端口(3) 與客戶端( 之間通過tcp/ip鏈接(6)傳遞數(shù)據(jù)流,并在指定端口( 內(nèi)設(shè)置一個(gè)用于解析數(shù)據(jù)流的循環(huán)體(7),該循環(huán)體(7)采用json解析函數(shù)解析數(shù)據(jù)流;第二步先由客戶端( 通過編程語言編寫測(cè)例,然后把對(duì)驗(yàn)證模塊O)的操作通過相應(yīng)編程語言的json庫(kù)打包,再通過tcp/ip鏈接(6)發(fā)送至驗(yàn)證模塊O)內(nèi)的指定端口 (3),然后由循環(huán)體(7)采用json解析函數(shù)解析,再通過分支判斷做出相應(yīng)的反應(yīng),然后構(gòu)建返回的json模式的數(shù)據(jù)包返回,重復(fù)上述步驟,直到鏈接中斷退出仿真為止。
2.根據(jù)權(quán)利要求1所述的一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法,其特征在于所述第二步中客戶端( 驅(qū)動(dòng)的編程語言為c、c++、python、perl或java語言。
全文摘要
一種跨平臺(tái)跨語言單芯片系統(tǒng)的驗(yàn)證方法,先使用system c構(gòu)建一個(gè)驗(yàn)證模塊,其中實(shí)現(xiàn)一個(gè)服務(wù)器線程以偵聽指定端口,建立tcp/ip鏈接服務(wù),通過循環(huán)體解析該端口的數(shù)據(jù)流,使用標(biāo)準(zhǔn)的json解析函數(shù)得到客戶端發(fā)送過來的數(shù)據(jù)結(jié)構(gòu),通過分支判斷做出相應(yīng)的反應(yīng),構(gòu)建返回的json數(shù)據(jù)包,重復(fù)上述步驟,直到鏈接中斷退出仿真;在客戶端可自由選擇編程語言編寫測(cè)例,即把要對(duì)驗(yàn)證模塊的操作通過相應(yīng)語言的json庫(kù)打包,通過tcp/ip鏈接發(fā)送過去以控制被測(cè)的驗(yàn)證模塊的流程。本發(fā)明不僅編程的效率較高,而且有利于測(cè)例的管理和回滾測(cè)試、有利于出錯(cuò)跟蹤。
文檔編號(hào)G06F11/26GK102479130SQ201010559520
公開日2012年5月30日 申請(qǐng)日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者伍駿, 徐碧霞, 郭昆亞, 馬肇陽 申請(qǐng)人:上海宇芯科技有限公司