采用Verilog HDL語言對(duì)CMI編碼系統(tǒng)設(shè)計(jì)方法
出處:王海濱 發(fā)布于:2011-08-26 19:58:19
CMI碼是傳號(hào)反轉(zhuǎn)碼的簡(jiǎn)稱,它一般作為PCM4次群數(shù)字中繼接口和光纖傳輸系統(tǒng)中的線路碼型。CMI碼是一種應(yīng)用于PCM四次群和光纖傳輸系統(tǒng)中的常用線路碼型,具有碼變換設(shè)備簡(jiǎn)單、有較多的電平躍變,含有豐富的定時(shí)信息,便于時(shí)鐘提取,有一定的糾錯(cuò)能力等優(yōu)點(diǎn)。這種碼型不具有直流分量,有較多的電平跳躍,含有豐富的定時(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ì)語言。
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所示。

在CMI編碼中,輸入碼字0直接輸出01碼型,較為簡(jiǎn)單。對(duì)于輸入為1的碼字,其輸出CMI碼字存在兩種結(jié)果OO或11碼,因而對(duì)輸入1的狀態(tài)必須記憶。同時(shí),編碼后的速率增加一倍。
根據(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ò)。
目前可變分頻器大量使用在FPGA的電路設(shè)計(jì)中,它是一般電路設(shè)計(jì)不可缺少的組成部分,如頻率合成器、時(shí)鐘信號(hào)產(chǎn)生器、調(diào)制解調(diào)器的位定時(shí)恢復(fù)等電路。熟悉CMI編譯碼器在通信系統(tǒng)中位置用發(fā)揮的作用及了解CMI碼對(duì)通信系統(tǒng)性能的影響。CMI碼是信號(hào)反轉(zhuǎn)碼,編碼規(guī)則是:“1”碼交替用“11”和“00”兩位碼表示,“0”碼固定地用"01”表示。數(shù)字復(fù)接技術(shù)在頻分制載波系統(tǒng)中,高次群系統(tǒng)是由若干個(gè)低次群信號(hào)通過頻譜搬移并疊加而成。在時(shí)分制數(shù)字通信系統(tǒng)中,為了擴(kuò)大傳輸容量和提高傳輸效率,常常需要將若干個(gè)低速數(shù)字信號(hào)合并成一個(gè)高速數(shù)字信號(hào)流,以便在高速寬帶信道中傳輸。數(shù)字復(fù)接技術(shù)就是解決PCM 信號(hào)由低次群到高次群的合成的技術(shù)。隨著EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大和深入,EDA技術(shù)在電子信息,通信等領(lǐng)域的重要性日益突出。
設(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 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序列是長線性反饋移存器序列的簡(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è)寄存器。

在對(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ì)器等工具,易于管腳分配和時(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是一種硬件描述語言,是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。
程序采用Verilog HDL語言進(jìn)行設(shè)計(jì),下面給出了CMI編碼的部分源程序:


程序中主要有兩個(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)。
Verilog HDL語言不僅定義了語法,而且對(duì)每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。語言從C編程語言中繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展初很難理解。但是,Verilog HDL語言的子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然,完整的硬件描述語言足以對(duì)從復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。
3 主要能力
下面列出的是Verilog硬件描述語言的主要能力:
* 基本邏輯門,例如and、or和nand等都內(nèi)置在語言中。
* 用戶定義原語(UDP)創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是時(shí)序邏輯原語。
* 提供顯式語言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。
* Verilog HDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件。
* 設(shè)計(jì)的規(guī)??梢允侨我獾模徽Z言不對(duì)設(shè)計(jì)的規(guī)模(大?。┦┘尤魏蜗拗?。
* 人和機(jī)器都可閱讀Verilog 語言,因此它可作為EDA的工具和設(shè)計(jì)者之間的交互語言。
* Verilog HDL語言的描述能力能夠通過使用編程語言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問Verilog 模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合。
* 設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí),包括進(jìn)程和隊(duì)列級(jí)。
* 在行為級(jí)描述中,Verilog HDL不僅能夠在RTL級(jí)上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級(jí)描述及其算法級(jí)行為上進(jìn)行設(shè)計(jì)描述。
4 系統(tǒng)仿真結(jié)果
利用QuartusⅡ7.2軟件平臺(tái)對(duì)CMI編碼程序進(jìn)行了編譯和仿真,通過仿真得到了編碼仿真結(jié)果,圖3給出了CMI碼編碼仿真波形。

從仿真結(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é)果完全正確。
5 結(jié)論
本文詳細(xì)介紹了采用Altera公司的FPGA,利用Verilog HDL語言進(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í)便顯得尤為重要。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









