基于FPGA的HDB3編碼實現(xiàn)---畢業(yè)論文_第1頁
基于FPGA的HDB3編碼實現(xiàn)---畢業(yè)論文_第2頁
基于FPGA的HDB3編碼實現(xiàn)---畢業(yè)論文_第3頁
基于FPGA的HDB3編碼實現(xiàn)---畢業(yè)論文_第4頁
基于FPGA的HDB3編碼實現(xiàn)---畢業(yè)論文_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 學生姓名: 湯敏慎學 號:0815022209所在系部:電氣信息系專業(yè)班級:08gb通信2班指導教師:崔振宇講師日 期:二一二年5月畢 業(yè) 設 計(論 文)基于fpga的hdb3編碼實現(xiàn) 28 (hdb3 encoding of fpga-based implementation)by (tang minshen) june 2012 學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的學位論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。本人完全意識到本聲明的法律后果由本人承擔。 作者簽名: 年 月 日學位論

2、文版權(quán)使用授權(quán)書本學位論文作者完全了解學院有關(guān)保管、使用學位論文的規(guī)定,同意學院保留并向有關(guān)學位論文管理部門或機構(gòu)送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權(quán)省級優(yōu)秀學士學位論文評選機構(gòu)將本學位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。本學位論文屬于 1、保密 ,在 年解密后適用本授權(quán)書。 2、不保密 。 (請在以上相應方框內(nèi)打“”) 作者簽名: 年 月 日 導師簽名: 年 月 日 摘 要 現(xiàn)代通信在技術(shù)一般的數(shù)字通信系統(tǒng)中首先將消息變?yōu)閿?shù)字基帶信號,稱為信源編碼,經(jīng)過調(diào)制后進行傳輸,在接收端先進行解調(diào)恢復為基帶信號,再進行

3、解碼轉(zhuǎn)換為消息。在實際的基帶傳輸系統(tǒng)中,并不是所有電波均能在信道中傳輸,因此有基帶信號的選擇問題,因此對碼型的設計和選擇需要符合一定的原則。hdb3碼因具有無直流成分,低頻成分少和連0的個數(shù)不超過三個等明顯優(yōu)點而成為數(shù)字基帶通信中最常用的碼型。同時,由于硬件描述語言vhdl可讀性強,可移植性強,支持對大規(guī)模設計的分解和對己已有設計的再利用等強大功能?,F(xiàn)在已經(jīng)在通信電路設計上得到廣泛應用,文中結(jié)合hdb3的編碼規(guī)則,給出了一種使用vhdl語言實現(xiàn)hdb3編碼的思路和方法設計的核心部分是:在quartus的軟件平臺上,用vhdl語言來完成hdb3編碼器的各個模塊的設計并將它們合為一個整體的系統(tǒng)。設

4、計中所用到的知識主要是:對vhdl碼型基本原理和特性的認識、對quartus 軟件的熟練操作、對vhdl(超高速集成電路硬件描述語言)的掌握和應用,這些知識都是進行電子設計的基本知識和能力,只有基礎知識和能力扎實了,才能更好的進行更次的電子設計,所以這個設計也是對電子設計基本能力的很好的鍛練。關(guān)鍵字:現(xiàn)代通信 hdb3碼 模塊 vhdl quartus 軟件 abstract modern communication in general digital communication system in first will change the information into number

5、word signal of base band, is called as letter source coding , transmit after passing modulation, in take over end advanced trip demodulation recovery is the signal of base band, it is news to carry out decode conversion again. in the actual transmission system of base band,its not all electric waves

6、 can transmit in channel , therefore have the option of the signal of base band problem, therefore for option and the design of pattern of sling-load, need to accord with certain principle.the hdb3 code, for in no direct current components, less lower frequency components and no more than three cont

7、inuous zreos, has become the most common-use code in digit-baseband communication, because of its strong readability, portability, reuse of the existing design and support in resolvability of the large scale design, the hardware describing language vhdl has been widely used in communication circuit

8、design. combining the rules of coding the hdb3, this paper gives a new method using the vhdl language to code the hdb3, the key part of my design is: in quartus software platform on, complete the design of every modular of hdb3 volume with vhdl language ( modular include: encoder and decoder) and wi

9、ll them suit for a overall system. the knowledge that used in design is mainly: it is for the knowledge of the vhdl basic principle and property of pattern of sling-load , for quartus the skilled operation of software , for vhdl ( exceed the hardware of integrated circuit description language ) gras

10、p and apply , these knowledges are the basic knowledge and ability that carries out electronic design , has only basic knowledge and has strong ability , talent is better to carry out the electronic design of higher level, so this design also is a very good exercise for electronic design basic abili

11、ty. keyword: modern communication hdb3 code modular vhdl quartu 目 錄摘 要iabstractii1 可編程邏輯器件11.1 簡介11.2 pld的發(fā)展歷程11.3 pld的特點21.4 固定邏輯與可編程邏輯21.5 可編程邏輯器件的兩種類型:cpld和fpga31.6 pld的編程語言.31.6.1 vhdl語言介紹31.6.2 語言特性、功能與特點41.7 fpga的設計流程51.8 quartus ii 概述72 hdb3碼介紹92.1 數(shù)字基帶信號92.2 nrz,ami,hdb3碼之間的對應關(guān)系92.3 hdb3碼的編碼

12、規(guī)則103 用vhdl語言設計hdb3編碼器123.1 程序輸入輸出口定義123.2 hdb3碼編碼器設計程序和思路123.3 系統(tǒng)設計思路小結(jié)174結(jié) 論194.1 仿真波形194.2 實驗結(jié)論20參考文獻21致 謝22附 錄23 1 可編程邏輯器件1.1 簡介可編程邏輯器件 英文全稱為:programmable logic device 即 pld。pld是做為一種通用集成電路產(chǎn)生的,他的邏輯功能按照用戶對器件編程來確定。一般的pld的集成度很高,足以滿足設計一般的數(shù)字系統(tǒng)的需要。這樣就可以由設計人員自行編程而把一個數(shù)字系統(tǒng)“集成”在一片pld上,而不必去請芯片制造廠商設計和制作專用的集成

13、電路芯片了。1.2 pld的發(fā)展歷程早期的可編程邏輯器件只有可編程只讀存貯器(prom)、紫外線可按除只讀存貯器(eprom)和電可擦除只讀存貯器(eeprom)三種。由于結(jié)構(gòu)的限制,它們只能完成簡單的數(shù)字邏輯功能。其后,出現(xiàn)了一類結(jié)構(gòu)上稍復雜的可編程芯片,即可編程邏輯器件(pld),它能夠完成各種數(shù)字邏輯功能。典型的pld由一個“與”門和一個“或”門陣列組成,而任意一個組合邏輯都可以用“與一或”表達式來描述,所以,pld能以乘積和的形式完成大量的組合邏輯功能。這一階段的產(chǎn)品主要有pal(可編程陣列邏輯)和gal(通用陣列邏輯)。 pal由一個可編程的“與”平面和一個固定的“或”平面構(gòu)成,或門

14、的輸出可以通過觸發(fā)器有選擇地被置為寄存狀態(tài)。 pal器件是現(xiàn)場可編程的,它的實現(xiàn)工藝有反熔絲技術(shù)、eprom技術(shù)和eeprom技術(shù)。還有一類結(jié)構(gòu)更為靈活的邏輯器件是可編程邏輯陣列(pla),它也由一個“與”平面和一個“或”平面構(gòu)成,但是這兩個平面的連接關(guān)系是可編程的。 pla器件既有現(xiàn)場可編程的,也有掩膜可編程的。 在pal的基礎上,又發(fā)展了一種通用陣列邏輯gal (generic array logic),如gal16v8,gal22v10 等。它采用了eeprom工藝,實現(xiàn)了電可按除、電可改寫,其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因而它的設計具有很強的靈活性,至今仍有許多人使用。 這些早期的p

15、ld器件的一個共同特點是可以實現(xiàn)速度特性較好的邏輯功能,但其過于簡單的結(jié)構(gòu)也使它們只能實現(xiàn)規(guī)模較小的電路。為了彌補這一缺陷,20世紀80年代中期。 altera和xilinx分別推出了類似于pal結(jié)構(gòu)的擴展型 cpld(complex programmab1e logic dvice)和與標準門陣列類似的fpga(field programmable gate array),它們都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點。 這兩種器件兼容了pld和通用門陣列的優(yōu)點,可實現(xiàn)較大規(guī)模的電路,編程也很靈活。與門陣列等其它asic(application specific ic)相比,

16、它們又具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及可實時在線檢驗等優(yōu)點,因此被廣泛應用于產(chǎn)品的原型設計和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應用門陣列、pld和中小規(guī)模通用數(shù)字集成電路的場合均可應用fpga和cpld器件。1.3 pld的特點pld與一般數(shù)字芯片不同的是:pld內(nèi)部的數(shù)字電路可以在出廠后才規(guī)劃決定,有些類型的pld也允許在規(guī)劃決定后再次進行變更、改變,而一般數(shù)字芯片在出廠前就已經(jīng)決定其內(nèi)部電路,無法在出廠后再次改變,事實上一般的模擬芯片、混訊芯片也都一樣,都是在出廠后就無法再對其內(nèi)部電路進行調(diào)修。1.4 固定邏輯與可編程邏輯 邏

17、輯器件可分類兩大類 - 固定邏輯器件和可編程邏輯器件。 一如其名,固定邏輯器件中的電路是永久性的.它們完成一種或一組功能,一旦制造完成,就無法改變。 另一方面,可編程邏輯器件(pld)是能夠為客戶提供范圍廣泛的多種邏輯能力、特性、速度和電壓特性的標準成品部件,而且此類器件可在任何時間改變,從而完成許多種不同的功能。對于固定邏輯器件,根據(jù)器件復雜性的不同,從設計、原型到最終生產(chǎn)所需要的時間可從數(shù)月至一年多不等。 而且,如果器件工作不合適,或者如果應用要求發(fā)生了變化,那么就必須開發(fā)全新的設計。設計和驗證固定邏輯的前期工作需要大量的“非重發(fā)性工程成本”,或nre。 nre表示在固定邏輯器件最終從芯片

18、制造廠制造出來以前客戶需要投入的所有成本,這些成本包括工程資源、昂貴的軟件設計工具、用來制造芯片不同金屬層的昂貴光刻掩模組,以及初始原型器件的生產(chǎn)成本。 這些nre成本可能從數(shù)十萬美元至數(shù)百萬美元。對于可編程邏輯器件,設計人員可利用價格低廉的軟件工具快速開發(fā)、仿真和測試其設計。然后,可快速將設計編程到器件中,并立即在實際運行的電路中對設計進行測試。 原型中使用的pld器件與正式生產(chǎn)最終設備(如網(wǎng)絡路由器、dsl調(diào)制解調(diào)器、dvd播放器、或汽車導航系統(tǒng))時所使用的pld完全相同。這樣就沒有了nre成本,最終的設計也比采用定制固定邏輯器件時完成得更快。采用pld的另一個關(guān)鍵優(yōu)點是在設計階段中客戶可

19、根據(jù)需要修改電路,直到對設計工作感到滿意為止。這是因為pld基于可重寫的存儲器技術(shù)-要改變設計,只需要簡單地對器件進行重新編程。一旦設計完成,客戶可立即投入生產(chǎn),只需要利用最終軟件設計文件簡單地編程所需要數(shù)量的pld就可以了。 1.5 可編程邏輯器件的兩種類型:cpld和fpga 可編程邏輯器件的兩種主要類型是現(xiàn)場可編程門陣列(fpga)和復雜可編程邏輯器件(cpld)。 在這兩類可編程邏輯器件中,fpga提供了最高的邏輯密度、最豐富的特性和最高的性能。 現(xiàn)在最新的fpga器件,如xilinx virtex系列中的部分器件,可提供八百萬系統(tǒng)門(相對邏輯密度)。 這些先進的器件還提供諸如內(nèi)建的硬

20、連線處理器(如ibm power pc)、大容量存儲器、時鐘管理系統(tǒng)等特性,并支持多種最新的超快速器件至器件(device-to-device)信號技術(shù)。 fpga被應用于范圍廣泛的應用中,從數(shù)據(jù)處理和存儲,以及到儀器儀表、電信和數(shù)字信號處理等。 與此相比,cpld提供的邏輯資源少得多, 最高約1萬門。 但是,cpld提供了非常好的可預測性,因此對于關(guān)鍵的控制應用非常理想。 而且如xilinx coolrunner系列cpld器件需要的功耗極低.1.6 pld的編程語言.有關(guān)之前所談到的“pal”,若要以手工的方式來產(chǎn)生jedec檔實是過于復雜,所以多半改用電腦程序(也稱:計算機程序)來產(chǎn)生,

21、這種程序(程序)稱為“邏輯編譯器,logic compiler”,它與程序開發(fā)撰寫時所用的軟件編譯器相類似,而要編譯之前的原始代碼(也稱:源代碼)也得用特定的編程語言(也稱:程序語言、編程語言)來撰寫,此稱之為hardware description language(硬件描述語言),簡稱:hdl。而且hdl并非僅有一種,而是有許多種,如abel、ahdl、confluence、cupl、hdcal、jhdl、lava、lola、myhdl、palasm、rhdl等都是,但目前最具知名也最普遍使用的是vhdl與verilog。1.6.1 vhdl語言介紹vhdl的全名是very-high-sp

22、eed integrated circuit hardware description language,誕生與1982年。1987年底vhdl被ieee和美國國防部確認為標準硬件描述語言。自ieee發(fā)布了hdl標準版本后,各eda公司相繼推出了自己的vhdl實際環(huán)境,或宣布自己的程序可以和vhdl接口。此后vhdl在電子設計領域得到了廣泛的接受,并逐步取代了原有的非標準的硬件描述語言。1993年,ieee對vhdl進行了修正,從更高的抽象層次和系統(tǒng)描述能力擴展vhdl的內(nèi)容?,F(xiàn)在,vhdl和verilog作為ieee的工業(yè)硬件描述語言,又得到了眾多eda公司的支持,在電子工程領域,已成為事實

23、上的通用硬件描述語言。 vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。vhdl的程序結(jié)構(gòu)特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設計就可以直接調(diào)用這個實體。這種將設計實體分成內(nèi)外部分的概念是vhdl系統(tǒng)設計的基本點。1.6.2 語言特性、功能與特點聯(lián)性的語法和形式雖類似與一般程序語言,但是涵蓋許多

24、與硬件關(guān)聯(lián)的語法構(gòu)造。其特有的層次性由上而下的結(jié)構(gòu)vhdl語言可描述一個數(shù)字電路的輸入,輸出以及相互之間的行為和功能。而其硬件關(guān)式語法結(jié)構(gòu)適合大型設計項目的團隊合作。在主要的系統(tǒng)結(jié)構(gòu),組件及相互間的連接方式?jīng)Q定以后,就能將工作分包下去,各自獨立進行,例如使用主程序外的組件,函數(shù)以及程序內(nèi)的塊程序。1.支持多種電路與多種設計方法vhdl語言能夠支持自頂向下和基于庫的設計方法,支持組合邏輯電路,同步時序邏輯電路和異步時序邏輯電路等電路的設計,大多數(shù)eda工具都支持vhdl語言。2.支持硬件電路的層次化描述vhdl語言具有支持多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的行為功能(數(shù)學模型)直到門級電路

25、逐層進行描述。另外,高層次的行為描述可以與底層次的寄存器描述和結(jié)構(gòu)描述混合使用。3.能實現(xiàn)與工藝無關(guān)編程采用vhdl語言設計硬件電路時,當門級或門級以上層次的描述通過仿真檢驗以后,再用相應的工具將設計映射成不同的工藝。在工藝更新時無須原設計程序,只需改變相應的映射工具。由此可見,修改電路和修改工藝相互之間不會產(chǎn)生影響。4.易于共享和復用作為ieee標準的vhdl語言,語法嚴格,設計成果便于復用和交流。一個大規(guī)模的數(shù)字系統(tǒng)設計不可能從門級電路開始逐步進行設計,而是一些模塊電路的有機疊加。這些模塊電路可以預先設計或者使用以前設計中的存檔模塊。這些模塊電路可以采用vhdl語言進行描述且存放于庫中,便

26、于在以后設計中復用。這樣可以減小數(shù)字系統(tǒng)設計的工作量,縮短開發(fā)周期1.7 fpga的設計流程fpga的設計流程就是利用eda開發(fā)軟件和編程工具對fpga芯片進行開發(fā)的過程。fpga的開發(fā)流程一般如圖1所示,包括電路設計、設計輸入、功能仿真、綜合優(yōu)化、綜合后仿真、實現(xiàn)、布線后仿真等主要步驟。圖1 fpga開發(fā)的一般流程1 電路功能設計 在系統(tǒng)設計之前,首先要進行的是方案論證、系統(tǒng)設計和fpga芯片選擇等準備工作。系統(tǒng)工程師根據(jù)任務要求,如系統(tǒng)的指標和復雜度,對工作速度和芯片本身的各種資源、成本等方面進行權(quán)衡,選擇合理的設計方案和合適的器件類型。一般都采用自頂向下的設計方法,把系統(tǒng)分成若干個基本單

27、元,然后再把每個基本單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接使用eda元件庫為止。2 設計輸入設計輸入是將所設計的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并輸入給eda工具的過程。常用的方法有硬件描述語言(hdl)和原理圖輸入方法等。原理圖輸入方式是一種最直接的描述方式,在可編程芯片發(fā)展的早期應用比較廣泛,它將所需的器件從元件庫中調(diào)出來,畫出原理圖。這種方法雖然直觀并易于仿真,但效率很低,且不易維護,不利于模塊構(gòu)造和重用。更主要的缺點是可移植性差,當芯片升級后,所有的原理圖都需要作一定的改動。目前,在實際開發(fā)中應用最廣的就是hdl語言輸入法,利用文本描述設計,可以分為普通

28、hdl和行為hdl。普通hdl有abel、cur等,支持邏輯方程、真值表和狀態(tài)機等表達方式,主要用于簡單的小型設計。而在中大型工程中,主要使用行為hdl,其主流語言是verilog hdl和vhdl。這兩種語言都是美國電氣與電子工程師協(xié)會(ieee)的標準,其共同的突出特點有:語言與芯片工藝無關(guān),利于自頂向下設計,便于模塊的劃分與移植,可移植性好,具有很強的邏輯描述和仿真功能,而且輸入效率很高。3 功能仿真功能仿真,也稱為前仿真,是在編譯之前對用戶所設計的電路進行邏輯功能驗證,此時的仿真沒有延遲信息,僅對初步的功能進行檢測。仿真前,要先利用波形編輯器和hdl等建立波形文件和測試向量(即將所關(guān)心

29、的輸入信號組合成序列),仿真結(jié)果將會生成報告文件和輸出信號波形,從中便可以觀察各個節(jié)點信號的變化。如果發(fā)現(xiàn)錯誤,則返回設計修改邏輯設計。常用的工具有model tech公司的modelsim、sysnopsys公司的vcs和cadence公司的nc-verilog以及nc-vhdl等軟件。雖然功能仿真不是fpga開發(fā)過程中的必需步驟,但卻是系統(tǒng)設計中最關(guān)鍵的一步。4 綜合 所謂綜合就是將較高級抽象層次的描述轉(zhuǎn)化成較低層次的描述。綜合優(yōu)化根據(jù)目標與要求優(yōu)化所生成的邏輯連接,使層次設計平面化,供fpga布局布線軟件進行實現(xiàn)。就目前的層次來看,綜合優(yōu)化(synthesis)是指將設計輸入編譯成由與門

30、、或門、非門、ram、觸發(fā)器等基本邏輯單元組成的邏輯連接網(wǎng)表,而并非真實的門級電路。真實具體的門級電路需要利用fpga制造商的布局布線功能,根據(jù)綜合后生成的標準門級結(jié)構(gòu)網(wǎng)表來產(chǎn)生。為了能轉(zhuǎn)換成標準的門級結(jié)構(gòu)網(wǎng)表,hdl程序的編寫必須符合特定綜合器所要求的風格。由于門級結(jié)構(gòu)、rtl級的hdl程序的綜合是很成熟的技術(shù),所有的綜合器都可以支持到這一級別的綜合。常用的綜合工具有synplicity公司的synplify/synplify pro軟件以及各個fpga廠家自己推出的綜合開發(fā)工具。5 綜合后仿真 綜合后仿真檢查綜合結(jié)果是否和原設計一致。在仿真時,把綜合生成的標準延時文件反標注到綜合仿真模型中

31、去,可估計門延時帶來的影響。但這一步驟不能估計線延時,因此和布線后的實際情況還有一定的差距,并不十分準確。目前的綜合工具較為成熟,對于一般的設計可以省略這一步,但如果在布局布線后發(fā)現(xiàn)電路結(jié)構(gòu)和設計意圖不符,則需要回溯到綜合后仿真來確認問題之所在。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。6 實現(xiàn)與布局布線實現(xiàn)是將綜合生成的邏輯網(wǎng)表配置到具體的fpga芯片上,布局布線是其中最重要的過程。布局將邏輯網(wǎng)表中的硬件原語和底層單元合理地配置到芯片內(nèi)部的固有硬件結(jié)構(gòu)上,并且往往需要在速度最優(yōu)和面積最優(yōu)之間作出選擇。布線根據(jù)布局的拓撲結(jié)構(gòu),利用芯片內(nèi)部的各種連線資源,合理正確地連接各個元件。目前,fp

32、ga的結(jié)構(gòu)非常復雜,特別是在有時序約束條件時,需要利用時序驅(qū)動的引擎進行布局布線。布線結(jié)束后,軟件工具會自動生成報告,提供有關(guān)設計中各部分資源的使用情況。由于只有fpga芯片生產(chǎn)商對芯片結(jié)構(gòu)最為了解,所以布局布線必須選擇芯片開發(fā)商提供的工具。7 時序仿真與驗證 時序仿真,也稱為后仿真,是指將布局布線的延時信息反標注到設計網(wǎng)表中來檢測有無時序違規(guī)(即不滿足時序約束條件或器件固有的時序規(guī)則,如建立時間、保持時間等)現(xiàn)象。時序仿真包含的延遲信息最全,也最精確,能較好地反映芯片的實際工作情況。由于不同芯片的內(nèi)部延時不一樣,不同的布局布線方案也給延時帶來不同的影響。因此在布局布線后,通過對系統(tǒng)和各個模塊

33、進行時序仿真,分析其時序關(guān)系,估計系統(tǒng)性能,以及檢查和消除競爭冒險是非常有必要的。在功能仿真中介紹的軟件工具一般都支持綜合后仿真。1.8 quartus ii 概述 quartus ii 是altera公司的綜合性pld開發(fā)軟件,支持原理圖、vhdl、veriloghdl以及ahdl(altera hardware description language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整pld設計流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行

34、速度快,界面統(tǒng)一,功能集中,易學易用等特點。quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方eda工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方eda工具。此外,quartus ii 通過和dsp builder工具與matlab/simulink相結(jié)合,可以方便地實現(xiàn)各種dsp應用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。maxplus ii 作為altera的上一

35、代pld設計軟件,由于其出色的易用性而得到了廣泛的應用。目前altera已經(jīng)停止了對maxplus ii 的更新支持,quartus ii 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。altera在quartus ii 中包含了許多諸如signaltap ii、chip editor和rtl viewer的設計輔助工具,集成了sopc和hardcopy設計流程,并且繼承了maxplus ii 友好的圖形界面及簡便的使用方法。altera quartus ii 作為一種可編程邏輯的設計環(huán)境, 由于其強大的設計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設計者的歡迎。 2 hdb3碼介紹2.1

36、 數(shù)字基帶信號 數(shù)字基帶信號的傳輸是數(shù)字通信系統(tǒng)的重要組成部分之一。在數(shù)字通信中,有些場合可不經(jīng)過載波調(diào)制和解調(diào)過程,而對基帶信號進行直接傳輸。為使基帶信號能適合在基帶信道中傳輸,通常要經(jīng)過基帶信號變化,這種變化過程事實上就是編碼過程。于是,出現(xiàn)了各種各樣常用碼型。不同碼型有不同的特點和不同的用途。作為傳輸用的基帶信號歸納起來有如下要求:1 希望將原始信息符號編制成適合與傳輸用的碼型;2 對所選碼型的電波形,希望它適宜在信道中傳輸??蛇M行基帶傳輸?shù)拇a型較多。ami碼ami碼稱為傳號交替反轉(zhuǎn)碼。其編碼規(guī)則為代碼中的0仍為傳輸碼0,而把代碼中1交替地變化為傳輸碼的+1-1+1-1,、。 舉例如下。

37、消息代碼:0 1 1 1 0 0 1 0 、ami 碼:0 +1 -1 +1 0 0 -1 0 、或 0 -1 +1 -1 0 0 +1 0 、ami碼的特點:無直流成分且低頻成分很小,因而在信道傳輸中不易造成信號失真。編碼電路簡單,便于觀察誤碼狀況。由于它可能出現(xiàn)長的連0串,因而不利于接受端的定時信號的提取。hdb3碼 這種碼型在數(shù)字通信中用得很多,hdb3碼是ami碼的改進型,稱為三階高密度雙極性碼。它克服了ami碼的長連0傳現(xiàn)象。2.2 nrz,ami,hdb3碼之間的對應關(guān)系 假設信息碼為0000 0110 0001 0000,對應的nrz碼、ami碼,hdb3碼如圖2-1所示。信息代

38、碼 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0ami波形ami代碼 0 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0nrz波形hdb3代碼 b 0 0 v 0 -1 1 -b 0 0 -v 1 0 0 0 vhdb3波形 圖2-1 nrz ,ami,hdb3碼型圖分析表現(xiàn),ami碼及hdb3碼的功率譜不含有離散譜fs成份(fs1/ts,等于位同步信號頻率)。在通信的終端需將他們譯碼為nrz碼才能送給數(shù)字終端機或數(shù)/模轉(zhuǎn)換電路。在做譯碼時必須提供位同步信號。工程上,一般將ami或hdb3碼數(shù)字信號進行整流處理,得到占空比為0.5的單極性歸零碼(rz|0.5ts

39、)。由于整流后的ami,hdb3碼中含有離散譜fs,故可用一選頻網(wǎng)絡得到頻率為fs的正弦波,經(jīng)整形、限幅、放大處理后即可得到位同步信號。 2.3 hdb3碼的編碼規(guī)則 hdb3碼的編碼規(guī)則:將消息代碼變換成ami碼;檢查ami碼中的連0情況,當無4個以上的連0傳時,則保持ami的形式不變;若出現(xiàn)4個或4個以上連0時,則將1后的第4個0變?yōu)榕c前一非0符號(+1或-1)同極性的符號,用v表示(+1記為+v,-1記為-v檢查相鄰v符號間的非0符號的個數(shù)是否為偶數(shù),若為偶數(shù),則再將當前的v符號的前一非0符號后的第1個0變?yōu)?b或-b符號,且b的極性與前一非0符號的極性相反,并使后面的非0符號從v符號開

40、始再交替變化。舉例如下:代碼 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 hdb3碼 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1v、b -v +b +vhdb3碼的特點如下:基帶信號無直流成分,且只有很小的低頻成分;連0串符號最多只有3個,利于定時信息的提取;不受信源統(tǒng)計特性的影響。3 用vhdl語言設計hdb3編碼器3.1 程序輸入輸出口定義 hdb3編碼模塊輸入輸出端口定義: 輸入口:din hdb3編碼模塊數(shù)據(jù)輸入端口。clkin hdb3編碼模塊時鐘輸入端口。 輸出口:dout1.0 hdb3編碼數(shù)據(jù)輸出端口。

41、 hdb3編碼模塊圖形如下: dout規(guī)則如下表所示:dout1dout0hdb300001-1101 3.2 hdb3碼編碼器設計程序和思路library ieee;use ieee.std_logic_1164.all;entity hdb3coding isport(clkin: instd_logic;din: instd_logic;dout: outstd_logic_vector(1 downto 0);end hdb3coding;architecture a of hdb3coding is constant pos : std_logic_vector := 10; con

42、stant neg : std_logic_vector := 01; constant zero : std_logic_vector := 00;signal t_out : std_logic_vector(1 downto 0);signal wait_out4 : std_logic_vector(1 downto 0);-輸出緩存signal wait_out3 : std_logic_vector(1 downto 0);signal wait_out2 : std_logic_vector(1 downto 0);signal wait_out1 : std_logic_vec

43、tor(1 downto 0);beginprocess (clkin)variable last_v_sign : integer range 0 to 1 ;-最后一個v的符號variable last_sign : integer range 0 to 1 ;-最后一個非0數(shù)的符號variable zero_number : integer range 0 to 3 ;-連0的個數(shù)beginif clkinevent and clkin=1 thent_out=wait_out4;if din = 1 thenzero_number := 0;if last_sign = 1 thenl

44、ast_sign := 0;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = neg;elsif last_sign = 0 thenlast_sign := 1;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = pos;end if;elsif din = 0 thenif zero_number = 3 thenzero_number := 0;if last_v_sign = l

45、ast_sign thenif last_sign = 1 thenlast_v_sign := 0;last_sign := 0;wait_out4 = neg;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = neg;elsif last_sign =0 thenlast_v_sign := 1;last_sign := 1;wait_out4 = pos;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = pos;end if;elsif last_v_sign /=

46、 last_sign thenif last_sign = 0 thenlast_v_sign := 0;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = neg;elsif last_sign = 1 thenlast_v_sign := 1;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = pos;end if;end if;elsif zero_number /= 3 thenz

47、ero_number := zero_number+1;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = zero;end if;end if;end if;end process;dout =t_out;end a; 開始din=1din=0ls=1ls=0ls:=0ls:=1bc1bc1wo1=negwo1=poszn=3zn:=zn+1zn/=3bc1ls=0ls=0ls=1lvs/=lslvs=lszn:=0wo1=zerolvs:=1lvs:=0ls:=1ls:=0ls=1wo4

48、:=negbc1bc1lvs:=1lvs:=0 bc2wo4:=poswo1:=negwo1:=posbc2wo1:=negwo1:=pos ls對應程序中的 variable last_sign : integer range 0 to 1;表示最后一個非0數(shù)的符號 lvs 對應程序中的 variable last_v_sign : integer range 0 to 1 ;表示最后一個v的符號 zn對應程序中的 variable zero_number : integer range 0 to 3 ;表示連0的個數(shù) bc1對應程序中的 wait_out4 = wait_out3; wai

49、t_out3 = wait_out2; wait_out2 = wait_out1; bc2對應程序中的 wait_out3 = wait_out2; wait_out2 = wait_out1; wo1,wo4對應程序中的wait_out1;和wait_out4;上面的流程圖為程序的設計思路和邏輯算法。3.3 系統(tǒng)設計思路小結(jié)通過一步步有條不紊的分析和思考,更重要的是在設計中,根據(jù)實際情況,對設計初期的思想做不斷完善和改進,因為在設計之前的思路,只能說是一個大體的方向,很多時候,實際的操作和設計要細致和復雜的多,或者原來的想法根本就行不通,得從實際設計的角度一步步來完成了這樣一個系統(tǒng)設計???/p>

50、結(jié)一下實際操作的設計過程,可得到如下設計流程圖:調(diào)試達到要求、完成設計仿真不通過系統(tǒng)功能的硬件測試對系統(tǒng)仿真測試、選擇合適芯片并定義管腳應用vhdl進行編程分析hdb3碼編碼器功能學習vhdl語言設計確定設計方案 4結(jié) 論4.1 仿真波形輸入代碼 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 理論輸出hdb3碼 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1 v、b -v +b +v仿真波形圖因為fpga無法識別負電平程序用10表示+1 ,00表示0,01表示-1.換算成十進制碼機分別是2,0和1.因為程序t_out=wai

51、t_out4;if din = 1 thenzero_number := 0;if last_sign = 1 thenlast_sign := 0;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1所以仿真開始后會有五個周期的延時,由于ami和hdb3編碼特性,系統(tǒng)預定前一個消息碼為+1,所以理論輸出在第六個周期開始。4.2 實驗結(jié)論eda技術(shù)本身是一種工業(yè)生產(chǎn)技術(shù),在實踐中運用基于硬件描述語言的可編程芯片開發(fā)技術(shù)可對通信系統(tǒng)中的相關(guān)電路進行硬件描述,然后用cpldfpga實現(xiàn)數(shù)字通信系統(tǒng),同時結(jié)合電子設計自動化和電路仿真技術(shù)即可縮小產(chǎn)品的設計周期,降低可能發(fā)生的錯誤,提高通信產(chǎn)品的開發(fā)效益。實踐表明,運用fpga來實現(xiàn)nrz碼到hdb3碼的轉(zhuǎn)換比采用專用集成電路不僅給調(diào)試帶來了方便,

溫馨提示

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

評論

0/150

提交評論