光纖通信系統(tǒng)5B6B碼譯碼的設計與仿真.doc_第1頁
光纖通信系統(tǒng)5B6B碼譯碼的設計與仿真.doc_第2頁
光纖通信系統(tǒng)5B6B碼譯碼的設計與仿真.doc_第3頁
光纖通信系統(tǒng)5B6B碼譯碼的設計與仿真.doc_第4頁
光纖通信系統(tǒng)5B6B碼譯碼的設計與仿真.doc_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

光纖通信系統(tǒng)5b6b碼譯碼的設計與仿真中文摘要在電力系統(tǒng)通信中,數(shù)字光纖通信由于其本身的優(yōu)點得到越來越廣泛的應用。在數(shù)字光纖通信系統(tǒng)中,從電端機傳輸過來的電信號均要結(jié)合數(shù)字光纖通信傳輸?shù)奶攸c經(jīng)過線路碼型的轉(zhuǎn)換。通過線路碼型的轉(zhuǎn)變平衡數(shù)字碼流中的“0”和“1”碼字,從而避免碼流中出現(xiàn)長“0”或者長“1”的現(xiàn)象。在數(shù)字光纖通信系統(tǒng)中比較常用的線路碼型就是mbnb碼型,mbnb線路碼型的最大優(yōu)點是最大相同碼元連碼數(shù)少、定時信息豐富、且有簡單成熟的誤碼監(jiān)測與碼組同步的方法。5b6b碼編碼是將自己編寫的數(shù)據(jù)按照一定的規(guī)律,編成6b碼流后輸出;而譯碼則是將傳輸?shù)浇邮諜C的6b碼流,翻譯成5b碼流后輸出。5b6b碼譯碼的過程是編碼的逆過程,本文主要涉及到的是譯碼的過程,譯碼部分由序列產(chǎn)生模塊、緩沖模塊以及譯碼模塊構(gòu)成。這篇論文重要介紹了光纖通信系統(tǒng)的優(yōu)缺點,組成以及發(fā)展趨勢;常見的線路碼型;quartus2軟件的介紹;5b6b碼的譯碼原理和設計,最后對程序以及電路譯碼的仿真,最終得到正確的結(jié)果。關鍵詞:5b6b碼譯碼;fpga;vhdl 語言;quartus2 軟件;波形仿真5b6b code decoding of optical fiber communication system design and simulation abstractin power system communication, digital optical fiber communication because of its advantages to get itself more and more widely used. in the digital optical fiber communication system, from the electric machine transmission to come over to the electrical signals to combine the characteristics of the digital optical fiber communication transmission via the line type conversion. through balance the digital stream line type 0 and 1 in the code word, thus avoiding stream in 0 or 1 long. are frequently used in the digital optical fiber communication system in the line type is mbnb type, the biggest advantage of this type is the same biggest mbnb line element even less yards, timing, abundant information, simple and mature method of error monitoring and synchronization code group.5b6b code coding is to write your own data, according to certain rules into after 6b stream output; the decoding is 6b stream will be transmitted to the receiver, after translated into 5b stream output. 5b6b code decoding is the process of the inverse process of coding, this paper mainly involves is the process of decoding, decoding part produced by sequence module and buffer module and decoding module. this paper the advantages and disadvantages of important optical fiber communication system are introduced, the composition and development trend; common line type; the introduction of quartus2 software; 5b6b code decoding principle and design, finally, the decoding process and circuit simulation, finally get the correct result. key word:5b6b decoding; fpga; vhdl language; quartus2 software; waveform simulationiii目錄第一章 光纖通信系統(tǒng)11.1光纖通信的優(yōu)點與缺點11.2光纖通信系統(tǒng)的組成21.3光纖通信的發(fā)展趨勢2第二章 光纖通信中的線路編碼42.1線路擾碼42.2mbnb碼52.3插入碼5第三章 quartus2 軟件的簡單介紹63.1 創(chuàng)建工程文件63.2 設計輸入63.3 設計項目編譯73.4 項目的仿真73.5 編程下載7第四章 5b6b碼譯碼94.1 5b6b碼譯碼原理94.2 5b6b碼譯碼的設計104.3 譯碼電路的電路模塊劃分104.3.1序列產(chǎn)生模塊114.3.2譯碼模塊114.4 5b6b碼譯碼的vhdl程序設計124.4.1 序列產(chǎn)生模塊的設計與仿真124.4.2 緩沖電路模塊的設計與仿真154.4.3 譯碼模塊的設計與仿真174.4.4 頂層原理圖的設計與仿真204.5禁碼的還原224.6 5b6b碼譯碼設計與仿真總結(jié)23第五章 結(jié)束語24參考文獻25致謝26附錄1:圖表目錄i附錄2:5b6b碼碼碼表ii附錄3:序列產(chǎn)生模塊make_6b代碼iii附錄4:緩沖電路的程序代碼iv附錄5:譯碼模塊decode_change6bto5b代碼ivii 第一章 光纖通信系統(tǒng) 高錕博士在1966年提出了光纖通信,此后光纖通信的迅速發(fā)展遠遠超出了人們的想象,并且以其獨特的優(yōu)點掀起了通信領域的革命性改革。無論人們是在玩電腦,打電話還是在購物,我們無時無刻都在使用著光纖通信技術,即我們每次通過電子設備進行的遠距離通信,就是在使用光纖通信技術。從光纖通信系統(tǒng)的鏈路上來看,光纖是指光發(fā)射機與光接收機之間的強大鏈路,并且它有著強大的運載信息能力,在目前看來,我們對帶寬日益增長的需求,除了光纖通信系統(tǒng)以外,再也沒有其他的途徑可以滿足我們這一需求了1。1.1光纖通信的優(yōu)點與缺點沒有好的光源以及理想的傳輸煤質(zhì)這兩大因素曾嚴重地阻礙了光纖通信向?qū)嵱没姆较虬l(fā)展,在目前看來,這些因素都得到了非常圓滿的解決。1982年后光纖通信的迅速發(fā)展促進了光纖產(chǎn)業(yè)化應用,因此光纖的需求量呈現(xiàn)了指數(shù)規(guī)律的增長趨勢。光纖在世界各國的各個領域都得到廣泛應用,它也成為了高質(zhì)量的信息傳輸?shù)闹匾侄?。在光纖通信系統(tǒng)中,載波的光波頻率要比電波頻率高,但是對于傳輸介質(zhì)的光纖又比同軸電纜或者波導管的損要低,所以相對于電纜通信來說,光纖通信有以下優(yōu)點: 抗電磁干擾性能很好 泄漏小,保密性能很好 重量比較輕,體積也很小 頻帶很寬,傳輸?shù)娜萘勘容^大 節(jié)約材料,有利于資源合理利用 損耗小,誤碼率小,中繼距離長, 事情都是有利有弊的,光纖通信有很多的優(yōu)點,但是也存在著一些弊端,如下: 抗拉強度比較低。在抗拉強度方面,光纖的抗拉強度要遠大于鋼的。光纖在的生產(chǎn)過程的中,表面會多多少少存在一些微型的裂痕,為了保護光纖可以增加涂覆層,或者增加一些特殊的抗拉元件。 光纖連接比較困難。在光纖的連接上,必須使兩根光纖的纖芯特別細,并且要加上石英,因為石英的熔點很高,這樣才能使得光纖的連接損耗小,所以總體來說,光纖的連接還是很困難的2。1.2光纖通信系統(tǒng)的組成光纖通信系統(tǒng)的組成有光發(fā)射機、光纖和光接收機,每個部分如下圖所示。光發(fā)射機光接收機光纖信道光源光耦合器光檢測器光解調(diào)器光耦合器光調(diào)制器圖1光纖通信系統(tǒng)的組成 光發(fā)射機主要由光源、光耦合器以及光調(diào)制器組成。光發(fā)射機主要負責將電信號轉(zhuǎn)換為光載波并且還要通過光耦合器注入到光纖信道中。光源采用與光纖通信信道兼容的發(fā)光管或者是激光器。光調(diào)制器主要用來完成由光載波到光信號的調(diào)制。光耦合器利用微透鏡,以它最大的效率將光信號注入到光纖信道中。光纖起著光信號通道的作用。光纖將光信號沒有變化的從光發(fā)射機傳送到光接收機中去。光纖的衰減系數(shù)決定了長途光纖通信系統(tǒng)的中繼器或者放大器的間距。光纖通信系統(tǒng)的傳輸距離和傳輸速率主要受光纖的色散系數(shù)來限制。光接收機主要由光解調(diào)器、光檢測器以及光耦合器組成。光接收機主要負責將光纖輸出端接受到的光信號變換成原來的電信號。光解調(diào)器主要是利用直接光強度調(diào)制技術,通過判決電路來辨別光檢測器所產(chǎn)生的電信號幅值是比特“0”或者是“1”,來完成對光的解調(diào)。光檢測器主要是用來實現(xiàn)光電轉(zhuǎn)換的。光耦合器則是將接收到的光信號集合至光檢測器3。1.3光纖通信的發(fā)展趨勢隨著現(xiàn)代科技技術的進步,電信的改革及電信市場對外的全方面開放,再一次地呈現(xiàn)了光纖通信蓬勃發(fā)展的新新局面,以下介紹的就是光纖通信領域中的幾個主要的發(fā)展趨勢:1、向超高速系統(tǒng)的方向發(fā)展網(wǎng)絡容量的需求以及提高傳輸速率一直以來都是在過去20多年的電信發(fā)展史上的一對非常主要的矛盾。每當傳輸速率提高時,傳輸每比特的成本就會下降,所以說高比特率的經(jīng)濟效益會按照一定的指數(shù)規(guī)律來增長。2、 向超大容量wdm系統(tǒng)的演進 波分復用的好處是: 光纖的帶寬資源,可以擴大傳輸?shù)娜萘浚?長距離傳輸時可以通過節(jié)約光纖來降低成本; 引進寬帶新業(yè)務,與電調(diào)制方式以及信號速率無關;3、 實現(xiàn)了光聯(lián)網(wǎng)波分復用系統(tǒng)的基礎是點到點的通信,所以在一定程度上來說,其靈活性以及它的可靠性還不夠完善。光聯(lián)網(wǎng)的好處有: 實現(xiàn)了網(wǎng)絡的透明性; 實現(xiàn)了網(wǎng)絡快速恢復; 實現(xiàn)了網(wǎng)絡的擴展性; 實現(xiàn)了超大容量的光網(wǎng)絡; 實現(xiàn)了網(wǎng)絡的可重塑性,以提高靈活性;4、 新型光纖隨著ip業(yè)務量的增長而增長傳統(tǒng)的g.652單模光纖不能夠適應長距離超高速傳送網(wǎng)絡的發(fā)展需要了,因此需要開發(fā)出新型的光纖。而在此時電信網(wǎng)正向下一代可持續(xù)發(fā)展的方向努力發(fā)展著,新一代的非零色散光纖的設計思路是在1550窗口工作波長區(qū)具有合適的較低色散,可以不需要色散的補償來支持長距離的傳輸4。30第二章 光纖通信中的線路編碼 光纖通信系統(tǒng)中,從輸出端輸出來的都是雙極性碼。然而光源是不可以發(fā)射出負的光脈沖的,所以碼型的變換在這種情況下是非常重要的。在光纖通信系統(tǒng)中,“無光脈沖”表示“0”碼,“有光脈沖”表示“1”碼,它采用的都是二電平碼,這種碼也存在著以下問題: 在隨機的碼流中,極易出現(xiàn)長串連碼,即長連“0”碼和長連“1”碼,這樣會帶來位同步信息的丟失,會造成定時誤差。 不能進行在線的誤碼檢測,而且也適合于長距離通信。 因此在光纖通信系統(tǒng)中線路碼型的傳輸透明性很重要的,具體的要求如下: 為了減小隨機波動,必須限制信號的帶寬,減小高低頻分量,以此來提高靈敏度。 給光接收機足夠的定時信息,保證定時信息足夠豐富。 合理地減小冗余度。線路編碼是數(shù)字光發(fā)射機中的重要組成部分,其主要是將電端機輸出的代碼按照光纖通信系統(tǒng)的基本要求來進行碼型的相關變換。在光纖通信系統(tǒng)中,常用的線路碼型有:擾碼,mbnb碼以及插入碼5。2.1線路擾碼 線路擾碼就是對輸入的二進制序列進行轉(zhuǎn)換,這樣這個二進制序列就會接近隨機的序列。然后再接收端再將擾碼解擾還原,因此保證了信息傳輸?shù)耐该鞫?。在系統(tǒng)光發(fā)射機的調(diào)制器前面可以增加一個擾碼器,這樣做的目的是保證傳輸?shù)耐该餍?,以此來將原始的二進制碼序列進行一些簡單的變換,讓其基本上接近于隨機序列。如:擾碼前序列:1100000011000擾碼后序列:1101110110011 m序列可以用來實現(xiàn)擾碼器,在發(fā)射端產(chǎn)生m序列,然后將m序列與信息序列做模二加的運算,這樣輸出來的就是經(jīng)過加擾的隨機序列了。解擾器在使用相同的擾碼序列與接收到的序列做模二加運算,用來恢復原始的信息。擾碼也有它的一些缺點:不能控制連續(xù)碼的出現(xiàn);不能在線誤碼檢測;不能夠解決隨機波動。2.2mbnb碼該碼型又稱為塊碼、分組碼以及字母平衡型碼等等。在一般情況下都是nm。將輸入的二進制碼每mb分成一組作為一個碼字,將輸入的碼字在相同的時間間隔內(nèi),根據(jù)一定的編碼規(guī)則,將其變換成nb一組的新碼字,最后以不歸零或歸零格式傳輸這些新碼流,此新碼就是mbmb碼。m,n都為正整數(shù),且多數(shù)用n=m+1這種形式,經(jīng)過一些變換,線路碼速率就會相比原二進制碼率提高了n/m倍。常見的有1b2b,2b3b,3b4b,4b5b,5b6b碼,8b9b等,其中5b6b碼在高次群光纖通信系統(tǒng)中用得比較頻繁。mbnb碼的編碼原理以最簡單的1b2b碼(曼徹斯特碼)即將原碼中的“0”碼變換為“01”碼,將“1”碼變成“10”碼6。2.3插入碼 插入碼是將原始輸入的二進制碼按照每m比特一組進行分組操作,然后在每組碼的后面插入一個碼字,組成一組新的線路碼型長度為m+1,插入碼根據(jù)其插入碼字的規(guī)律不同可以分為以下幾種碼型:mb1c碼、mb1h碼以及mb1p碼7。 第三章 quartus2 軟件的簡單介紹quartus2是美國altera公司研制的第四代有關pld的開發(fā)軟件,這款軟件是適合單芯片可編程系統(tǒng)(sopc)的最全面的設計環(huán)境。quartus2軟件所支持的器件有很多,如max3000a、max 7000b、max 7000s、max7000ae、max2、mercury、cyclone、cyclone 2、stratix2、stratix gx、stratix、flex6000、flex10k、flex10ka以及flex0ke等。quartus2軟件包的編程器可以提供功能強大的設計處理,因為它是整個系統(tǒng)的主要部分,設計者可以通過增加一定的約束條件來提高芯片的利用率。quautus2軟件有它自帶的仿真器與綜合器,這些可以用來完成從設計輸入到硬件配置的整個設計過程。它可以支持altera的ip核,并且含有一些宏功能模塊庫8。quartus2軟件的項目設計過程可以劃分為下面幾個步驟:設計流程如下圖所示 輸入電路 創(chuàng)建新工程 項目編譯 項目仿真 編程下載 圖2 項目設計過程的步驟3.1 創(chuàng)建工程文件在quartus2軟件上創(chuàng)建一個新的工程。所謂工程就是你的設計的描述、設置、數(shù)據(jù)以及輸出的整個集合,此軟件會將這些存儲在不同類型文件集中放在同一個文件夾下,所以要創(chuàng)建一個工程。創(chuàng)建一個新的工程步驟如下: 打開quartus2軟件,點擊“file”,選擇“new project wizard”; 在新彈出的窗口中分別鍵入新工程的工作路徑、項目名稱以及實體名稱,且項目名稱和實體名稱要一致; 然后用鼠標點擊下方的“finish”按鈕即可完成對新工程的創(chuàng)建。3.2 設計輸入 在設計輸入之前還有重要的一步是電路的設計部分,在整個系統(tǒng)的設計之前首先必須進行的是方案的論證、系統(tǒng)的設計以及fpga芯片的選擇等等。一般來說采用的設計方案都是自頂向下的,即將整個系統(tǒng)劃分為若干個小模塊,然后再每個模塊劃分為下一個層次的小模塊,直到直接可以調(diào)用元件庫里的元件。設計輸入是將所設計的電路按照開發(fā)系統(tǒng)要求的形式表達出來的過程9。設計輸入有如下三種方式: 原理圖輸入方式。這種方式非常適合于對各部分電路都很熟悉的設計。 硬件描述語言輸入方式。硬件描述語言就是用文本方式描述出來的設計,硬件描述語言有abel、ahdl、vhdl、verilog等。 波形輸入方式。 一般常用的設計輸入方式是和,我的本次設計采用的是原理圖輸入的方式。3.3 設計項目編譯 打開“processing”菜單,點擊“start compilation”即可執(zhí)行項目的編譯功能,編譯器將運行預先指定的各個模塊的功能。編譯成功后,編譯器將會產(chǎn)生相應的輸出文件。如果有錯誤出現(xiàn),編譯器將停止編譯,并會相應的給出錯誤的信息欄,用鼠標點擊“error”的信息條,一般下可以指出錯誤的地方,以便修改,直至所有的錯誤均消除后,系統(tǒng)就會彈出編譯成功的窗口10。3.4 項目的仿真仿真檢查綜合結(jié)果是否與原先要設計的項目功能是否一致。項目的編譯成功,需要做的就是對每個模塊的功能進行仿真測試,來查看設計的結(jié)果是否滿足原先設計的基本要求。仿真分為功能仿真、時序仿真以及波形仿真。功能仿真僅僅測試設計的邏輯功能;而時序仿真首先要測試邏輯的功能,而且還要測試有關設計的一些目標器件;波形仿真是在波形編輯器中將設計的邏輯功能用波形圖的形式顯示,通過查看波形圖來檢查設計的邏輯功能是否符合設計的要求。波形仿真的步驟包括新建波形文件、設置波形仿真器、插入仿真節(jié)點、編輯輸入波形、運行仿真器、檢查輸出波形是否符合設計要求等。3.5 編程下載編程下載之前必須把下載線將計算機與硬件連接好,然后打開電源: 打開編程窗口和配置文件。選擇toolpromgrammer,彈出編程窗口。注意核對一下下載路徑與文件名,如果此文件沒有出現(xiàn)或者出錯,需要手動來選擇配置文件。最后單擊start按鈕,進入下載操作。 設置編程器。 器件編程就是編譯和波形仿真正確后,quartus2將生成的如.pof和.sof等編程數(shù)據(jù)文件通過下載電纜載到預先選擇的fpga芯片中。下載成功后,該fpga芯片就會執(zhí)行設計文件描述的功能。器件編程的步驟可以分為:編程硬件連接、編程文件的產(chǎn)生、運行編程操作。器件編程操作成功后,查看fpga功能與設計文件描述的功能是否一致即可。第四章 5b6b碼譯碼4.1 5b6b碼譯碼原理 5b6b碼譯碼是編碼過程的逆過程,也就是將發(fā)送端送來的已變換的6b信號碼流,按照每6比特分為一組,然后讀出5b碼流。5b6b碼譯碼簡單的講就是將6b的數(shù)據(jù)怎樣變成是5b的數(shù)據(jù)。5b6b碼譯碼的實現(xiàn)的方法主要有兩種:一種是用集成電路來實現(xiàn),另一種是用碼表類實現(xiàn)。我用的是第二種方法實現(xiàn)的。5b6b碼線路碼型編碼是將二進制數(shù)據(jù)流每5bit劃分為個字組,然后在相同時間段內(nèi)按一個確定的規(guī)律編碼為6bit碼組代替原5bit碼組輸出。原5bit二進制碼組有25共32種不同組合,而6bit二進制碼組有26共64種不同組合。所以不可能是一一對應的映射。為了使“0”碼“1”碼出現(xiàn)的機會相同,為了減小直流漂移和避免出現(xiàn)長連“0”和長連“1”的碼組,必須要進行碼組的變換。為解決這個問題,必須要進行6b的碼表設計。而其它的碼組作為不允許使用的碼組和禁用碼組,如6b碼流“011000000110”、“111111”、“000000”前者是由于使用了不允許使用的碼組而造成的;后者是由于使用了禁止碼組。有了碼表,就可以按照碼表進行設計了。6bit碼組的64種組合中碼組數(shù)字和wds值分布情況是:wds0的碼組有c63 =20個 wds2的碼組有c62 + c64=30個wds4的碼組有c61 +c65 =12個 wds6的碼組有c60 +c66 =2個選擇6bit碼組的原則是使線路碼型的功率譜密度中無直流分量,最大相同碼元連碼和小,定時信息豐富,編碼器、譯碼器和判決電路簡單且造價低廉等等。因為根據(jù)線路傳輸要求,應盡量選擇游程差值小的碼組11。據(jù)此原則選擇6bit碼組的方法為:d4、d6的6bit碼組舍去(共14種),作為禁止碼組(或稱“禁字”)處理。d0、d2的六位碼組都有取舍,并且取兩種編碼模式:一種模式是d0、2,稱模式i;另一種模式是d0、2,稱模式ii。當采用模式i編碼時,遇到d2的碼組后,后面編碼就自動轉(zhuǎn)換到模式ii,在模式ii編碼中遇到d2的碼組時編碼又自動轉(zhuǎn)到模式i。碼表見附表。碼表設計是有一定的原則的: “0”碼和“1”碼出現(xiàn)的機會相同; 減少相同符號連續(xù)數(shù)的數(shù)量; 選取d值較小的碼組。mb碼字變換到nb碼字都是按照預先設定的碼表進行的,碼表的不同將會產(chǎn)生不同的線路碼。它的線路碼速只比原始碼速增加百分之二十,但是變換以及逆變換電路并不復雜。5b6b碼線路碼型也有一定的缺點,主要是:有誤碼擴散,即當傳輸線路碼中發(fā)生一個誤碼后,在譯碼變換為原信源碼時會產(chǎn)生幾個誤碼,使平均誤碼劣化,其可視為對接收靈敏度造成一定的功率損失12。4.2 5b6b碼譯碼的設計5b6b碼譯碼就是5b6b編碼過程的逆過程,它包含了序列產(chǎn)生模塊、緩存電路和譯碼電路模塊,與編碼相似。根據(jù)fpga系統(tǒng)開發(fā)的設計步驟,把5b6b碼的譯碼電路分成若干模塊。由fpga的主要設計方法。自頂向下的設計原則,可以將5b6b碼的譯碼電路的功能行為用原理框圖表示出來。進而可以設計出各功能模塊。6b碼組5b碼組譯碼的輸出譯碼的輸入譯碼原理圖如下所示: 緩存電路譯碼電路序列產(chǎn)生模塊本地時鐘輸入時鐘變頻器圖3譯碼原理圖譯碼器的工作原理:同本地脈沖的驅(qū)動下,通過時鐘變頻器產(chǎn)生5b碼和6b碼所需要的時鐘脈沖,輸入的碼流通過序列產(chǎn)生模塊和緩存電路模塊產(chǎn)生6b碼組,再通過譯碼電路,譯碼成相應的5b碼組,這樣就可以完成了5b6b碼碼組的還原,輸出即可13。該模塊的功能是將序列產(chǎn)生模塊產(chǎn)生的序列進行譯碼。譯碼的方法是通過調(diào)用碼表來實現(xiàn)的。即把碼表當成是一種映射條件,輸入幾位得就調(diào)用幾次。如輸入24位的就需要調(diào)用4次。4.3 譯碼電路的電路模塊劃分由上面的提到的譯碼電路的原理框圖,在設計時,結(jié)合實際和vhdl語言的描述特性,可把譯碼電路劃分為以下模塊。它們分別是:序列產(chǎn)生模塊、緩沖模塊、譯碼模塊和頂層模塊。以下是這四個模塊的設計思路以及相關的編寫程序。4.3.1序列產(chǎn)生模塊 序列產(chǎn)生模塊是由按鍵cout控制的,當cout為0時清零,cout為2時輸出序列一個24位的序列,因為在設計時采用的是循環(huán)技術,它可以避免信號的重疊和覆蓋 ,所以可以產(chǎn)生所需要的目標序列:6b序列。cout按鍵的值可以控制輸出的序列值,數(shù)據(jù)經(jīng)過編碼過后將變成是六位的序列。在quartus2軟件下5b6b碼譯碼將采用由頂?shù)较碌脑O計方法,譯碼是比較復雜,模式的轉(zhuǎn)換容易出錯,所以我們一定要注意模式的轉(zhuǎn)換,然后還有禁碼的簡單處理。禁碼的處理可以見后面一節(jié)。4.3.2譯碼模塊 譯碼模塊的作用主要是負責輸入的并行碼組的譯碼。依然采用本地時鐘作為其工作時鐘。這個譯碼模塊是整個5b6b碼譯碼設計的核心部分。在整個譯碼過程中,當然還要解決很多的問題,主要要解決的問題有:監(jiān)視和禁碼處理問題,時序同步問題等14。在6b碼中,在本設計中我選擇的是其中的46個碼組,在碼表的每種模式下都有一些禁碼,所謂禁碼就是出現(xiàn)而沒有采用的碼組。根據(jù)光纖通信實際情況來看,本設計用“重傳”的方法來解決這一問題或者根據(jù)禁字還原表來確定其信源碼。譯碼過程可以采用case語句來表達。在線路傳輸時,注入一定數(shù)量的冗余碼,冗余碼是按照一定的規(guī)律計算出來的。在接收端,在對6b數(shù)據(jù)進行計算,比較二次計算得來的冗余碼,看是否相同。如果相同,則傳輸無錯誤;不同則傳輸有錯誤。譯碼過程用vhdl語言描述:如case a is when 011000 = q q q= 00001;4.4 5b6b碼譯碼的vhdl程序設計之前提到的模塊劃分,是為了進一步了解5b6b碼譯碼模塊設計的過程。在具體的實際設計時,一個大模塊中可以在劃分為若干小模塊。為了使代碼變得簡單點,把串并轉(zhuǎn)換和并串轉(zhuǎn)換可以合并為一個模塊,可根據(jù)實際需要再設計模塊。4.4.1 序列產(chǎn)生模塊的設計與仿真該模塊的主要功能是產(chǎn)生一個24位的序列。當按鍵cout=0時,make_6b模塊清零,輸出是24位的全零;當cout=1、2、3、4、5、6、9、10時,分別輸出一份是24位的序列;當cout=7時輸出高阻態(tài)值;當cout=8時,輸出禁碼“111111111111111111111111”。編譯成功,經(jīng)過封裝后創(chuàng)建的元件make_6b邏輯框圖 圖4 make_6b封裝后的框圖 該元件圖是可以方便后期的頂層文件設計。仿真成功后,仿真圖形如下: 在make_6b模塊中,當cout=0時,清零了這一模塊,從圖中可以看出輸出decode_ymin是一個24位的零值仿真之后的圖形如下:圖5 make_6b cout=0時產(chǎn)生的仿真圖下圖為make_6b cout=2時的仿真圖,當cout=2時輸出值為“100110011001100110011001”。由下圖的仿真結(jié)果可以看出是仿真正確的。圖6 make_6b cout=2時產(chǎn)生的仿真圖下圖為make_6b cout=5時仿真圖,當cout=2時輸出值為“101010101010101010101010”。由下圖的仿真結(jié)果可以看出是仿真正確的。圖7 make_6b cout=5時產(chǎn)生的仿真圖 下圖為make_6b cout=8禁碼時產(chǎn)生的仿真圖,為了在模擬序列光纖傳輸時受到干擾,所以變成是禁碼。當cout=8時,將輸出禁碼“111111111111111111111111”。從輸出仿真圖形可以看出仿真結(jié)果是正確的。圖8 make_6b cout=8時產(chǎn)生的仿真圖 由以上幾個波形仿真可以看出make_6b模塊的vhdl程序設計是正確的。此模塊的vhdl代碼可以參見附錄。4.4.2 緩沖電路模塊的設計與仿真 緩沖電路的作用是等序列產(chǎn)生電路序列產(chǎn)生好了以后,在進行輸出譯碼。在序列產(chǎn)生模塊make_6b和譯碼模塊decode_change6bto5b之間,起到一定的速度緩沖作用。需要通過按鍵set來操作.如當set=1時使能。程序的流程圖如下:等于1 set不等于1 decodein 高阻態(tài)圖9 緩沖電路huanchong_cir流程圖編譯成功,經(jīng)過封裝后創(chuàng)建的元件huanchong_cir邏輯圖圖10 huanchong_cir框圖仿真成功后,仿真圖形如下: 下圖為huanchong_cir模塊中 set=0時的仿真圖。當set=0時低電平將不輸出輸入值,而輸出一個高組態(tài)值,即一組隨機值。從圖中我們可以看出仿真結(jié)果是正確的。圖11 huanchong_cir reset=0時仿真圖 下圖為 huanchong_cir模塊中的 set=1時的仿真圖。當set=1時,高電平有效,把輸入傳給輸出,從圖中我們可以看出仿真結(jié)果是正確的。圖12 huanchong_cir set=1時仿真圖 由以上幾個波形仿真可以看出huanchong_cir 模塊的vhdl程序設計是正確的,此模塊的vhdl代碼可以參見附錄。4.4.3 譯碼模塊的設計與仿真該模塊的功能是將序列產(chǎn)生模塊產(chǎn)生的序列進行譯碼。譯碼的方法是通過調(diào)用碼表來實現(xiàn)的。即把碼表當成是函數(shù),輸入幾位得就調(diào)用幾次。如輸入24位的就需要調(diào)用4次15。這樣可以簡化代碼。子程序不可像進程那樣可以從其他進程中進行賦值操作,而只能調(diào)用后進行端口映射;函數(shù)的return的數(shù)字類型不能加寬度。decode_change6bto5b程序清零賦值給decode_output ,而不能給decode_ymout因為進程里面必須是中間信號,而不可是外部引腳。程序的流程圖如下:decodein24位decodeout20位譯碼圖13譯碼decode_change6bto5b流程圖編譯成功,經(jīng)過封裝過后創(chuàng)建的元件decode_change6bto5b邏輯框圖圖14 decode_change6bto5b邏輯框圖 仿真成功后,仿真圖形如下: 下圖為decode_change6bto5b 模塊中,reset=0時仿真圖。當reset=0時將復位,直接在輸出端口decode_ymout輸出20為的零值。從圖中的仿真結(jié)果可以看出仿真是正確的。圖15 decode_change6bto5b reset=0時仿真圖 下圖為decode_change6bto5b 模塊中,reset=1時仿真圖。6b碼為“101010101010101010101010”,通過譯碼模塊,輸出的5b碼流為“10101101011010110101”,通過查詢碼表可以看出此仿真結(jié)果是正確的。圖16 decode_change6bto5b reset=1時仿真圖(無禁碼) 下圖decode_change6bto5b模塊是禁碼時的仿真,輸出結(jié)果為“00000000001010110101”為正確結(jié)果。圖17 decode_change6bto5b禁碼時仿真圖 由以上幾個波形仿真可以看出decode_change6bto5b這一模塊的vhdl程序設計是正確的。此模塊的vhdl代碼可以參見附錄。4.4.4 頂層原理圖的設計與仿真其實頂層文件的設計可以用各模塊的實體連接電路圖來實現(xiàn)。這樣做的好處是方便易懂易實現(xiàn),也可以直接通過vhdl語言的描敘來完成。頂層原理圖的流程圖如下: make_6bhuanchong_cirdecode_change6bto5b圖18 頂層文件_decode流程圖 整個5b6b碼碼碼的譯碼變換頂層文件原理圖如下圖所示:圖19 頂層文件的原理圖編譯成功后,仿真圖形如下: 下圖為_decode頂層模塊中 ,cout=0時的清零仿真圖。圖 20_decode cout=0清零仿真圖 下圖為_decode模塊中cout=5時,輸入6b碼“101010101010101010101010”無禁碼輸入時的仿真圖。當沒有禁碼輸入時,就可以根據(jù)前面設計的碼表來進行譯碼。輸出的5b碼流為“1010110101101011010110101”,經(jīng)查碼表可以看出譯碼結(jié)果是正確的。即整個系統(tǒng)的譯碼仿真圖是正確的。圖21 _decode 無禁碼輸入時仿真圖 下圖為禁碼時的輸入,cout=8時的輸入為禁碼,6b輸入的碼流為“111111111111111111111111”5b的輸出碼流為“000000000000000000000000”經(jīng)驗證該仿真結(jié)果是正確的。圖22 _decode 輸入禁碼時的仿真圖 由以上幾個波形仿真可以看出_decode模塊的vhdl程序設計是正確的,到此時,整個5b6b碼的譯碼仿真就結(jié)束了。此模塊的vhdl代碼可以參見附錄。4.5禁碼的還原編碼的碼表出來以后,就要考慮進一步確定譯碼的方案了。在6b碼64種線路碼中,大部分在碼表中都已經(jīng)有了對應的解碼信息,可以直接解碼。在碼表中沒有定義的禁碼如何來尋找它們的譯碼呢?理想的情況下是不可能出現(xiàn)禁碼的,但是實際的信息傳輸過程中,是有可能出現(xiàn)禁字的。所以在這種情況下,得依靠建立禁字還原表來將禁字與信源碼對應起來。建立禁字還原表可以分為三個步驟來進行:(1) 根據(jù)

溫馨提示

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

評論

0/150

提交評論