文獻標識碼: A
文章編號: 0258-7998(2012)01-0038-03
AVS是我國具備自主知識產權的第二代信源編碼標準,其編碼效率比MPEG-2高2~3倍,與AVC相當,但技術方案簡潔,芯片實現復雜度低,是一套包含系統、視頻、音頻和媒體版權管理在內的完整標準體系,為數字音視頻產業提供了全面的解決方案。
從2012年11月1日起,AVS標準將被強制執行,屆時,所有在中國內地上市的地面數字電視接收機(包括機頂盒、一體機)必須內置AVS解碼功能,否則將無法銷售。由此,在未來十年時間內,高清晰度/標準清晰度AVS解碼芯片的國內需求量年均將達到4 000多萬片。
在芯片設計中,驗證所花費的時間約占整個設計周期的70%~80%。驗證成為大規模集成電路設計的主要瓶頸。一方面,視頻解碼器需要對大量的一致性測試碼流進行驗證,在考慮時序信息以后,軟件的仿真速度非常慢,因此,需要基于FPGA的硬件仿真平臺來提高仿真和驗證的速度。另一方面,門數百萬級以上的芯片設計每次投片費用巨大,投片前進行基于FPGA的驗證是保證投片成功的一個必不可少的環節。
當前關于視頻解碼芯片的FPGA驗證平臺的文獻并不多。參考文獻[2]用2塊VirtexE系列的FPGA搭建了視頻解碼芯片的驗證平臺;參考文獻[2]則采用Xilinx公司的兩片FPGA和Altera公司的2片EP2C35 FPGA完成驗證平臺的設計。本文針對視頻解碼器芯片的仿真和驗證要求,通過對驗證平臺框架的優化,提出基于1塊Altera的FPGA芯片,設計實現視頻解碼器的硬件驗證平臺。
1 驗證平臺組成和設計
硬件驗證平臺應該具有可重用的特點。在芯片的設計階段,硬件驗證平臺可以作為仿真驗證平臺,要求能夠獨立完成整個視頻解碼的過程。一方面可以將視頻解碼系統的硬件模塊載入,以驗證硬件模塊的功能;另一方面可以載入視頻解碼系統的軟件部分,讓硬件模塊和軟件模塊在一個平臺下真正實現軟硬件協同工作,以驗證整個解碼系統的功能,實現視頻解碼的全過程。
本驗證平臺以Altera公司的DE2多媒體開發平臺為主體,在FPGA內嵌入Nios II軟核處理器,結合Nios II可自定義CPU指令和用戶外設的特點,配合PC機軟件程序、VGA顯示器以及自定義SDRM存儲器端口控制模塊,搭建出一個完整的視頻解碼芯片驗證平臺,如圖1所示。
考慮到方便設計和占用資源少的原因,該驗證平臺僅用一塊FPGA,故將其分為兩部分來設計:視頻解碼部分和VGA顯示部分。其中,視頻解碼部分可以獨立完成視頻碼流解碼過程,將輸入的視頻文件解碼成YUV文件;同時,可將設計的AVS視頻解碼器的硬件模塊載入,以驗證硬件模塊的功能,并且為分析所設計模塊的性能參數提供可靠依據。VGA顯示部分主要控制VGA顯示器顯示解碼生成的YUV文件。這兩部分構成了一個“視頻解碼—VGA顯示”的完整的驗證平臺。
1.1 視頻解碼設計
該系統主要分為視頻解碼系統硬件設計和軟件程序開發。
1.1.1 視頻解碼硬件設計
視頻解碼系統硬件設計框圖如圖2所示,采用一塊Altera EP2C35F672C6 FPGA,它能提供豐富的內存資源和容量,以及新算法資源,增強時鐘管理支持,其結構體系將使系統性能達到更高層次,擴大輸入輸出帶寬,提高時鐘頻率、內存速度和數據處理速度。在FPGA上實現Nios II軟核CPU、SDRAM、Flash、Timer、Epcs controller等模塊相連。Nios II 軟核CPU和其他IP模塊之間通過Avalon片上總線相連,該總線規定了主部件和從部件之間進行連接的端口和通信的時序。該部分允許將設計的硬件模塊或者AVS視頻解碼系統掛接到Avalon總線上,通過Nios II軟核處理器的控制,與PC機中的軟件解碼程序協同工作,共同完成視頻解碼過程。同時還能夠計算出其所占用資源以及加入硬件模塊后所節省的時間,便于準確分析所驗證硬件模塊的性能參數。
根據系統的功能要求和Nios II軟核處理器的高度可配置性,通過硬件開發工具SoPC Builder定制的硬件系統框圖如圖3所。Nios II系統用CFI-Flash存儲輸入的視頻頻碼流文件,SDRAM用作運行程序的內存。同時加入了SD卡,預留存儲以后需要解碼的大容量視頻文件,生成的解碼文件暫存在PC機上,這樣極大地減少了片上RAM的使用率。
1.1.2 視頻解碼軟件實現
在完成系統的硬件設計后, 利用Altera提供的Nios II IDE軟件,實現應用程序的軟件設計,主要是CPU控制主程序以及能夠獨立完成視頻解碼的軟件程序。將待驗證的硬件模塊掛接到Avalon總線上,此時FPGA中既放入解碼系統的硬件模塊,也放入了解碼系統的軟件模塊,RISC CPU 完成PC機上CPU的功能,控制系統軟硬件模塊的運行。待解碼的AVS視頻碼流通過USB接口送給驗證平臺上的視頻解碼系統,RISC CPU協調放在FPGA中的AVS解碼系統硬件模塊和軟件模塊以完成解碼。AVS數據經過解碼,轉換成可以播放的YUV格式的視頻數據。
1.2 VGA顯示設計
該部分將上述視頻解碼軟件轉換成的YUV數據經過視頻控制器做一些后處理和視頻格式轉換的工作,然后將YUV視頻數據通過VGA控制接口,最后在VGA顯示器上將這些視頻信號顯示出來。下面分別介紹該部分的硬件開發設計和軟件程序實現。
1.2.1 VGA顯示硬件設計
在該設計中,Nios II軟核處理器主要完成CFI-Flash和SDRAM存儲器的讀寫操作,并且控制VGA的顯示。在SoPC Builder中搭建VGA顯示部分的硬件系統。針對系統的要求,在FPGA外圍連接了SRAM、SDRAM和Flash等存儲器,它們可以滿足視頻處理過程中對于存儲器的不同要求。其中,SRAM作為CPU控制主程序運行的內存;Flash用于存儲播放的YUV視頻文件;SDRAM容量大、速度快,用于VGA顯示的緩存,確保視頻播放的流暢。并沒有直接將SDRAM掛接到Avalon總線上,而是自己編寫了SDRAM端口控制器,再將其掛接到Avalon總線上,通過端口控制器對SDRAM進行讀寫操作。
視頻文件從Flash寫到SDRAM后,再經過VGA控制器顯示到顯示器上。VGA控制器采用Verilog語言編寫,使其具有更高執行性能,如圖4所示。
1.2.2 VGA顯示軟件設計
在Nios II軟件開發過程中,使用Altera提供的IO操作函數對SDRAM進行寫操作,并且利用Altera提供的API函數對Flash進行讀操作。具體函數如下:
Alt_flash_fd * fd
fd = alt_flash_open_dev("/dev/cfi_flash");
alt_read_flash(fd, CFI_FLASH_BASE+202752*j, buf, 202752);
for(i=0; i<101376;i++)
{ IOWR_16DIRECT (SDRAM_0_BASE, 0, buf[i]);
2 驗證實例
基于提出的AVS視頻解碼芯片驗證框架,實現了基于FPGA的AVS解碼芯片驗證平臺,驗證平臺分為視頻解碼系統和VGA顯示系統兩部分。視頻解碼系統可以嵌入待驗證的硬件模塊或下載待驗證的視頻解碼器。基于該解碼芯片驗證平臺,完成了AVS解碼芯片以及其中幀內預測、熵解碼和環路濾波等主要硬件模塊的驗證。相對于Modelsim的軟件仿真,硬件驗證平臺大大提高了驗證速度,同時也為成功投片提供了可靠保障。圖5為驗證平臺中視頻解碼系統的軟硬件解碼過程。
在硬件系統設計過程中,FPGA驗證已成為了系統設計的重要一環。本文提出了視頻解碼芯片的驗證框架,并設計實現了基于FPGA的視頻解碼芯片驗證平臺。該硬件驗證平臺包括視頻解碼系統和VGA顯示系統兩部分,通過視頻解碼系統可以嵌入待驗證的視頻解碼系統和硬件模塊,提高了驗證速度和效率。該驗證平臺具有操作靈活、驗證效率高、可重用性強和易擴展為驗證其他視頻標準解碼芯片的驗證平臺等優點。基于該驗證平臺已實現了多個硬件模塊和AVS視頻解碼芯片的驗證。
參考文獻
[1] 中華人民共和國國家標準,信息技術 先進音視頻編碼第二部分:視頻[GB/T] 20090.2-2006,2006年3月.
[2] 李宇,梅順良.基于FPGA的視頻解碼芯片驗證平臺設計[J].微計算機信息,2008,6(2).
[3] 朱本營,林濤.基于FPGA的H.264/AVC視頻解碼系統驗證平臺的設計[J].電子技術應用,2008,33(7).
[4] 郭書軍.嵌入式處理器原理及應用—Nios系統設計和C語言編程[M].北京:清華大學出版社,2004.