通信原理課程設(shè)計______基于FPGA的時分多路數(shù)字基帶傳輸系統(tǒng)的設(shè)計與開發(fā).doc_第1頁
通信原理課程設(shè)計______基于FPGA的時分多路數(shù)字基帶傳輸系統(tǒng)的設(shè)計與開發(fā).doc_第2頁
通信原理課程設(shè)計______基于FPGA的時分多路數(shù)字基帶傳輸系統(tǒng)的設(shè)計與開發(fā).doc_第3頁
通信原理課程設(shè)計______基于FPGA的時分多路數(shù)字基帶傳輸系統(tǒng)的設(shè)計與開發(fā).doc_第4頁
通信原理課程設(shè)計______基于FPGA的時分多路數(shù)字基帶傳輸系統(tǒng)的設(shè)計與開發(fā).doc_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

通信系統(tǒng)課程設(shè)計基于fpga的時分多路數(shù)字基帶傳輸系統(tǒng)的設(shè)計與開發(fā) 指導老師:戴慧潔 武衛(wèi)華 班級:通信102班 組長: 組員:2013年7月5日通信系統(tǒng)課程設(shè)計目錄1.通信系統(tǒng)課程設(shè)計目的、內(nèi)容、要求1.1 課程設(shè)計目的1.2 課程設(shè)計內(nèi)容1.3 課程設(shè)計要求2.通信系統(tǒng)課程設(shè)計選題及小組劃分2.1課程設(shè)計選題2.2 小組劃分3.通信系統(tǒng)課程設(shè)計系統(tǒng)框圖及各模塊參數(shù)指標3.1 系統(tǒng)框圖3.2 各模塊參數(shù)指標4. 通信系統(tǒng)課程設(shè)計各模塊原理與思路4.1 pcm編譯碼4.2 hdb3編譯碼4.3 一次群時分復用與分接4.4 同步5.通信系統(tǒng)課程設(shè)計各模塊編程與波形仿真(含代碼)5.1 pcm編譯碼5.2 hdb3編譯碼5.3 一次群時分復用與分接5.4 同步6. 通信系統(tǒng)課程設(shè)計心得體會1.通信系統(tǒng)課程設(shè)計目的、內(nèi)容、要求及相關(guān)工具1.1 課程設(shè)計目的 通信系統(tǒng)課程設(shè)計是一門綜合設(shè)計性實踐課程。使大家在綜合已學現(xiàn)代通信系統(tǒng)理論知識的基礎(chǔ)上,借助可編程邏輯器件及eda技術(shù)的靈活性和可編程性,充分發(fā)揮自主創(chuàng)新意識,在規(guī)定時間內(nèi)完成符合實際需求的通信系統(tǒng)電路設(shè)計與調(diào)試任務(wù)。本次課程設(shè)計選題為數(shù)字基帶傳輸系統(tǒng)。數(shù)字通信系統(tǒng)是利用數(shù)字信號來傳輸信息的通信系統(tǒng),傳輸?shù)膶ο笸ǔJ嵌獢?shù)字信息,它可能來自計算機等其他數(shù)字設(shè)備的各種數(shù)字代碼,也可能來自數(shù)字電話終端的脈沖編碼,其包括數(shù)字基帶傳輸和數(shù)字頻帶傳輸。數(shù)字基帶傳輸就是不經(jīng)過調(diào)制而直接傳送的方式,即發(fā)送端不使用調(diào)制器,接收端也不使用解調(diào)器。和頻帶傳輸相比,基帶傳輸?shù)膬?yōu)點是:設(shè)備簡單,易做成“一機多速率”,適應(yīng)性強。而對于時分多路技術(shù),其具有十分優(yōu)越的特點。其便于實現(xiàn)數(shù)字通信,易于制造,適于采用集成電路實現(xiàn),成本較低,因此在數(shù)字信號傳輸中得到了廣泛的應(yīng)用。它不僅能夠提高大家對所學理論知識的理解能力,更重要的是能夠提高和挖掘大家對所學知識的實際運用能力,為將來進入社會從事相關(guān)工作奠定較好的“能力”基礎(chǔ)。 1.2 課程設(shè)計內(nèi)容(可選)a)時分多路數(shù)字電話基帶傳輸系統(tǒng)的設(shè)計與開發(fā)b)時分多路數(shù)字電話基帶傳輸系統(tǒng)的設(shè)計與開發(fā)1.3 課程設(shè)計要求a)64kb/s的a律pcm數(shù)字話音編譯碼器的開發(fā)設(shè)計b)pcm 30/32一次群時分復接與分接器的開發(fā)設(shè)計c)數(shù)字基帶編碼hdb3編譯碼器的開發(fā)設(shè)計d)正交相對四相移相鍵控qdpsk調(diào)制器的開發(fā)設(shè)計(可選)e)同步(幀、位、載波同步(可選)電路的開發(fā)設(shè)計根據(jù)給定的設(shè)計指標,要求能綜合運用通信原理理論所學知識,借助可編程邏輯器件,靈活使用eda開發(fā)工具平臺quartus,獨立進行時分多路數(shù)字電話基帶傳輸系統(tǒng)初步方案設(shè)計、單元電路設(shè)計、vhdl程序設(shè)計、程序調(diào)試等工作。附 工具 : quartus 6.0 、 fpga 、 vhdl語言本次課程設(shè)計使用的軟件是eda開發(fā)工具平臺quartus6.0,quartus 是altera公司提供的可編程邏輯器件的集成開發(fā)軟件,可編程邏輯器件開發(fā)的所有過程為:設(shè)計輸入、綜合、布局和布線、驗證和仿真以及可編程邏輯器件的編程或配置。使用的芯片是ep1c6q240c8。vhdl的全名是very-high-speed integrated circuit hardware description language,vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。fpga(fieldprogrammable gate array),即現(xiàn)場可編程門陣列,它是在pal、gal、cpld等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。2課程設(shè)計選題、小組劃分 2.1選題:時分多路數(shù)字電話基帶傳輸系統(tǒng)的設(shè)計與開發(fā) 2.2 模塊劃分(a) 負責 64kb/s的a律pcm數(shù)字話音編碼器的開發(fā)設(shè)計(b)負責 64kb/s的a律pcm數(shù)字話音譯碼器的開發(fā)設(shè)計 ( c)負責 數(shù)字基帶編碼hdb3編碼器的開發(fā)設(shè)計 ( d) 負責 數(shù)字基帶編碼hdb3譯碼器的開發(fā)設(shè)計(e) 負責 pcm 30/32一次群時分復接器的開發(fā)設(shè)計(f)負責 pcm 30/32一次群時分分接器的開發(fā)設(shè)計(g) 負責 同步(幀、位同步)電路的開發(fā)設(shè)計3. 通信系統(tǒng)課程設(shè)計系統(tǒng)框圖及各模塊技術(shù)指標3.1系統(tǒng)框圖pcm時分復用數(shù)字基帶傳輸,是各路信號在同一信道上占有不同的時間間隙進行通信。它把模擬信號通過抽樣、量化、編碼轉(zhuǎn)變?yōu)閿?shù)字信號,這些都靠編碼器來實現(xiàn),然后在位同步和幀同步信號的控制下通過復接器實現(xiàn)復接,復接后的信號通過信道傳輸,分接器在同步信號的作用下把接收到的信號進行分路,分路后的信號通過pcm譯碼、低通濾波器還原出輸入的模擬語音信號。同步技術(shù)是時分復用數(shù)字通信的又一個重要特點。 位同步是最基本的同步,是實現(xiàn)幀同步的前提。它的基本含義是收、發(fā)兩端機的時鐘頻率必須同頻、同相,這樣接收端才能正確判斷和接收發(fā)送端送來的每一個碼元。幀同步是為了保證收、發(fā)各對應(yīng)的話路在時間上保持一致,這樣接收端就能正確接收發(fā)送端送來的每一個話路信號。 圖3.1 時分多路數(shù)字基帶傳輸系統(tǒng)框圖3.2各模塊技術(shù)指標3.2.1 pcm編碼器參數(shù)指標(符合itu-t g.711建議) (1)pcm編碼器輸入信號為: 一個13位邏輯矢量的均勻量化值:d0,d1d12其中:d0為極性位,取值范圍在-4096+4096之間;一個占空比為1/32的8k/s的取樣時鐘信號;一個占空比為50%的2.048mb/s的合路時鐘信號; (2)pcm編碼器輸出信號為: 一個8位邏輯矢量的13折線非均勻量化值:c0,c1c7其中:c0為極性位.c0=1為正,c0=0為負;一個占空比為1/32的8k/s的取樣時鐘信號;一個占空比為50%的2.048mb/s的合路時鐘信號;(3) pcm編碼規(guī)則 圖3.2.1 pcm編碼規(guī)則3.2.2 pcm譯碼器參數(shù)指標(符合itu-t g.711建議)(1)pcm譯碼器輸入信號為: 一個8位邏輯矢量的13折線非均勻量化值:c0,c1c7其中:c0為極性位.c0=1為正,c0=0為負;一個占空比為1/32的8k/s的取樣時鐘信號;一個占空比為50%的2.048kb/s的合路時鐘信號; (2)pcm譯碼器輸出信號為: 一個13位邏輯矢量的均勻量化值:d0,d1d12其中:d0為極性位,取值范圍在-4096+4096之間;一個占空比為1/32的8k/s的取樣時鐘信號;一個占空比為50%的2.048mb/s的合路時鐘信號;(3)pcm譯碼規(guī)則 圖 3.2.2 pcm譯碼規(guī)則3.2.3 hdb3編碼器參數(shù)指標 (符合itu-t g.703建議) (1)hdb3編碼器輸入信號為: 一路串行2.048mb/s合路數(shù)據(jù)流 一路2.048mb/s位同步時鐘脈沖(2)hdb3編碼器輸出信號為: 一路串行2.048mb/s合路hdb3編碼的正極性數(shù)據(jù)流h+ 一路串行2.048mb/s合路hdb3編碼的負極性數(shù)據(jù)流h- 一路2.048mb/s位同步時鐘脈沖3.2.4 hdb3譯碼器參數(shù)指標 (符合itu-t g.703建議)(1)hdb3譯碼器輸入信號為: 一路串行2.048mb/s合路hdb3編碼的正極性數(shù)據(jù)流h+ 一路串行2.048mb/s合路hdb3編碼的負極性數(shù)據(jù)流h- 一路2.048mb/s位同步時鐘脈沖(2)hdb3譯碼器輸出信號為: 一路串行2.048mb/s合路數(shù)據(jù)流 一路2.048mb/s位同步時鐘脈沖3.2.5 一次群時分復接器參數(shù)指標()(1)一次群時分復接器輸入信號為: 一個8位數(shù)據(jù)總線d7d0 一個一次群串行位同步時鐘2.048mb/s信號;(2)一次群時分復接器輸出信號為: 一個一次群串行合路數(shù)據(jù)流2.048mb/s信號 一個一次群串行位同步時鐘2.048mb/s信號 一個5位時隙地址總線信號3.2.6 一次群時分接器參數(shù)指標(1)一次群時分分接器輸入信號為: 一個一次群串行合路數(shù)據(jù)流2.048mb/s信號 一個一次群串行位同步時鐘2.048mb/s信號(2)一次群時分分接器輸出信號為: 一個一次群串行合路數(shù)據(jù)流2.048mb/s信號 一個30位邏輯矢量時隙脈沖信號 一個一次群串行位同步時鐘2.048mb/s信號3.2.6相關(guān)幀結(jié)構(gòu)圖3.2.7 同步的參數(shù)指標 同步主要是進行幀同步與位同步,具體設(shè)計體現(xiàn)在一次群時 分分接器設(shè)計,還有提供各模塊的時鐘。4 通信系統(tǒng)課程設(shè)計各模塊原理與思路4.1pcm編碼器原理4.1.1 pcm編碼器分析脈沖編碼調(diào)制(pcm,pulse code modulation)在通信系統(tǒng)中完成將語音信號數(shù)字化功能。是一種對模擬信號數(shù)字化的取樣技術(shù),將模擬信號變換為數(shù)字信號的編碼方式,特別是對于音頻信號。pcm 對信號每秒鐘取樣 8000 次;每次取樣為8個位,總共64kbps。pcm的實現(xiàn)主要包括三個步驟完成:抽樣、量化、編碼。分別完成時間上離散、幅度上離散、及量化信號的二進制表示。根據(jù)ccitt的建議,為改善小信號量化性能,采用壓擴非均勻量化,有兩種建議方式,分別為a律和律方式,本設(shè)計采用了a律方式。 在13折線法中,無論輸入信號是正是負,均按8段折線(8個段落)進行編碼。若用8位折疊二進制碼來表示輸入信號的抽樣量化值,其中用第一位表示量化值的極性,其余七位(第二位至第八位)則表示抽樣量化值的絕對大小。具體的做法是:用第二至第四位表示段落碼,它的8種可能狀態(tài)來分別代表8個段落的起點電平。其它四位表示段內(nèi)碼,它的16種可能狀態(tài)來分別代表每一段落的16個均勻劃分的量化級。這樣處理的結(jié)果,8個段落被劃分成128個量化級。段落碼和8個段落之間的關(guān)系如表1所示;段內(nèi)碼與16個量化級之間的關(guān)系見表4.1.2所示。4.1.2pcm編碼規(guī)則表1 段落碼 表2 段內(nèi)碼段落序號段落碼段落范圍量化間隔段內(nèi)碼量化間隔段內(nèi)碼81112048-40961511117011171101024-2048141110601106101512-1024131101501015100256-512121100401004011128-25611101130011301064-12810101020010200132-64910011000110000-328100000000 4.1.3流程圖如下 圖 4.1.3 pcm編碼器流程圖4.2 pcm譯碼器原理4.2.1 pcm譯碼分析pcm譯碼是pcm編碼的逆過程。通過對pcm編碼的分析,可以進行8位pcm編碼到13位a率13折線的轉(zhuǎn)換,具體轉(zhuǎn)換見下譯碼規(guī)則圖。其中注意,在譯碼時的13位碼是對應(yīng)段的中間值,既所得的編碼應(yīng)加上對應(yīng)段量化值的一半。4.2.2 pcm譯碼規(guī)則 圖 4.2.2 pcm譯碼規(guī)則4.2.3流程圖如下 圖 4.2.3 pcm譯碼流程圖4.3 hdb3編碼器原理4.3.1 hdb3編碼規(guī)則分析: 1)對輸入為1碼元交替翻轉(zhuǎn)編碼,即依次在h+和h-端口輸出1 2)對輸入為0碼元同時在h+和h-端口輸出0 3)當連續(xù)輸入4個0碼元,且與上一個連續(xù)0碼元之間1碼元為 奇數(shù)個時,第四個0碼元改為1碼元,且與之前1碼元的最后一 個1碼元同極性,即:在同端口輸出 4)當連續(xù)輸入4個0碼元,且與上一個連續(xù)4個0碼元之間1碼 元為偶數(shù)個時,第一個0碼元改為1碼元,與之前1碼元的最 后一個1碼元反極性,即:在不同端口輸出,第四個0碼元改為 1碼元,且與之前1碼元的最后一個1碼元同極性,即:在同端 口輸出 4.3.2hdb3編碼vhdl語言設(shè)計 1)逐位處理輸入輸出數(shù)據(jù),即:每輸入一比特數(shù)據(jù)就判斷處理, 并在h+和h-端口同時輸出一位比特脈沖. 2)為了能修改含本時鐘之前4個時鐘周期的輸出比特,建立一 個4位移位寄存器保存輸入數(shù)據(jù)temp;3)輸出“1”時,確定下次1碼元輸出端口的確定,即極性是+ 或-;每輸入一個“1”,極性反轉(zhuǎn)一次,記錄信息county; 4)檢測當前是否為連續(xù)“0000”,記當前零個數(shù)count0; 5)記錄兩個連續(xù)“0000”之前連續(xù)1的個數(shù)記數(shù)count1,(即 奇偶數(shù))。 6)更新“b00v”“000v”時,更新信息count0,count1,county;4.3.3流程圖如下:源碼100001000011000000001hdb3碼+1000+1-1000-1+1-1+100-1+100-1+1h+100010000010100010001h-0000010001010001000104.4 hdb3譯碼器原理 4.4.1hdb3譯碼規(guī)則分析 將編碼修改過的0碼元恢復,并將雙極性交替1脈沖改為單 極性1脈沖 4.4.2 hdb3譯碼vhdl語言設(shè)計 對輸入的h+和h-分別設(shè)立一個五級緩存移位寄存器,每一拍 都判斷是否存在10001,或1001x;若存在分別改成10000, 或0000x。再將h+和h-相或輸出。 4.4.3流程圖如下:4.5 一次群時分復接器原理 復接器的功能是將30路pcm信號與幀同步和勤務(wù)信號綜合成一路2.048mb/s的串行合路輸出,并包括生成時隙地址信號。其中主要包括多路數(shù)據(jù)選擇器,串并轉(zhuǎn)換器,計數(shù)器等。4.6 一次群時分分接器原理 分接器的功能是將32路合路的2.048mb/s的信號分成32路64k/s的分路信號,同時生成32路時隙脈沖。其中主要是幀同步與位同步的捕捉與確定。4.7 同步模塊原理 在數(shù)字通信系統(tǒng)中,同步包括載波同步,碼元同步(位同步),群同步(幀同步),網(wǎng)同步四種,本課程設(shè)計主要用到幀同步與位同步。 1)幀同步是為接收信號而使給定數(shù)字信道的接收端與發(fā)送端的相應(yīng)信道對齊的過程,幀同步碼有集中插入和分散插入兩種插入方法,此課程設(shè)計中主要研究集中插入幀同步法,詳細設(shè)計可見一次群時分分接。 2)位同步是為了在準確的時刻對接收碼元進行判決,以及對接收碼元能量正確積分,它是從接收碼元的起止時刻產(chǎn)生一個碼元同步脈沖序列。位同步可分為外同步法和自同步法。外同步法是一種利用輔助信息同步的方法,需要在信號中另外加入包含碼元定時信息的導頻或數(shù)據(jù)序列。自同步法不需要輔助同步信息,直接從信息碼元中提取出碼元定時信息,這種方法要求在信息碼元序列中含有碼元定時信息,在此課程設(shè)計中,用數(shù)字鎖相環(huán)法實現(xiàn)碼元的自同步。位同步原理圖:相位比較pcc數(shù)字濾波dle受控分頻dcodata_inphaseerrorinsertsignalreducesignalclk_estclk5通信系統(tǒng)課程設(shè)計各模塊編程與上機實現(xiàn)5.1 pcm編碼程序與仿真圖-pcm編碼,符合itu-t g.711建議-一個輸入為13位邏輯矢量的均勻量化值,一個8000hz占空比為1/32的取樣脈沖-輸出為八位邏輯矢量的a律pcm編碼,和一個8000hz的時鐘-雖然設(shè)計要求輸入輸出2.048mb/s時鐘,個人覺得用不上,故舍去了-quartus軟件是以下標大的位為高位,所以十三位輸入采用d(12)為符號位library ieee;-程序調(diào)用的庫是ieee庫use ieee.std_logic_1164.all;-定義了std_logic,std_logic_vector類型entity pcmencode is port(clkin :in std_logic;-輸入時鐘8000hz d :in std_logic_vector(12 downto 0);-std_logic_vector全拼standard_logic標準邏輯矢量 c :out std_logic_vector(7 downto 0); clkout:out std_logic );end pcmencode;architecture behavior of pcmencode isbeginprocess(clkin,d)beginif clkinevent and clkin=1 then if d(11)=1 then c=d(12)&1&1&1&d(10)&d(9)&d(8)&d(7); elsif d(10)=1 then c=d(12)&1&1&0&d(9)&d(8)&d(7)&d(6); elsif d(9)=1 then c=d(12)&1&0&1&d(8)&d(7)&d(6)&d(5); elsif d(8)=1 then c=d(12)&1&0&0&d(7)&d(6)&d(5)&d(4); elsif d(7)=1 then c=d(12)&0&1&1&d(6)&d(5)&d(4)&d(3); elsif d(6)=1 then c=d(12)&0&1&0&d(5)&d(4)&d(3)&d(2); elsif d(5)=1 then c=d(12)&0&0&1&d(4)&d(3)&d(2)&d(1); else c=d(12)&0&0&0&d(4)&d(3)&d(2)&d(1); end if;end if;end process;clkout=clkin;end behavior;仿真圖:5.2 pcm譯碼程序與仿真圖-pcm譯碼-輸入a律八位pcm編碼,占空比為1/32的8000hz的去取樣時鐘-輸出為十三位邏輯矢量均勻量化值,占空比為1/32的8000hz的去取樣時鐘library ieee;use ieee.std_logic_1164.all;entity pcmdecode isport( clkin:in std_logic; c:in std_logic_vector(7 downto 0); d:out std_logic_vector(12 downto 0); clkout:out std_logic); end pcmdecode;architecture behavior of pcmdecode issignal temp:std_logic_vector(2 downto 0);begin temp ddddddddd=null; end case; end if; end process; clkout=clkin;end behavior;仿真圖:5.3 hdb3編碼器程序與仿真圖-hdb3編碼-輸入2.048mb/s數(shù)據(jù)流,占空比為50%的2.048mhz的去取樣時鐘-輸出為兩路雙極性2.048mb/s數(shù)據(jù)流,占空比為50%的2.048mhz的去取樣時鐘library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std;use ieee.std_logic_arith;entity hdbnecode isport(clkin:in std_logic; datain:in std_logic; dataouthh:out std_logic; dataouthl:out std_logic; clkout:out std_logic); end hdbnecode;architecture behavior of hdbnecode isbegin process(clkin)variable count0,count1:integer:=0 ;variable county:boolean;variable temp:std_logic_vector(3 downto 0);beginif clkinevent and clkin=0 then if datain=1 then-輸入為1時處理4位寄存器 count0:=0; temp(0):=datain; count1:=count1+1; if temp(3)=0 then-首位0 處理 輸出 dataouthh=0; dataouthl=0; else if county then-首位1處理 輸出 dataouthh=1; dataouthl=0; county:=not county; else dataouthh=0; dataouthl=1; county:=not county; end if; end if;else temp(0):=datain;-輸入為0時處理4位寄存器 count0:=count0+1; if count0=4 then-檢測到0000,處理 4位寄存器 count0:=0; count1:=(count1 rem 2);-兩個四連零 間 1 的 奇偶 if count1=1 then-兩個四連零 間 1 的 奇偶 count1:=0; temp:=0001; dataouthh=0;dataouthl=0;county:=not county;else count1:=0; -兩個四連零 間 1 的 偶 temp:=1001; if county then dataouthh=1; dataouthl=0; else dataouthh=0; dataouthl=1; end if; end if; else if temp(3)=0 then-未檢測到0000 處理輸出 dataouthh=0; dataouthl=0; else if county then dataouthh=1; dataouthl=0; county:=not county; else dataouthh=0; dataouthl=1; county:=not county; end if; end if; end if; end if; end if;temp(3 downto 1):= temp(2 downto 0);end process;clkout=clkin;end behavior;仿真圖:5.4 hdb3譯碼器程序與仿真圖-輸入為兩路雙極性2.048mb/s數(shù)據(jù)流,占空比為50%的2.048mhz的去取樣時鐘-輸出為一路單極性2.048mb/s數(shù)據(jù)流,占空比為50%的2.048mhz的去取樣時鐘library ieee;use ieee.std_logic_1164.all;entity hdbdecode isport( clkin:in std_logic; datainhh:in std_logic; datainhl:in std_logic; dataout:out std_logic; clkout:out std_logic); end hdbdecode;architecture behavior of hdbdecode is signal hh,hl:std_logic_vector(4 downto 0); signal temp:std_logic;begin ahh:process(clkin) variable temphh:std_logic_vector(4 downto 0); begin if clkinevent and clkin=0 then temphh(0):=datainhh; if temphh=10001 then temphh:=10000; elsif (temphh=10010 or temphh=10011) then temphh:=0000&datainhh; end if; end if; hh=temphh; temphh(4 downto 1):=temphh(3 downto 0); end process; ahl:process(clkin) variable temphl:std_logic_vector(4 downto 0); begin if clkinevent and clkin=0 then temphl(0):=datainhl; if temphl=10001 then temphl:=10000; elsif (temphl=10010 or temphl=10011) then temphl:=0000&datainhl; end if; end if; hl=temphl; temphl(4 downto 1):=temphl(3 downto 0); end process; emp=(hh(4)or hl(4); dataout=temp; clkout=clkin;end behavior; 仿真圖:5.5 一次群復接器程序與仿真圖-時分復接器-輸入一個8位數(shù)據(jù)總線(即30路pcm話音并行數(shù)據(jù)共用總線),-輸入一個一次群串行位同步時鐘2.048mb/s信號-輸出一個一次群串行合路數(shù)據(jù)流2.048mb/s信號;一個一次群串行位同步時鐘2.048mb/s信號-一個5位時隙地址總線信號(即30路pcm話音并行地址總線)-(其說明當前輸入的數(shù)據(jù)總線上是哪個時隙數(shù)據(jù))-此程序要特別注意器件的選擇,該程序選擇cyclone系列ep1c6q240c8時得到所期望的結(jié)果-若選用其他器件譬如stratix ii系列的器件會丟失第一路信息library ieee;-程序所調(diào)用的庫是ieee庫use ieee.std_logic_1164.all;-定義了std_logic,std_logic_vector類型use ieee.std_logic_unsigned.all;-用到基于std_logic,std_logic_vector類型的-無符號的算術(shù)運算entity fujieqi isport (clkin: in std_logic; datain: in std_logic_vector(7 downto 0);-30路語音信號輸入 dataout:out std_logic; -輸出串行數(shù)據(jù)流 ads:out std_logic_vector(4 downto 0);-五位時隙總線信號 clkout:out std_logic);-輸出時鐘end fujieqi;architecture behav of fujieqi isshared variable tscount:std_logic_vector(8 downto 0);-時隙計數(shù)器shared variable bitcount:std_logic_vector(2 downto 0);-位計數(shù)器beginp1:process(clkin)-位時鐘和時隙計數(shù)beginif clkinevent and clkin=1 then if bitcount=111 then bitcount:=000; tscount:=tscount+1; else bitcount:=bitcount+1; end if;end if;end process p1;p2:process(clkin)variable regester:std_logic_vector(7 downto 0);-定義一個內(nèi)部的寄存器,-用于寄存輸入的八位數(shù)據(jù)variable temp:std_logic_vector(7 downto 0);-定義一個中間變量,用于數(shù)據(jù)的串行輸出beginif clkinevent and clkin=1 then ads=tscount(4 downto 0);-記錄當前輸出的是第幾路信號 if bitcount=000 then if tscount(5 downto 0)=000000 then regester:=10011011; -雙幀計數(shù)為0時傳幀同碼 elsif tscount(5 downto 0)=100000 then regester:=11111111; -雙幀計數(shù)為32時傳勤務(wù)信息 elsif tscount=000010000 then regester:=00001111; -復幀計數(shù)為16時傳復幀同步碼 elsif tscount(4 downto 0)=10000 then regester:=11111111; -除f0幀外,每幀的第16時隙都傳信令信息 else regester:=datain; -不滿足以上條件時傳語音信號 end if; temp:=regester; -并串轉(zhuǎn)換 dataout=temp(7);-時隙的第一個時鐘上升沿輸出最高位 else temp(7 downto 1):=temp(6 downto 0);-右移 dataout=temp(7);-接著發(fā)其他位 end if;end if;clkout=clkin;-輸出時鐘end process p2;end behav;仿真圖:5.6一次群分接器程序與仿真圖-時分分接程序-同步碼捕獲三次后方確認同步完成,若失步三次后重新捕獲-輸入一個一次群串行合路數(shù)據(jù)流2.048mb/s信號,一個一次群串行位同步時鐘2.048mb/s信號-輸出一個一次群串行合路數(shù)據(jù)流2.048mb/s信號,一個30位邏輯矢量時隙脈沖信號(每位對應(yīng)一路時隙脈沖)-一個一次群串行位同步時鐘2.048mb/s信號-輸出串行數(shù)據(jù)流分別于a1a31相與即可得到各路話音信號library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenjieqi isport(datain,clkin:in std_logic;-輸入2.048mb/s的合路數(shù)據(jù)流,輸入-串行位同步時鐘2.048mb/s a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31:out std_logic;-輸出30位邏輯矢量時隙脈沖信號,與dataout相與的結(jié)果就是所選擇的一路語音-輸出 clkout,dataout:out std_logic);-輸出串行數(shù)據(jù)流和輸出時鐘end fenjieqi;architecture behave of fenjieqi issignal regester,singlecount:std_logic_vector(7 downto 0):=00000000;-regester為八位移位寄存器用于捕獲同步碼,singlecount為單幀計數(shù)器signal doublecount:std_logic_vector(8 downto 0):=000000000;-雙幀計數(shù)器以位為單位signal catch:std_logic:=0;-同步碼捕捉狀態(tài)標志0表捕捉態(tài),1表示同步態(tài)signal syncount,lostcount:std_logic_vector(1 downto 0):=00;-同步計數(shù)器以位為單位-與失步計數(shù)器beginp1:process(clkin)-利用移位寄存器暫存當前輸入碼,敏感信號為時鐘上升沿-即當時鐘上升沿到達時該進程執(zhí)行一次beginif clkinevent and clkin=1 then-時鐘上升沿有效暫存輸入數(shù)據(jù) regester=regester(6 downto 0)&datain;end if;end process p1;p2:process(clkin)-同步碼捕捉,同步保持比較beginif clkinevent and clkin=0 then-時鐘下降沿有效驗證是否為同步碼-及驗證落后于暫存剛好半個時鐘周期,敏感信號為時鐘下降沿,即時鐘下降沿到達一次程序執(zhí)行一次 doublecount=doublecount+1; singlecount=doublecount(7 downto 0)+1;-借用雙幀第八位單幀計數(shù) if catch=0 then -catch為0時為捕捉態(tài) if syncount=00 then if regester=10011011 then syncount=syncount+1;doublecount=000000111; -表示第一次捕捉到同步碼,將其次數(shù)

溫馨提示

  • 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

提交評論