5B6B線路碼編譯碼的電路設(shè)計(jì)綜述_第1頁(yè)
5B6B線路碼編譯碼的電路設(shè)計(jì)綜述_第2頁(yè)
5B6B線路碼編譯碼的電路設(shè)計(jì)綜述_第3頁(yè)
5B6B線路碼編譯碼的電路設(shè)計(jì)綜述_第4頁(yè)
5B6B線路碼編譯碼的電路設(shè)計(jì)綜述_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 *實(shí)踐教學(xué)*蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院2015年秋季學(xué)期通信系統(tǒng)綜合訓(xùn)練 題 目: 5B6B線路碼的電路設(shè)計(jì) 專業(yè)班級(jí): 通信工程(1)班 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 成 績(jī): 摘 要在光纖通信系統(tǒng)中,選取適當(dāng)?shù)拇a型對(duì)提高系統(tǒng)的可靠性,實(shí)現(xiàn)線路的高速、低誤碼率、最大容量傳輸具有重要意義。 5B6B碼是mBnB線路碼型中的一種,具有最大相同碼元連碼數(shù)少、定時(shí)信息豐富、勻衡性好、誤碼監(jiān)視、同步性好等優(yōu)點(diǎn)。5B6B編碼是將5B碼組按照一定的規(guī)律,編成6B碼組后輸出;而譯碼則是將傳輸?shù)浇邮斩藱C(jī)的6B數(shù)據(jù)碼流,譯成5B數(shù)據(jù)碼流輸出,二者互為逆過(guò)程。5B6B編碼和譯碼有許多種設(shè)計(jì)方法,本

2、文采用的是基于碼表的編譯碼電路設(shè)計(jì),結(jié)合Quartus II軟件寫(xiě)出編譯碼過(guò)程從具有相應(yīng)功能的程序,封裝成模塊,最后集成完整的編譯碼電路,并且對(duì)每個(gè)模塊及編譯碼電路進(jìn)行波形仿真,檢驗(yàn)設(shè)計(jì)的正確性。關(guān)鍵字:5B6B線路碼、編譯碼、分頻、封裝2目 錄前 言4一、光纖通信系統(tǒng)51.1 光纖通信系統(tǒng)基本構(gòu)成51.2數(shù)字光纖通信系統(tǒng)61.3光纖通信技術(shù)的特點(diǎn)6二、 光纖通信中的線路編碼72.1線路擾碼72.2 mBnB碼72.3插入碼7三、 設(shè)計(jì)平臺(tái)(Quartus II 軟件)83.1 Quartus II軟件介紹83.2 Quartus II系統(tǒng)開(kāi)發(fā)流程8四、系統(tǒng)設(shè)計(jì)104.1 5B6B碼表設(shè)計(jì)10

3、4.2 編碼電路設(shè)計(jì)10 4.2.1 編碼原理10 4.2.2 各模塊的設(shè)計(jì)及仿真11 4.2.3 編碼電路設(shè)計(jì)與仿真134.3 譯碼電路設(shè)計(jì)15 4.3.1 譯碼原理15 4.3.2 各模塊的設(shè)計(jì)及仿真15 4.2.3 譯碼電路設(shè)計(jì)與仿真18總 結(jié)20參考文獻(xiàn)21附錄:編譯碼各模塊的程序22前 言mBnB碼是把輸入的二進(jìn)制原始碼流進(jìn)行分組,每組有m個(gè)二進(jìn)制碼,記為mB,稱為一個(gè)碼字,然后把一個(gè)碼字變換為n個(gè)二進(jìn)制碼,記為nB,并在同一個(gè)時(shí)隙內(nèi)輸出。這種碼型是把mB變換為nB,所以稱為mBnB碼,其中m和n都是正整數(shù), n>m,一般選取n=m+1。mBnB碼有1B2B、3B4B、5B6B

4、、 8B9B、 17B18B等等。5B6B碼是mBnB線路碼型中最常見(jiàn)的一種,具有最大相同碼元連碼數(shù)少、定時(shí)信息豐富、勻衡性好、誤碼監(jiān)視、同步性好等優(yōu)點(diǎn)。5B6B編碼是將自編數(shù)據(jù)按照一定的規(guī)律,編成6B碼組后輸出;而譯碼則是將傳輸?shù)浇邮斩藱C(jī)的6B數(shù)據(jù)碼流,譯成5B數(shù)據(jù)碼流輸出,二者互為逆過(guò)程。5B6B編碼和譯碼有許多種設(shè)計(jì)方法,其中主要有基于集成電路工藝ASIC(專用集成電路)和基于碼表設(shè)計(jì)。本文運(yùn)用Quartus II軟件,采用基于碼表設(shè)計(jì)的方法對(duì)5B6B碼進(jìn)行編碼和譯碼。其中編碼由分頻模塊、編碼模塊、五位串轉(zhuǎn)換模塊及六位并串轉(zhuǎn)換模塊構(gòu)成;譯碼部分由譯碼模塊、分頻模塊、六位串及五位并轉(zhuǎn)換模塊

5、構(gòu)成。本文著重介紹了編碼譯碼的工作原理以及各模塊的封裝,并對(duì)程序和電路編譯碼進(jìn)行仿真,最終得出正確的結(jié)果。以實(shí)現(xiàn)5B6B線路碼的編碼和譯碼在理論上的功能。一、光纖通信系統(tǒng)隨著科學(xué)技術(shù)發(fā)展,世界正走向信息時(shí)代,人們需要更寬帶、更高速的大容量通信方式,并要求這種通信方式的傳輸成本不斷降低。光纖通信則是實(shí)現(xiàn)這一目標(biāo)的最理想手段,成為構(gòu)筑信息化時(shí)代信息傳輸網(wǎng)的主要通信方式。光纜是通信網(wǎng)絡(luò)的主流傳輸媒介,這是由光纖本身的良好特性所決定的。光纖通信是以激光為信息載體,以光纖為傳輸介質(zhì)的通信方式。1.1 光纖通信系統(tǒng)基本構(gòu)成最基本的光纖通信系統(tǒng)由數(shù)據(jù)源、光發(fā)送端、光學(xué)信道和光接收端組成。其中數(shù)據(jù)源包括所有的

6、信號(hào)源,它們是話音、圖象、數(shù)據(jù)等業(yè)務(wù)經(jīng)過(guò)信源編碼所得到的信號(hào);光發(fā)送端和負(fù)責(zé)將信號(hào)轉(zhuǎn)變成適合于在光纖上傳輸?shù)墓庑盘?hào);光學(xué)信道包括最基本的光纖,還有中繼放大器EDFA等;而光學(xué)接收端則接收光信號(hào),并從中提取信息,然后轉(zhuǎn)變成電信號(hào),最后得到對(duì)應(yīng)的話音、圖象、數(shù)據(jù)等信息。圖1-1 光纖通信系統(tǒng)的組成(1) 光發(fā)信機(jī)光發(fā)信機(jī)是實(shí)現(xiàn)電/光轉(zhuǎn)換的光端機(jī)。它由光源、驅(qū)動(dòng)器和調(diào)制器組成。其功能是將來(lái)自于電端機(jī)的電信號(hào)對(duì)光源發(fā)出的光波進(jìn)行調(diào)制,成為已調(diào)光波,然后再將已調(diào)的光信號(hào)耦合到光纖或光纜去傳輸。電端機(jī)就是常規(guī)的電子通信設(shè)備。 (2) 光收信機(jī)光收信機(jī)是實(shí)現(xiàn)光/電轉(zhuǎn)換的光端機(jī)。 它由光檢測(cè)器和光放大器組成。

7、其功能是將光纖或光纜傳輸來(lái)的光信號(hào),經(jīng)光檢測(cè)器轉(zhuǎn)變?yōu)殡娦盘?hào),然后,再將這微弱的電信號(hào)經(jīng)放大電路放大到足夠的電平,送到接收端的電端汲去。(3) 光纖或光纜光纖或光纜構(gòu)成光的傳輸通路。其功能是將發(fā)信端發(fā)出的已調(diào)光信號(hào),經(jīng)過(guò)光纖或光纜的遠(yuǎn)距離傳輸后,耦合到收信端的光檢測(cè)器上去,完成傳送信息任務(wù)。 (4)中繼器中繼器由光檢測(cè)器、光源和判決再生電路組成。它的作用有兩個(gè):一個(gè)是補(bǔ)償光信號(hào)在光纖中傳輸時(shí)受到的衰減;另一個(gè)是對(duì)波形失真的脈沖進(jìn)行整形。(5)光纖連接器、耦合器等無(wú)源器件由于光纖或光纜的長(zhǎng)度受光纖拉制工藝和光纜施工條件的限制,且光纖的拉制長(zhǎng)度也是有限度的(如1Km)。因此一條光纖線路可能存在多根光

8、纖相連接的問(wèn)題。于是,光纖間的連接、光纖與光端機(jī)的連接及耦合,對(duì)光纖連接器、耦合器等無(wú)源器件的使用是必不可少的。1.2數(shù)字光纖通信系統(tǒng)光纖傳輸系統(tǒng)是數(shù)字通信的理想通道。與模擬通信相比較,數(shù)字通信有很多的優(yōu)點(diǎn),靈敏度高、傳輸質(zhì)量好。因此,大容量長(zhǎng)距離的光纖通信系統(tǒng)大多采用數(shù)字傳輸方式。在光纖通信系統(tǒng)中,光纖中傳輸?shù)氖嵌M(jìn)制光脈沖"0"碼和"1"碼,它由二進(jìn)制數(shù)字信號(hào)對(duì)光源進(jìn)行通斷調(diào)制而產(chǎn)生。而數(shù)字信號(hào)是對(duì)連續(xù)變化的模擬信號(hào)進(jìn)行抽樣、量化和編碼產(chǎn)生的,稱為PCM,即脈沖編碼調(diào)制。這種電的數(shù)字信號(hào)稱為數(shù)字基帶信號(hào),由PCM電端機(jī)產(chǎn)生。1.3光纖通信技術(shù)的特點(diǎn)

9、(1)頻帶極寬,通信容量大。光纖比銅線或電纜有大得多的傳輸帶寬,光纖通信系統(tǒng)的于光源的調(diào)制特性、調(diào)制方式和光纖的色散特性。 (2)損耗低,中繼距離長(zhǎng)。目前,商品石英光纖損耗可低于020dB/km,這樣的傳輸損耗比其它任何傳輸介質(zhì)的損耗都低;若將來(lái)采用非石英系統(tǒng)極低損耗光纖,其理論分析損耗可下降的更低。這意味著通過(guò)光纖通信系統(tǒng)可以跨越更大的無(wú)中繼距離;對(duì)于一個(gè)長(zhǎng)途傳輸線路,由于中繼站數(shù)目的減少,系統(tǒng)成本和復(fù)雜性可大大降低。 (3)抗電磁干擾能力強(qiáng)。光纖是由石英制成的絕緣體材料,不易被腐蝕,而且絕緣性好。 (4)無(wú)串音干擾,保密性好。在電波傳輸?shù)倪^(guò)程中,電磁波的泄漏會(huì)造成各傳輸通道的串?dāng)_,而容易被

10、竊聽(tīng),保密性差。光波在光纖中傳輸,因?yàn)楣庑盘?hào)被完善地限制在光波導(dǎo)結(jié)構(gòu)中,而任何泄漏的射線都被環(huán)繞光纖的不透明包皮所吸收,即使在轉(zhuǎn)彎處,漏出的光波也十分微弱,即使光纜內(nèi)光纖總數(shù)很多,相鄰信道也不會(huì)出現(xiàn)串音干擾,同時(shí)在光纜外面,也無(wú)法竊聽(tīng)到光纖中傳輸?shù)男畔ⅰ3陨咸攸c(diǎn)之外,還有光纖徑細(xì)、重量輕、柔軟、易于鋪設(shè);光纖的原材料資源豐富,成本低;溫度穩(wěn)定性好、壽命長(zhǎng)。由于光纖通信具有以上的獨(dú)特優(yōu)點(diǎn),其不僅可以應(yīng)用在通信的主干線路中,還可以應(yīng)用在電力通信控制系統(tǒng)中,進(jìn)行工業(yè)監(jiān)測(cè)、控制,而且在軍事領(lǐng)域的用途也越來(lái)越為廣泛。二、 光纖通信中的線路編碼信號(hào)在光纖中傳輸時(shí),需將簡(jiǎn)單的二進(jìn)制信號(hào)變換成適合光纖傳輸系

11、統(tǒng)的光線路碼型。而線路碼型有多種,在選擇線路碼時(shí)不僅要考慮光纖的傳輸特性,還要考慮光電器件的特性。在光纖通信系統(tǒng)中,常用的線路碼型有:擾碼,mBnB碼以及插入碼。2.1線路擾碼線路擾碼就是對(duì)輸入的二進(jìn)制序列進(jìn)行轉(zhuǎn)換,這樣這個(gè)二進(jìn)制序列就會(huì)接近隨機(jī)的序列。然后再接收端再將擾碼解擾還原,因此保證了信息傳輸?shù)耐该鞫?。在系統(tǒng)光發(fā)射機(jī)的調(diào)制器前面可以增加一個(gè)擾碼器,這樣做的目的是保證傳輸?shù)耐该餍?,以此?lái)將原始的二進(jìn)制碼序列進(jìn)行一些簡(jiǎn)單的變換,讓其基本上接近于隨機(jī)序列。如:擾碼前序列:1100000011000擾碼后序列:1101110110011m序列可以用來(lái)實(shí)現(xiàn)擾碼器,在發(fā)射端產(chǎn)生m序列,然后將m序列

12、與信息序列做模二加的運(yùn)算,這樣輸出來(lái)的就是經(jīng)過(guò)加擾的隨機(jī)序列了。解擾器在使用相同的擾碼序列與接收到的序列做模二加運(yùn)算,用來(lái)恢復(fù)原始的信息。擾碼也有它的一些缺點(diǎn):不能控制連續(xù)碼的出現(xiàn);不能在線誤碼檢測(cè);不能夠解決隨機(jī)波動(dòng)。2.2 mBnB碼該碼型又稱為塊碼、分組碼以及字母平衡型碼等等。在一般情況下都是n>m。將輸入的二進(jìn)制碼每mB分成一組作為一個(gè)碼字,將輸入的碼字在相同的時(shí)間間隔內(nèi),根據(jù)一定的編碼規(guī)則,將其變換成nB一組的新碼字,最后以不歸零或歸零格式傳輸這些新碼流,此新碼就是mBmB碼。m,n都為正整數(shù),且多數(shù)用n=m+1這種形式,經(jīng)過(guò)一些變換,線路碼速率就會(huì)相比原二進(jìn)制碼率提高了n/m

13、倍。常見(jiàn)的有1B2B,2B3B,3B4B,4B5B,5B6B碼,8B9B等,其中5B6B碼在高次群光纖通信系統(tǒng)中用得比較頻繁。mBnB碼的編碼原理以最簡(jiǎn)單的1B2B碼(曼徹斯特碼)即將原碼中的“0”碼變換為“01”碼,將“1”碼變成“10”碼。2.3插入碼插入碼是將原始輸入的二進(jìn)制碼按照每m比特一組進(jìn)行分組操作,然后在每組碼的后面插入一個(gè)碼字,組成一組新的線路碼型長(zhǎng)度為m+1,插入碼根據(jù)其插入碼字的規(guī)律不同可以分為以下幾種碼型:mB1C碼、mB1H碼以及mB1P碼。三、 設(shè)計(jì)平臺(tái)(Quartus II 軟件)圖3-1 Quartus II 軟件運(yùn)行窗口3.1 Quartus II軟件介紹Qua

14、rtus II 是Altera公司的綜合性PLD/FPGA開(kāi)發(fā)軟件該軟件。該界面友好,使用便捷,功能強(qiáng)大,是一個(gè)完全集成化的可編程邏輯設(shè)計(jì)環(huán)境,是先進(jìn)的EDA工具軟件。它具有開(kāi)放性、與結(jié)構(gòu)無(wú)關(guān)、多平臺(tái)、完全集成化、豐富的設(shè)計(jì)庫(kù)、模塊化工具等特點(diǎn),支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。Quartus II是適合單芯片可編程系統(tǒng)(SOPC)的最全面的設(shè)計(jì)環(huán)境。Q

15、uartus II軟件所支持的器件有很多,如max3000A、max 7000B、max 7000S、max7000AE、max2、mercury、cyclone、cyclone 2、stratix2、stratix GX、flex6000、flex10K、flex10KA以及flex0KE等。該軟件包的編程器可以提供功能強(qiáng)大的設(shè)計(jì)處理,因?yàn)樗钦麄€(gè)系統(tǒng)的主要部分,設(shè)計(jì)者可以通過(guò)增加一定的約束條件來(lái)提高芯片的利用率。Quautus2軟件有它自帶的仿真器與綜合器,這些可以用來(lái)完成從設(shè)計(jì)輸入到硬件配置的整個(gè)設(shè)計(jì)過(guò)程。它可以支持altera的ip核,并且含有一些宏功能模塊庫(kù)。3.2 Quartus

16、II系統(tǒng)開(kāi)發(fā)流程(1)創(chuàng)建工程文件在Quartus II軟件上創(chuàng)建一個(gè)新的工程。所謂工程就是你的設(shè)計(jì)的描述、設(shè)置、數(shù)據(jù)以及輸出的整個(gè)集合,此軟件會(huì)將這些存儲(chǔ)在不同類型文件集中放在同一個(gè)文件夾下,所以要?jiǎng)?chuàng)建一個(gè)工程。創(chuàng)建一個(gè)新的工程步驟如下:1 打開(kāi)Quartus II軟件,點(diǎn)擊“File”,選擇“New Project Wizard”;2 在新彈出的窗口中分別鍵入新工程的工作路徑、項(xiàng)目名稱以及實(shí)體名稱,且項(xiàng)目名稱和實(shí)體名稱要一致;3 用鼠標(biāo)點(diǎn)擊下方的“finish”按鈕即可完成對(duì)新工程的創(chuàng)建。(2)設(shè)計(jì)輸入在設(shè)計(jì)輸入之前還有重要的一步是電路的設(shè)計(jì)部分,在整個(gè)系統(tǒng)的設(shè)計(jì)之前首先必須進(jìn)行的是方案的

17、論證、系統(tǒng)的設(shè)計(jì)以及FPGA芯片的選擇等等。一般來(lái)說(shuō)采用的設(shè)計(jì)方案都是自頂向下的,即將整個(gè)系統(tǒng)劃分為若干個(gè)小模塊,然后再每個(gè)模塊劃分為下一個(gè)層次的小模塊,直到直接可以調(diào)用元件庫(kù)里的元件。(3)設(shè)計(jì)項(xiàng)目編譯 打開(kāi)“Processing”菜單,點(diǎn)擊“Start Compilation”即可執(zhí)行項(xiàng)目的編譯功能,編譯器將運(yùn)行預(yù)先指定的各個(gè)模塊的功能。編譯成功后,編譯器將會(huì)產(chǎn)生相應(yīng)的輸出文件。如果有錯(cuò)誤出現(xiàn),編譯器將停止編譯,并會(huì)相應(yīng)的給出錯(cuò)誤的信息欄,用鼠標(biāo)點(diǎn)擊“error”的信息條,一般下可以指出錯(cuò)誤的地方,以便修改,直至所有的錯(cuò)誤均消除后,系統(tǒng)就會(huì)彈出編譯成功的窗口。(4)項(xiàng)目的仿真仿真

18、檢查綜合結(jié)果是否與原先要設(shè)計(jì)的項(xiàng)目功能是否一致。項(xiàng)目的編譯成功,需要做的就是對(duì)每個(gè)模塊的功能進(jìn)行仿真測(cè)試,來(lái)查看設(shè)計(jì)的結(jié)果是否滿足原先設(shè)計(jì)的基本要求。仿真分為功能仿真、時(shí)序仿真以及波形仿真。功能仿真僅僅測(cè)試設(shè)計(jì)的邏輯功能;而時(shí)序仿真首先要測(cè)試邏輯的功能,而且還要測(cè)試有關(guān)設(shè)計(jì)的一些目標(biāo)器件;波形仿真是在波形編輯器中將設(shè)計(jì)的邏輯功能用波形圖的形式顯示,通過(guò)查看波形圖來(lái)檢查設(shè)計(jì)的邏輯功能是否符合設(shè)計(jì)的要求。波形仿真的步驟包括新建波形文件、設(shè)置波形仿真器、插入仿真節(jié)點(diǎn)、編輯輸入波形、運(yùn)行仿真器、檢查輸出波形是否符合設(shè)計(jì)要求等。四、系統(tǒng)設(shè)計(jì)4.1 5B6B碼表設(shè)計(jì)碼表設(shè)計(jì)的原則是:(1)“0”碼和“1”

19、碼出現(xiàn)的概率相等;(2)減小最大同符號(hào)連續(xù)數(shù)的數(shù)目;(3)選取游程差值D值小的碼組。為了達(dá)到以上設(shè)計(jì)目標(biāo),引入模式概念。6B碼有模式1和模式2。定義模式1為正,模式2為負(fù);模式1和模式2交替出現(xiàn)。設(shè)計(jì)的碼表為:表4-1 5B6B碼表4.2 編碼電路設(shè)計(jì)4.2.1 編碼原理5B6B編碼電路模型如下圖,包括時(shí)鐘控制模塊、串并轉(zhuǎn)換模塊、存儲(chǔ)器模塊、并串轉(zhuǎn)換模塊等組成。圖4-1 編碼部分系統(tǒng)框圖編碼電路原理是一個(gè)本地振蕩器產(chǎn)生一個(gè)標(biāo)準(zhǔn)時(shí)鐘,有頻變電路產(chǎn)生的時(shí)鐘用于編碼電路工作的輸出電路的時(shí)鐘,他們之間的關(guān)系是緩沖電路接收5位輸入碼存儲(chǔ)為一個(gè)編碼器,這個(gè)編碼器電路中,根據(jù)5B6B碼表輸出6位代碼。再將這

20、6位碼在時(shí)鐘脈沖的驅(qū)動(dòng)下在進(jìn)行并串轉(zhuǎn)換來(lái)輸出。4.2.2 各模塊的設(shè)計(jì)及仿真(1)時(shí)鐘控制模塊(分頻模塊)該模塊主要是實(shí)現(xiàn)一個(gè)時(shí)鐘分頻的功能。本設(shè)計(jì)需要用到一個(gè)五分頻和一個(gè)六分頻分別為后面五位串并轉(zhuǎn)換模塊和六位并串轉(zhuǎn)換模塊提供時(shí)鐘,通過(guò)Quartus II封裝后的圖形如下:27 圖4-2 五分頻器模塊 圖4-3 六分頻器模塊設(shè)置好相應(yīng)的輸入后分頻模塊的仿真波形如下:圖4-4 五分頻模塊的仿真圖4-5 六分頻模塊的仿真 圖中clk為系統(tǒng)時(shí)鐘輸入,clk5 為五分頻后的時(shí)鐘輸出,clk6為六分頻后的時(shí)鐘輸出。(2)串并轉(zhuǎn)換模塊該模塊主要實(shí)現(xiàn)串行數(shù)據(jù)輸入轉(zhuǎn)換為并行數(shù)據(jù)輸出,輸入的為5位的串行數(shù)據(jù),輸

21、出的為5位并行的數(shù)據(jù),通過(guò)Quartus II封裝后的圖形如下圖: 圖4-6 5位串并轉(zhuǎn)換模塊設(shè)置好相應(yīng)的輸入和輸出后串并轉(zhuǎn)換模塊仿真波形如下:圖4-7 5位串并轉(zhuǎn)換模塊的仿真圖中圖中clk為系統(tǒng)時(shí)鐘輸入,clk5為五分頻后的時(shí)鐘輸入,shift_in為串行的5B碼組輸入,A為并行的5B碼組輸出。任選一個(gè)碼組10110,從仿真結(jié)果中可以看出,在第五個(gè)時(shí)鐘周期結(jié)束后并行輸出的碼組為10110,驗(yàn)證了仿真的正確性。(3)編碼模塊該模塊主要實(shí)現(xiàn)5B數(shù)據(jù)轉(zhuǎn)換為6B數(shù)據(jù)的一個(gè)功能,其實(shí)質(zhì)的事一個(gè)PROM,通過(guò)程序把5B6B碼表存儲(chǔ)起來(lái),然后如果輸入一個(gè)5B的數(shù)據(jù),通過(guò)查表后輸出一個(gè)對(duì)應(yīng)的6B數(shù)據(jù),從而實(shí)

22、現(xiàn)5B轉(zhuǎn)6B的功能,通過(guò)Quartus II封裝后的圖形如下圖:圖4-8 編碼模塊設(shè)置好相應(yīng)的輸入和輸出后六分頻器的仿真波形如下:圖4-9 存儲(chǔ)模塊(編碼模塊)的仿真 圖中clk為系統(tǒng)時(shí)鐘輸入;F為模式選擇位,0表示選擇模式1,1表示選擇模式2;Y位并行的5B碼組輸入,Q為并行的6B碼輸出。通過(guò)Y和Q的碼組可以發(fā)現(xiàn),當(dāng)輸入00000時(shí)輸出110010,當(dāng)輸入00001時(shí)輸出100001,只不過(guò)延遲了半個(gè)時(shí)鐘周期。與5B6B編碼表中進(jìn)行對(duì)比可以證明仿真結(jié)果是正確的。(4)并串轉(zhuǎn)換模塊該模塊主要實(shí)現(xiàn)并行數(shù)據(jù)輸入轉(zhuǎn)換為串行數(shù)據(jù)輸出,輸入的為6位并行的數(shù)據(jù),輸出的為6位串行數(shù)據(jù),通過(guò)Quartus I

23、I封裝后的圖形如下圖:圖4-10 6位并串轉(zhuǎn)換模塊設(shè)置好相應(yīng)的輸入和輸出后并串裝換模塊的仿真波形如下:圖4-11 6位并串轉(zhuǎn)換模塊的仿真圖中clk0表示系統(tǒng)時(shí)鐘6分頻后的時(shí)鐘輸入,clk為系統(tǒng)時(shí)鐘輸入,Q為并行的6B碼組輸入,shift_out為串行的6B碼組輸出。選用任意一個(gè)碼組100100測(cè)試,shift_out第六個(gè)周期后開(kāi)始輸出的串行碼為100100,說(shuō)明了仿真的正確性。4.2.3 編碼電路設(shè)計(jì)與仿真完整的電路模塊采用自頂向下的設(shè)計(jì)方法,在頂層模塊中調(diào)用各個(gè)子模塊完成系統(tǒng)控制功能。具體頂層設(shè)計(jì)電路如下:圖4-12 編碼完整電路設(shè)置好相應(yīng)的輸入和輸出后并串裝換模塊的仿真波形如下:圖4-1

24、3 編碼電路仿真波形圖clk為系統(tǒng)時(shí)鐘輸入,clk5為5分頻器分頻后的輸出,clk6為6分頻器分頻后的輸出,F(xiàn)為模式選擇位, shift_in為串行的5B碼組輸入,shift_out為串行的6B碼組輸出。A、B分別為并行的5B、6B碼組。任選一個(gè)碼組01100作為串行碼組輸入,當(dāng)F為1時(shí),可以看到在一個(gè)clk6周期開(kāi)始串行輸出的6B碼組為101100,通過(guò)碼表對(duì)比可以知道,設(shè)計(jì)與仿真都是正確的,故整個(gè)系統(tǒng)完全實(shí)現(xiàn)了所需的功能。4.3 譯碼電路設(shè)計(jì)4.3.1 譯碼原理圖4-14 譯碼部分系統(tǒng)框圖5B6B譯碼是編碼過(guò)程的逆過(guò)程,也就是把6B碼流按照算法規(guī)則譯成5B碼流。譯碼的輸入是6B碼流,譯碼時(shí)

25、,把送來(lái)的已變換的6B信號(hào)碼流,每6比特并聯(lián)為一組,作為PROM的地址,然后讀出5B碼,再經(jīng)過(guò)并-串變換還原為原來(lái)的信號(hào)碼流。在5B6B碼中,5位字符共有32種不同的組合碼字。而6位字符共有64種不同組合的碼字。4.3.2 各模塊的設(shè)計(jì)及仿真(1)時(shí)鐘控制模塊(分頻模塊)該模塊主要是實(shí)現(xiàn)一個(gè)時(shí)鐘分頻的功能。本設(shè)計(jì)需要用到一個(gè)五分頻和一個(gè)六分頻,通過(guò)Quartus II封裝后的圖形以及仿真波形與編碼模塊的分頻模塊完全相同,不同的是五分頻模塊為五位并串轉(zhuǎn)換模塊提供時(shí)鐘,而六分頻為六位串并轉(zhuǎn)換模塊提供時(shí)鐘。(2)六位串并轉(zhuǎn)換模塊該模塊主要實(shí)現(xiàn)串行數(shù)據(jù)輸入轉(zhuǎn)換為并行數(shù)據(jù)輸出,輸入的為6位的串行數(shù)據(jù),輸

26、出的為6位并行的數(shù)據(jù),通過(guò)Quartus II封裝后的圖形如下圖:圖4-15 6位串并轉(zhuǎn)換模塊設(shè)置好相應(yīng)的輸入和輸出后并串裝換模塊的仿真波形如下:圖4-16 6位串并轉(zhuǎn)換模塊的仿真圖中圖中clk為系統(tǒng)時(shí)鐘輸入,clk6為六分頻后的時(shí)鐘輸入,shift_in為串行的6B碼組輸入,A為并行的6B碼組輸出。任選一個(gè)碼組100110,從仿真結(jié)果中可以看出,在第六個(gè)時(shí)鐘周期結(jié)束后并行輸出的碼組為100110,驗(yàn)證了仿真的正確性。(3)譯碼部分該模塊主要實(shí)現(xiàn)6B數(shù)據(jù)轉(zhuǎn)換為5B數(shù)據(jù)的一個(gè)功能,其實(shí)質(zhì)的事一個(gè)PROM,通過(guò)程序把5B6B碼表存儲(chǔ)起來(lái),然后如果輸入一個(gè)6B的數(shù)據(jù),通過(guò)查表后輸出一個(gè)對(duì)應(yīng)的5B數(shù)據(jù)

27、,從而實(shí)現(xiàn)6B轉(zhuǎn)5B的功能,通過(guò)Quartus II封裝后的圖形如下圖:圖4-17 譯碼模塊設(shè)置好相應(yīng)的輸入和輸出后并串裝換模塊的仿真波形如下:圖4-18 譯碼模塊仿真圖中clk5為系統(tǒng)時(shí)鐘輸入; Y位并行的5B碼組輸入,Q為并行的6B碼輸出。通過(guò)Y和Q的碼組可以發(fā)現(xiàn),當(dāng)輸入011010時(shí)輸出11010,只不過(guò)延遲了半個(gè)時(shí)鐘周期。與5B6B編碼表中進(jìn)行對(duì)比可以證明仿真結(jié)果是正確的。(4)五位并串轉(zhuǎn)換電路該模塊主要實(shí)現(xiàn)并行數(shù)據(jù)輸入轉(zhuǎn)換為串行數(shù)據(jù)輸出,輸入的為5位并行的數(shù)據(jù),輸出的為5位串行數(shù)據(jù),通過(guò)Quartus II封裝后的圖形如下圖:圖4-19 5位并串轉(zhuǎn)換模塊 圖4-20 5位并串轉(zhuǎn)換模塊

28、仿真圖中clk0表示系統(tǒng)時(shí)鐘5分頻后的時(shí)鐘輸入,clk1為系統(tǒng)時(shí)鐘輸入,Q為并行的5B碼組輸入,shift_out為串行的5B碼組輸出。選用任意一個(gè)碼組01101測(cè)試,shift_out第五個(gè)周期后開(kāi)始輸出的串行碼為01101,說(shuō)明了仿真的正確性。4.2.3 譯碼電路設(shè)計(jì)與仿真圖4-21 譯碼完整電路圖4-22 譯碼電路仿真波形圖clk為系統(tǒng)時(shí)鐘輸入,clk5為5分頻器分頻后的輸出,clk6為6分頻器分頻后的輸出, shift_in為串行的6B碼組輸入,shift_out為串行的5B碼組輸出。任選一個(gè)碼組100110作為串行碼組輸入,可以看到在一個(gè)clk5周期后串行輸出的6B碼組為00110,

29、通過(guò)碼表對(duì)比可以知道,設(shè)計(jì)與仿真都是正確的,故整個(gè)系統(tǒng)完全實(shí)現(xiàn)了所需的功能???結(jié)本次通信綜合訓(xùn)練通過(guò)對(duì)5B6B線路碼的編譯碼工作原理進(jìn)行分析,設(shè)計(jì)出相應(yīng)的電路,實(shí)現(xiàn)5B6B線路碼的編碼與譯碼功能。我的設(shè)計(jì)是通過(guò)Quartus II軟件實(shí)現(xiàn)的,通過(guò)對(duì)設(shè)計(jì)所需系統(tǒng)的原理分析,將整個(gè)系統(tǒng)模塊化。然后寫(xiě)出完成各部分功能對(duì)應(yīng)的VHDL程序,再將這些程序封裝到一個(gè)模塊中,像編碼部分的分頻模塊、串并轉(zhuǎn)換模塊、編碼模塊、并串轉(zhuǎn)換模塊等。最后調(diào)用這些子模塊組成完整的電路,實(shí)現(xiàn)設(shè)計(jì)所需的編碼譯碼功能。在整個(gè)設(shè)計(jì)過(guò)程中,每個(gè)模塊都要進(jìn)行仿真驗(yàn)證,確保電路設(shè)計(jì)功能的正確性。在本次通信綜合訓(xùn)練中遇到不少功能實(shí)現(xiàn)的問(wèn)題

30、,尤其是對(duì)實(shí)現(xiàn)編譯碼功能模塊的VHDL語(yǔ)言的硬件電路實(shí)現(xiàn)的描述。從中深入體會(huì)到VerilogHDL語(yǔ)言軟件語(yǔ)法的靈活性和Quartus II強(qiáng)大的功能仿真能力。在這次綜合訓(xùn)練過(guò)程中,屢屢碰見(jiàn)一些問(wèn)題,在解決這些問(wèn)題的過(guò)程中,不斷加強(qiáng)了我對(duì)光纖通信系統(tǒng)以及線路碼型的理解。對(duì)于一些自己不清楚,不明白但平時(shí)又很難發(fā)現(xiàn)的知識(shí)點(diǎn)有了一次全面的鞏固與復(fù)習(xí)。本次通信訓(xùn)練讓我深深的感覺(jué)到理論與實(shí)踐相結(jié)合的重要性,為以后走向工作崗位從事通信設(shè)計(jì)提供了鍛煉的機(jī)會(huì),打下了堅(jiān)實(shí)的理論基礎(chǔ)和豐富了設(shè)計(jì)思想。在三周的通信綜合訓(xùn)練過(guò)程中,指導(dǎo)老師時(shí)時(shí)在我們身旁幫助我們, 教會(huì)了我很多東西,謝謝我們的指導(dǎo)老師對(duì)我們的幫助,同

31、時(shí)也感謝同組同學(xué)的協(xié)作配合。參考文獻(xiàn)1 光纖通信系統(tǒng),邱昆,電子科技大學(xué)出版社2 光纖通信, 劉增基;西安電子科技大學(xué)出版社3 陳耀和.VHDL語(yǔ)言設(shè)計(jì)技術(shù)M.北京:電子工業(yè)出版社,2004. 4 閻石.數(shù)字電子技術(shù)第四版M.高等教育出版社,1998.5 謝琳.一種典型的4B5B編解碼電路,光通信技術(shù)J.光通信技術(shù),1997 (2 ):130-135.6孫嬌燕.5B6B碼編解碼方案的分析與改進(jìn)J.光通信技術(shù),1994,4:282-286.75B6B編解碼的VHDL仿真實(shí)現(xiàn) 楊云 鄧元慶8VHDL硬件描述語(yǔ)言 辛春燕 國(guó)防工業(yè)出版社9 楊祥林. 光纖通信系統(tǒng)M. 北京:國(guó)防工業(yè)出版社,2000.

32、1.10 孟慶海,張洲. VHDL基礎(chǔ)及經(jīng)典實(shí)例開(kāi)發(fā)M. 西安交通大學(xué)出版社,2008.4.附錄:編譯碼各模塊的程序Ø 五分頻模塊程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt5 is port(clk:in std_logic; clk5:out std_logic);end;architecture exam of CNT5 is signal q:integer range 0 to 4; signal temp: std_logic;begin p

33、rocess(clk) begin if clk'event and clk='1' then if q=4 then q<=0; temp<='1' else q<=q+1;temp<='0' end if; end if; end process; clk5<=temp; end exam;Ø 六分頻模塊程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT6 isport (c

34、lk: in std_logic;clk6:out std_logic);end;architecture exam of CNT6 is signal q:std_logic_vector(2 downto 0); signal temp:std_logic;begin process(clk) beginif clk'event and clk='1'thenif q="101" then q<="000"temp<='1'else q<=q+1;temp<='0'end

35、 if;end if;end process;clk6<=temp;end exam;Ø 五位串并轉(zhuǎn)換模塊程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SER2PAR5to5 is port ( clk: in std_logic; clk5: in std_logic; shift_in:in std_logic; A:out std_logic_vector(4 downto 0);end;architecture one of SER2PAR5to5 is

36、 signal q:std_logic_vector(4 downto 0);beginp1:process(clk)beginif clk'event and clk='1'then q<=q(3 downto 0)&shift_in;end if;end process p1;p2:process(clk5)beginif clk5'event and clk5='1'then A<=q;end if;end process p2;end one;Ø 編碼模塊程序library ieee;use ieee.std

37、_logic_1164.all;use ieee.std_logic_arith.all;entity prom5_6 isport ( Y: in std_logic_vector(4 downto 0); clk,F:in std_logic;Q: out std_logic_vector(5 downto 0);END;architecture one of prom5_6 issignal reg:std_logic_vector(5 downto 0);beginp1:process(Y,F)beginif F='0'then case Y is when "

38、;00000"=>REG<="110010" when "00001"=>REG<="110011" when "00010"=>REG<="110110" when "00011"=>REG<="100011" when "00100"=>REG<="110101" when "00101"=>REG<="

39、;100101" when "00110"=>REG<="100110" when "00111"=>REG<="100111" when "01000"=>REG<="101011" when "01001"=>REG<="101001" when "01010"=>REG<="101010" when "01011

40、"=>REG<="001011" when "01100"=>REG<="101100" when "01101"=>REG<="101101" when "01110"=>REG<="101110" when "01111"=>REG<="001110" when "10000"=>REG<="11000

41、1" when "10001"=>REG<="111001" when "10010"=>REG<="111010" when "10011"=>REG<="010011" when "10100"=>REG<="110100" when "10101"=>REG<="010101" when "10110"

42、=>REG<="010110" when "10111"=>REG<="010111" when "11000"=>REG<="111000" when "11001"=>REG<="011001" when "11010"=>REG<="011010" when "11011"=>REG<="011011"

43、; when "11100"=>REG<="011100" when "11101"=>REG<="011101" when "11110"=>REG<="011110" when "11111"=>REG<="001101" WHEN OTHERS=>REG<=NULL; end case; end if; if F='1' then case Y is wh

44、en "00000"=>REG<="110010" when "00001"=>REG<="100001" when "00010"=>REG<="100010" when "00011"=>REG<="100011" when "00100"=>REG<="100100" when "00101"=>REG&l

45、t;="100101" when "00110"=>REG<="100110" when "00111"=>REG<="000111" when "01000"=>REG<="101000" when "01001"=>REG<="101001" when "01010"=>REG<="101010" when &qu

46、ot;01011"=>REG<="001011" when "01100"=>REG<="101100" when "01101"=>REG<="000101" when "01110"=>REG<="000110" when "01111"=>REG<="001110" when "10000"=>REG<=&qu

47、ot;110001" when "10001"=>REG<="010001" when "10010"=>REG<="010010" when "10011"=>REG<="010011" when "10100"=>REG<="110100" when "10101"=>REG<="010101" when "101

48、10"=>REG<="010110" when "10111"=>REG<="010100" when "11000"=>REG<="011000" when "11001"=>REG<="011001" when "11010"=>REG<="011010" when "11011"=>REG<="001

49、010" when "11100"=>REG<="011100" when "11101"=>REG<="001001" when "11110"=>REG<="001100" when "11111"=>REG<="001101" WHEN OTHERS=>REG<=NULL; end case; end if;end process p1;p2:process(c

50、lk)beginif clk'event and clk='1'thenQ<=reg;end if;end process p2;end one;Ø 六位并串轉(zhuǎn)換模塊library ieee; use ieee.std_logic_1164.all; entity PAR2SER6to6 is port ( clk0,clk1: in std_logic; Q:in std_logic_vector(5 downto 0); shift_out : out std_logic); end PAR2SER6to6; architecture one of

51、PAR2SER6to6 is signal N:INTEGER RANGE 0 TO 5; signal REG:std_logic_vector(5 downto 0); begin p1:process(clk0,Q) begin if clk0'event and clk0='1' then REG<=Q; end if; end process p1; PROCESS(CLK1,REG,N) begin if clk1'event and clk1='1'then if n=5 then n<=0; else N<=n+

52、1; end if; end if; case N is when 0=>shift_out<=REG(5); when 1=>shift_out<=REG(4); when 2=>shift_out<=REG(3); when 3=>shift_out<=REG(2); when 4=>shift_out<=REG(1); when 5=>shift_out<=REG(0); when others=>shift_out<='X' end case; end process; end one;

53、Ø 六位串并轉(zhuǎn)換模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SER2PAR6to6 is port ( clk: in std_logic; clk6: in std_logic; shift_in:in std_logic; A:out std_logic_vector(5 downto 0);end;architecture one of SER2PAR6to6 is signal q:std_logic_vector(5 downto 0);beginp1:p

54、rocess(clk)beginif clk'event and clk='1'then q<=q(4 downto 0)&shift_in;end if;end process p1;p2:process(clk6)beginif clk6'event and clk6='1'then A<=q;end if;end process p2;end one;Ø 譯碼模塊程序library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all

55、; entity PROM6_5 is port ( clk5: in std_logic; Q: in std_logic_vector(5 downto 0); Y : out std_logic_vector(4 downto 0) ); end PROM6_5;architecture one of PROM6_5 issignal REG: std_logic_vector(4 downto 0);begin process(CLK5,Q) begin if clk5'event and clk5='1' then case Q is when "1

56、10010"=>REG<="00000" when "100001"=>REG<="00001" when "100010"=>REG<="00010" when "100011"=>REG<="00011" when "100100"=>REG<="00100" when "100101"=>REG<="

57、00101" when "100110"=>REG<="00110" when "000111"=>REG<="00111" when "101000"=>REG<="01000" when "101001"=>REG<="01001" when "101010"=>REG<="01010" when "001011"=>R

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論