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