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

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

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

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

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


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

2.JPG

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

3.JPG


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

 

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

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

6.JPG


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

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

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