版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、通信原理課程設(shè)計(jì)報(bào)告 題 目 基于vhdl的hdb3碼實(shí)現(xiàn) 學(xué)院(部) 電子信息工程學(xué)院 專 業(yè) 通信工程(本) 學(xué)生姓名 * 學(xué) 號(hào) 2008* 年級(jí) 2008 指導(dǎo)教師 * 職稱 講師 二o一0年 十二 月目 錄摘 要2第一章 eda輔助設(shè)計(jì)工具的介紹31.1 fpga的介紹31.2 vhdl語(yǔ)言和quartus3 1.2.1 vhdl語(yǔ)言3 1.2.2 eda工具quartus3第二章 hdb3碼編碼器的建模與實(shí)現(xiàn)52.1 hdb3碼編碼規(guī)則52.2 基于vhdl的編碼器的建模及實(shí)現(xiàn)6 2.2.1 編碼器的vhdl建模及難點(diǎn)分析6 2.2.2 基于vhdl編碼器的實(shí)現(xiàn)72.3編碼中單/雙
2、極性轉(zhuǎn)換的實(shí)現(xiàn)11 2.3.1單/雙極性轉(zhuǎn)換的流程圖11 2.3.2單/雙極性變換的vhdl實(shí)現(xiàn)132.4 hdb3碼編碼器的波形仿真及分析14結(jié)論與心得16參考文獻(xiàn)17附 錄 hdb3碼編碼器完整源程序18 摘 要 本文以fpga為硬件平臺(tái),基于eda工具quartus為軟件平臺(tái)上對(duì)hdb3編碼進(jìn)行實(shí)現(xiàn)。通過(guò)本課程設(shè)計(jì)對(duì)eda工具軟件quartus有一個(gè)初步的認(rèn)識(shí),并熟悉其基本的編譯仿真等功能。由于在eda的軟件平臺(tái)quartus上不能處理雙極性的信號(hào),因此對(duì)hdb3碼的編碼采用雙相碼代替原代碼,編碼部分分為加v、加b以及單/雙極性變換三個(gè)部分;quartus的平臺(tái)上對(duì)輸入的碼元進(jìn)行編碼、系
3、統(tǒng)仿真,驗(yàn)證了hdb3碼的編碼的正確性。關(guān)鍵詞:hdb3;vhdl;編碼;quartus第一章 eda輔助設(shè)計(jì)工具的介紹1.1 fpga的介紹 fpga是20世紀(jì)80年代中期,美國(guó)altera公司推出一種現(xiàn)場(chǎng)可編程門陣列,其結(jié)構(gòu)主要分為三部分:可編程邏輯單元,可編程輸入輸出單元和可編程連線部分。fpga器件采用邏輯單元陣列結(jié)構(gòu)和靜態(tài)隨機(jī)存取存儲(chǔ)器工藝,設(shè)計(jì)靈活,集成度高,可利用計(jì)算機(jī)輔助設(shè)計(jì),繪出實(shí)現(xiàn)用戶邏輯原理圖、用硬件描述語(yǔ)言等方式設(shè)計(jì)輸入;然后經(jīng)一系列轉(zhuǎn)換程序、自動(dòng)布局布線、模擬仿真的過(guò)程;最后生成配置fpga器件的數(shù)據(jù)文件,對(duì)fpga器件初始化。這樣實(shí)現(xiàn)了滿足用戶要求的專用集成電路,真
4、正達(dá)到了用戶自行設(shè)計(jì)、自行研制和自行生產(chǎn)集成電路的目的。概括來(lái)說(shuō),fpga器件具有下列優(yōu)點(diǎn):高密度、高效率、系列化、標(biāo)準(zhǔn)化、小型化、多功能、低功耗、低成本、設(shè)計(jì)靈活方便,可無(wú)限次反復(fù)編程,并可現(xiàn)場(chǎng)模擬調(diào)試驗(yàn)證。使得使用fpga器件,一般可在幾天到幾周內(nèi)完成一個(gè)電子系統(tǒng)的設(shè)計(jì)和制作,可以縮短研制周期,達(dá)到快速上市和進(jìn)一步降低成本要求。1.2 vhdl語(yǔ)言和quartus1.2.1 vhdl語(yǔ)言常用的硬件描述性語(yǔ)言有vhdl和abel語(yǔ)言。vhdl語(yǔ)言起源于美國(guó)國(guó)防部的vhsic,vhdl是一種高級(jí)描述語(yǔ)言,適用于行為級(jí)的描述。vhdl語(yǔ)言具有以下的優(yōu)點(diǎn):1 計(jì)方法靈活、支持廣泛 vhdl語(yǔ)言可以
5、支持自頂至下的設(shè)計(jì)方法,而且還支持同步電路、異步電路、fpga設(shè)計(jì)。其范圍之廣是其它方法所不能比擬的。目前大多數(shù)eda工具幾乎都支持vhdl語(yǔ)言。這給vhdl語(yǔ)言進(jìn)一步推廣和應(yīng)用創(chuàng)造了良好的環(huán)境。2 統(tǒng)硬件描述能力強(qiáng) vhdl語(yǔ)言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的框圖直接到門級(jí)電路。1.2.2 eda工具quartusquartus軟件是美國(guó)altera公司為sopc(系統(tǒng)級(jí)可編程芯片) 提供最全面的設(shè)計(jì)平臺(tái)。它具有比起其他的編譯軟件,具有以下的優(yōu)點(diǎn):開(kāi)放的界面quartus ii軟件可與其它eda廠家的設(shè)計(jì)輸入、綜合、驗(yàn)證工具相連接。設(shè)計(jì)人員可使用altera或標(biāo)準(zhǔn)eda設(shè)計(jì)輸入
6、工具建立電路設(shè)計(jì),使用quartusii編譯器對(duì)altera的器件進(jìn)行編譯,然后使用altera或其他標(biāo)準(zhǔn)eda驗(yàn)證工具進(jìn)行驗(yàn)證。quartus ii系統(tǒng)的核心編譯器支持altera公司的flex10k, flex6000, max7000等可編程邏輯器件系列,除了max+plus ii以外惟一真正與結(jié)構(gòu)無(wú)關(guān)的可編程邏輯設(shè)計(jì)環(huán)境。quartus的編譯器還提供了強(qiáng)大的邏輯綜合與優(yōu)化功能,使設(shè)計(jì)人員能比較容易地將其設(shè)計(jì)集成到可編程邏輯器件中。2.接受高級(jí)描述語(yǔ)言quartus ii接受多種硬件描述語(yǔ)言,包括vhdl、ahdl、c、c+等語(yǔ)言。3.良好的人機(jī)界面quartus具有比max+plus更
7、加人性化的人機(jī)界面,方便工程人員的操作。基于上述的特點(diǎn),本文采用quartus軟件對(duì)hdb3編、譯碼的仿真驗(yàn)證。第二章 hdb3碼編碼器的建模與實(shí)現(xiàn)2.1 hdb3碼編碼規(guī)則在現(xiàn)實(shí)的通信系統(tǒng)中,為了滿足基帶傳輸?shù)囊?,單極性脈沖序列必須經(jīng)過(guò)適當(dāng)?shù)幕鶐Ь幋a,以保證傳輸碼型中無(wú)直流分量,有一定的自檢能力和適應(yīng)不同信源的統(tǒng)計(jì)特性的能力。在基帶傳輸中,常用的碼型有ami碼、hdb3碼等。其中,ami碼是將輸入單極性波形的所有正脈沖變?yōu)檫m合于在信道傳輸?shù)恼?fù)極性交替的脈沖,而hdb3碼則是在ami碼基礎(chǔ)上改進(jìn)的一種雙極性歸零碼,它除具有ami碼功率譜中無(wú)直流分量,可進(jìn)行差錯(cuò)自檢等優(yōu)點(diǎn)外,還克服了ami碼
8、當(dāng)信息中出現(xiàn)連“0” 碼時(shí)定時(shí)提取困難的缺點(diǎn),同時(shí)hdb3碼占用頻帶較窄。因此要了解hdb3碼的編碼規(guī)則,首先要知道ami碼的構(gòu)成規(guī)則,ami碼就是把單極性脈沖序列中相鄰的“1”碼(即正脈沖)變?yōu)闃O性交替的正、負(fù)脈沖。將“0”碼保持不變,把“1”碼變?yōu)?1、-1交替的脈沖。如:表2.1 hdb3碼編碼規(guī)則代碼串1001101111100010 10 ami+1000010000+110000+10加v+1000+v1000v+11000v+10加b+1000+v1000v+11+b00v+10hdb3+1000+110001+11+1001+10hdb3碼是一種ami碼的改進(jìn)型,它的編碼過(guò)程為
9、:沒(méi)有4個(gè)或4個(gè)連“0”串時(shí),hdb3編碼規(guī)律與ami碼相同,即“1”碼變?yōu)椤?1”、 “-1”交替脈沖。當(dāng)代碼序列中出現(xiàn)4個(gè)或4個(gè)以上連“0”串時(shí),則將每4個(gè)連“0”小段即“0000”的第4個(gè)0變換成與前一非“0”符號(hào)(+1或-1)同極性的符號(hào),用破壞符號(hào)v表示(即+1記為+v,-1記為-v)。為了使附加v符號(hào)后的序列不破壞“極性交替反轉(zhuǎn)”造成的無(wú)直流特性,還必須保證相鄰v符號(hào)也應(yīng)極性交替。這一點(diǎn),當(dāng)相鄰v符號(hào)之間有奇數(shù)個(gè)非0符號(hào)時(shí),則是能得到保證,當(dāng)有偶數(shù)個(gè)非0符號(hào)時(shí),則就得不到保證,這時(shí)再將該小段的第一個(gè)0變換成+b或-b,b符號(hào)的極性與前一非0符號(hào)的極性相反,并讓后面的非0符號(hào)從v符號(hào)
10、開(kāi)始再交替變換。2.2 基于vhdl的編碼器的建模及實(shí)現(xiàn)2.2.1 編碼器的vhdl建模及難點(diǎn)分析從編碼規(guī)則來(lái)分析,hdb3碼的編碼器的設(shè)計(jì)的難點(diǎn)是在于如何判決是否應(yīng)該添加符號(hào)“b”在實(shí)際的電路中,可以考慮用寄存器的方法,首先把信碼寄存在寄存器里,同時(shí)設(shè)置一個(gè)計(jì)數(shù)器計(jì)算兩個(gè)“v”之間“1”的個(gè)數(shù),經(jīng)過(guò)4個(gè)碼元時(shí)間后,有一個(gè)判偶電路來(lái)給寄存器發(fā)送是否添加符號(hào)“b”的判決信號(hào),從而實(shí)現(xiàn)添加符號(hào)“b”功能。為了減少資源的消耗和電路的復(fù)雜度,在對(duì)信號(hào)進(jìn)行hdb3碼編碼時(shí),先依據(jù)hdb3碼的編碼規(guī)則進(jìn)行添加破壞符號(hào)“v”然后進(jìn)行添加符號(hào)“b”操作,最后才進(jìn)行單極性信號(hào)變成雙極性信號(hào)的轉(zhuǎn)換。hdb3碼的編
11、碼模型如圖2.1所示。添加破壞節(jié)v添加符號(hào)b單/雙極變換換數(shù)據(jù)輸入 hdb3碼圖 2.1 hdb3碼編碼器模型如圖所示:整個(gè)hdb3碼的編碼器包括3個(gè)功能部分:添加破壞節(jié)“v”、添加符號(hào)“b”和單極性碼轉(zhuǎn)變成雙極性碼,各部分之間采用同步時(shí)鐘作用。 不過(guò),信號(hào)處理的順序不能像編碼規(guī)則那樣:首先把代碼串變換成為ami碼,完成添加破壞節(jié)“v”、符號(hào)“b”工作之后,其后的“+1”和“-1”的極性還要依據(jù)編碼規(guī)則的規(guī)定變換。這樣做需要大量的寄存器,同時(shí)電路結(jié)構(gòu)也變得復(fù)雜。因此本設(shè)計(jì)在此處把信號(hào)處理的順序變換一下:首先完成添加破壞符號(hào)“v”工作,接著執(zhí)行添加符號(hào)“b”功能,最后實(shí)現(xiàn)單極性變雙極性的信號(hào)輸出
12、。這樣做的好處是輸入進(jìn)來(lái)的信號(hào)和添加破壞符號(hào)“v”、添加符號(hào)“b”功能電路中處理的信號(hào)都是單極性信號(hào),且需要的寄存器的數(shù)目可以很少。另外,如何準(zhǔn)備識(shí)別電路中的“1”、“v”和“b”,這也是一個(gè)難點(diǎn),因?yàn)椤皏”和“b”符號(hào)是人為標(biāo)識(shí)的符號(hào),但在電路中最終的表示形式還是邏輯電平“1”,同時(shí)quartus軟件也不能像hdb3碼的編碼規(guī)則那樣把代碼串變換成ami碼,這是因?yàn)閝uartus軟件不能處理帶負(fù)號(hào)的信號(hào),因此在軟件中本設(shè)計(jì)還是利用雙相碼來(lái)表示。雙相碼的編碼規(guī)則如下:對(duì)每個(gè)二進(jìn)制代碼分別利用兩個(gè)不同相位的二進(jìn)制代碼去取代。例如:表2.2 雙相碼的編碼規(guī)則信息序列11001100111雙相碼101
13、00101101001011010102.2.2 基于vhdl編碼器的實(shí)現(xiàn)1. 添加破壞符號(hào)“v”的實(shí)現(xiàn)添加破壞符號(hào)“v”模塊的功能實(shí)際上就是對(duì)消息代碼里的四個(gè)連0串的檢測(cè),即當(dāng)出現(xiàn)四個(gè)連0串的時(shí)候,把第四個(gè)“0”變換成符號(hào)“v”(“v”可以是邏輯電平“1”),而在其他的情況下,則保持消息代碼的原樣輸出,同時(shí)為了區(qū)別代碼“1”、 “v”和“0”,在添加破壞符號(hào)“v”時(shí),用“11”標(biāo)識(shí)符號(hào)“v”,用“01”標(biāo)識(shí)符號(hào)“1”,用“00”標(biāo)識(shí)符號(hào)“0”。如表2.3所示:表2.3 標(biāo)識(shí)符代替代碼規(guī)則代碼01v標(biāo)識(shí)符000111因此,添加破壞符號(hào)“v”的設(shè)計(jì)思想如下:首先判斷輸入的代碼是什么,如果輸入的符
14、號(hào)是“0”碼,則接著判斷這是第幾個(gè)“0”碼,如果是第四個(gè)“0”碼,則把這個(gè)“0”碼變換成“v”碼。在其他的情況下,讓原碼照常輸出。程序流程圖如圖2.2所示:其中: count0是作為連0的計(jì)數(shù)器。 count0_s是四個(gè)連“0”狀態(tài)寄存器。1表示遇到四個(gè)連0,0表示未遇到四個(gè)連0的狀態(tài)。開(kāi)始codein_v=0? ncount0=0count0_s=0countout_v=“01” ycount0_s=0countout_v=“00”count0= count0+1count0=3? n ycount0=0count0_s=1countout_v=“11” 結(jié)束圖2.2 添加破壞符號(hào)“v”符號(hào)
15、流程圖根據(jù)圖2.2的思想,完成hdb3碼編碼的程序?qū)崿F(xiàn)添加破壞符號(hào)“v”功能的程序,以下給出實(shí)現(xiàn)添加破壞符號(hào)“v”功能的關(guān)鍵代碼,具體程序見(jiàn)附錄一。add_v: process(clk,clr) -添加破壞符號(hào)v程序 begin if(clkevent and clk=1)then if(clr=1)then codeoutv=00; count0codeoutv=01; -01表示1 count0 if(count0=3)then count0_s=1; codeoutv=11; count0=0; end process add_v; s0(0)=codeoutv(0); s1(0)=co
16、deoutv(1);信息序列: 10000100001100011添加破壞符號(hào)v后:0100000011010000001101010000000101此添加破壞符號(hào)“v”功能程序設(shè)計(jì)了一個(gè)計(jì)數(shù)器count0,用來(lái)作為應(yīng)添加破壞符號(hào)“v”符號(hào)的標(biāo)志。假設(shè)輸入某信息序列,根據(jù)設(shè)計(jì)思想,輸入代碼一添加破壞符號(hào)“v”后的關(guān)系如下:信息序列: 10000100001100011添加破壞符號(hào)v后:01000000110100000011010100000001012.添加符號(hào)“b”的實(shí)現(xiàn)根據(jù)hdb3碼的編碼規(guī)則可知:添加破壞符號(hào)“v”模塊的是為了保證附加“v”符號(hào)后的序列不破壞“極性交替反轉(zhuǎn)”造成的無(wú)直
17、流特性,即當(dāng)相鄰“v”符號(hào)之間有偶數(shù)個(gè)非0符號(hào)的時(shí)候,把后一小段的第一個(gè)“0”變換成一個(gè)非破壞符號(hào)“b”符號(hào)。如圖2.3所示。其中: firstv作為前面是否出現(xiàn)“11”即符號(hào)“v”的標(biāo)志位,其中0表示前面沒(méi)有出現(xiàn)v,1表示前面已經(jīng)出現(xiàn)過(guò)符號(hào)v。 count1作為記非0符號(hào)的奇偶數(shù),其中0表示為偶數(shù),1表示為奇數(shù)。 first_1遇1狀態(tài)寄存器,1表示前面遇到過(guò)1,0表示沒(méi)有遇到過(guò)。表2.4標(biāo)識(shí)符代替代碼規(guī)則代碼01vb標(biāo)識(shí)符00011110開(kāi)始codeout_v=11codeout_v=00codeout_v=01firstv=0? ncount1=0?count1=0?first1=1?y
18、count0-s=1?count1=count1 n n n n結(jié)束codeout_b=s1(4)&s0(4)s1(4)=s1(3)s0(4)=s0(3)s1(4)=s1(3)s0(4)=s0(3)s1(4)=s1(3)s0(4)=s0(3)s1(4)=s1(3)s0(4)=s0(3)s1(4)=1s0(4)=0s1(4)=s1(3)s0(4)=s0(3)s1(4)=1s0(4)=0s1(4)=s1(3)s0(4)=s0(3)first1=1first1=1first1=1first1=1firstv=1count1=0count1=1count1=0count1=0count1=0count
19、1=0count1=0 y y y圖2.3 添加符號(hào)“b”符號(hào)流程圖如圖2.3所示可知,如何確定是“1”,還是“v”,是本課程設(shè)計(jì)所遇到的第一個(gè)難點(diǎn)。本程序處理難點(diǎn)的思路是:先把碼元(經(jīng)過(guò)添加破壞符號(hào)“v”處理過(guò)的)放入一個(gè)四位的移位寄存器中,在同步脈沖(時(shí)鐘信號(hào))的作用下,同時(shí)進(jìn)行是否添加符號(hào)“b”的判決,等到碼元從移位寄存器里出來(lái)的時(shí)候,就可以決定是應(yīng)該變換成“b”符號(hào),還是照原碼輸出。因此,在程序的結(jié)構(gòu)中進(jìn)行元件聲明,調(diào)用庫(kù)里的d觸發(fā)來(lái)實(shí)現(xiàn)延遲作用。為了使程序的流程更加清晰,用了四個(gè)元件例化語(yǔ)句dffx:dff port map(),來(lái)說(shuō)明信號(hào)的流向。以下給出添加符號(hào)“b”模塊的部分程序
20、,完整的程序見(jiàn)附錄。ds11: dff port map(s1(0),clk,s1(1); ds01: dff port map(s0(0),clk,s0(1); ds12: dff port map(s1(1),clk,s1(2); ds02: dff port map(s0(1),clk,s0(2); ds13: dff port map(s1(2),clk,s1(3); ds03: dff port map(s0(2),clk,s0(3); -調(diào)元件dff,即d觸發(fā)器 bclk: clkb=not clk; add_b: process(clkb) begin if(clkbevent
21、and clkb=1)then if(codeoutv=11)then elsif(codeoutv=01)then if(count1=0)then first_1=1; count1=1; s1(4)=s1(3); s0(4)=s0(3); else s1(4)=s1(3); s0(4)=s0(3); end if; else count1=count1; s1(4)=s1(3); s0(4)=s0(3); end if;end if; end process add_b; codeoutb=s1(4)&s0(4);2.3編碼中單/雙極性轉(zhuǎn)換的實(shí)現(xiàn)2.3.1單/雙極性轉(zhuǎn)換的流程圖根據(jù)hdb
22、3碼的編碼規(guī)則,可知 “v”的極性是正負(fù)交替變換的,而余下的“1”和“b”本課程設(shè)計(jì)把其看成為一體且是正負(fù)交替變換的,同時(shí)滿足“v”的極性與前面的非零碼極性一致。由此本課程設(shè)計(jì)就把“1”和“b”看成一組,而“v”單獨(dú)作為一組來(lái)做正負(fù)交替變換。由此可得到程序流程圖如圖2.4、圖2.5、圖2.6所示。開(kāi)始codeoutb=01 orcodeoutb=10接codeoutb=11和codeoutb=00flagob=2?flagob=1?flagob=0?n n n y y yflagov=2?flagov=1?flagov=0? n n y y y y yflagob=1flagob=2flago
23、b=1flagob=2flagob=1 codeout=01codeout=11codeout=01codeout=11codeout=01結(jié)束圖2.4 單雙極性變換控制的程序流程圖“01”和“10”部分接codeoutb=11和codeoutb=00codeoutb=11flagov=2?flagov=1?flagov=0?n n n y y yflagob=2?flagob=1?flagob=0?n n flagov=1flagov=2yy ycodeout=01codeout=11flagov=2flagov=1flagov=1codeout=11codeout=01codeout=01
24、結(jié)束圖2.5 單雙極性變換控制的程序流程圖“11”部分接codeoutb=11和codeoutb=00flagob=flagobflagov=flagovcode=00結(jié)束圖2.6單雙極性變換控制的程序流程圖“00”部分2.3.2單/雙極性變換的vhdl實(shí)現(xiàn)以下是部分實(shí)現(xiàn)單雙極性變換控制功能的關(guān)鍵代碼,具體程序見(jiàn)附錄。 if(clkevent and clk=1)then if(codeoutb=01) or (codeoutb=10)then -1/b if(flagob=0)then if(flagov=0)then codeout=01; flagob=1; elsif(flagov=1
25、)then codeout=11; flagob=2; elsif(flagov=2)then codeout=01; end if; elsif(flagob=1)then codeout=11; flagob=2; elsif(flagob=2)then codeout=01; flagob=1; -判01/10end if; elsif(codeoutb=11)then if(flagov=0)then elsif(flagov=1)then elsif(flagov=2)then codeout=01; flagov=1; -判v -flagov/flagob:0表示還未遇到v/b,1
26、表示遇到奇數(shù)個(gè)v/b,2表示遇到偶數(shù)個(gè)v/b else codeout=00; flagob=flagob;flagov=flagov; end if; end if; end process output;end architecture rtl;2.4 hdb3碼編碼器的波形仿真及分析圖2.7 輸入全 “0”時(shí)編碼輸出圖2.8 輸入全“1”時(shí)編碼輸出圖2.9 輸入“000000000000001000000”時(shí)編碼輸出圖2.10 輸入“100001000011000011000010” 時(shí)編碼輸出由仿真波形可以得出:codein: 11111111111111111111 codeout:
27、0111011101110111011101110111011101110111codein: 00000000000001000000codeout:01000001110000110100000100110000000110100codein: 100001000011000011000010codeout:010000000111000000110111010000011101110000110100結(jié)論與心得本課程設(shè)計(jì)采用fpga為硬件平臺(tái),以美國(guó)altera公司的quartus為軟件平臺(tái),根據(jù)hdb3碼的編譯碼原理,基于vhdl硬件描述性語(yǔ)言,采用“至頂向下”的方法來(lái)對(duì)hdb3碼進(jìn)行
28、建模。此種設(shè)計(jì)方法就是把一個(gè)復(fù)雜的系統(tǒng)分成幾個(gè)部分,再把每部分劃分成若干子模塊,各模塊獨(dú)立進(jìn)行設(shè)計(jì),采用這種模塊化設(shè)計(jì),有利于提高工作效率。同時(shí)在系統(tǒng)仿真校驗(yàn)時(shí),若發(fā)現(xiàn)不符合要求,只要查找出有問(wèn)題的模塊,修改一次,則使該系統(tǒng)有問(wèn)題的模塊得到更正,從而解決了由此模塊產(chǎn)生的系統(tǒng)錯(cuò)誤。本課程設(shè)計(jì)采用以fpga為硬件平臺(tái),基于vhdl語(yǔ)言對(duì)hdb3碼的編碼的實(shí)現(xiàn)具有如下的優(yōu)勢(shì): 使用vhdl語(yǔ)言對(duì)hdb3碼的編碼,相對(duì)于采用硬件電路來(lái)實(shí)現(xiàn),可以對(duì)其采用模塊化的設(shè)計(jì),簡(jiǎn)化了系統(tǒng)設(shè)計(jì)的難度,降低了工程人員的工作強(qiáng)度。 可以在vhdl的軟件quartus上對(duì)hdb3碼的編碼代碼進(jìn)行調(diào)試,正確后才下載到硬件平
29、臺(tái)上,節(jié)省了系統(tǒng)開(kāi)發(fā)的成本。通過(guò)本次課程設(shè)計(jì)不僅對(duì)fpga的硬件描述語(yǔ)言有了進(jìn)一步的認(rèn)識(shí)和了解,而且認(rèn)識(shí)并熟練掌握了quartus軟件的使用。本次課程設(shè)計(jì)從選題、規(guī)劃設(shè)計(jì)思路、設(shè)計(jì)模塊到仿真實(shí)現(xiàn)使我們對(duì)設(shè)計(jì)有了一個(gè)系統(tǒng)的概念,并規(guī)范了我們的設(shè)計(jì)思路。參考文獻(xiàn)1 樊昌信、張甫翎通信原理國(guó)防工業(yè)出版社,2005.52 譚會(huì)生、張昌凡eda技術(shù)及應(yīng)用.西安科技大學(xué)出版社,200443 童詩(shī)白、華成英模擬電子技術(shù)基礎(chǔ).高等教育出版社,200344 黃葆華 楊曉靜 牟華坤.通信原理.西安電子科技大學(xué)出版社.20075 潘松 黃繼業(yè)eda技術(shù)實(shí)用教程科學(xué)出版社20056 潘松 黃繼業(yè)eda技術(shù)與vhdl清
30、華大學(xué)出版社20098 王開(kāi)軍,姜宇柏等.面向cpld/fpga的vhdl設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2007附錄 hdb3碼編碼器完整源程序-本程序在添加破壞符號(hào)v時(shí)用11表示v,00表示0,01表示1-添加符號(hào)b時(shí)用00表示0,01表示1,10表示b-最終輸出時(shí)是以11表示+1,00表示-1,10表示0library ieee;use ieee.std_logic_1164.all;entity enhdb3 is port(codein : in std_logic; clk : in std_logic; clr : in std_logic; codeout : out std_lo
31、gic_vector(1 downto 0);end entity enhdb3;architecture rtl of enhdb3 is signal codeoutv: std_logic_vector(1 downto 0); signal count0: integer:=0; signal s0: std_logic_vector(4 downto 0):=00000; signal count1: integer range 1 downto 0;-0表示在v之間有偶數(shù)個(gè)1,1表示在v之間有奇數(shù)個(gè)1 signal codeoutb: std_logic_vector(1 down
32、to 0); signal s1: std_logic_vector(4 downto 0):=00000; signal clkb: std_logic; signal s3: std_logic_vector(1 downto 0); signal flagob: integer range 2 downto 0; signal flagov: integer range 2 downto 0; signal firstv: integer range 1 downto 0; signal first_1: std_logic; signal count0_s:std_logic; com
33、ponent dff -調(diào)元件dff,即d觸發(fā)器 port(d: in std_logic; clk: in std_logic; q: out std_logic); end component dff; begin add_v: process(clk,clr) -添加破壞符號(hào)v程序begin if(clkevent and clk=1)then if(clr=1)then codeoutv=00; count0codeoutv=01; -01表示1 count0 if(count0=3)then count0_s=1; codeoutv=11; count0=0; else count0
34、_s=0; count0=count0+1; codeoutv codeoutv=00; count0=count0; count0_s=0; end case; end if; end if; end process add_v; s0(0)=codeoutv(0); s1(0)=codeoutv(1); ds11: dff port map(s1(0),clk,s1(1); ds01: dff port map(s0(0),clk,s0(1); ds12: dff port map(s1(1),clk,s1(2); ds02: dff port map(s0(1),clk,s0(2); d
35、s13: dff port map(s1(2),clk,s1(3); ds03: dff port map(s0(2),clk,s0(3); -調(diào)元件dff,即d觸發(fā)器bclk: clkb=not clk; add_b: process(clkb) begin if(clkbevent and clkb=1)then if(codeoutv=11)then if(firstv=0)then if(first_1=1)then count1=0; firstv=1; s1(4)=s1(3); s0(4)=s0(3); else if(count0_s=1)then firstv=1; s1(4)=1; s0(4)=0; count1=0; else count1=0; firstv=1; s1(4)=s1(3); s0(4)=s0(3); end if; end if; else if(count1=0)then-
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度消防工程勞務(wù)及消防設(shè)備租賃合同3篇
- 2024年心理咨詢師題庫(kù)及完整答案【名師系列】
- 資源勘查課課程設(shè)計(jì)
- 2025年度照明燈具代加工合同協(xié)議書(shū)4篇
- 造價(jià)概算課程設(shè)計(jì)
- 2024石英砂高性能材料研發(fā)與應(yīng)用銷售合同3篇
- 二零二五版美甲店美容護(hù)膚產(chǎn)品銷售代理合同模板4篇
- 2025年度高速公路橋梁加固與養(yǎng)護(hù)施工合同3篇
- 2024版銷售會(huì)議合同
- 2024智能交通工具研發(fā)與生產(chǎn)合作協(xié)議
- 氧氣霧化吸入法
- 6月大學(xué)英語(yǔ)四級(jí)真題(CET4)及答案解析
- 氣排球競(jìng)賽規(guī)則
- 電梯維修保養(yǎng)報(bào)價(jià)書(shū)模板
- 危險(xiǎn)化學(xué)品目錄2023
- FZ/T 81024-2022機(jī)織披風(fēng)
- GB/T 33141-2016鎂鋰合金鑄錠
- 2023譯林版新教材高中英語(yǔ)必修二全冊(cè)重點(diǎn)短語(yǔ)歸納小結(jié)
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- 綜合管廊工程施工技術(shù)概述課件
- 公積金提取單身聲明
評(píng)論
0/150
提交評(píng)論