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