數(shù)字基帶信號HDB3碼的編碼器設(shè)計與建模_第1頁
數(shù)字基帶信號HDB3碼的編碼器設(shè)計與建模_第2頁
數(shù)字基帶信號HDB3碼的編碼器設(shè)計與建模_第3頁
數(shù)字基帶信號HDB3碼的編碼器設(shè)計與建模_第4頁
數(shù)字基帶信號HDB3碼的編碼器設(shè)計與建模_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計任務(wù)書學生姓名: 專業(yè)班級: 指導教師: 工作單位: 題 目:數(shù)字基帶信號HDB3碼的編碼器設(shè)計與建模 初始條件:(1)MAX PLUSII 10.02 以上版本軟件;(2)課程設(shè)計輔導書:通信原理課程設(shè)計指導(3)先修課程:數(shù)字電子技術(shù)、模擬電子技術(shù)、電子設(shè)計EDA、通信原理。要求完成的主要任務(wù): (包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求) (1)課程設(shè)計時間:1周;(2)課程設(shè)計題目:根據(jù)指導老師給定的六套題目選擇其中二套完成;(3)本課程設(shè)計統(tǒng)一技術(shù)要求:按照要求對選定的設(shè)計題目進行邏輯分析,掌握HDB3碼的編碼原理,了解各模塊電路的邏輯功能,設(shè)計通信系統(tǒng)框圖,

2、畫出實現(xiàn)電路原理圖,編寫VHDL語言程序,上機調(diào)試、仿真,記錄實驗結(jié)果波形,對實驗結(jié)果進行分析; (4)課程設(shè)計說明書按學?!罢n程設(shè)計工作規(guī)范”中的“統(tǒng)一書寫格式”撰寫,并標明參考文獻至少5篇;(5)寫出本次課程設(shè)計的心得體會(至少500字)。時間安排:第19周參考文獻: 江國強.EDA技術(shù)與應(yīng)用. 北京:電子工業(yè)出版社,2010 John G. Proakis.Digital Communications. 北京:電子工業(yè)出版社,2011指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日摘 要 本課程設(shè)計概括了HDB3數(shù)字編碼器的研究背景、意義,同時對EDA技術(shù)和編碼技術(shù)作了簡

3、要的說明。設(shè)計方面包括規(guī)劃基于VHDL的HDB3編碼器設(shè)計的總體方案;基于VHDL的HDB3編碼器的軟件實現(xiàn)。其中HDB3碼的編碼程序設(shè)計是在Quartus軟件環(huán)境下進行的,首先在Quartus軟件環(huán)境下建立一個工程,工程名和程序的實體名一致,并將其作為該工程的設(shè)計文件。然后在VHDL文本編輯窗中輸入設(shè)計的VHDL源程序,進行編譯。程序編譯成功后要進行時序仿真,這一部分同樣是在Quartus軟件環(huán)境下完成的。關(guān)鍵詞:HDB3;建模;VHDL;編碼;QUARTUS目 錄1 Quartus 簡介12 VHDL語言的介紹33 HDB3碼編碼器的建模與實現(xiàn)43.1 HDB3碼的編碼規(guī)則43.2 基于V

4、HDL的編碼器的建模及實現(xiàn)53.2.1 編碼器的VHDL建模5 3.2.2 基于VHDL編碼器的實現(xiàn)63.3編碼中單/雙極性轉(zhuǎn)換的實現(xiàn)83.3.1單/雙極性轉(zhuǎn)換的流程圖84 HDB3碼編碼器完整源程序95 HDB3碼編碼器的波形仿真及分析136 總結(jié)與心得157 參考文獻161 Quartus 簡介Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程

5、。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。 此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片

6、上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。 Maxplus II 作為Altera的上一代PLD設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計輔助工具,集成了SOPC和HardCopy設(shè)計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。 Alter

7、a Quartus II 作為一種可編程邏輯的設(shè)計環(huán)境, 由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。圖1 Quartus 操作界面2 VHDL語言的介紹常用的硬件描述性語言有VHDL、Verilog和ABEL語言。VHDL語言起源于美國國防部的VHSIC,VHDL是一種高級描述語言,適用于行為級和RTL級的描述相對與Verilog語言和ABEL語言這些較低一級的適合描述門級電路的描述性語言而言,其具有以下的優(yōu)點:設(shè)計方法靈活、支持廣泛系統(tǒng)硬件描述能力強VHDL語言描述與工藝不發(fā)生關(guān)系VHDL語言標準、規(guī)范,易于共享和復(fù)用基于上述的特點,可知VHDL語言可讀性好,又能

8、被計算機識別。VHDL語言中設(shè)計實體、程序包、設(shè)計庫,為設(shè)計人員重復(fù)利用已有的設(shè)計提供了諸多技術(shù)手段??芍貜?fù)利用他人的IP模塊和軟核也是VHDL的另一特色,許多設(shè)計不必每次都從頭再來,只要在更高層次上把IP模塊組合起來,就能達到事半功倍的效果。這樣,設(shè)計人員自行開發(fā)的IP模塊在集成電路設(shè)計中占有重要的地位。因此本課程設(shè)計采用VHDL語言設(shè)計一個完善的HDB3碼編碼器。第 16 頁 3 HDB3碼編碼器的建模與實現(xiàn)3.1 HDB3碼的編碼規(guī)則在基帶傳輸中,常用的碼型有AMI碼、HDB3碼、4B/3T碼、CMI碼、以及雙相碼等。其中,AMI碼是將輸入單極性波形的所有正脈沖變?yōu)檫m合于在信道傳輸?shù)恼?/p>

9、極性交替的脈沖,而HDB3碼則是在AMI碼基礎(chǔ)上改進的一種雙極性歸零碼,它除具有AMI碼功率譜中無直流分量,可進行差錯自檢等優(yōu)點外,還克服了AMI碼當信息中出現(xiàn)連“0” 碼時定時提取困難的缺點,同時HDB3碼頻譜能量主要集中在基波頻率以下,占用頻帶較窄,因此被廣泛用作PCM線路傳輸碼型,因此要了解HDB3碼的編碼規(guī)則,首先要知道AMI碼的構(gòu)成規(guī)則,AMI碼就是把單極性脈沖序列中相鄰的“1”碼變?yōu)闃O性交替的正、負脈沖。將“0”碼保持不變,把“1”碼變?yōu)?1、-1交替的脈沖。如:信息序列:10011010111100001AMI碼:+100-1+10-10+1-1+1-10000+1HDB3碼是一

10、種AMI碼的改進型,它的編碼過程為:沒有4個或4個連“0”串時,HDB3編碼規(guī)律與AMI碼相同,即“1”碼變?yōu)椤?1”、 “-1”交替脈沖。當代碼序列中出現(xiàn)4個或4個以上連“0”串時,則將每4個連“0”小段即“0000”的第4個0變換成與前一非“0”符號同極性的符號,用破壞符號V表示。為了使附加V符號后的序列不破壞“極性交替反轉(zhuǎn)”造成的無直流特性,還必須保證相鄰V符號也應(yīng)極性交替。這一點,當相鄰V符號之間有奇數(shù)個非0符號時,則是能得到保證,當有偶數(shù)個非0符號時,則就得不到保證,這時再將該小段的第一個0變換成+B或-B,B符號的極性與前一非0符號的極性相反,并讓后面的非0符號從V符號開始再交替變

11、換。舉例如下:信碼 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碼的特點如下:(1)基帶信號無直流成分,且只有很小的低頻成分;(2)連0串符號最多只有3個,利于定時信息的提??;(3)不受信源統(tǒng)計特性的影響。圖2 各個數(shù)字基帶信號編碼間關(guān)系3.2 基于VHDL的編碼器的建模及實現(xiàn)3.2.1 編碼器的VHDL建模圖3 HDB3碼編碼器模型HDB3 編碼器建模的難點之一是判斷插“B”,實現(xiàn)中可利用寄存器,首先把信碼存入寄存器,同時設(shè)置一個計

12、數(shù)器計兩個“V”之間“1”的個數(shù),經(jīng)過 4 個碼元后,由判偶電路給寄存器發(fā)送是否插“B”的信號,實現(xiàn)插入“B”的功能。 本設(shè)計思想不需要首先把消息代碼變換為 AMI 碼,然后進行 V 符號和 B 符號的操作,而是按照 HDB3 編碼規(guī)則直接對消息代碼進行插入“V”符號和“B”符號的操作,后再實現(xiàn)單極性變雙極性的信號輸出,這樣可以減少寄存器的數(shù)量。如圖所示:整個HDB3碼的編碼器包括3個功能部分:添加破壞符號“V”、添加符號“B”和單極性碼轉(zhuǎn)變成雙極性碼,各部分之間采用同步時鐘作用,并且?guī)в幸粋€異步的復(fù)位(清零)端口。3.2.2 基于VHDL編碼器的實現(xiàn)1. 添加破壞符號“V”的實現(xiàn) 添加破壞符

13、號“V”模塊的功能實際上就是對消息代碼里的四個連0串的檢測,即當出現(xiàn)四個連0串的時候,把第四個“0”變換成符號“V”,而在其他的情況下,則保持消息代碼的原樣輸出,同時為了區(qū)別代碼“1”、 “V”和“0”,在添加破壞符號“V”時,用“11”標識符號“V”,用“01”標識符號“1”,用“00”標識符號“0”。因此,添加破壞符號“V”的設(shè)計思想如下:首先判斷輸入的代碼是什么,如果輸入的符號是“0”碼,則接著判斷這是第幾個“0”碼,如果是第四個“0”碼,則把這個“0”碼變換成“V”碼。在其他的情況下,讓原碼照常輸出。程序流程圖如圖3.2所示:圖4 添加破壞符號“V”符號流程圖假設(shè)輸入某信息序列,根據(jù)設(shè)

14、計思想,輸入代碼一添加破壞符號“V”后的關(guān)系如下:信息序列: 10000100001100011添加破壞符號V后:01000000110100000011010100000001012.添加符號“B”的實現(xiàn)根據(jù)HDB3碼的編碼規(guī)則可知:添加破壞符號“V”模塊的功能是為了保證附加“V”符號后的序列不破壞“極性交替反轉(zhuǎn)”造成的無直流特性,即當相鄰“V”符號之間有偶數(shù)個非0符號的時候,把后一小段的第一個“0”變換成一個非破壞符號“B”符號。如圖3.3所示。其中: FIRSTV作為前面是否出現(xiàn)“11”即符號“V”的標志位,其中0表示前面沒有出現(xiàn)V,1表示前面已經(jīng)出現(xiàn)過符號V。 COUNT1作為記非0符

15、號的奇偶數(shù),其中0表示為偶數(shù),1表示為奇數(shù)。 FIRST_1遇1狀態(tài)寄存器,1表示前面遇到過1,0表示沒有遇到過。 在本程序中用“10”來標識符號“B”。 在本程序中用“01”來標識符號“1”。 在本程序中用“00”來標識符號“0”。 在本程序中用“11”來標識符號“V”。圖5 添加符號“B”符號流程圖插“B”模塊是這個設(shè)計的一個難點,因為它涉及到一個由現(xiàn)在事件的狀態(tài)決定過去事件狀態(tài)的問題。其次還有如何確定是“1”,還是“V”的問題。處理難點的思路是:首先把碼元(經(jīng)插“V”處理過的)放入一個 4 位的移位寄存器里,在同步時鐘的作用下,同時進行是否插“B”的判決,等到碼元從移位寄存器里出來的時候

16、,就可以決定是應(yīng)該變換成“B”符號,還是照原碼輸出。因此,在程序的結(jié)構(gòu)中可進行元件聲明,調(diào)用庫里的 D 觸發(fā)器來實現(xiàn)延遲作用。 3.3編碼中單/雙極性轉(zhuǎn)換的實現(xiàn)3.3.1單/雙極性轉(zhuǎn)換的流程圖根據(jù)HDB3碼的編碼規(guī)則,可知 “V”的極性是正負交替變換的,而余下的“1”和“B”本設(shè)計把其看成為一體且是正負交替變換的,同時滿足“V”的極性與前面的非零碼極性一致。由此本設(shè)計就把“1”和“B”看成一組,而“V”單獨作為一組來做正負交替變換。同時,已知“1”、 “V”,“B”已經(jīng)分別用雙相碼“01”,“11”,“10”標識,所以對“1”,“V”, “B”的正負交替變換很容易實現(xiàn)。圖6單雙極性變換控制的程

17、序流程圖“01”和“10”部分其中在圖中:以01表示+1。以10表示-1。以00表示0。仿真軟件無法識別“-1”,因此采用雙相碼來分別表示“1”,“+1”和“0”,要想得到所需要的結(jié)果,僅僅在后加一個硬件(如四選一數(shù)字開關(guān) CC4052),就可以將程序中所定義的“00”、“01”和“11”分別轉(zhuǎn)換成 0、+1 和-1,從而達到設(shè)計所需結(jié)果4 HDB3碼編碼器完整源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HDB3 IS PORT (CODEIN:IN STD_LOGIC;CLK: IN STD_LOGIC;CLR: IN STD_LOG

18、IC;CODEOUT:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END HDB3;ARCHITECTURE BEHAVE OF HDB3 ISSIGNAL CNT0:INTEGER:=0;SIGNAL FLAG0 :INTEGER RANGE 1 DOWNTO 0:=0;SIGNAL FLAG1 :INTEGER RANGE 1 DOWNTO 0:=0;SIGNAL FLAG2 :INTEGER RANGE 1 DOWNTO 0:=1;SIGNAL FLAG3 :INTEGER RANGE 1 DOWNTO 0:=0;SIGNAL FIRSTV :INTEGER RAN

19、GE 1 DOWNTO 0:=0;SIGNAL CODEOUTV:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL S0:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"SIGNAL CODEOUTB:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL S1:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"SIGNAL CLKB :STD_LOGIC;SIGNAL CLKV :STD_LOGIC;SIGNAL CLKOUT:STD_LOGIC;SIGNAL S2

20、:STD_LOGIC_VECTOR(4 DOWNTO 0):="00000"SIGNAL S3:STD_LOGIC_VECTOR(2 DOWNTO 0);COMPONENT DFF PORT ( D :IN STD_LOGIC; CLK:IN STD_LOGIC; Q :OUT STD_LOGIC);END COMPONENT;BEGIN VCLK:CLKV<=CLK AFTER 10 NS;ADD_V: PROCESS(CLK,CLR) BEGIN IF CLK'EVENT AND CLK='1' THEN IF CLR='1'

21、; THEN CODEOUTV<="000" CNT0<=0; ELSE CASE CODEIN IS WHEN'1'=> CNT0<=0; IF (FLAG0=0) THEN CODEOUTV<="110" FLAG0<=1; ELSE CODEOUTV<="010" FLAG0<=0; END IF; WHEN '0'=> IF CNT0=3 THEN IF FIRSTV=0 THEN IF FLAG0=0 THEN CODEOUTV<=&

22、quot;011" FLAG1<=0; ELSE CODEOUTV<="111" FLAG1<=1; END IF; FIRSTV<=1; ELSE IF FLAG1=0 THEN CODEOUTV<="111" FLAG1<=1; FLAG0<=1; ELSE CODEOUTV<="011" FLAG1<=0; FLAG0<=0; END IF; END IF; CNT0<=0; ELSE CNT0<=CNT0+1; CODEOUTV<=&quo

23、t;000" END IF; WHEN OTHERS=> CODEOUTV<="000" CNT0<=CNT0;END CASE; END IF;END IF;END PROCESS ADD_V; S0(0)<=CODEOUTV(0); S1(0)<=CODEOUTV(1); S2(0)<=CODEOUTV(2);DS21:DFF PORT MAP(S2(0),CLK,S2(1);DS11:DFF PORT MAP(S1(0),CLK,S1(1);DS01:DFF PORT MAP(S0(0),CLK,S0(1);DS22:DF

24、F PORT MAP(S2(1),CLK,S2(2);DS12:DFF PORT MAP(S1(1),CLK,S1(2);DS02:DFF PORT MAP(S0(1),CLK,S0 (2);DS23:DFF PORT MAP(S2(2),CLK,S2(3);DS13:DFF PORT MAP(S1(2),CLK,S1(3);DS03:DFF PORT MAP(S0(2),CLK,S0 (3);BCLK:CLKB<=NOT CLK;ADD_B:PROCESS(CLKB) BEGIN IF CLKB'EVENT AND CLKB='1' THEN CASE CODE

25、OUTV IS WHEN "110"=> FLAG3<=1; S2(4)<=S2(3); S1(4)<=S1(3); S0(4)<=S0(3); WHEN "010" => FLAG3<=0; S2(4)<=S2(3); S1(4)<=S1(3); S0(4)<=S0(3); WHEN "111"=> IF FLAG3=0 THEN S2(4)<='1' S1(4)<='0' S0(4)<='1' FLA

26、G3<=1; ELSE S2(4)<=S2(3); S1(4)<=S1(3); S0(4)<=S0(3); END IF; FLAG2<=1; WHEN "011"=> IF FLAG3=0 THEN S2(4)<=S2(3); S1(4)<=S1(3); S0(4)<=S0(3); ELSE S2(4)<='0' S1(4)<='0' S0(4)<='1' FLAG3<=0 ; END IF; FLAG2<=0; WHEN OTHERS=&g

27、t; S2(4)<=S2(3); S1(4)<=S1(3); S0(4)<=S0(3); END CASE; CODEOUTB<=S2(4)&S1(4)&S0(4); END IF; END PROCESS ADD_B; OUTCLK:CLKOUT<=CLK AFTER 5 NS; OUTPUT:PROCESS(CLKOUT) BEGIN IF CLKOUT'EVENT AND CLKOUT='1' THEN IF CODEOUTB="000"THEN CODEOUT<="00" ELSIFCODEOUTB="001"ORCODEOUTB="010"OR CODEOUTB="011" THEN CODEOUT<="01" ELSE CODEOUT<="10" END IF; END IF; END PROCESS OUTPUT; END BEHAVE;5 HDB3碼編碼器的波形仿真及分析圖7 輸入全 “0”時編碼輸出輸入全0碼時輸出為B00V,且正負交替符合編碼規(guī)則。圖8 輸入全“1”時編碼輸出輸入全為1時,為+1,-1交替,圖中波形為01

溫馨提示

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

提交評論