《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的CMI編碼系統(tǒng)設(shè)計(jì)
基于FPGA的CMI編碼系統(tǒng)設(shè)計(jì)
電子設(shè)計(jì)工程
王海濱
摘要: 本文詳細(xì)介紹了采用Altera公司的FPGA,利用Verilog HDL語(yǔ)言進(jìn)行設(shè)計(jì)的CMI編碼系統(tǒng)的具體實(shí)現(xiàn)方法,Altera公司的CycloneⅡ系列EP2C5Q型號(hào)FPGA具有豐富的邏輯單元,通過QuartusⅡ軟件的綜合仿真,可以看到程序的設(shè)計(jì)僅僅占用了11個(gè)LE,占用FPGA的LE資源還不到1%。通過以上仿真結(jié)果可以看出,編碼的結(jié)果完全正確,本文闡述的設(shè)計(jì)方法是合理的。
關(guān)鍵詞: FPGA CMI編碼 CycloneⅡ
Abstract:
Key words :

摘要:提出了一種基于FPGA并利用Verilog HDL實(shí)現(xiàn)的CMI編碼設(shè)計(jì)方法。研究了CMI碼型的編碼特點(diǎn),提出了利用Altera公司CycloneⅡ系列EP2C5Q型號(hào)FPGA完成CMI編碼功能的方案。在系統(tǒng)程序設(shè)計(jì)中,首先產(chǎn)生m序列,然后程序再對(duì)m序列進(jìn)行CMI碼型變換。在CMI碼型變換過程中,采用專用寄存器對(duì)1碼的狀態(tài)進(jìn)行了存儲(chǔ),同時(shí)利用m序列的二倍頻為CMI編碼進(jìn)程提供時(shí)鐘激勵(lì),最后輸出CMI碼型。實(shí)驗(yàn)結(jié)果表明,采用FPGA完成CMI編碼的設(shè)計(jì),編碼結(jié)果完全正確,能夠達(dá)到預(yù)期要求。利用這種方法實(shí)現(xiàn)CMI編碼功能,具有效率高、可擴(kuò)展性強(qiáng)、升級(jí)方便等特點(diǎn),方便嵌入到大規(guī)模設(shè)計(jì)中,具有廣泛的應(yīng)用前景。
關(guān)鍵詞:FPGA;VetilogHDL;傳號(hào)反轉(zhuǎn)碼(CMI);編碼;m序列

    CMI碼一般作為PCM4次群數(shù)字中繼接口和光纖傳輸系統(tǒng)中的線路碼型。這種碼型不具有直流分量,有較多的電平跳躍,含有豐富的定時(shí)信息,因此很容易提取位定時(shí)信號(hào),該碼型具有良好的糾錯(cuò)能力,是一種很重要的碼型。
    在高次脈沖編碼調(diào)制終端設(shè)備中廣泛使用CMI碼作為接口碼型,在速率低于8 448 kb/s的光纖數(shù)字傳輸系統(tǒng)中也被建議作為線路傳輸碼型。
    本文主要介紹CMI碼的編碼具體實(shí)現(xiàn)方法,系統(tǒng)設(shè)計(jì)中采用了Altera公司CycloneⅡ系列的EP2C5Q型號(hào)FPGA作為系統(tǒng)的核心單元,完成CMI編碼功能,程序設(shè)計(jì)平臺(tái)為0uartusⅡ7.2軟件,采用Verilog HDL作為程序設(shè)計(jì)語(yǔ)言。

1 CMI編碼規(guī)則及FPGA配置電路
    CMI碼的全稱是傳號(hào)反轉(zhuǎn)碼,CMI碼的編碼規(guī)則如下:當(dāng)輸入0碼時(shí),編碼輸出01;當(dāng)輸入1碼時(shí),編碼輸出則00和11交替出現(xiàn),如表1所示。

1.JPG
    根據(jù)此規(guī)則輸出CMI碼元的速率應(yīng)為輸入基帶信號(hào)碼元速率的2倍,對(duì)于輸入為1的碼字,輸出不僅與當(dāng)前碼字有關(guān),還與前一個(gè)1碼的輸出有關(guān),1碼對(duì)應(yīng)的編碼結(jié)果是00或11碼型交替出現(xiàn)。由以上規(guī)則可以看出,在同步的情況下,輸出只對(duì)應(yīng)3種有效碼型。即01、00、11碼,而10碼型則無效,因此可以根據(jù)這個(gè)特點(diǎn)進(jìn)行檢錯(cuò)。
    設(shè)計(jì)中采用的是Altera公司的EP2C5Q型號(hào)FPGA,EP2C5Q是CycloneⅡ系列器件中的一種,CycloneⅡ器件采用90 nm工藝制造,在邏輯容量、PLL、乘法器和I/O數(shù)量上都較Cyclone有了很大的提高。EP2C5Q型號(hào)FPGA具有豐富的邏輯資源,共有4 608個(gè)邏輯單元(LE),26個(gè)M4K RAM塊,2個(gè)PLL鎖相環(huán),13個(gè)18x18的乘法器模塊。
    在FPGA硬件電路設(shè)計(jì)中需要注意的問題就是JTAG下載電路、配置芯片EEPROM電路與FPGA的連接關(guān)系。FPGA每次上電后都需要進(jìn)行配置,從EEPROM中將數(shù)據(jù)讀入,然后開始運(yùn)行。根據(jù)FPGA在配置電路中的角色,其配置數(shù)據(jù)可以使用3種方式載入到目標(biāo)器件中,分別是:FPGA主動(dòng)(Active)方式;FPGA被動(dòng)(Passive)方式;JTAG方式。在FPGA主動(dòng)方式下,由目標(biāo)FPGA來主動(dòng)輸出控制和同步信號(hào)(包括配置時(shí)鐘)給Altera專用串行配置芯片(如EPCS1、EPCS4等),在配置芯片收到命令后,就把配置數(shù)據(jù)發(fā)送到FPGA,完成配置過程。要注意的是:Altera FPGA所支持的主動(dòng)方式,只能夠與Altera公司提供的主動(dòng)串行配置芯片(EPCS系列)配合使用。這種配置模式只有在StratixⅡ和Cyclone系列(Cyclone和CycloneⅡ)的器件中支持。在被動(dòng)方式下,是由系統(tǒng)中的其他設(shè)備發(fā)起并控制配置過程。比較常用的是JTAG配置方式JTAG是IEEE 1149.1邊界掃描測(cè)試的標(biāo)準(zhǔn)接口。絕大多數(shù)的Altera FPGA都支持由JTFAG口進(jìn)行配置,并支持JAM STAPL標(biāo)準(zhǔn)。從JTAG接口進(jìn)行配置可以使用Altera的下載電纜,通過QuartusⅡ工具下載。


    圖1給出了FPGA的配置電路圖,主要包括FPGA的主動(dòng)(Active)方式和JTAG方式加載電路,以及專用串行配置芯片EPCS1與FPGA的連接關(guān)系。

2.JPG

2 CMI編碼系統(tǒng)的程序設(shè)計(jì)
    在系統(tǒng)程序設(shè)計(jì)過程中,將m序列作為基帶輸入碼,然后程序再對(duì)m序列進(jìn)行CMI碼型變換,最后輸出CMI碼型。通過對(duì)CMI編碼規(guī)則的分析,1位輸入碼元對(duì)應(yīng)2位輸出編碼,因此CNI碼元輸出速率是輸入m序列碼元速率的2倍。在程序設(shè)計(jì)中,要保持m序列進(jìn)程時(shí)鐘為CMI編碼進(jìn)程時(shí)鐘的2倍頻,這是完成CMI編碼任務(wù)的前提。
    m序列是最長(zhǎng)線性反饋移存器序列的簡(jiǎn)稱,m序列具有平衡性、游程特性、線性疊加性、自相關(guān)特性和偽噪聲特性,應(yīng)用十分廣泛。設(shè)計(jì)采用m序列產(chǎn)生器產(chǎn)生的m序列作為CMI編碼的數(shù)據(jù)源,用4級(jí)移存器構(gòu)成周期為P=24-1=15的m序列發(fā)生器。m序列發(fā)生器的結(jié)構(gòu)圖如圖2所示,其中A0、A1、A2、A3分別代表一個(gè)寄存器。

3.JPG


    在對(duì)m序列進(jìn)行CMI編碼的程序設(shè)計(jì)時(shí),要注意的問題是,1碼對(duì)應(yīng)的輸出是與前一個(gè)1碼的狀態(tài)有關(guān),因此要對(duì)1碼的狀態(tài)進(jìn)行記錄,從而實(shí)現(xiàn)1碼對(duì)應(yīng)的00和11碼型交替輸出。
    CMI編碼系統(tǒng)設(shè)計(jì)軟件環(huán)境采用的是QuartusⅡ軟件平臺(tái),QuartusⅡ是一種綜合開發(fā)工具,它集成了Altera的FPGA/CPLD開發(fā)流程中所涉及的所有工具和第三方軟件接口。通過使用此綜合開發(fā)工具,設(shè)計(jì)者可以創(chuàng)建、組織和管理自己的設(shè)計(jì),主要包括設(shè)計(jì)輸入、綜合、布局布線、時(shí)序分析、仿真、編程與配置過程。QuartusⅡ支持多時(shí)鐘定時(shí)分析,內(nèi)嵌SignalTapⅡ邏輯分析器、功率估計(jì)器等高級(jí)工具,易于管腳分配和時(shí)序約束,具有強(qiáng)大的HDL綜合能力。
    SignalTapⅡ邏輯分析器是很重要的測(cè)試工具,它是對(duì)FPGA的硬件信號(hào)進(jìn)行讀取,可以捕獲和顯示FPGA內(nèi)部的實(shí)時(shí)信號(hào)行為,從而能夠讓設(shè)計(jì)者直觀的判斷出邏輯是否準(zhǔn)確。SignalTapⅡ的功能類似于邏輯分析儀,但與傳統(tǒng)的邏輯分析儀相比,具有如下優(yōu)點(diǎn):使用SignalTapⅡ邏輯分析器不占用額外的I/O管腳,若使用傳統(tǒng)的邏輯分析儀觀察信號(hào)波形,則必須將待觀察信號(hào)引到空閑管腳;SignalTapⅡ邏輯分析器不占用PCB上的空間,若使用傳統(tǒng)邏輯分析儀,需要從FPGA器件上引出測(cè)試管腳到PCB上,這樣增加了PCB走線難度;SignalTapⅡ邏輯分析器還不會(huì)破壞信號(hào)的完整性;SignalTapⅡ邏輯分析器集成在QuartusⅡ軟件中,無需另外付費(fèi),而傳統(tǒng)的邏輯分析儀則價(jià)格昂貴。
    程序采用Verilog HDL語(yǔ)言進(jìn)行設(shè)計(jì),下面給出了CMI編碼的部分源程序:
    4.JPG

 

5.JPG
    
    程序中主要有兩個(gè)進(jìn)程,其中前一個(gè)進(jìn)程主要功能是在clk_m時(shí)鐘作用下,產(chǎn)生m序列,完成CMI編碼功能,由m_out輸出產(chǎn)生的m序列,cmi_reg用于存儲(chǔ)CMI編碼值;后一個(gè)進(jìn)程主要功能是在clk_cmi(是clk_m時(shí)鐘速度的2倍)時(shí)鐘作用下,輸出CMI編碼信號(hào)。

3 系統(tǒng)仿真結(jié)果
    利用QuartusⅡ7.2軟件平臺(tái)對(duì)CMI編碼程序進(jìn)行了編譯和仿真,通過仿真得到了編碼仿真結(jié)果,圖3給出了CMI碼編碼仿真波形。

6.JPG


    從仿真結(jié)果可以看出,系統(tǒng)在時(shí)鐘clk_m的觸發(fā)下,由m_out寄存器輸出m序列,輸出15位的m序列值,依次為000111101011001;系統(tǒng)在時(shí)鐘clk_cmi的觸發(fā)下,完成CMI編碼功能,而CMI編碼后的輸出值則由cmi_out寄存器輸出,從仿真波形圖上可以看出,CMI編碼的碼元輸出速率是m序列碼元速率的2倍。對(duì)應(yīng)的輸出值依次為010101110011000111010011010100,對(duì)應(yīng)的CMI編碼信號(hào)與m序列相比,有一定時(shí)間的延時(shí),但編碼結(jié)果完全正確。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。