基于E語(yǔ)言的數(shù)字電視DVB-H系統(tǒng)數(shù)據(jù)鏈路層功能驗(yàn)證研究
每一個(gè)IP包將在MPE Section中發(fā)送,RS數(shù)據(jù)將緊跟在最后一個(gè)MPE Section后,通過(guò)MPE-FEC Section傳送,所有的MPE和MPE-FEC Section都有12 B的頭部信息,和數(shù)據(jù)負(fù)載部分(IP數(shù)據(jù)或RS數(shù)據(jù)),在最后有4 B的CRC32校驗(yàn)數(shù)據(jù)。其中在頭信息中有4 B的時(shí)間參數(shù)域,包括12個(gè)比特的開(kāi)始地址,該地址表明了每個(gè)IP包或RS數(shù)據(jù)開(kāi)始數(shù)據(jù)在MPE―FEC表中的位置,18個(gè)比特的Delta―T時(shí)間參數(shù),以及1個(gè)比特的標(biāo)志位表示最后一個(gè)IP包所在的Section和最后整個(gè)幀的結(jié)束,通常是最后一個(gè)MPE-FEC Section。所有的Section將被拆分為184 B作為T(mén)S包的有效負(fù)載部分,特殊情況是當(dāng)作為Section的第一個(gè)TS包,將加上一個(gè)點(diǎn)(point)字節(jié),該字節(jié)指名Section的第一個(gè)字節(jié)在TS包中的位置,然后加上183 B作為T(mén)S包的有效負(fù)載部分,并加上TS包的4 B的頭信息,通過(guò)復(fù)用后發(fā)送到信道中傳輸,如圖4所示。
接收端將在所選的業(yè)務(wù)的時(shí)間片內(nèi),從復(fù)用的TS碼流中得到所有的Section,通過(guò)計(jì)算Section的CRC32和接收數(shù)據(jù)的CRC32對(duì)比,如果一致,表明該IP包正確接收,反之,該IP數(shù)據(jù)包將整個(gè)被丟掉,并且按照頭部信息中的開(kāi)始地址域,將正確的IP包保存在MPE-FEC數(shù)據(jù)表中,沒(méi)有正確接收的IP包,將不出現(xiàn)在表中,且相應(yīng)位置將被標(biāo)記為不可靠位,然后通過(guò)RS(255,191)解碼,得到所有的正確的IP包。這種RS糾錯(cuò)方法稱為擦除表RS糾錯(cuò),最大糾錯(cuò)能力每行可達(dá)到兩倍的錯(cuò)誤字節(jié)數(shù),即64 B。如果每行的不可靠字節(jié)數(shù)超過(guò)這個(gè)最大限制,RS糾錯(cuò)將失敗,MPE-FEC的整個(gè)幀將被丟棄。
3 基于E語(yǔ)言的DVB-H系統(tǒng)驗(yàn)證環(huán)境的構(gòu)建
目前的IC設(shè)計(jì)中,由于SoC(System on Chip)設(shè)計(jì)的日益復(fù)雜化以及芯片規(guī)模的日益擴(kuò)大,系統(tǒng)級(jí)驗(yàn)證成為最具挑戰(zhàn)的環(huán)節(jié),據(jù)估計(jì)從系統(tǒng)結(jié)構(gòu)設(shè)計(jì),子模塊設(shè)計(jì),子模塊驗(yàn)證,系統(tǒng)級(jí)驗(yàn)證到FPGA測(cè)試,到最終的IC的投產(chǎn),60%~70%的時(shí)間會(huì)花費(fèi)在功能驗(yàn)證方面。選擇高性能的驗(yàn)證工具將極大地縮短驗(yàn)證時(shí)間,從而降低設(shè)計(jì)的開(kāi)發(fā)周期。當(dāng)前的EDA行業(yè)最推崇的主要是System C和E兩種驗(yàn)證語(yǔ)言。其中E語(yǔ)言是Vetisity公司開(kāi)發(fā)的專用于其Specman驗(yàn)證工具上的一種面向?qū)ο蟮尿?yàn)證語(yǔ)言。用E語(yǔ)言來(lái)搭建系統(tǒng)測(cè)試環(huán)境有很多優(yōu)點(diǎn):自動(dòng)生成基于約束條件的測(cè)試矢量,通過(guò)描述約束條件產(chǎn)生驗(yàn)證計(jì)劃中期望的驗(yàn)證場(chǎng)景,能夠根據(jù)DUV(Design Under Verifica-tion)當(dāng)前的狀態(tài)動(dòng)態(tài)地產(chǎn)生測(cè)試場(chǎng)景,這樣便有可能產(chǎn)生一些很難碰到的邊緣案例;自動(dòng)完成數(shù)據(jù)和時(shí)序的檢查;自動(dòng)進(jìn)行功能覆蓋率的分析找出漏洞;提供所有主流的Verilog和VHDL仿真器接口;此外擴(kuò)展性強(qiáng),可以在分開(kāi)的測(cè)試文件中修改若干數(shù)據(jù)對(duì)象,這些測(cè)試文件在分層的基礎(chǔ)驗(yàn)證環(huán)境中處于頂部,這種擴(kuò)展特性允許不犧牲模塊化或可讀性的同時(shí)更好地迎合系統(tǒng)和測(cè)試說(shuō)明的要求。此外在本文的第二部分的分析中,DVB―H數(shù)據(jù)鏈路層的功能主要基于一系列的協(xié)議層,E語(yǔ)言可以通過(guò)簡(jiǎn)單的描述實(shí)現(xiàn)各種復(fù)雜協(xié)議測(cè)試激勵(lì)的生成,十分符合DVB―H系統(tǒng)功能驗(yàn)證要求。
3.1 構(gòu)建DVB―H驗(yàn)證環(huán)境
基于E語(yǔ)言的DVB―H驗(yàn)證環(huán)境如圖5所示,dvbh_env是用E語(yǔ)言搭建的驗(yàn)證環(huán)境,dvbh_dut作為DVB―H系統(tǒng)數(shù)據(jù)鏈路層的系統(tǒng)模型被例化到驗(yàn)證環(huán)境中。由于DVB―H數(shù)據(jù)鏈路層要處理各種符合協(xié)議要求的TS包,同時(shí)負(fù)責(zé)對(duì)錯(cuò)包和丟包情況作糾錯(cuò)處理,并需要管理時(shí)間分片從而有效地將低功耗,因此對(duì)這些事務(wù)處理過(guò)程的驗(yàn)證離不開(kāi)各種復(fù)雜測(cè)試激勵(lì)的生成,然而傳統(tǒng)的手工編寫(xiě)的激勵(lì)很難覆蓋到各種場(chǎng)景,采用E語(yǔ)言的驗(yàn)證平臺(tái)通過(guò)在滿足約束的條件下,隨機(jī)自動(dòng)生成測(cè)試矢量,達(dá)到了高效的驗(yàn)證需要。同時(shí)和傳統(tǒng)的手工編寫(xiě)測(cè)試激勵(lì)的相比,E語(yǔ)言中有各種函數(shù)可供利用,可以方便地實(shí)現(xiàn)各種算法,例如:各種協(xié)議包中都有CRC32校驗(yàn)字節(jié),調(diào)用E語(yǔ)言CRC_32()函數(shù)就可以實(shí)現(xiàn)。此外,各種協(xié)議包都有固定的結(jié)構(gòu),通過(guò)E語(yǔ)言中的struct可以構(gòu)建各種協(xié)議包,并在產(chǎn)生協(xié)議包的過(guò)程中可以對(duì)結(jié)構(gòu)中的域值重新指定或者限定范圍,也可以通過(guò)定義不符合協(xié)議要求的包及有錯(cuò)誤值的包來(lái)達(dá)到驗(yàn)證系統(tǒng)魯棒性的要求。擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)可以節(jié)省編寫(xiě)各種測(cè)例的時(shí)間,E語(yǔ)言很類似于HDL語(yǔ)言編寫(xiě)的系統(tǒng),在一個(gè)系統(tǒng)頂層模塊中有各種例化的子模塊組成,E語(yǔ)言的這些子模塊為unit,可以通過(guò)extend uinit_name{}方式在不改變基本結(jié)構(gòu)基礎(chǔ)上的對(duì)子模塊作擴(kuò)展,也可以覆蓋原有的內(nèi)容重新定義。E語(yǔ)言驗(yàn)證環(huán)境也提供了數(shù)據(jù)一致性檢查的機(jī)制,稱為記分板方法。具體是通過(guò)將原始測(cè)試激勵(lì)與從系統(tǒng)輸出的數(shù)據(jù)作比較,提供報(bào)告驗(yàn)證系統(tǒng)的功能。在DVB―H鏈路層系統(tǒng)中,RS糾錯(cuò)模塊對(duì)收到的IP包做糾錯(cuò)處理,因此記分板方法可以很好的驗(yàn)證數(shù)據(jù)糾錯(cuò)功能。
3.2 驗(yàn)證步驟及代碼具體實(shí)現(xiàn)
驗(yàn)證環(huán)境搭建完成后,就可以將DVB―H接收系統(tǒng)的鏈路層例化到功能驗(yàn)證環(huán)境中進(jìn)行驗(yàn)證。以下各步需要通過(guò)E語(yǔ)言來(lái)完成。
第一步,驗(yàn)證環(huán)境需要產(chǎn)生符合DVB―H標(biāo)準(zhǔn)的TS流,碼流的基本結(jié)構(gòu)如圖4所示。在Host ref模塊中產(chǎn)生IP數(shù)據(jù)包并記錄到計(jì)分板,為數(shù)據(jù)檢查提供參考數(shù)據(jù)。然后在MPE―FEC handle模塊,產(chǎn)生RS編碼數(shù)據(jù),并封裝成Section格式,隨后在時(shí)間分片模塊中在MPE Section的頭信息的相應(yīng)位中插入時(shí)間分片信息,由TS_gen模塊打包成TS流的格式通過(guò)BB_driver將測(cè)試激勵(lì)輸入已例化到測(cè)試環(huán)境中的DVB―H鏈路層系統(tǒng)。以上部分的工作實(shí)際上是模擬數(shù)字電視發(fā)送端的工作,產(chǎn)生符合協(xié)議要求的傳輸包。
評(píng)論