光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真_第1頁(yè)
光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真_第2頁(yè)
光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真_第3頁(yè)
光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真_第4頁(yè)
光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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)介

Goodisgood,butbettercarriesit.

精益求精,善益求善。Goodisgood,butbettercarriesit.

精益求精,善益求善。光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真光纖通信系統(tǒng)5B6B碼編碼的設(shè)計(jì)與仿真第一章緒論1.1引言被普遍使用的數(shù)字光纖通信系統(tǒng)中的一種路線碼型就是5B6B碼[1]。在光纖中的傳輸線,信號(hào)通過(guò)5B6B碼和串并轉(zhuǎn)換數(shù)據(jù)后,形成一個(gè)連續(xù)的長(zhǎng)度小于5的Bit0或Bit1串行編碼序列,0和1的數(shù)據(jù)轉(zhuǎn)換的高密度,而且有一個(gè)有利于接收電路、時(shí)鐘恢復(fù)電路的設(shè)計(jì)的直流平衡特性[2]。5B6B碼是一種nBmB分組碼,這是一個(gè)二進(jìn)制線路編碼,即把一個(gè)二進(jìn)制5位信源碼型轉(zhuǎn)為6位二進(jìn)制線路碼型,64個(gè)線路碼型是基于“0”和“1”的數(shù)量來(lái)分成兩種碼型:即非均勻碼和均勻碼。均勻碼是指“0”和“1”的數(shù)量是一樣的,反之,則為非均勻碼。非均勻碼又分為正負(fù)兩個(gè)模式,當(dāng)“0”碼個(gè)數(shù)少于“1”碼個(gè)數(shù)時(shí)是為正模式,“0”碼個(gè)數(shù)大于“1”碼時(shí)為負(fù)模式[3]。因?yàn)榫€路碼和信源碼的個(gè)數(shù)不等,因此從5碼轉(zhuǎn)換為6碼時(shí),有多種編碼方案。本文只選用其中一種編碼方案。1.2QuartusII軟件介紹因?yàn)橹挥型ㄟ^(guò)系統(tǒng)軟件的操作和硬件實(shí)物平臺(tái)才能成功實(shí)現(xiàn)5B6B的編碼設(shè)計(jì)與仿真,所以在設(shè)計(jì)前,首先要了解使用QuartusII和FPGA相應(yīng)的使用方法。下面做簡(jiǎn)單的說(shuō)明。圖SEQ圖\*ARABIC1QuartusII運(yùn)行背景QuartusII不僅支持AHDL設(shè)計(jì)輸入的形式,同時(shí)支持電路原理圖,VHDL、VerilogHDL,模擬器和合成器,嵌入其中。QuartusII在PLD開發(fā)軟件集成中為了完成PLD的設(shè)計(jì)過(guò)程,可以從設(shè)計(jì)輸入完成的硬件配置。除了完成使用QuartusTcl腳本、QuartusII的設(shè)計(jì)過(guò)程之外,還可以使用設(shè)計(jì)完美的圖形用戶界面,并支持使用Unix、XP或Linux等操作系統(tǒng)[4]。接口速度快,運(yùn)行統(tǒng)一,功能設(shè)置,簡(jiǎn)單易用。為了用戶能夠充足的使用成熟的完備模塊,囊括了LPM/Mega功能庫(kù),并且降低了設(shè)計(jì)過(guò)程中的復(fù)雜程度,同時(shí),它還支持Altera公司的IP內(nèi)核,設(shè)計(jì)速度加快了等等。其他的EDA工具能夠讓用戶使用EQuartusII,認(rèn)識(shí)在設(shè)計(jì)過(guò)程當(dāng)中的每個(gè)過(guò)程,支持全面的可編程邏輯器件開發(fā)軟件。支持電路原理圖,VHDL語(yǔ)言,AHDLDA和vrilogHDL。此外,QuartusII開發(fā)的工具能夠輕松實(shí)現(xiàn)各種DSP應(yīng)用,將DSPBuilder與MATLAB/Simulink結(jié)合。SOPC的開發(fā)可在可編程系統(tǒng)芯片上實(shí)現(xiàn),包括已設(shè)置的可編程邏輯設(shè)計(jì)系統(tǒng)和嵌入式軟件開發(fā)形成一個(gè)全面的開發(fā)平臺(tái)[5]。PLD設(shè)計(jì)軟件擁有Altera公司的優(yōu)秀的易用性,之前的MAXPLUSII得到了普遍的應(yīng)用。MAXPLUSII現(xiàn)在已經(jīng)不更新了,不僅因?yàn)镼uartusII充實(shí)了不斷變化的圖形界面的設(shè)備的類型,還包括許多QuartusII軟件,例如,設(shè)計(jì)的RTLViewer查看器和編輯器芯片的援助,增強(qiáng)SignalTapIIAltera的圖形界面,MAXPLUSII繼承和SOPC的硬件復(fù)制設(shè)計(jì)和集成流程??删幊踢壿嬙O(shè)計(jì)環(huán)境有一個(gè)直觀的界面和其強(qiáng)大的設(shè)計(jì)能力,因此受到廣大系統(tǒng)開發(fā)者的應(yīng)用[6]。Altera的第4代開發(fā)平臺(tái)有QuartusII軟件。該平臺(tái)支持的工作組環(huán)境設(shè)計(jì)要求,包括基于互聯(lián)網(wǎng)的協(xié)同設(shè)計(jì)支持。提高LogicLock的設(shè)計(jì)效力,添加FASTFIT編譯器選項(xiàng),高級(jí)編輯網(wǎng)絡(luò)性能,并提高調(diào)試效果。Max7000/Max3000是開發(fā)的第4代產(chǎn)品,它提供了一個(gè)完備的功能和高效的設(shè)計(jì)適合于給定的設(shè)計(jì)要求[7]。QuartusⅡ給出了一個(gè)便利的輸入功能,和迅疾的編譯器和編程設(shè)備直接訪問(wèn)的能力。支持超過(guò)一百萬(wàn)門的邏輯門數(shù)的發(fā)展,提供了一個(gè)無(wú)縫接口,用于第三方工具。在QuartusⅡ支持的設(shè)備有:StratixⅡ,StratixGX,Stratix,水星,MAX3000A,MAX7000B,MAX7000S,MAX7000AE,MAXⅡ,F(xiàn)LEX6000,F(xiàn)LEX10K,F(xiàn)LEX10KA,F(xiàn)LEX10KE,旋風(fēng),旋風(fēng)Ⅱ等。QuartusⅡ編程包是整個(gè)體系的中樞,為了給出強(qiáng)力的問(wèn)題解決實(shí)力,設(shè)計(jì)人員能夠添加特定的限制,提升整個(gè)芯片的利用效率。在整個(gè)設(shè)計(jì)過(guò)程中的每個(gè)環(huán)節(jié),該軟件可以使QuartusⅡ集中于設(shè)計(jì),而不是使用軟件本身。同時(shí),自動(dòng)定位誤差,充滿了錯(cuò)誤和警告信息,使設(shè)計(jì)更簡(jiǎn)單和容易。此外,QuartusⅡ結(jié)合SOPCBuilder開發(fā)SOPC系統(tǒng)(可編程片上系統(tǒng)),是一種非常有前途的EDA軟件。QuartusⅡ4.1軟件光盤能在代理獲得,可以在internetitAltera上下載,安裝,并得到授權(quán)文件,其具體步驟可以參照MAX+PLUSⅡ的操作。1.3VHDL語(yǔ)言1.3.1背景簡(jiǎn)介VHDL是被開發(fā)于1982年的的特高速電路集成硬件描述語(yǔ)言,它最初是由美國(guó)國(guó)防部開發(fā),為了提高設(shè)計(jì)的可靠性,小范圍內(nèi)使用的用以減少設(shè)計(jì)語(yǔ)言發(fā)展周期的硬件語(yǔ)言。1987年底,VHDL是已經(jīng)確認(rèn)的標(biāo)準(zhǔn)硬件描述語(yǔ)言[8]。IEEE-1076后不同的公司都推行了各自的開發(fā)環(huán)境以適用于VHDL的使用,或表示能夠和VHDL的設(shè)計(jì)相連。1993年,宣布對(duì)VHDL語(yǔ)言就行修訂,VHDL語(yǔ)言擴(kuò)大了抽象和描述性的動(dòng)力系統(tǒng)的更高層次的審查內(nèi)容,即IEEE標(biāo)準(zhǔn)的1076-1993版本。簡(jiǎn)而言之,VHDL是電路設(shè)計(jì)語(yǔ)言中的一種。中國(guó)被翻譯成VHDL描述超高速集成電路硬件描述語(yǔ)言,主要用于數(shù)字電路的設(shè)計(jì)。大多數(shù)中國(guó)人使用的是FPGA、CPLD和EPLD。顯然,相對(duì)較強(qiáng)的一些單位的強(qiáng)度,它也可用于ASIC設(shè)計(jì)[9]。VHDL語(yǔ)言大部分應(yīng)用于數(shù)字系統(tǒng)的布局、活動(dòng)、效用和接口的描述。程序結(jié)構(gòu)工程設(shè)計(jì)的VHDL,或叫做實(shí)體設(shè)計(jì)(可以為一個(gè)功能元器件,電路模塊或一個(gè)完整的系統(tǒng)體系)的特性被分為外部(可見器件)和內(nèi)部(不可見的器件)的兩個(gè)功能,即包括實(shí)體里面的功用和算法實(shí)現(xiàn)的功用部分。設(shè)計(jì)實(shí)體確定外部接口后,在其內(nèi)部設(shè)計(jì)成功之后,其他模塊可以直接使用此實(shí)體。這個(gè)概念是分為內(nèi)部和外部實(shí)體設(shè)計(jì)的VHDL開發(fā)和設(shè)計(jì)的基礎(chǔ)部分。1.3.2VHDL主要特點(diǎn)1.健壯,靈活的設(shè)計(jì)VHDL語(yǔ)言擁有較強(qiáng)的結(jié)構(gòu),因此能夠表現(xiàn)出源代碼的清晰和精煉的描述,從而達(dá)成繁雜的控制邏輯。多層次的描繪方式使之具備多層次的設(shè)計(jì)特征,最后可直接產(chǎn)生電路級(jí)的描述。與其他硬件描述語(yǔ)言相比,VHDL具備有它們所沒(méi)有的電路設(shè)計(jì)特征,即:同步、異步和隨機(jī)。VHDL語(yǔ)言也支持其他方面的設(shè)計(jì),包括自下而上和自上而下的設(shè)計(jì);同時(shí)支持模塊化設(shè)計(jì)和分層設(shè)計(jì)支持。2.支持廣泛,容易改變因?yàn)閂HDL已經(jīng)成為標(biāo)準(zhǔn)的IEEE標(biāo)準(zhǔn)硬件描述語(yǔ)言,支持基本上所有的EDA工具,所以這為之后的推行以及VHDL的普遍使用墊定了基礎(chǔ)。在硬件的設(shè)計(jì)過(guò)程中,源代碼基本上都是由VHDL來(lái)撰寫的,又由于它的可讀性和結(jié)構(gòu)化,很容易改變?cè)O(shè)計(jì)。3.強(qiáng)大的硬件功能說(shuō)明VHDL的設(shè)計(jì)具備多個(gè)分級(jí)的描述能力,除了能夠作為電路的系統(tǒng)級(jí)描述,而且能夠用來(lái)描述門級(jí)電路。既可以作為一個(gè)行為描述,轉(zhuǎn)讓或寄存器描述方案,也可用于混合級(jí)描述。此外,VHDL不僅支持慣性的延遲和輸送系統(tǒng)的延遲,也有創(chuàng)造電路硬件描述精確模型的能力。由于VHDL支持?jǐn)?shù)據(jù)類型的預(yù)定義和自定義兩種形式,讓硬件描述帶來(lái)了更大的自由空間,可以很容易地建立高層次的系統(tǒng)模型。4.設(shè)備-自主設(shè)計(jì),自主的過(guò)程當(dāng)使用VHDL設(shè)計(jì)時(shí),不需要考慮完成設(shè)備的設(shè)計(jì),可以專注于優(yōu)化設(shè)計(jì)。所描述的設(shè)計(jì)告終,能夠運(yùn)用各種不一樣的元器件結(jié)構(gòu)完成它的功能。5.可移植性強(qiáng)VHDL是標(biāo)準(zhǔn)的硬件描述語(yǔ)言,設(shè)計(jì)的描述可以通過(guò)各種工具來(lái)支持,從而有可能對(duì)移植設(shè)計(jì)進(jìn)行描述。6.輕松共享和重用基于VHDL的設(shè)計(jì)方法,可以重新創(chuàng)建所有可用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或在最后歸檔模塊設(shè)計(jì)中使用,這些模塊將被存儲(chǔ)在庫(kù)中,它可以在未來(lái)的計(jì)劃中重復(fù)使用,可以使設(shè)計(jì)結(jié)果在設(shè)計(jì)師之間交流,減少硬件電路設(shè)計(jì)。1.3.3VHDL主要優(yōu)勢(shì)1.VHDL比其他硬件描述語(yǔ)言有更多的描述能力,使之確定成為了設(shè)計(jì)描述語(yǔ)言的最佳硬件。描述結(jié)構(gòu)的行為能力很強(qiáng),避免特定的設(shè)備,系統(tǒng)的描述和大型電子邏輯系統(tǒng)有關(guān)的設(shè)計(jì)。2.VHDL擁有大量的仿真程序和庫(kù)函數(shù),能夠讓設(shè)計(jì)任意大的系統(tǒng)最早的時(shí)候就可以發(fā)掘系統(tǒng)的設(shè)計(jì)特點(diǎn),準(zhǔn)備仿真設(shè)計(jì)的可能性。3.行為報(bào)表說(shuō)明,采用VHDL語(yǔ)言編程技巧和結(jié)構(gòu),決定了支持大規(guī)模分解的開發(fā)和重用現(xiàn)有的設(shè)計(jì)。系統(tǒng)擴(kuò)展,以滿足市場(chǎng)的高效需求、快速實(shí)現(xiàn)設(shè)計(jì)一定要有多人一起完成,更有甚者需要許多個(gè)開發(fā)組并行工作來(lái)實(shí)現(xiàn)。4.VHDL描述設(shè)計(jì)的相對(duì)獨(dú)立性,設(shè)計(jì)師不用了解硬件的結(jié)構(gòu),也不需要知道項(xiàng)目管理的最終目的是實(shí)現(xiàn)什么目標(biāo)設(shè)備,在此基礎(chǔ)上進(jìn)行獨(dú)立的設(shè)計(jì)。第二章FPGA系統(tǒng)開發(fā)過(guò)程因?yàn)镕PGA設(shè)計(jì)和5B6B編解碼系統(tǒng)原理是相似的,所以下面對(duì)FPGA開發(fā)系統(tǒng)的過(guò)程作一些簡(jiǎn)要介紹。2.1電路設(shè)計(jì)在系統(tǒng)的設(shè)計(jì)中,第一個(gè)進(jìn)行演示程序,前期的系統(tǒng)設(shè)計(jì)和FPGA芯片的選擇。根據(jù)任務(wù)要求,如指標(biāo)和系統(tǒng)的復(fù)雜性,各種資源,運(yùn)行速度和芯片本身的成本與取舍等方面,選擇合適的設(shè)計(jì)和正確類型的設(shè)備。正常情況下設(shè)計(jì)采用自頂向下這種方法,先將系統(tǒng)劃為幾個(gè)基本的單位,之后的每個(gè)基本單位又劃為基本單位的下一級(jí),不停如此,直到能夠立即運(yùn)用的EDA庫(kù)為止。2.2設(shè)計(jì)輸入輸入設(shè)計(jì)是將用于電路設(shè)計(jì)的系統(tǒng)或以開發(fā)所需的軟件的形式展示出來(lái),并輸入到EDA工具的過(guò)程。經(jīng)常使用的方式有HDL、原理流程圖等。示意圖是描述的最直接的方式,可編程芯片開發(fā)更廣泛的適用于早期應(yīng)用,將各個(gè)器件從元器件庫(kù)中調(diào)出來(lái),繪制原理圖。這種方法雖然簡(jiǎn)單,易于仿真,但是實(shí)現(xiàn)效率極低,難以維護(hù)和重用,不利于模塊結(jié)構(gòu)。但它的主要缺點(diǎn)是不便于攜帶,升級(jí)后的芯片,所有原理圖需要做一些改變。目前,實(shí)際的HDL是目前廣泛使用的開發(fā)語(yǔ)言,利用文字描述設(shè)計(jì),可分為一般HDL和行為HDL。在大型項(xiàng)目中,主要使用HDL,其主要的語(yǔ)言是VerilogHDL與VHDL。這兩種語(yǔ)言是電氣和電子工程師標(biāo)準(zhǔn)的美國(guó)協(xié)會(huì)(IEEE)制定的標(biāo)準(zhǔn),其常見的突出特點(diǎn)是:獨(dú)立于語(yǔ)言和芯片技術(shù),這將有助于自頂向下設(shè)計(jì),便于共享模塊和移植,移植性良好,描述和模擬具有較強(qiáng)的邏輯思維能力,以及輸入數(shù)據(jù)效率很高[10]。2.3功能仿真功能仿真,也稱為前仿真,在用戶邏輯電路的變異之前進(jìn)行的電路邏輯功能設(shè)計(jì)驗(yàn)證,這個(gè)時(shí)候仿真沒(méi)有延遲信息,只要預(yù)先進(jìn)行功能測(cè)試。模擬之前,構(gòu)建波形文件和測(cè)試向量(即將信號(hào)輸入組成一個(gè)序列),模擬的結(jié)果將產(chǎn)生一個(gè)報(bào)告文件和輸出信號(hào)波形,他們可以觀察到每個(gè)節(jié)點(diǎn)的信號(hào)變化。若覺(jué)察到有問(wèn)題,就回到邏輯設(shè)計(jì)改正[11]。2.4綜合優(yōu)化綜合優(yōu)化是使高層次的抽象描述成為一個(gè)較低的水平的描述。整合優(yōu)化是根據(jù)目標(biāo)的一致性的要求生產(chǎn),從而使設(shè)計(jì)水平為FPGA布局布線軟件實(shí)平面化。目前,集成的優(yōu)化(合成),是將輸入的邏輯與門,非門,或門,觸發(fā)器,內(nèi)存和其他基本的原始元素設(shè)計(jì)網(wǎng)表的邏輯單元相連接,而不是真正的門電路。真正具體的門級(jí)電路應(yīng)使用FPGA供應(yīng)商提供的布線功能,產(chǎn)生的一個(gè)全面的準(zhǔn)則,該準(zhǔn)則是根據(jù)歸納后的門級(jí)網(wǎng)表生成的。為了轉(zhuǎn)換成該網(wǎng)表,HDL代碼務(wù)必要滿足給定的合成器的特定要求。因?yàn)樗且粋€(gè)成熟的技術(shù)集成的門級(jí)和RTL級(jí)的HDL程序結(jié)構(gòu),所有的設(shè)備都支持合成到這個(gè)程度的整合。2.5綜合后仿真經(jīng)過(guò)全面的仿真,以檢查是否和原始設(shè)計(jì)的綜合結(jié)果相一致。在模擬過(guò)程中,將標(biāo)準(zhǔn)延遲文件完整的反標(biāo)記進(jìn)綜合仿真模型里,可以大概估算門延遲造成的硬性。然而,這一步不能估計(jì)線延遲,根據(jù)目前的狀況,與現(xiàn)實(shí)情況仍有很大的差異,不是很精準(zhǔn)的。合成工具目前相對(duì)比較成熟,所以整體設(shè)計(jì)能夠舍去此步,不過(guò)若發(fā)現(xiàn)不符合電路布局設(shè)計(jì)的意向,就應(yīng)該回來(lái)確認(rèn)模擬問(wèn)題。2.6實(shí)現(xiàn)與布局布線專用芯片F(xiàn)PGA布局的創(chuàng)作是綜合性應(yīng)用邏輯網(wǎng)表的一個(gè)最重要的過(guò)程。合理布局配置的邏輯網(wǎng)表的硬件原語(yǔ)和基本的硬件單元結(jié)構(gòu)配置到固有的硬件芯片內(nèi),并且經(jīng)常需要進(jìn)行最快速度速度和最佳區(qū)域之間的選擇?;谙嚓P(guān)布線的拓?fù)浣Y(jié)構(gòu),運(yùn)用合理的精確的芯片連接到各個(gè)組件的內(nèi)部。目前,F(xiàn)PGA的結(jié)構(gòu)是非常復(fù)雜的,尤其是當(dāng)有限制,需要使用定時(shí)驅(qū)動(dòng)布局引擎布線的時(shí)候。布局布線后,該軟件工具能夠自主產(chǎn)生業(yè)務(wù)報(bào)表,給出相關(guān)部分的設(shè)計(jì)信息。因?yàn)橹挥蠪PGA芯片制造商了解芯片結(jié)構(gòu),所以芯片設(shè)計(jì)工具開發(fā)人員必須選擇開發(fā)商提供的工具。

第三章5B6B編碼設(shè)計(jì)步驟3.15B6B編碼通俗來(lái)說(shuō),5B6B編碼就是要如何把一個(gè)5B碼轉(zhuǎn)換成為一個(gè)6B碼。5B6B編碼實(shí)現(xiàn)方式主要有兩種:使用MATLAB或者FPGA。這里選擇的是FPGA。3.1.15B6B編碼原理mBnB是將為二進(jìn)制輸入的源代碼流分組,每m個(gè)二進(jìn)制碼為一組,表示為mB,稱為碼字,然后轉(zhuǎn)換成n個(gè)二進(jìn)制代碼,表示為nB,并且在同一個(gè)時(shí)隙間輸出[12]。實(shí)際上就是將mB碼變成nB碼,形成所謂的mBnB,其中m和n正常情況下都為大于零的數(shù),且N>M,通常選定N=M+1。mBnB結(jié)構(gòu)的形成方法是:將二進(jìn)制代碼里的每m個(gè)編碼流碼元分成一組,并且根據(jù)給定的編碼規(guī)則和在相同的時(shí)隙內(nèi),找到一個(gè)相應(yīng)的n位代碼組來(lái)替代原來(lái)的m位碼組。大部分mBnB代碼都可以使用兩種編碼方式,是用來(lái)取代數(shù)字和d比較大的數(shù)組[13]。MBnB代碼又稱為分組碼:這是非常有用的類多余的二進(jìn)制代碼,這是輸入比特流(MB)的來(lái)源是一組碼字,然后在時(shí)間變量相同的長(zhǎng)度內(nèi)變?yōu)閚位(n>m),最后為這些新的數(shù)據(jù)流傳輸,以零或非零的形式。改造后,碼傳輸速率提高,線路碼比原來(lái)的二進(jìn)制碼速率增加了(通常會(huì)增加N/M倍)。mBnB類,一般有有1B2B,2B3B,4B5B,5B6B等類型,用的最多的而是5B6B碼[14]?,F(xiàn)在用5B6B代碼示例來(lái)看看它的編碼情況:5B6B碼,五位二進(jìn)制碼共有2的5次方=32個(gè)字或代碼,而六位共有2的6次方=64的二進(jìn)制碼字或代碼。為了選出64種編碼中最適合的編碼方案去替代5B碼中的32個(gè)碼字,有許多編碼方案,分別對(duì)應(yīng)不同的表5B6B編碼。在實(shí)踐中,引入了一個(gè)參數(shù)應(yīng)用于6B碼:不平等的參數(shù)d,d=“1”碼數(shù)—“0”碼數(shù),將d=0的6B碼(如001101,100110)稱為均等碼,這類碼字有20種不同的,能夠分別表示20個(gè)不同的5B碼。將d=+2稱為正不均等的代碼(例如111010,101101等),以及d=-2為負(fù)不均等碼(例001101,010010等),它們各自是12種,為了讓“0”碼和“1”碼出現(xiàn)的可能性相差不大,所述碼字可被相互交換地使用,來(lái)表示對(duì)應(yīng)的碼圖5B碼額外的12碼字。所以,“6B”碼中連續(xù)相同的最大數(shù)目為6。時(shí)間信息豐富,而且“0”和“1”顯示的概率相等,各占50%,所以可視為沒(méi)有直流漂移。其他未使用的6碼可以視為禁碼,如果出現(xiàn)這些碼字,則意味著編碼有錯(cuò)誤,從而實(shí)現(xiàn)了不間斷誤碼監(jiān)測(cè)的功能[15]。該5B6B模型有各種編碼方式,根據(jù)CCITT標(biāo)準(zhǔn)和建議,對(duì)5b6b表進(jìn)行使用,其中D=0的數(shù)字碼組20個(gè)和D=±2的碼組分別取12個(gè)。因此在5B6B碼流中相同數(shù)量碼的代碼和少于5,數(shù)字碼和差不大于3,甚至更小。3.1.25B6B碼表設(shè)計(jì)由以上總結(jié)出5B6B碼表的設(shè)計(jì)規(guī)則為:Ⅰ.“0”碼出現(xiàn)的概率可能性等于“1”碼Ⅱ.減少最大連續(xù)相同數(shù)的個(gè)數(shù)Ⅲ.選擇d值最小的碼組為了實(shí)現(xiàn)設(shè)計(jì)目標(biāo),引入了兩種模式。模式1是正的,模式2是負(fù)的;模式1和2交替。如下的設(shè)計(jì)代碼表:

表SEQ表\*ARABIC15B6B碼表序號(hào)輸入二元碼組(5bit)輸出二元碼組(6bit)

5B6B—1

(00)

5B6B—2

(01)模式1模式2模式1模式200000000011100011101011110100010000101110001110010011101100020001011000111000101101110010030001110100110100100011100011140010001101001101010101101010050010101001101001100101100101160011010110010110000110100110170011111100100011000111000111080100010011010011011001100110090100101010101010101001101001110010100101111010000101010101011101011100111011000010110010110120110010101101010001100101100113011010111101000010110100110101401110101110010001011100011100150111111010011010010110101001016100000010110010110111011000101710001011101100010100011100011181001001101110010010010110010119100111101010010101001101001102010100110110001001101001101001211010111101000010110101010101022101101010101010101011001011002310111011001011001110101001010241100010110101001011000111000125110010011010011011100101100102611010110010110010110100110100271101101011001011011100100011028111001001011001011110001110002911101100011100011101110010001301111000111000111011011000100131111111110001110001110100001013.25B6B編碼模塊設(shè)計(jì)3.2.1編碼器的工作原理5B6B編碼電路模型,包括時(shí)鐘控制模塊、串行/并行轉(zhuǎn)換電路,存儲(chǔ)器模塊,并行/串行轉(zhuǎn)換模塊等組成,如圖2所示:串/并轉(zhuǎn)換模塊串/并轉(zhuǎn)換模塊存儲(chǔ)器模塊并/串轉(zhuǎn)換模塊串行6B碼組輸出并行5B碼組并行6B碼組串行5B碼組輸入時(shí)鐘控制模塊本地時(shí)鐘輸入圖SEQ圖\*ARABIC2系統(tǒng)總體設(shè)計(jì)圖編碼器電路的原理是一個(gè)本地振蕩器產(chǎn)生一個(gè)標(biāo)準(zhǔn)時(shí)鐘,由變頻器電路產(chǎn)生的時(shí)鐘用于編解碼電路工作的輸出電路的時(shí)鐘,它們之間的關(guān)系是緩沖電路接收5位輸入碼存儲(chǔ)為一個(gè)編碼器,這個(gè)編碼器電路中,根據(jù)5b6b碼表輸出6位代碼。再將這6位碼在時(shí)鐘脈沖的驅(qū)動(dòng)下再進(jìn)行并行/串行轉(zhuǎn)換來(lái)輸出。3.2.2編碼電路模塊劃分在實(shí)際設(shè)計(jì)中,應(yīng)當(dāng)與當(dāng)前的實(shí)際情況和VHDL語(yǔ)言相結(jié)合,編碼電路可分成以下模塊。它們是:串行、并行轉(zhuǎn)換模塊,編碼模塊,并行串行轉(zhuǎn)換模塊,序列產(chǎn)生模塊和其他的有關(guān)模塊。下面描述了設(shè)計(jì)概念中的4個(gè)模塊,后一些模塊將會(huì)給出程序。1.時(shí)鐘控制模塊主要是實(shí)現(xiàn)一個(gè)時(shí)鐘分頻的功能,為了后面的串并轉(zhuǎn)換模塊,緩存電路以及并串轉(zhuǎn)換模塊提供一個(gè)時(shí)鐘。2.串并轉(zhuǎn)換模塊主要是將輸入的串行碼流進(jìn)行并行轉(zhuǎn)換然后輸出的功能。對(duì)于6B碼而言,在查找表之前必須先轉(zhuǎn)換成并行6B比特流,然后并行6B碼聚集起來(lái),再查找表。就5B碼而言,就是被轉(zhuǎn)換成并行數(shù)據(jù)流的5bits碼。3.存儲(chǔ)器模塊主要負(fù)責(zé)將5B的碼組轉(zhuǎn)換為6B的碼組,即實(shí)現(xiàn)編碼功能。4.并串轉(zhuǎn)換模塊其功能與串并轉(zhuǎn)換模塊功能大體相同,即是將并行碼流轉(zhuǎn)換成串行碼輸出。3.3系統(tǒng)各個(gè)模塊的設(shè)計(jì)3.3.1時(shí)鐘控制模塊的設(shè)計(jì)本模塊主要是實(shí)現(xiàn)一個(gè)時(shí)鐘分頻的功能,為了后面的串并轉(zhuǎn)換模塊,緩存電路以及并串轉(zhuǎn)換模塊提供一個(gè)時(shí)鐘,其實(shí)質(zhì)為計(jì)數(shù)器,本設(shè)計(jì)需要用到一個(gè)六分頻的為并串轉(zhuǎn)換模塊提供時(shí)鐘,通過(guò)Quartus封裝后的圖形如圖3所示:圖圖SEQ圖\*ARABIC3時(shí)鐘控制模塊3.3.2串并轉(zhuǎn)換模塊的設(shè)計(jì)本模塊主要是實(shí)現(xiàn)串行數(shù)據(jù)輸入轉(zhuǎn)換為并行數(shù)據(jù)輸出,輸入的為5位的串行的數(shù)據(jù),輸出為5位并行的數(shù)據(jù),通過(guò)Quartus封裝后的圖形如圖4所示:圖圖SEQ圖\*ARABIC4串并轉(zhuǎn)換模塊3.3.3緩存電路的設(shè)計(jì)本模塊主要實(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í)現(xiàn)5B轉(zhuǎn)6B的功能,通過(guò)Quartus封裝后的圖形如圖5所示:圖SEQ圖\*ARABIC5緩存電路3.3.4并串轉(zhuǎn)換模塊的設(shè)計(jì)本模塊主要是實(shí)現(xiàn)并行數(shù)據(jù)輸入轉(zhuǎn)換為串行數(shù)據(jù)輸出,輸入的為6位的并行的數(shù)據(jù),輸出為6位串行的數(shù)據(jù),通過(guò)Quartus封裝后的圖形如圖6所示:圖SEQ圖\*ARABIC6并串轉(zhuǎn)換模塊3.3.5系統(tǒng)的頂層設(shè)計(jì)完整電路模塊采用自頂向下的設(shè)計(jì)方法,在頂層模塊中調(diào)用各個(gè)子模塊來(lái)完成系統(tǒng)控制功能。具體頂層設(shè)計(jì)電路如下:圖SEQ圖\*ARABIC7完整電路頂層圖3.4系統(tǒng)各個(gè)模塊的仿真3.4.1分頻器的仿真通過(guò)前面的設(shè)計(jì),設(shè)置好相應(yīng)的輸入和輸出后六分頻器的仿真波形如圖8所示:圖SEQ圖\*ARABIC8分頻器的仿真圖中clk為系統(tǒng)時(shí)鐘輸入,clk6為6分頻后的時(shí)鐘輸出,通過(guò)對(duì)比可以看出,仿真波形是正確的。3.4.2串并轉(zhuǎn)換模塊的仿真通過(guò)前面的設(shè)計(jì),設(shè)置好相應(yīng)的輸入和輸出后串并轉(zhuǎn)換模塊的仿真波形如圖9所示:圖SEQ圖\*ARABIC9串并轉(zhuǎn)換模塊的仿真圖中clk為系統(tǒng)時(shí)鐘輸入,shift_in為串行的5B碼組輸入,A為并行的5B碼組輸出,這里我們選用任意的一個(gè)碼組10110,從仿真結(jié)果中可以看出,在第五個(gè)時(shí)鐘周期結(jié)束后并行輸出的碼組為10110,驗(yàn)證了仿真的正確性。3.4.3存儲(chǔ)器模塊的仿真通過(guò)前面的設(shè)計(jì),設(shè)置好相應(yīng)的輸入和輸出后存儲(chǔ)器模塊的仿真波形如圖10所示:圖SEQ圖\*ARABIC10緩存電路的仿真圖中clk為系統(tǒng)時(shí)鐘輸入;F為模式選擇位,0表示選擇模式1,1表示選擇模式2,;Y為并行的5B碼組輸入,Q為并行的6B碼組輸出。通過(guò)對(duì)比Y和Q的碼組可以發(fā)現(xiàn),當(dāng)輸入00000時(shí)輸出000111,當(dāng)輸入00001時(shí)輸出011100,當(dāng)輸入00010時(shí)輸出110001,當(dāng)輸入00011時(shí)輸出110001……,只不過(guò)延遲了一個(gè)時(shí)鐘周期。與5B6B編碼表中進(jìn)行對(duì)比可以證明仿真結(jié)果是正確的。3.4.4并串轉(zhuǎn)換模塊的仿真通過(guò)前面的設(shè)計(jì),設(shè)置好相應(yīng)的輸入和輸出后并串轉(zhuǎn)換模塊的仿真波形如圖11所示:圖SEQ圖\*ARABIC11并串轉(zhuǎn)換模塊的仿真圖中clk0表示系統(tǒng)時(shí)鐘6分頻后的時(shí)鐘輸入,clk1為系統(tǒng)時(shí)鐘輸入,Q為并行的6B碼組輸入,shift_out為串行的6B碼組輸入,這里我們選用任意一個(gè)碼組100100測(cè)試,shift_out在一個(gè)clk0周期后輸出的串行碼為100100,說(shuō)明了仿真是正確的。3.4.5完整電路仿真根據(jù)頂層模塊的設(shè)計(jì),仿真結(jié)果如圖12所示:圖SEQ圖\*ARABIC12完整電路仿真波形圖中clk為系統(tǒng)時(shí)鐘輸入,clk6為6分頻器分頻后的輸出,M為模式選擇位,A為并行5B碼組輸入,Q為并行6B碼組輸出,shift_in為串行的5B碼組輸出,shift_out為串行的6B碼組輸出,這里選用任意一個(gè)碼組01011作為串行碼組輸入,可以看到在一個(gè)clk6周期后串行輸出的6B碼組為100111,通過(guò)編碼表對(duì)比可以知道,設(shè)計(jì)與仿真都是正確的,故整個(gè)系統(tǒng)完全實(shí)現(xiàn)了所要求的功能。

第四章總結(jié)本文簡(jiǎn)單介紹了一種方法實(shí)現(xiàn)5B6B的編碼,并使用VHDL硬件語(yǔ)言實(shí)現(xiàn)了5B6B編碼數(shù)字化設(shè)計(jì),完成了編碼器最基本的功能,在這個(gè)基礎(chǔ)上,未來(lái)的目標(biāo)就是降低監(jiān)測(cè)同步信號(hào)誤碼率,使這個(gè)設(shè)計(jì)更加完美。第一次采用FPGA來(lái)對(duì)5B6B編碼,所有的Verilog編程中,所有的設(shè)計(jì)QUARTUS2功能仿真和時(shí)序驗(yàn)證已經(jīng)通過(guò)仿真。畢業(yè)設(shè)計(jì)選擇這一個(gè)題目是因?yàn)橛型瑢W(xué)在課程設(shè)計(jì)中曾做這個(gè)題目,可以相互探討。開始可以選擇Matlab或者VHDL語(yǔ)言來(lái)進(jìn)行設(shè)計(jì),我們選擇了用VHDL來(lái)做,使用自上而下的硬件描述語(yǔ)言的設(shè)計(jì)方法來(lái)實(shí)現(xiàn)。

參考文獻(xiàn)[1]李勇權(quán),劉永強(qiáng),何云狀,樊建明.一種基于FPGA的5B6B編譯碼的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,(14)[2]張少鋒,楊章順,戴琦,齊恒,冉立新.\o"光纖數(shù)字通信系統(tǒng)5B6B編譯碼的FPGA實(shí)現(xiàn)"光纖數(shù)字通信系統(tǒng)5B6B編譯碼的FPGA實(shí)現(xiàn)[J].光通信技術(shù),2004,(12)[3]劉增基,周洋溢,胡遼林,周綺麗.光纖通信(第二版)[M].西安:西安電子科技大學(xué)出版社,2008.12[4]劉紹漢,劉新民,林杜生.VHDL芯片設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.[5]段吉海,等.基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.[6]江國(guó)強(qiáng).EDA技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2004.[7]季雄,等.基于VerilogHDL的UART設(shè)計(jì)[J]微計(jì)算機(jī)信息.2006,6-2;230-232.[8]孫嬌燕.碼編解碼方案的分析與改進(jìn),光通信技術(shù),1994,18(4):282~286[9]夏宇聞.復(fù)雜數(shù)字電路與系統(tǒng)的VerilogHDL設(shè)計(jì)技術(shù).北京:北京航空航天大學(xué)出版社,1998,9[10]楊祥林.光纖通信系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,2000.1.[11]王新梅,等.糾錯(cuò)碼原理與方法[M].西安:西安電子科技大學(xué)出版社,2001[12]南利平,李光華,張晨燕,王亞飛.通信原理簡(jiǎn)明教程:第二版[M].北京:清華大學(xué)出版社,2007.8.[13]樊昌信,詹道庸,徐炳祥,等.通信原理[M].北京:國(guó)防工業(yè)出版社,2001[14]DorotaHuizinga,AdamKolawa.AutomatedDefectPrevention:BestPracticesinSoftwareManagement[M].Wiley-Blackwell,2007.[15]AdamKolawa.TheNextLeapinProductivity:WhatTopManagersReallyNeedtoKnowaboutInformationTechnology[M].Wiley,2009.

致謝四年的時(shí)間轉(zhuǎn)眼就過(guò)去了,在這四年里我成長(zhǎng)了很多,也從周圍的朋友身上了解到了很多這一輩子都不會(huì)忘記的事。在這即將畢業(yè)離校之際,我很感謝在這段時(shí)間里同學(xué)們和老師們的幫助,很感謝大家!通過(guò)此次做畢業(yè)論文,我覺(jué)得我對(duì)自己的實(shí)踐動(dòng)手能力提高了很多。畢竟在之前的學(xué)習(xí)生活中,理論往往是大于實(shí)踐的,我們花更多的時(shí)間在課堂以及書本的學(xué)習(xí)上,但很少花時(shí)間去自己親手去實(shí)現(xiàn)一個(gè)功能。所以,通過(guò)這兩個(gè)月來(lái)的使用,我已經(jīng)很好掌握了QuartusII軟件的使用方法,并對(duì)5B6B碼有了一個(gè)很明確的了解。在這個(gè)過(guò)程中,我遇到了很多的問(wèn)題,但是我通過(guò)上網(wǎng)查詢以及和同學(xué)相互交流,一一解決了這些難題。從中有知道了,有些東西不親自動(dòng)手去做,是永遠(yuǎn)都學(xué)不會(huì)的。在這里,我想我應(yīng)該感謝我的老師張倩老師。在張倩老師的指導(dǎo)下,我很有條理的完成了各個(gè)時(shí)間段應(yīng)該完成的工作,不至于在最后截止日期前手忙腳亂。并且,在這期間張倩老師也給了我很多學(xué)術(shù)上的指導(dǎo),使我受益匪淺。最終,我很感謝張老師在畢業(yè)論文的寫作中給我的幫助!姜曉菀2014年6月于合肥學(xué)院

附錄:圖表目錄TOC\h\z\c"圖"圖1QuartusII運(yùn)行背景 1圖2系統(tǒng)總體設(shè)計(jì)圖 10圖3時(shí)鐘控制模塊 11圖4串并轉(zhuǎn)換模塊 11圖5緩存電路 12圖6并串轉(zhuǎn)換模塊 12圖7完整電路頂層圖 12圖8分頻器的仿真 13圖9串并轉(zhuǎn)換模塊的仿真 13圖10緩存電路的仿真 14圖11并串轉(zhuǎn)換模塊的仿真 14圖12完整電路仿真波形 15TOC\h\z\c"表"表15B6B碼表 9程序代碼(一)六分頻器模塊:序列發(fā)生器的輸入時(shí)鐘脈沖六分頻從而可以實(shí)現(xiàn)每輸入6BIT的并行信號(hào)就將其轉(zhuǎn)換給變量。具體程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCNT6isport(clk:instd_logic;clk6:outstd_logic);end;architectureexamofCNT6issignalq:std_logic_vector(2downto0);signaltemp:std_logic;beginprocess(clk)beginifclk'eventandclk='1'thenifq="101"thenq<="000";temp<='1';elseq<=q+1;temp<='0';endif;endif;endprocess;clk6<=temp;endexam;(二)五位串并轉(zhuǎn)換模塊:5位串變并用循環(huán)移位實(shí)現(xiàn)Clk0來(lái)一次有效,Y接收串行的數(shù)據(jù)就向右移一位當(dāng)五分頻的信號(hào)clk5有效時(shí)把Y輸出。編碼部分五串變五并程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitySER2PAR5to5is port(clk:instd_logic; shift_in:instd_logic; A:outstd_logic_vector(4downto0)); end;architectureoneofSER2PAR5to5is signalq:std_logic_vector(4downto0);begin p1:process(clk) begin ifclk'eventandclk='1' thenq<=q(3downto0)&shift_in; endif; endprocessp1;A<=q;endone;(三)存儲(chǔ)器模塊:根據(jù)上面的碼表確定5位碼對(duì)應(yīng)的6位碼利用類似查表的方法把輸入的五位數(shù)據(jù)當(dāng)作rom中的地址然后輸出對(duì)應(yīng)的6位碼。編碼部分程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYPROM5_6ISPORT(Y:INSTD_LOGIC_VECTOR(4DOWNTO0); clk,F:INSTD_LOGIC; Q:OUTSTD_LOGIC_VECTOR(5DOWNTO0));END;ARCHITECTUREONEOFPROM5_6ISSIGNALREG:STD_LOGIC_VECTOR(5DOWNTO0);BEGINP1:PROCESS(Y,F)BEGINifF='0'then--模式一部分caseYis when"00000"=>REG<="000111"; when"00001"=>REG<="011100"; when"00010"=>REG<="110001"; when"00011"=>REG<="101001";--buxing when"00100"=>REG<="011010"; when"00101"=>REG<="010011"; when"00110"=>REG<="101100"; when"00111"=>REG<="111001"; when"01000"=>REG<="100110"; when"01001"=>REG<="010101"; when"01010"=>REG<="010111"; when"01011"=>REG<="100111"; when"01100"=>REG<="101011"; when"01101"=>REG<="011110"; when"01110"=>REG<="101110"; when"01111"=>REG<="110100"; when"10000"=>REG<="001011"; when"10001"=>REG<="011101"; when"10010"=>REG<="011011"; when"10011"=>REG<="110101"; when"10100"=>REG<="110110"; when"10101"=>REG<="111010"; when"10110"=>REG<="101010"; when"10111"=>REG<="011001"; when"11000"=>REG<="101101"; when"11001"=>REG<="001101"; when"11010"=>REG<="110010"; when"11011"=>REG<="010110"; when"11100"=>REG<="100101"; when"11101"=>REG<="100011"; when"11110"=>REG<="001110"; when"11111"=>REG<="111000"; WHENOTHERS=>REG<=NULL;endcase; endif;ifF='1'then--模式二部分caseYis when"00000"=>REG<="000111"; when"00001"=>REG<="011100"; when"00010"=>REG<="110001"; when"00011"=>REG<="101001"; when"00100"=>REG<="011010"; when"00101"=>REG<="010011"; when

溫馨提示

  • 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)論