基于FPGA的CMI編碼系統(tǒng)設(shè)計
程序中主要有兩個進(jìn)程,其中前一個進(jìn)程主要功能是在clk_m時鐘作用下,產(chǎn)生m序列,完成CMI編碼功能,由m_out輸出產(chǎn)生的m序列,cmi_reg用于存儲CMI編碼值;后一個進(jìn)程主要功能是在clk_cmi(是clk_m時鐘速度的2倍)時鐘作用下,輸出CMI編碼信號。
3 系統(tǒng)仿真結(jié)果
利用QuartusⅡ7.2軟件平臺對CMI編碼程序進(jìn)行了編譯和仿真,通過仿真得到了編碼仿真結(jié)果,圖3給出了CMI碼編碼仿真波形。
從仿真結(jié)果可以看出,系統(tǒng)在時鐘clk_m的觸發(fā)下,由m_out寄存器輸出m序列,輸出15位的m序列值,依次為000111101011001;系統(tǒng)在時鐘clk_cmi的觸發(fā)下,完成CMI編碼功能,而CMI編碼后的輸出值則由cmi_out寄存器輸出,從仿真波形圖上可以看出,CMI編碼的碼元輸出速率是m序列碼元速率的2倍。對應(yīng)的輸出值依次為010101110011000111010011010100,對應(yīng)的CMI編碼信號與m序列相比,有一定時間的延時,但編碼結(jié)果完全正確。
4 結(jié)論
本文詳細(xì)介紹了采用Altera公司的FPGA,利用Verilog HDL語言進(jìn)行設(shè)計的CMI編碼系統(tǒng)的具體實現(xiàn)方法,Altera公司的CycloneⅡ系列EP2C5Q型號FPGA具有豐富的邏輯單元,通過QuartusⅡ軟件的綜合仿真,可以看到程序的設(shè)計僅僅占用了11個LE,占用FPGA的LE資源還不到1%。通過以上仿真結(jié)果可以看出,編碼的結(jié)果完全正確,本文闡述的設(shè)計方法是合理的。
本系統(tǒng)的創(chuàng)新點是將FPGA應(yīng)用于CMI編碼邏輯的開發(fā)中,使系統(tǒng)設(shè)計簡單,配置更靈活,易于擴(kuò)展,擺脫了基于專用芯片設(shè)計的限制,系統(tǒng)采用FPGA作為CMI編碼的核心單元,應(yīng)用Verilog HDL對CMI編碼邏輯進(jìn)行描述,利用SignalTapⅡ工具對系統(tǒng)邏輯進(jìn)行分析,具有開發(fā)周期短、成本低、效率高、升級方便等特點,系統(tǒng)還研究了4級移存器周期為15的m序列發(fā)生器的設(shè)計方法,這為CMI編碼器的測試提供了信源基礎(chǔ)。存在的問題是系統(tǒng)在設(shè)計時未能合理的選擇FPGA型號,導(dǎo)致FPGA資源使用不盡合理,因此,在基于FPGA的系統(tǒng)設(shè)計過程中,為了避免產(chǎn)生資源浪費(fèi),一定要在設(shè)計前通過仿真手段大致的估算出設(shè)計需要的資源數(shù)量,然后選擇相應(yīng)的FPGA型號;但同時也要注意FPGA的容量選擇要留有一定的余量,因為在大規(guī)模設(shè)計中,還可以將本文設(shè)計的CMI編碼電路與其他功能模塊都集成在一塊FPGA中,這一點在CMI編碼作為系統(tǒng)設(shè)計的一部分時便顯得尤為重要。
評論