【基于fpga的誤碼檢測(cè)設(shè)計(jì)電路8500字(論文)】_第1頁
【基于fpga的誤碼檢測(cè)設(shè)計(jì)電路8500字(論文)】_第2頁
【基于fpga的誤碼檢測(cè)設(shè)計(jì)電路8500字(論文)】_第3頁
【基于fpga的誤碼檢測(cè)設(shè)計(jì)電路8500字(論文)】_第4頁
【基于fpga的誤碼檢測(cè)設(shè)計(jì)電路8500字(論文)】_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于fpga的誤碼檢測(cè)設(shè)計(jì)電路摘要鑒于網(wǎng)絡(luò)通信監(jiān)測(cè)具有移動(dòng)性,要對(duì)同一通信網(wǎng)絡(luò)不同測(cè)試點(diǎn)進(jìn)行監(jiān)測(cè),對(duì)于測(cè)試點(diǎn)的物理距離比較遠(yuǎn)的通信網(wǎng)絡(luò),要求通信網(wǎng)絡(luò)測(cè)試設(shè)備向小型化,便攜化的兩個(gè)方向發(fā)展。手持式網(wǎng)絡(luò)測(cè)試設(shè)備主要以現(xiàn)場(chǎng)施工以及運(yùn)行維護(hù)使用為目的,不要求其測(cè)試功能的完善,但側(cè)重于實(shí)用性和方便性。誤碼測(cè)試儀主要基于FPGA技術(shù),并且以方便,實(shí)用,經(jīng)濟(jì)三個(gè)方面為主要特點(diǎn)進(jìn)行設(shè)計(jì)開發(fā)的。它的核心器件是現(xiàn)場(chǎng)可編程邏輯陣列(FPGA),便于移植或者升級(jí)。FPGA是目前應(yīng)用比較廣泛的可編程門陣列,如今很多數(shù)字通信系統(tǒng)都是用FPGA作為系統(tǒng)的核心控制器件,不僅使系統(tǒng)的集成度大大提高而且降低了硬件設(shè)計(jì)的復(fù)雜程度。所以,采用FPGA作為智能誤碼儀的核心控制器件是比較合適的選擇。本論文在分析了誤碼儀工作原理的基礎(chǔ)上,釆用FPGA等構(gòu)建硬件平臺(tái),完成誤碼儀的功能。用FPGA實(shí)現(xiàn)偽隨機(jī)序列的收發(fā)和誤碼統(tǒng)計(jì),然后通過數(shù)碼管顯示檢測(cè)結(jié)果。關(guān)鍵詞:fpga;誤碼檢測(cè);電路目錄畢業(yè)論文(設(shè)計(jì)) I基于fpga的誤碼檢測(cè)設(shè)計(jì)電路 I摘要 II1.緒論 52.總體設(shè)計(jì) 62.1EDA與VHDL介紹 62.2總體設(shè)計(jì) 82.3基本原理 92.4偽隨機(jī)序列的原理及特點(diǎn) 102.5電路設(shè)計(jì) 123.功能設(shè)計(jì) 133.1基本功能 133.2頂層電路 204.仿真和驗(yàn)證 204.1仿真驗(yàn)證 204.2整體仿真 214.3FPGA驗(yàn)證 225.結(jié)論 23參考文獻(xiàn) 251.緒論 FPGA是目前應(yīng)用比較廣泛的可編程門陣列(FPGA),如今很多數(shù)字通信系統(tǒng)都是用FPGA作為系統(tǒng)的核心控制器件,不僅使系統(tǒng)的集成度大大提高而且降低了硬件設(shè)計(jì)的復(fù)雜程度。所以,采用FPGA作為誤碼檢測(cè)器的核心控制器件是比較合適的選擇。在通信系統(tǒng)中,機(jī)器故障、信號(hào)衰落、干擾等多種原因都可以導(dǎo)致接收端接收到誤碼,甚至可能造成系統(tǒng)性能惡化,乃至通信中斷,其結(jié)果都可通過誤碼的形式表現(xiàn)出來,在誤碼中加入時(shí)間的概念就有了誤碼率,誤碼率是衡量數(shù)據(jù)在規(guī)定時(shí)間內(nèi)數(shù)據(jù)傳輸精確性的指標(biāo),是檢驗(yàn)設(shè)備傳輸性能的重要指標(biāo)。誤碼檢測(cè)器主要基于FPGA技術(shù),并且以方便,實(shí)用,經(jīng)濟(jì)三個(gè)方面為特點(diǎn)進(jìn)行設(shè)計(jì)開發(fā)的。它的核心器件是現(xiàn)場(chǎng)可編程邏輯陣列,便于移植或者升級(jí)。隨著FPGA的迅速發(fā)展,采用FPGA與單片機(jī)相結(jié)合的誤碼率檢測(cè)器也應(yīng)運(yùn)而生,采用FPGA完成誤碼測(cè)試的各個(gè)部分,采用單片機(jī)實(shí)現(xiàn)系統(tǒng)的控制。雖然這種方式的誤碼率檢測(cè)器較多,但是受到FPGA本身的速率限制,大多數(shù)檢測(cè)器的速率都較低,一般在2Mb/s、24Mb/s以及300Mb/s左右,個(gè)別設(shè)計(jì)達(dá)到2488Mb/s。誤碼率檢測(cè)器國外的產(chǎn)品較多,安捷倫公司和泰克公司的檢測(cè)器都是比較高端的,功能也非常完善。例如安捷倫公司的81250并行誤碼率檢測(cè)器和串行誤碼率檢測(cè)器N4906、N4903A速率可以達(dá)到12.5Gb/s,E4898ABERT等多款檢測(cè)器速率達(dá)到100Gb/s[20]。泰克公司的BERTScopeCR系列檢測(cè)器數(shù)據(jù)速率可以達(dá)到28.6Gb/s。國內(nèi)的設(shè)備比較典型的是中國電子科技集團(tuán)研制的AV系列的誤碼檢測(cè)器,例如AV5232e、AV5231和AV5235等。隨著數(shù)據(jù)傳輸方式的改變,誤碼率檢測(cè)器都在朝著串行方向發(fā)展。國外高速誤碼器的功能相對(duì)國內(nèi)比較完善,國外檢測(cè)器的發(fā)送端的碼型相對(duì)較多,測(cè)試速率可選,而且具有很好的人機(jī)交互界面,有很好的性能指標(biāo),主要適用于大中型企業(yè)以及對(duì)于技術(shù)指標(biāo)要求相對(duì)較高的場(chǎng)合測(cè)試,因其價(jià)格較高、而且操作也比較復(fù)雜、維修困難,一般不適用于小型企業(yè)以及教學(xué)實(shí)驗(yàn)。國內(nèi)的產(chǎn)品操作相對(duì)簡(jiǎn)單,但是處理信號(hào)的速率一般在幾Mb/s或者百M(fèi)b/s,速率相對(duì)較低,達(dá)到千兆速率的誤碼率檢測(cè)器非常少,而且其發(fā)送碼型單一。目前,光通信接入網(wǎng)技術(shù)在不斷提高,傳輸速率也在不斷提高,光傳輸模塊應(yīng)用也越來越多,如1.25Gb/s、2.5Gb/s和3.125Gb/s光模塊,對(duì)通信設(shè)備性能的要求也越來越高,通信系統(tǒng)可靠性的檢測(cè)也顯得尤為重要。2.總體設(shè)計(jì)2.1EDA與VHDL介紹用VHDL設(shè)計(jì)的程序,通過綜合工具產(chǎn)生網(wǎng)表文件,下載到目標(biāo)器件,從而生成硬件電路。VHDL還是一種仿真語言,包括行為仿真、功能仿真和時(shí)序仿真,給系統(tǒng)設(shè)計(jì)各個(gè)階段的可行性做出了決策。FPGA(Field-ProgrammableGateArray現(xiàn)場(chǎng)可編程門陣列)是近年來廣泛應(yīng)用的超大規(guī)模、超高速的可編程邏輯器件,由于其具有高集成度(單片集成的系統(tǒng)門數(shù)達(dá)上千萬門)、高速(200MHz以上)、在線系統(tǒng)可編程等優(yōu)點(diǎn),為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了突破性變革,大大推動(dòng)了數(shù)字系統(tǒng)設(shè)計(jì)的單片化、自動(dòng)化,提高了單片數(shù)字系統(tǒng)的設(shè)計(jì)周期、設(shè)計(jì)靈活性和可靠性。在超高速信號(hào)處理和實(shí)時(shí)測(cè)控方面有非常廣泛的應(yīng)用。硬件描述語言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語言。VHDL是硬件描述語言的幾種代表性語言的一種。VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage即超高速集成電路硬件描述語言)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,與其它的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路本身在不斷地進(jìn)行更新?lián)Q代。它由早期的電子管、晶體管、小中規(guī)模集成電路、發(fā)展到超大規(guī)模集成電路(VLSIC,幾萬門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術(shù)的發(fā)展,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨(dú)立承擔(dān)。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)專用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。早期的可編程邏輯器件只有可編程只讀存儲(chǔ)器(PROM)、紫外線可擦除只讀存儲(chǔ)器(EPROM)和電可擦除只讀存儲(chǔ)器(EEPROM)三種。由于結(jié)構(gòu)的限制,它們只能完成簡(jiǎn)單的數(shù)字邏輯功能。其后,出現(xiàn)了一類結(jié)構(gòu)上較復(fù)雜的可編程芯片,即可編程邏輯器件(PLD),它能夠完成各種數(shù)字邏輯功能。典型的PLD由一個(gè)“與”門和一個(gè)“或”門陣列組成,而任意一個(gè)組合邏輯都可以用“與一或”表達(dá)式來描述,所以,PLD能以乘積和的形式完成大量的組合邏輯功能。這一階段的產(chǎn)品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。PAL由一個(gè)可編程的“與”平面和一個(gè)固定的“或”平面構(gòu)成,或門的輸出可以通過觸發(fā)器有選擇地被置為寄存狀態(tài)。PAL器件是現(xiàn)場(chǎng)可編程的,它的實(shí)現(xiàn)工藝有反熔絲技術(shù)、EPROM技術(shù)和EEPROM技術(shù)。還有一類結(jié)構(gòu)更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個(gè)“與”平面和一個(gè)“或”平面構(gòu)成,但是這兩個(gè)平面的連接關(guān)系是可編程的。PLA器件既有現(xiàn)場(chǎng)可編程的,也有掩膜可編程的。在PAL的基礎(chǔ)上,又發(fā)展了一種通用陣列邏輯GAL(GenericArrayLogic),如GAL16V8,GAL22V10等。它采用了EEPROM工藝,實(shí)現(xiàn)了電可擦除、電可改寫,其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因而它的設(shè)計(jì)具有很強(qiáng)的靈活性,至今仍有許多人使用。這些早期的PLD器件的一個(gè)共同特點(diǎn)是可以實(shí)現(xiàn)速度特性較好的邏輯功能,但其過于簡(jiǎn)單的結(jié)構(gòu)也使它們只能實(shí)現(xiàn)規(guī)模較小的電路。為了彌補(bǔ)這一缺陷,20世紀(jì)80年代中期。Altera和Xilinx分別推出了類似于PAL結(jié)構(gòu)的擴(kuò)展型CPLD(ComplexProgrammab1eLogicDevice)和與標(biāo)準(zhǔn)門陣列類似的FPGA(FieldProgrammableGateArray),它們都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍廣等特點(diǎn)。這兩種器件兼容了PLD和通用門陣列的優(yōu)點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路,編程也很靈活。與門陣列等其它ASIC(ApplicationSpecificIC)相比,它們又具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線檢驗(yàn)等優(yōu)點(diǎn),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用門陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場(chǎng)合均可應(yīng)用FPGA和CPLD器件。FPGA(現(xiàn)場(chǎng)可編程門陣列)與CPLD(復(fù)雜可編程邏輯器件)都是可編程邏輯器件,它們是在PAL,GAL等邏輯器件的基礎(chǔ)之上發(fā)展起來的。同以往的PAL,GAL等相比較,F(xiàn)PGA的規(guī)模比較大,它可以替代幾十甚至幾千塊通用IC芯片。這樣的FPGA實(shí)際上就是一個(gè)子系統(tǒng)部件。這種芯片受到世界范圍內(nèi)電子工程設(shè)計(jì)人員的廣泛關(guān)注和普遍歡迎。盡管FPGA和其它類型PLD的結(jié)構(gòu)各有其特點(diǎn)和長(zhǎng)處,但概括起來,它們是由三大部分組成的:一個(gè)二維的邏輯塊陣列,構(gòu)成了PLD器件的邏輯組成核心;輸入/輸出塊;連線資源:由各種長(zhǎng)度的連線線段組成,其中也有一些可編程的連接開關(guān),它們用于邏輯塊之間、邏輯塊與輸入/輸出塊之間的連接。FPGA芯片都是特殊的ASIC芯片,它們除了具有ASIC的特點(diǎn)之外,還具有以下幾個(gè)優(yōu)點(diǎn):(1)隨著VLSI(VeryLargeScaleIC,超大規(guī)模集成電路)工藝的不斷提高單一芯片內(nèi)部可以容納上百萬個(gè)晶體管,F(xiàn)PGA芯片的規(guī)模也越來越大,其單片邏輯門數(shù)已達(dá)到上百萬門,它所能實(shí)現(xiàn)的功能也越來越強(qiáng),同時(shí)也可以實(shí)現(xiàn)系統(tǒng)集成。(2)FPGA芯片在出廠之前都做過百分之百的測(cè)試,不需要設(shè)計(jì)人員承擔(dān)投資的風(fēng)險(xiǎn)和費(fèi)用,設(shè)計(jì)人員只需在自己的實(shí)驗(yàn)室里就可以通過相關(guān)的軟硬件環(huán)境來完成芯片的最終功能設(shè)計(jì)。所以,F(xiàn)PGA的資金投入小,節(jié)省了許多潛在的花費(fèi)。(3)用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動(dòng)的情況下用不同軟件就可實(shí)現(xiàn)不同的功能。電路設(shè)計(jì)人員使用FPGA進(jìn)行電路設(shè)計(jì)時(shí),不需要具備專門的IC(集成電路)深層次的知識(shí),F(xiàn)PGA軟件易學(xué)易用,可以使設(shè)計(jì)人員更能集中精力進(jìn)行電路設(shè)計(jì),快速將產(chǎn)品推向市場(chǎng)。所以,用FPGA試制樣片,能以最快的速度占領(lǐng)市場(chǎng)。FPGA軟件包中有各種輸入工具和仿真工具,及版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,電路設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGA的優(yōu)勢(shì)。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。2.2總體設(shè)計(jì)硬件系統(tǒng)通過AlteraCycloneEP1C3T144C8作為主控制芯片和數(shù)據(jù)處理芯片,完成連續(xù)信號(hào)的的發(fā)送和接收,通過待測(cè)模塊,在線測(cè)試模塊的誤碼率。圖2-1誤碼檢測(cè)硬件方案由于在FPGA作為主芯片下,F(xiàn)PGA電源要求和外圍電路的電源要求,電源系統(tǒng)的也是設(shè)計(jì)的重點(diǎn);另誤碼測(cè)試系統(tǒng)本身通過LED顯示和控制按鈕獨(dú)立的完成誤碼測(cè)試功能,這些就要求電路設(shè)計(jì)中,包含有測(cè)試接口的設(shè)計(jì),指示電路的設(shè)計(jì),通信電路的設(shè)計(jì)等。2.3基本原理比特誤碼率是通信系統(tǒng)性能最基本的測(cè)試,是指在一定的測(cè)試時(shí)間內(nèi),錯(cuò)誤碼元的數(shù)量與總碼元數(shù)量的比值。表達(dá)式為: 誤碼率=誤碼個(gè)數(shù)/碼元總數(shù)誤碼率測(cè)試儀的工作方式主要有幾個(gè)步驟:首先,以某種方法產(chǎn)生與發(fā)送碼組相同的本地碼組,本地碼組與發(fā)送碼組相位相同,將本地碼組作為比對(duì)標(biāo)準(zhǔn);然后,將本地碼組與接收碼組逐位進(jìn)行比較,并輸出誤碼脈沖信號(hào),統(tǒng)計(jì)誤碼脈沖個(gè)數(shù),計(jì)算最終的誤碼率。誤碼測(cè)試的基本原理如圖所示圖2-2誤碼測(cè)試基本原理圖2-2中的被測(cè)系統(tǒng)包括調(diào)制解調(diào)器、傳輸媒質(zhì)以及交換設(shè)備等,是廣義的信道,通過檢測(cè)誤碼可以了解整個(gè)系統(tǒng)的性能。接收部分接收被測(cè)系統(tǒng)發(fā)送回來的數(shù)據(jù)并進(jìn)行預(yù)處理。誤碼檢測(cè)器的作用是產(chǎn)生與發(fā)送端相同的本地?cái)?shù)據(jù),在接收被測(cè)系統(tǒng)發(fā)送回來的數(shù)據(jù)的同時(shí)啟動(dòng)本地信號(hào)進(jìn)行比對(duì),并統(tǒng)計(jì)相應(yīng)的誤碼。其比較方法是將碼元進(jìn)行逐位比對(duì),逐位比對(duì)過程如圖2-3所示。圖2-3逐位比對(duì)過程由圖2-3可知,采用異或門對(duì)接收序列和測(cè)試儀產(chǎn)生的本地序列進(jìn)行比對(duì),如果兩序列相同,異或門輸出“0”,如果不同,異或門輸出“1”,同時(shí)記錄1個(gè)誤碼。本設(shè)計(jì)將采用逐位比較的方式,將接收到的數(shù)據(jù)首先存入寄存器中,然后通過接收數(shù)據(jù)提取出同步信號(hào),控制本地?cái)?shù)據(jù)和接收數(shù)據(jù)逐位進(jìn)行比較,并計(jì)算相應(yīng)的誤碼率。2.4偽隨機(jī)序列的原理及特點(diǎn)如果一個(gè)信道中具有隨機(jī)噪聲,那么就會(huì)使模擬信號(hào)的輸出產(chǎn)生失真現(xiàn)象,數(shù)字信號(hào)的解調(diào)輸出出現(xiàn)誤碼現(xiàn)象,而且噪聲的存在會(huì)造成信噪比降低,同時(shí)會(huì)限制信道的傳輸容量。在通信工程應(yīng)用中,最常采用的標(biāo)準(zhǔn)偽隨機(jī)序列模式就是最大線性反饋移位寄存器序列(m序列),它具有很多特性,比如具有能夠使模擬數(shù)據(jù)“0”和“1”保持平衡的能力。較長(zhǎng)的序列可以更好地近似隨機(jī)數(shù)據(jù),并使設(shè)備測(cè)試更嚴(yán)格。這種數(shù)據(jù)易于產(chǎn)生,可以重復(fù)發(fā)送并能夠進(jìn)行統(tǒng)計(jì),所以可以用于統(tǒng)計(jì)測(cè)試當(dāng)中。當(dāng)對(duì)m序列本身進(jìn)行比較時(shí),如果序列有錯(cuò)位,那么將得到50%的誤碼率。偽隨機(jī)序列中包含較多的長(zhǎng)“0”和長(zhǎng)“1”串,能夠很好地對(duì)設(shè)備進(jìn)行壓力測(cè)試。m序列自相關(guān)系數(shù)見式(2-1),其中n是m序列的長(zhǎng)度。(2-1)由m序列的自相關(guān)系數(shù)公式可以看出,m序列具有很好的自相關(guān)特性。產(chǎn)生m序列的一般方式是采用線性反饋移位寄存器,通常要求寄存器級(jí)數(shù)盡量少,而且生成的數(shù)據(jù)盡可能長(zhǎng)。如果反饋移位寄存器有n級(jí),則產(chǎn)生2n-1長(zhǎng)度的周期序列。生成m序列的反饋電路有兩種形式,分別為Galois和Fibonacci線性反饋移位寄存器。Galois和Fibonacci線性反饋移位寄存器原理如圖2-4和2-5所示。圖2-4Galois原理圖圖2-5Fibonacci原理圖其中Ci(i=1,2,…,n)表示每一級(jí)的反饋系數(shù),如果Ci=1說明該寄存器有參與反饋;如果Ci=0說明該級(jí)寄存器沒有參與反饋。保證C0和Cn不等于0,如果C0=0就表示移位寄存器沒有反饋,如果Cn=0就表示寄存器變?yōu)閚-1級(jí)或者是更少級(jí)的反饋移位寄存器。Fibonacci方式在寄存器外進(jìn)行異或操作,節(jié)點(diǎn)少時(shí),會(huì)提高反饋速度,主要是序列同步比較簡(jiǎn)單。Galois形式每?jī)蓚€(gè)移位寄存器內(nèi)進(jìn)行異或操作,這就使得在節(jié)點(diǎn)增多的情況下,序列的生成速度不會(huì)降低。上述反饋移位寄存器是線性遞歸函數(shù),一旦確定反饋系數(shù)和級(jí)數(shù)之后,就確定了輸出序列的周期和組成方式。m序列的一個(gè)重要特點(diǎn)就是任意一個(gè)m序列的循環(huán)位移同樣是一個(gè)m序列。反饋移位寄存器的級(jí)數(shù)n不同,則m序列的反饋系數(shù)也不同,對(duì)于m序列最重要的是要確定移位寄存器的連接方式。分析兩種形式的反饋移位寄存器,本設(shè)計(jì)采用Fibonacci反饋移位寄存器生成m序列。2.5電路設(shè)計(jì)傳統(tǒng)的誤碼測(cè)試方案實(shí)現(xiàn)主要以軟件方式,或者FPGA和單片機(jī),再者FPGA和外部高速并串芯片實(shí)現(xiàn),要么速率達(dá)不到要求,要么實(shí)現(xiàn)起來電路設(shè)計(jì)或邏輯設(shè)計(jì)龐大。高速誤碼測(cè)試系統(tǒng)的設(shè)計(jì)在現(xiàn)階段有很多的實(shí)現(xiàn)方式,傳統(tǒng)的誤碼測(cè)試是基于軟件模擬,檢測(cè)相當(dāng)耗時(shí),不適合目前高速數(shù)字通信系統(tǒng)性能,甚至更高速率的測(cè)試。現(xiàn)今FPGA芯片的的高速發(fā)展,采用FPGA作為系統(tǒng)的核心控制器件。隨著先進(jìn)工具的不斷出現(xiàn),系統(tǒng)設(shè)計(jì)者創(chuàng)建FPGA的速度也變得越來越快,而且能夠輕易地將它應(yīng)用到各種場(chǎng)合。FPGA不同于處理器,它運(yùn)用專用邏輯處理硬件,不需要操作系統(tǒng)。由于FPGA采用的是平行的處理路徑的方式,所以即使存在不同的操作也不會(huì)在相同的處理資源上相互爭(zhēng)奪,這就明顯使處理速度大大提高,如果要在不同速率下同時(shí)運(yùn)行多個(gè)控制回路,采用一個(gè)FPGA設(shè)備就可以實(shí)現(xiàn)。而且FPGA的可重構(gòu)性,使設(shè)計(jì)的靈活性大大提高。在配置FPGA時(shí),能夠創(chuàng)建一個(gè)用作軟件用途的硬件,同時(shí)采用這種方式進(jìn)行連接。3.功能設(shè)計(jì)3.1基本功能(1)串行m序列生成模塊串行方式生成的m序列可以用于低速測(cè)試,在低速測(cè)試時(shí),將測(cè)試數(shù)據(jù)通過接口直接發(fā)送到被測(cè)設(shè)備,不需要經(jīng)過高速收發(fā)器進(jìn)行轉(zhuǎn)換。本設(shè)計(jì)采用線性反饋移位寄存器的方式設(shè)計(jì)m序列生成電路。在設(shè)計(jì)m序列時(shí),關(guān)鍵是首先要確定寄存器的反饋方式,根據(jù)m序列本原多項(xiàng)式確定本設(shè)計(jì)的不同長(zhǎng)度偽隨機(jī)序列。移位寄存器的連接方式見表3-1。表3-1移位寄存器連接方式以27-1偽隨機(jī)序列為例,介紹串行m序列的生成方法。由表3-1可知,27-1偽隨機(jī)序列的本原多項(xiàng)式為f(x)=1+x6+x7,表示寄存器的第七級(jí)和第六級(jí)參與反饋,其VHDL核心代碼如下: 也可以在發(fā)從的碼中插入一定比例的誤碼,誤碼插入單元主要實(shí)現(xiàn)在發(fā)送碼中插入一定的誤碼,可以實(shí)現(xiàn)單一誤碼插入或者是插入一定比例的誤碼,插入一個(gè)誤碼的原理主要是對(duì)一個(gè)正確的碼元取反,就是在隨機(jī)序列產(chǎn)生模塊的輸出端設(shè)計(jì)一個(gè)取反電路,當(dāng)選擇插入一個(gè)誤碼時(shí),取反電路開始工作,插入一個(gè)誤碼。其VHDL核心代碼如下:process(clk)begin ifrising_edge(clk)then casecnt_mis 取反12位 when11=> m_o<=notm_i; when33=> m_o<=notm_i; when55=> m_o<=notm_i; when88=>m_o<=notm_i; when111=> m_o<=notm_i; when133=> m_o<=notm_i; when155=> m_o<=notm_i; when166=> m_o<=notm_i; when199=> m_o<=notm_i; when211=> m_o<=notm_i; when233=> m_o<=notm_i; when245=> m_o<=notm_i; whenothers =>m_o<=m_i; endcase; endif;endprocess;同步信號(hào)提取及狀態(tài)檢測(cè)是誤碼統(tǒng)計(jì)的前提,該部分將在接下來進(jìn)行介紹。誤碼統(tǒng)計(jì)模塊統(tǒng)計(jì)誤碼個(gè)數(shù)。誤碼檢測(cè)單元及誤碼統(tǒng)計(jì)模塊集成在一個(gè)模塊里。本節(jié)主要設(shè)計(jì)誤碼檢測(cè)單元的各部分邏輯模塊。下面是本模塊的核心代碼。process(clk,rst,start)beginifrst='0'then m<=0; cnt<=1;elsifrising_edge(clk)then ifstart='0'then m<=0; cnt<=1; else --同步成功使能有效時(shí) ifcnt>=255then --循環(huán)255個(gè)時(shí)鐘周期內(nèi),對(duì)比接收和本地M序列,統(tǒng)計(jì)誤碼數(shù) err_cnt<=m; cnt<=1; m<=0; else cnt<=cnt+1; endif; ifm_1/=m_locthen--對(duì)比不相同,誤碼數(shù)+1 m<=m+1; endif; endif;endif;endprocess;在串行測(cè)試時(shí),采用數(shù)字鎖相環(huán)的方式提取出同步信號(hào),同步信號(hào)同時(shí)控制本地m序列生成模塊以及誤碼檢測(cè)的其他模塊工作。圖3-1狀態(tài)關(guān)系轉(zhuǎn)移圖St1的功能是比對(duì)本地和接收到的碼,對(duì)其進(jìn)行計(jì)數(shù),用于st2判斷誤碼的個(gè)數(shù),st3是本地碼和接收碼未同步,對(duì)本地碼進(jìn)行暫停一個(gè)周期,加快對(duì)同步的檢測(cè)。在該模塊中,st0為初始狀態(tài),對(duì)收到的一串碼和本地產(chǎn)生的偽隨機(jī)碼進(jìn)行比對(duì),如果連續(xù)的7個(gè)碼中誤碼數(shù)不超過3個(gè)就認(rèn)為本地的碼和接受到的碼已經(jīng)同步,可以進(jìn)行誤碼計(jì)數(shù)。該核心代碼包括數(shù)碼管的掃描,有效位數(shù)的提取等核心程序。該顯示模塊是對(duì)255個(gè)時(shí)鐘周期內(nèi)的誤碼個(gè)數(shù)進(jìn)行顯示,通過部分使用的是8段數(shù)碼管,顯示的有效值是誤碼的個(gè)數(shù)。其代碼如下process(clk)variablem:integerrange0to24999;beginifrising_edge(clk)then --產(chǎn)生數(shù)碼管顯示使能跳轉(zhuǎn)時(shí)鐘 ifm=24999then m:=0; clk_1k<=notclk_1k; else m:=m+1; endif;endif;endprocess;process(clk,rst,err_cnt)begin ifrst='0'then d3<=0; d2<=0; d1<=0; err<=err_cnt; --載入誤碼數(shù) elsifrising_edge(clk)then --提取各位顯示數(shù)據(jù) iferr>=100then err<=err-100; d3<=d3+1; else iferr>=10then err<=err-10; d2<=d2+1; else-- err<=err_cnt; d1<=err; endif; endif; endif;endprocess;process(clk_1k)beginifrising_edge(clk_1k)then ifcnt=3then cnt<=1; else cnt<=cnt+1; endif;endif;endprocess;process(clk)beginifrising_edge(clk)thencasecntis when3=>scan<="011"; data<=d3; when2=>scan<="101"; data<=d2; when1=>scan<="110"; data<=d1; whenothers=> null;endcase;endif;endprocess;process(data)begin casedatais when0=>seg<="11000000";when1=>seg<="11111001";when2=>seg<="10100100";when3=>seg<="10110000";when4=>seg<="10011001";when5=>seg<="10010010";when6=>seg<="10000010";when7=>seg<="11111000";when8=>seg<="10000000";when9=>seg<="10011000";whenothers=>null;endcase;endprocess;其誤碼的加入調(diào)用了前面的誤碼產(chǎn)生模塊。本模塊是為了驗(yàn)證設(shè)計(jì)的誤碼測(cè)試儀的正確性而設(shè)計(jì)的驗(yàn)證單元,其主要功能是模仿實(shí)際信道,對(duì)傳輸?shù)拇a中加入一定的誤碼,然后將生成的序列發(fā)送給接收部分。其核心代碼如下componentsim_channelport(clk :instd_logic;-- rst :instd_logic; m_i:instd_logic; --模擬信道M序列輸入 cnt_m:ininteger; m_o :outstd_logic --模擬信道M序列輸出 );endcomponent;beginsim_cha:sim_channelportmap(clk,m_i,cnt_m,m_o);3.2頂層電路頂層設(shè)計(jì)采用的是VHDL例化方式對(duì)子模塊進(jìn)行例化和調(diào)用,其核心代碼如下為了方便大家了解頂層電路各個(gè)模塊的鏈接方式,已將各個(gè)子模塊生成了symbol,然后也創(chuàng)建了一個(gè)原理圖,下面貼出來供大家方便的了解該設(shè)計(jì)的主要思想。圖3-2誤碼檢測(cè)頂層模塊4.仿真和驗(yàn)證4.1仿真驗(yàn)證在該節(jié)對(duì)偽隨機(jī)碼的產(chǎn)生進(jìn)行了仿真。其結(jié)果如下圖,從圖中看的出得到的結(jié)果就是我們希望的,所以該部分的功能是正確的,稍后將進(jìn)行在FPGA中進(jìn)行驗(yàn)證。在上一章節(jié)對(duì)本誤碼測(cè)試儀的各個(gè)模塊進(jìn)行了搭建和編寫,本章將進(jìn)行將各個(gè)模塊的功能驗(yàn)證和仿真,以及整體的功能和效果。 如圖4-1所示,隨著時(shí)鐘的動(dòng)作,一定時(shí)鐘周期以后就產(chǎn)生了偽隨機(jī)碼,產(chǎn)生的七位的偽隨機(jī)碼。從波形中可以得到和我們產(chǎn)生偽隨機(jī)碼的原理產(chǎn)生的碼是相同的。圖4-1偽隨機(jī)碼的產(chǎn)生第三列是我們模擬信道輸出的碼,這個(gè)碼就是我們模擬通過實(shí)際信道產(chǎn)生的誤碼。從圖中我們可以發(fā)現(xiàn)一段相同的碼后有一個(gè)誤碼,達(dá)到了我們預(yù)想的效果,功能滿足我們的設(shè)想。在圖4-2的中我們可以發(fā)現(xiàn),第一列是我們產(chǎn)生的偽隨機(jī)碼,第二列是我們?cè)诋a(chǎn)生偽隨機(jī)碼的過程中產(chǎn)生的一個(gè)計(jì)數(shù),用于在模擬信道中產(chǎn)生誤碼的第多少位。圖4-2誤碼插入和模擬信道模塊的產(chǎn)生從圖4-3中我們可以發(fā)現(xiàn),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論