用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器_第1頁(yè)
用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器_第2頁(yè)
用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器_第3頁(yè)
用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器_第4頁(yè)
用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、目錄1. VHDL語(yǔ)言概述12. HDB3碼介紹22.1 AMI碼22.2 HDB3碼22.3 HDB3編碼規(guī)則33. 用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器53.1 HDB3編碼器實(shí)現(xiàn)的基本原理53.2 HDB3編碼器的設(shè)計(jì)過(guò)程63.2.1 插“V”模塊的實(shí)現(xiàn)63.2.2 插“B”模塊的實(shí)現(xiàn)73.2.3 單極性變雙極性的實(shí)現(xiàn)83.3 HDB3編碼仿真調(diào)試93.4 生成模塊105. 課設(shè)心得11參考文獻(xiàn)12附錄A13本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表151. VHDL語(yǔ)言概述VHDL的全名是very-high-speed integrated circuit hardware description lang

2、uage,誕生與1982年。1987年底VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。自IEEE發(fā)布了HDL標(biāo)準(zhǔn)版本后,各EDA公司相繼推出了自己的VHDL實(shí)際環(huán)境,或宣布自己的程序可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。1993年,IEEE對(duì)VHDL進(jìn)行了修正,從更高的抽象層次和系統(tǒng)描述能力擴(kuò)展VHDL的內(nèi)容?,F(xiàn)在,VHDL和VERILOG作為IEEE的工業(yè)硬件描述語(yǔ)言,又得到了眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件

3、特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。162. HDB3碼介紹數(shù)字基帶信號(hào)的傳輸是數(shù)字通信系統(tǒng)的重要組成部分之一。在數(shù)字通信中,有些場(chǎng)合可不經(jīng)過(guò)載波調(diào)制和解調(diào)過(guò)程,而對(duì)基帶信號(hào)進(jìn)行直接傳輸。為使基帶信號(hào)能適合在基帶信道

4、中傳輸,通常要經(jīng)過(guò)基帶信號(hào)變化,這種變化過(guò)程事實(shí)上就是編碼過(guò)程。于是,出現(xiàn)了各種各樣常用碼型。不同碼型有不同的特點(diǎn)和不同的用途。作為傳輸用的基帶信號(hào)歸納起來(lái)有如下要求:1 希望將原始信息符號(hào)編制成適合與傳輸用的碼型;2 對(duì)所選碼型的電波形,希望它適宜在信道中傳輸??蛇M(jìn)行基帶傳輸?shù)拇a型較多。2.1 AMI碼AMI碼稱為傳號(hào)交替反轉(zhuǎn)碼。其編碼規(guī)則為代碼中的0仍為傳輸碼0,而把代碼中1交替地變化為傳輸碼的+1-1+1-1,、。 舉例如下。消息代碼: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碼的特點(diǎn):(1)

5、無(wú)直流成分且低頻成分很小,因而在信道傳輸中不易造成信號(hào)失真。(2)編碼電路簡(jiǎn)單,便于觀察誤碼狀況。(3)由于它可能出現(xiàn)長(zhǎng)的連0串,因而不利于接受端的定時(shí)信號(hào)的提取。2.2 HDB3碼這種碼型在數(shù)字通信中用得很多,HDB3碼是AMI碼的改進(jìn)型,稱為三階高密度雙極性碼。它克服了AMI碼的長(zhǎng)連0傳現(xiàn)象。NRZ,AMI,HDB3碼之間的對(duì)應(yīng)關(guān)系:假設(shè)信息碼為0000 0110 0001 0000,對(duì)應(yīng)的NRZ碼、AMI碼,HDB3碼如圖所示。圖 1 NRZ ,AMI,HDB3碼型圖分析表現(xiàn),AMI碼及HDB3碼的功率譜不含有離散譜fS成份(fS1/TS,等于位同步信號(hào)頻率)。在通信的終端需將他們譯碼為

6、NRZ碼才能送給數(shù)字終端機(jī)或數(shù)/模轉(zhuǎn)換電路。在做譯碼時(shí)必須提供位同步信號(hào)。工程上,一般將AMI或HDB3碼數(shù)字信號(hào)進(jìn)行整流處理,得到占空比為0.5的單極性歸零碼(RZ|0.5TS)。由于整流后的AMI,HDB3碼中含有離散譜fS,故可用一選頻網(wǎng)絡(luò)得到頻率為fS的正弦波,經(jīng)整形、限幅、放大處理后即可得到位同步信號(hào)。2.3 HDB3編碼規(guī)則(1)將消息代碼變換成AMI碼;(2)檢查AMI碼中的連0情況,當(dāng)無(wú)4個(gè)以上的連0傳時(shí),則保持AMI的形式不變;若出現(xiàn)4個(gè)或4個(gè)以上連0時(shí),則將1后的第4個(gè)0變?yōu)榕c前一非0符號(hào)(+1或-1)同極性的符號(hào),用V表示(+1記為+V,-1記為-V(3)檢查相鄰V符號(hào)間

7、的非0符號(hào)的個(gè)數(shù)是否為偶數(shù),若為偶數(shù),則再將當(dāng)前的V符號(hào)的前一非0符號(hào)后的第1個(gè)0變?yōu)?B或-B符號(hào),且B的極性與前一非0符號(hào)的極性相反,并使后面的非0符號(hào)從V符號(hào)開(kāi)始再交替變化。HDB3碼的特點(diǎn)如下:(1)基帶信號(hào)無(wú)直流成分,且只有很小的低頻成分;(2)連0串符號(hào)最多只有3個(gè),利于定時(shí)信息的提??;(3)不受信源統(tǒng)計(jì)特性的影響。HDB3編碼舉例如下:圖 2 HDB3編碼實(shí)例3. 用VHDL語(yǔ)言設(shè)計(jì)HDB3編碼器設(shè)計(jì)要求:掌握HDB3碼的編碼原理,設(shè)計(jì)通信系統(tǒng)框圖,畫(huà)出實(shí)現(xiàn)電路原理圖,編寫(xiě)VHDL語(yǔ)言程序,上機(jī)調(diào)試、仿真,記錄實(shí)驗(yàn)結(jié)果波形,對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。3.1 HDB3編碼器實(shí)現(xiàn)的基本原理

8、從編碼規(guī)則來(lái)分析,這個(gè)設(shè)計(jì)的難點(diǎn)之一是如何判決是否應(yīng)該插“B”,因?yàn)檫@涉及到由現(xiàn)在事件的狀態(tài)決定過(guò)去事件狀態(tài)的問(wèn)題。按照實(shí)時(shí)信號(hào)處理的理論,這是沒(méi)辦法實(shí)現(xiàn)的。但在實(shí)際的電路中,可以考慮用寄存器的方法,首先把信碼寄存在寄存器里,同時(shí)設(shè)置一個(gè)計(jì)數(shù)器計(jì)數(shù)兩個(gè)“V”之間“1”的個(gè)數(shù),經(jīng)過(guò)4個(gè)碼元時(shí)間后,由一個(gè)判偶電路來(lái)給寄存器發(fā)送是否插“B”的判決信號(hào),從而實(shí)現(xiàn)插“B”功能。不過(guò),信號(hào)處理的順序不能像編碼規(guī)則那樣:首先把代碼串變換成為AMI碼,完成插“V”、插“B”工作之后,其后的“+1”和“-1”的極性還要依據(jù)編碼規(guī)則的規(guī)定變換。這樣做需要大量的寄存器,同時(shí)電路結(jié)構(gòu)也變的復(fù)雜。若把信號(hào)處理的順序變換

9、一下:首先完成插“V”工作,接著執(zhí)行插“B”功能。最后實(shí)現(xiàn)單極性變雙極性的信號(hào)輸出。這樣做的好處是:輸入進(jìn)來(lái)的信號(hào)和插“V”、插“B”功能電路中處理的信號(hào)都是單極性信號(hào),且需要的寄存器的數(shù)目可以少很多。另外,如何準(zhǔn)確識(shí)別電路中的“1”、“V”和“B”。因?yàn)椤癡”和“B”符號(hào)是人為標(biāo)識(shí)的符號(hào),但在電路中最終的表現(xiàn)形式還是邏輯電平“1”。解決的方法是利用了雙相碼,將其用二進(jìn)制碼去取代。例如代碼: 1 1 0 0 1 0雙相碼 10 10 01 01 10 01 這樣就可以識(shí)別電路中的“1”、“V”、“B”。也可以人為地加入一個(gè)標(biāo)識(shí)符(其最終目的也是選擇輸出“1”的極性)。控制一個(gè)選擇開(kāi)關(guān),使輸出“

10、1”的極性能按照編碼規(guī)則進(jìn)行變化。3.2 HDB3編碼器的設(shè)計(jì)過(guò)程圖 3 HDB3編碼設(shè)計(jì)流程整個(gè)HDB3編碼器包含3個(gè)功能部分:插“V”、插“B”和單極性碼轉(zhuǎn)變成雙極性碼。下面將詳細(xì)介紹各個(gè)部分的設(shè)計(jì)流程、編寫(xiě)的源程序模擬仿真的波形圖。3.2.1 插“V”模塊的實(shí)現(xiàn)(1)插“V”模塊的建模插“V”模塊的功能實(shí)際上就是對(duì)消息代碼里的四連0串的檢測(cè)即當(dāng)出現(xiàn)四個(gè)連0串的時(shí)候,把第四個(gè)“0”變換成為符號(hào)“V”(即將其置“1”,先不考慮符號(hào)問(wèn)題),而在其他情況下,則保持消息代碼的原樣輸出。插“V”符號(hào)的設(shè)計(jì)思想很簡(jiǎn)單:首先判斷輸入的代碼是什么(用一個(gè)條件語(yǔ)句判斷),如果輸入的是“0”碼,則接著判斷這是

11、第幾個(gè)“0”碼,則把這一位碼元變換成為“V”碼。在其他條件下,讓原代碼照常輸出。(2) 插”V”模塊的程序設(shè)計(jì)如前考慮,插”V”模塊須加入一個(gè)變量enjudge,用來(lái)作為插”V”符號(hào)的標(biāo)志。在進(jìn)程(process)中,通過(guò)if語(yǔ)句完成插”V”功能。假設(shè)輸入一串代碼,根據(jù)設(shè)計(jì)思想,輸入代碼與插入”V”符號(hào)之后的關(guān)系如下:代碼 : 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0插V后:1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1圖 4 插“V”流程圖3.2.2 插“B”模塊的實(shí)現(xiàn)插“B”模塊的功能是保證附加“V”符號(hào)后的序列不破壞“極性交替反轉(zhuǎn)”造成的無(wú)直流特性,

12、即當(dāng)相鄰“V”符號(hào)之間有偶數(shù)個(gè)非0符號(hào)的時(shí)候,把后一小段的第1個(gè)“0”變換成一個(gè)非破壞符號(hào)“B”符號(hào)。插“B”模塊是這個(gè)設(shè)計(jì)遇到的第一個(gè)難點(diǎn),因?yàn)樗婕暗揭粋€(gè)由現(xiàn)在事件的狀態(tài)決定過(guò)去狀態(tài)的的問(wèn)題。其中還有如何確定是“1”,還是“V”的問(wèn)題。處理難點(diǎn)的思路是:首先把碼元(經(jīng)插“V”處理過(guò)的)放入一個(gè)4位的移位寄存器里,在同步時(shí)鐘的作用下,同時(shí)進(jìn)行是否插“B”的判決,等到碼元從寄存器里出來(lái)的時(shí)候,就可以決定是應(yīng)該變換成“B”符號(hào),還是照原碼輸出。要進(jìn)行插“B”判決,首先要知道哪一個(gè)是“V”,此時(shí)之前的插“V”判斷符號(hào)起了作用(enjudge)。由于標(biāo)志量與輸出量有延時(shí),此時(shí)加了一個(gè)記錄“V”位置的

13、計(jì)數(shù)器,插“V”后開(kāi)始計(jì)數(shù),用以記錄“V”。再有奇偶判斷標(biāo)志(parity)決定是否插“B”。在進(jìn)程中利用if語(yǔ)句判斷輸出極性與符號(hào)。圖 5 插“B”流程圖3.2.3 單極性變雙極性的實(shí)現(xiàn)根據(jù)HDB3的編碼規(guī)則,我們可以知道,“V”的極性是正負(fù)交替的,余下的“1”和“B”看成一體且是正負(fù)交替的,同時(shí)滿足“V”的極性與前面的非零碼極性一致。由此我們可以將其分別進(jìn)行極性變換來(lái)實(shí)現(xiàn)。根據(jù)編碼規(guī)則,“B”符號(hào)的極性與前一非零符號(hào)相反,“V”極性符號(hào)與前一非零符號(hào)一致。因此將“V”單獨(dú)拿出來(lái)進(jìn)行極性變換,余下的“1”和“B”看成一體進(jìn)行正負(fù)交替,這樣就完成了HDB3的編碼。這個(gè)部分遇到的難點(diǎn)在于:在Ma

14、x plus軟件仿真過(guò)程中,它無(wú)法識(shí)別“-1”,在它的波形仿真中只有“1”和“0”。因此在這里采用了雙相碼來(lái)分別表示“-1”、“+1”、“0”程序中所定義的“00”、“01”、“11”代表0、+1、-1,從而達(dá)到設(shè)計(jì)所需結(jié)果。3.3 HDB3編碼仿真調(diào)試全“1”碼輸入:圖 6 “+1”和“-1”交替此時(shí)為全“1”碼輸入。不存在插“V”插“B”的判斷,輸出結(jié)果為“01”“11”的交替即雙極性碼的“+1”“-1”的交替,由此可指此部分的程序運(yùn)行符合要求。全“0”碼輸入:圖 7 “B00V”輸出由于是全“0”碼輸入,奇偶判斷符的結(jié)果都是偶,輸出結(jié)果為“B00V”,“B”極性與前面的非零符號(hào)相反,“V

15、”與對(duì)應(yīng)的“B”符號(hào)相同,可驗(yàn)證程序運(yùn)行符合要求。輸入碼隨機(jī):一路信碼經(jīng)過(guò)插V補(bǔ)B后的輸出波形仿真圖,輸出相對(duì)與輸入延時(shí)了5個(gè)脈沖周期。data_out表示二位二進(jìn)制碼輸出,默認(rèn)01為+1,11位-1。CLOCK為時(shí)鐘脈沖信號(hào)。圖 8 HDB3碼輸出輸入為:1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0輸出為:11 01 11 01 11 01 11 0 0 11 01 0 0 01 11 01 11 0 0 0 01此時(shí)的輸出符合HDB3編碼規(guī)則,可驗(yàn)證程序整體符合要求,輸出正確。3.4 生成模塊利用Max plus本身的功能,將運(yùn)行正確的VHDL程序保存

16、,并生成模塊,保存頂層文件,得到hdb3_coding1.gcf文件。圖 9 生成模塊添加波形仿真文件驗(yàn)證模塊功能:圖 10 模塊波形輸出根據(jù)波形輸入為:1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1輸出為:11 0 0 0 11 01 0 0 01 00 11 01 11 0 0 11 01 11編碼輸出正確,符合HDB3編碼,驗(yàn)證得模塊文件符合要求,此次課程設(shè)計(jì)成功。5. 課設(shè)心得通過(guò)一步步有條不紊的分析和思考,更重要的是在設(shè)計(jì)中,根據(jù)實(shí)際情況,對(duì)設(shè)計(jì)初期的思想做不斷完善和改進(jìn),因?yàn)樵谠O(shè)計(jì)之前的思路,只能說(shuō)是一個(gè)大體的方向,很多時(shí)候,實(shí)際的操作和設(shè)計(jì)要細(xì)致和復(fù)雜的多

17、,或者原來(lái)的想法根本就行不通,得從實(shí)際設(shè)計(jì)的角度一步步來(lái)完成了這樣一個(gè)系統(tǒng)設(shè)計(jì)。通過(guò)這次課程設(shè)計(jì),讓我學(xué)到了很多知識(shí),也獲得很多體會(huì),這是自己將平日學(xué)的理論知識(shí)應(yīng)用到實(shí)際操作中的一次很好的實(shí)踐。才明白:實(shí)際操作和設(shè)計(jì),并不是像學(xué)習(xí)理論知識(shí)那么簡(jiǎn)單,會(huì)理論不等于就會(huì)應(yīng)用,很多都是經(jīng)驗(yàn)的東西,需要在自己的努力設(shè)計(jì)中才能慢慢體會(huì)到,設(shè)計(jì)多了,才會(huì)經(jīng)驗(yàn)中找到設(shè)計(jì)自如的感覺(jué)。就像我,對(duì)于VHDL語(yǔ)言,開(kāi)始也沒(méi)有什么太大的感覺(jué),看書(shū)的時(shí)候,很清楚明白它的設(shè)計(jì)結(jié)構(gòu)和流程是什么樣的,但是一旦拋開(kāi)書(shū)本,開(kāi)始自己編程序的時(shí)候,不是這里忘了定義,就是那里忘了結(jié)構(gòu)方式;但是,到了現(xiàn)在,在不斷實(shí)踐編程中,程序設(shè)計(jì)的流程

18、和一些要注意的地方,我都記得很清楚,能很容易的編寫(xiě)一段簡(jiǎn)單的程序了,也不用看書(shū)本幫忙了,這些都是光靠看書(shū)本得不到的經(jīng)驗(yàn),是我最大的收獲。雖然說(shuō),整個(gè)系統(tǒng)還存在很多不足,但是,我也并不感到有太多的遺憾,因?yàn)槊鎸?duì)自己三個(gè)月的辛勤勞動(dòng)的成果,心里更多的還是萬(wàn)分喜悅!不足之處總是有的,這些就是自己今后需要努力的地方,只要不斷的朝著自己的目標(biāo)的努力,很快就會(huì)有解決的那一天!附錄A基于VHDL語(yǔ)言HDB3編碼程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hdb3_coding is por

19、t( data_in :in std_logic; clock :in std_logic; data_out :out std_logic_vector(1 downto 0);end hdb3_coding;architecture rtl of hdb3_coding is signal reg :std_logic_vector(3 downto 0); signal parity :std_logic; -記錄破壞點(diǎn)間1碼個(gè)數(shù)的奇偶性 signal judge_v :std_logic; -判斷是否有破壞符 signal grant_cnt:std_logic; -允許開(kāi)始計(jì)算破壞點(diǎn)

20、間的1碼個(gè)數(shù) signal last_sign:std_logic; -上一輸出的符號(hào) signal v_cnt :std_logic_vector(2 downto 0);-v點(diǎn)位置跟蹤計(jì)數(shù)器 begin process(clock) - 移位寄存器 ,插V begin if rising_edge(clock) then if data_in='0' and reg(3 downto 1)="000" then reg<=('1' & reg(3 downto 1); judge_v<='1' gran

21、t_cnt<='1' else reg<=data_in & reg(3 downto 1); judge_v<='0' grant_cnt<='0' end if; end if; end process; process(clock) -計(jì)數(shù) begin if rising_edge(clock) then if grant_cnt='1' and data_in='0' then parity<='0' elsif grant_cnt='1' and data_in='1' then parity<='1' elsif data_in='1' then parity<=not parity; end if; end if; end process; process(clock) -V點(diǎn)跟蹤 begin if rising_edge(clock) then if judge_v='1' then v_cnt<="000" elsif v_cnt="111" then v_cnt<=v_cnt;

溫馨提示

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