基于Q-Coder算術編碼器IP核的設計
本文引用地址:http://m.butianyuan.cn/article/170779.htm
3.1 算術編碼流程
所有的設計都是用Verilog硬件描述語言編寫的,由上述描述可知,算術編碼器的輸出不僅和當前狀態(tài)有關,而且和輸入也相關,所以本文選擇Mearly有限狀態(tài)機[5]來描述復雜的控制模塊。整個設計的主有限狀態(tài)機如圖2所示。
圖2 算術編碼主有限狀態(tài)機
3.2 模塊設計
duram是雙口sram作為片內存儲單元存儲輸入的數據,當采用FPGA進行驗證時,直接調用Altera公司的宏功能塊即可;ari_core是實現算術編碼的運算處理單元,包含一個存儲概率估值和當前MPS符號的表以及LPS和MPS編碼子程序;模塊control是數據流控制單元,用于組織片內存儲單元duram和運算處理單元ari_core以及片外sram的數據交換。模塊control是整個設計的控制單元,負責調度以上各個模塊,產生控制和聯絡信號以及地址信號。模塊結構原理如圖3所示。
3.3 電路驗證
將布局布線后生成的文件下載到自行設計的一塊FPGA的PCI開發(fā)板里進行驗證,如圖4所示。板上是一片Altera cyclone系列FPGA ep1c12qfp240,該FPGA含有約25萬邏輯門、30KB內部RAM。PCI接口控制邏輯也是在FPGA中實現[6~8],然后編寫PCI驅動程序和應用程序,先由Jasper軟件處理,抽取軟件中量化模塊處理后的數據,輸入FPGA中進行處理,再將數據返回給軟件中的下一模塊,驗證本文設計的算術編碼IP核的正確性,并計算處理時間。
評論