基于fpga的交織器設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  深 圳 大 學(xué)</b></p><p>  本 科 畢 業(yè) 論 文(設(shè)計(jì))</p><p>  題目: 基于FPGA的交織器設(shè)計(jì)與實(shí)現(xiàn) </p><p>  姓名: </p><p>  專業(yè): 電子科學(xué)與技術(shù) </p><

2、;p>  學(xué)院: 電子科學(xué)與技術(shù) </p><p>  學(xué)號: </p><p>  指導(dǎo)教師: </p><p>  職稱: 副教授 </p><p>  20 年 5月20日</p><p>

3、  深圳大學(xué)本科畢業(yè)論文(設(shè)計(jì))誠信聲明</p><p>  本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì)),題目《 基于虛擬現(xiàn)實(shí)技術(shù)的滑蓋手機(jī)外形件設(shè)計(jì) 》是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。對本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式注明。除此之外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。本人完全意識到本聲明的法律結(jié)果。</p><p>  

4、畢業(yè)論文(設(shè)計(jì))作者簽名:</p><p>  日期: 年 月 日</p><p><b>  目錄</b></p><p><b>  【內(nèi)容摘要】1</b></p><p><b>  【關(guān)鍵詞】1</b></p><p&

5、gt;<b>  1.引言1</b></p><p>  2.交織器的原理、分類與應(yīng)用1</p><p>  2.1交織器的原理1</p><p>  2.2交織器的分類1</p><p>  2.2.1 按交織對象分1</p><p>  2.2.2 按交織方式可分2</p&g

6、t;<p>  2.2.3 隨機(jī)交織器3</p><p>  2.3 交織技術(shù)的應(yīng)用3</p><p>  3.系統(tǒng)設(shè)計(jì)的軟硬件環(huán)境3</p><p>  3.1 Quartus II3</p><p>  3.2關(guān)于VHDL硬件描述語言4</p><p>  3.3關(guān)于FPGA元件可編程邏輯門

7、陣列5</p><p>  4. 交織器的FPGA實(shí)現(xiàn)6</p><p>  4.1 設(shè)計(jì)流程6</p><p>  4.2 設(shè)計(jì)思路6</p><p>  4.3設(shè)計(jì)中各模塊的VHDL描述8</p><p>  4.3.1 7位計(jì)數(shù)器(地址產(chǎn)生器)8</p><p>  4.3.

8、2 8x8的RAM11</p><p>  4.3.3偽隨機(jī)碼發(fā)生器12</p><p>  4.3.4 4選2選擇器13</p><p>  5.系統(tǒng)的檢驗(yàn)和仿真14</p><p><b>  6.總結(jié)18</b></p><p><b>  【參考文獻(xiàn)】18<

9、/b></p><p><b>  致謝19</b></p><p>  【Abstract】19</p><p>  【Key words】19</p><p>  基于FPGA的交織器設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  學(xué)號: </b></p>

10、<p> ?。ㄉ钲诖髮W(xué)電子科學(xué)與技術(shù)學(xué)院電子科學(xué)與技術(shù)專業(yè))</p><p>  【內(nèi)容摘要】數(shù)字信號在傳輸過程中通??倳龅礁鞣N干擾而使信號失真,如大部分實(shí)際信道:短波,散射等信道中,不可避免地會產(chǎn)生突發(fā)性錯(cuò)誤,面對這類錯(cuò)誤需要很長的碼字,信道糾錯(cuò)編碼是無能為力。所以可以在信道編碼后加入交織技術(shù),使得突發(fā)錯(cuò)誤被離散成隨機(jī)錯(cuò)誤,接收端就可以用較短的碼字進(jìn)行糾錯(cuò)。文中介紹了一種基于FPGA實(shí)現(xiàn)8X8、

11、按行一位輸入,按列兩位輸出的交織器方法,主要思路為由偽隨機(jī)碼發(fā)生器產(chǎn)生數(shù)據(jù)源,地址產(chǎn)生器控制雙8x8ram的讀寫地址順序完成交織過程。文中提供了交織器中各模版的VHDL詳細(xì)語言描述,最后通過仿真驗(yàn)證了其可行性。</p><p>  【關(guān)鍵詞】交織器 FPGA VHDL QUARTUS II 偽隨機(jī)碼 </p><p><b>  1.引言</b></p&g

12、t;<p>  在現(xiàn)實(shí)數(shù)字通信中,為了提高通信的質(zhì)量和可靠性,通常會對傳輸?shù)男畔⑦M(jìn)行糾錯(cuò)編碼,然而信道編碼僅僅在檢測和校正單個(gè)差錯(cuò)和不太長的差錯(cuò)串時(shí)才有效。但是實(shí)際上,信道中產(chǎn)生的錯(cuò)誤往往是突發(fā)錯(cuò)誤或突發(fā)錯(cuò)誤與隨機(jī)錯(cuò)誤并存的,這就很可能超出了糾錯(cuò)碼的糾錯(cuò)能力范圍。為了解決這個(gè)問題,人們想到如果首先把突發(fā)錯(cuò)誤離散成隨機(jī)錯(cuò)誤,然后再去糾隨機(jī)錯(cuò)誤,那么系統(tǒng)的抗干擾性能就會進(jìn)一步得到提高,由此交織器就應(yīng)運(yùn)而生了。</p>

13、;<p>  2.交織器的原理、分類與應(yīng)用</p><p><b>  2.1交織器的原理</b></p><p>  交織器的作用就是將比較長的突發(fā)錯(cuò)誤或多個(gè)突發(fā)錯(cuò)誤離散成隨機(jī)錯(cuò)誤,即把錯(cuò)誤離散化,使得交織前后的數(shù)據(jù)序列的相干性減少。這樣,在信息的傳輸過程中及時(shí)發(fā)生成串差錯(cuò),恢復(fù)成一條相繼比特串的消息時(shí),差錯(cuò)也就變成單個(gè)離散的差錯(cuò),從而進(jìn)入了信道編碼糾

14、錯(cuò)功能力所能及的范圍了。</p><p><b>  2.2交織器的分類</b></p><p>  數(shù)字通信中常用的交織器按照交織對象可以分為符號交織和比特交織,按照交織的方式可以分為偽交織和周期性交織。 </p><p>  2.2.1 按交織對象分</p><p>  比特交織:比特交織是將N路并行的比特流中每一路

15、的順序按照不同得規(guī)則置換,這樣交織后N比特?cái)?shù)據(jù)與交織前比特間的對應(yīng)關(guān)系是錯(cuò)位的。</p><p>  符號交織:符號交織則是對數(shù)據(jù)符號的位置按一定規(guī)則進(jìn)行倒亂交織。</p><p>  2.2.2 按交織方式可分</p><p>  偽隨機(jī)交織器:偽隨機(jī)交織器實(shí)際上也可以看成是分組交織器,只是數(shù)據(jù)是經(jīng)過偽隨機(jī)排序處理的,要注意的是每個(gè)碼元只能一次。偽隨機(jī)交織器由于沒

16、有固定的周期,對于各種信道特性均有很強(qiáng)的適應(yīng)能力,尤其是當(dāng)信道上存在對敵方的有意干擾時(shí),更能顯示其優(yōu)越性,故多數(shù)應(yīng)用于擴(kuò)頻通信和保密通信。</p><p>  周期性交織器:周期性交織器的交織排列關(guān)系是時(shí)間的周期函數(shù)。有兩種常用結(jié)構(gòu):塊交織和卷積交織。它們都是同步交織器,每時(shí)刻存入一個(gè)數(shù)據(jù),同時(shí)讀出一個(gè)數(shù)據(jù)。數(shù)字通信中一般采用的同步交織有兩種:</p><p><b>  塊交織

17、 </b></p><p><b>  按列輸出</b></p><p>  圖2-1 塊交織原理圖</p><p>  由圖2-1可見,數(shù)據(jù)為被按行填入數(shù)據(jù)存儲矩陣中,而在發(fā)送時(shí)卻是按列讀出的,這樣就產(chǎn)生了對原始數(shù)據(jù)位以m個(gè)比特為周期進(jìn)行分隔的效果。這實(shí)際上是一個(gè)存儲器陣列。將數(shù)據(jù)按行寫入,然后按列讀出,完成交織。在接收端解交織操

18、作則是相反進(jìn)行的,即是按列寫入,按行讀出。這種形式的交織器結(jié)構(gòu)簡單,但是數(shù)據(jù)延遲時(shí)間長,所以需要的存儲容量大。</p><p><b>  卷積交織</b></p><p>  (n2 ,n1)的卷積交織器滿足如下要求:在該交織器輸出的任何一個(gè)長度為n2的數(shù)據(jù)串中不包含交織前原來數(shù)據(jù)序列中相距小于n,的任何兩個(gè)數(shù)據(jù)。顯然,在發(fā)送端采用交織器,在接受端就要用解交織器把數(shù)

19、據(jù)恢復(fù)過來??梢宰C明(n2,n1)的交織器相對應(yīng)的交織器自身是一個(gè)(n1,n2 )的交織器。對于 (n1,n2)的卷積交織器來說,有兩個(gè)性能是設(shè)計(jì)著所關(guān)心的:一個(gè)是編碼延遲D,它定義為從數(shù)據(jù)經(jīng)過交織和解交織后所引起的最大延遲。另一個(gè)是交織器和解交織器的存儲容量S和Su個(gè)符號單元。對于(n2,n1)的交織器有如下</p><p><b>  關(guān)系:</b></p><p&g

20、t;  D ≧ n2 x (nl-1)</p><p><b>  S+ Su ≧ D</b></p><p>  設(shè)計(jì)交織器時(shí),希望其D和S,Su盡量小。</p><p>  2.2.3 隨機(jī)交織器</p><p>  隨機(jī)交織器是最近剛剛興起的一種交織器,其實(shí)也可以說它是隨著Turbo碼的產(chǎn)生而被日益廣泛的應(yīng)用起來的

21、。顧名思義,隨機(jī)交織器應(yīng)該實(shí)現(xiàn)的思想便是隨機(jī)交織過程,但是現(xiàn)在所說的隨機(jī)交織器大部分恰當(dāng)?shù)膩碇v應(yīng)該稱之為偽隨機(jī)交織器。這是因?yàn)樽g碼器中的交織器是要與編碼器中的交織器相對應(yīng)的。而分組交織器是以規(guī)則的順序進(jìn)行交織,所以在收發(fā)兩端可以通過一定的協(xié)議來確定交織器的工作方式。但是在采用了隨機(jī)交織器的Turbo碼系統(tǒng)中,由于對于每一組信息序列所產(chǎn)生的交織后的結(jié)果是隨機(jī)性的,而譯碼器則要求對每幀數(shù)據(jù)都要有相應(yīng)的交織順序,所以在傳輸編碼序列的同時(shí),在信

22、道上還要傳輸交織器的信息,這不僅會加大譯碼器的復(fù)雜度,而且也加大了信道負(fù)載,而且如果在中途若交織信息出現(xiàn)錯(cuò)誤,則會使譯碼的誤碼增多,所以現(xiàn)在所采用的隨機(jī)交織器都是偽隨機(jī)的,是事先經(jīng)過隨機(jī)選擇而生成的一種性能較好的交織方式,然后將其做成表的形式存儲起來而進(jìn)行讀取的。</p><p>  隨機(jī)交織器主要分為:s隨機(jī)交織器,t隨機(jī)交織器和s-t隨機(jī)交織器。</p><p>  2.3 交織技術(shù)的

23、應(yīng)用</p><p>  交織技術(shù)結(jié)合糾錯(cuò)碼技術(shù)廣泛應(yīng)用于深空通信、衛(wèi)星通信、移動通信,數(shù)字存儲設(shè)備、數(shù)字電視等領(lǐng)域,交織技術(shù)的使用,極大提高了糾錯(cuò)碼的糾錯(cuò)能力。在MPEG-2視頻標(biāo)準(zhǔn)中,使用了復(fù)雜的差錯(cuò)控制,特別是在DAB/DMB(DigitalAudio/Multimedia Broadcast). DVB(Digital Video Broadcast)中,使用7級聯(lián)碼。深空信道,由于它可以近乎精確地模型化

24、為無記憶AWGN(Additive WhiteGaussian Noise)信道,而且信道的頻帶資源豐富,其次是功率受限,由于傳輸距離遠(yuǎn),信號衰減嚴(yán)重,需要采用糾錯(cuò)能力強(qiáng)的碼。數(shù)字電視傳輸系統(tǒng),要求高可靠性和高效率,而數(shù)字信道和廣播信道都是帶限信道,為了提高在傳播過程中的信號衰落,也采用了交織技術(shù)。</p><p>  3.系統(tǒng)設(shè)計(jì)的軟硬件環(huán)境</p><p>  本次設(shè)計(jì)是在ALTERA

25、公司提供的QUARTUS II軟件平臺下進(jìn)行的,芯片選擇CYCLONE II 的EP2C35F672C6 ,并運(yùn)用VHDL語言實(shí)現(xiàn)。</p><p>  3.1 Quartus II</p><p>  Quartus II是Altera公司推出的CPLD/FPGA開發(fā)工具,Quartus II提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性,包括:</p>

26、;<p>  可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件;</p><p>  芯片(電路)平面布局連線編輯;</p><p>  LogicLock增量設(shè)計(jì)方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊;</p><p>  功能強(qiáng)大的邏輯綜合工具;</

27、p><p>  完備的電路功能仿真與時(shí)序邏輯仿真工具;</p><p>  定時(shí)/時(shí)序分析與關(guān)鍵路徑延時(shí)分析;</p><p>  可使用SignalTap II邏輯分析工具進(jìn)行嵌入式的邏輯分析;</p><p>  支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件;</p><p>  使用組合編譯方式可一次完成

28、整體設(shè)計(jì)流程;</p><p><b>  自動定位編譯錯(cuò)誤;</b></p><p>  高效的期間編程與驗(yàn)證工具;</p><p>  可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;</p><p>  能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。</p>

29、;<p>  3.2關(guān)于VHDL硬件描述語言</p><p>  VHDL語言是一種用于電路設(shè)計(jì)的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計(jì)語言 。但是,由于它在一定程度上滿足了當(dāng)時(shí)的設(shè)計(jì)需求,于是他在1987年成為ANSI/IEEE的標(biāo)準(zhǔn)(IEEE STD 1076-1987)。1993

30、年更進(jìn)一步修訂,變得更加完備,成為ANSI/IEEE的ANSI/IEEE STD 1076-1993標(biāo)準(zhǔn)。目前,大多數(shù)的CAD廠商出品的EDA軟件都兼容了這種標(biāo)準(zhǔn)。</p><p>  VHDL的英文全寫是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong L

31、anguage.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。</p><p><b>  VHDL語言的結(jié)構(gòu)</b></p><p>  VHDL語言主要組成構(gòu)件有設(shè)計(jì)實(shí)體(Entity)、結(jié)構(gòu)體(Architecture)、子程序( Function Procedure )、集合包(Package)和庫(Library),前四

32、種稱為可編譯的設(shè)計(jì)單元。一個(gè)VHDL設(shè)計(jì)就是有這四種構(gòu)件的組成,編譯之后將它們放在制定的庫中共享。其中,實(shí)體用于描述設(shè)計(jì)的接口界面信號,它規(guī)定端口數(shù)目,端口方向和端口類型。它與硬件電路設(shè)計(jì)中的符號相對應(yīng)。而結(jié)構(gòu)體指定設(shè)計(jì)的真實(shí)行為,性能和結(jié)構(gòu),與硬件電路設(shè)計(jì)中的原理圖相對應(yīng)。子程序是可被調(diào)用的執(zhí)行某一特定功能算法的集合。集合包則是為了使常用的數(shù)據(jù)類型、常數(shù)和子程序?qū)τ谄渌O(shè)計(jì)塊可用而集中充放的一批設(shè)計(jì)單元和約定。</p>

33、<p><b>  設(shè)計(jì)實(shí)體</b></p><p><b>  實(shí)體的定義語法為:</b></p><p>  entity 實(shí)體名 is</p><p><b>  [端口說明];</b></p><p><b>  end 實(shí)體名;</b&

34、gt;</p><p>  端口說明書寫格式如下:</p><p>  port(端口名{,端口名}:方向 數(shù)據(jù)類型名;</p><p><b>  結(jié)構(gòu)體</b></p><p>  用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為。構(gòu)造體部分定義了設(shè)計(jì)單元的具體功能(行為)。</p><p><b>

35、  構(gòu)造體句法如下:</b></p><p>  architecture 構(gòu)造體 of 實(shí)體 is</p><p>  [定義語句]內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;</p><p><b>  begin</b></p><p><b>  [并行處理語句];</b></

36、p><p><b>  end 構(gòu)造體名;</b></p><p>  3.3關(guān)于FPGA元件可編程邏輯門陣列</p><p>  FPGA的原文是 Field Programmable Gate Array 元件可編程邏輯門陣列,是一個(gè)含有可編輯元件的半導(dǎo)體設(shè)備,是一個(gè)可供使用者程式化的邏輯門元件。</p><p>  目

37、前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。</p><

38、p>  系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。</p><p>  FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的

39、造價(jià)。廠商也可能會提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。</p><p>  早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對大數(shù)量的可以編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個(gè)邏輯單元之間,而FP

40、GA通常是在幾萬到幾百萬。</p><p>  CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個(gè)有點(diǎn)限制性的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時(shí)間和邏輯單元對連接單元高比率的優(yōu)點(diǎn)。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。</p><p>

41、;  CPLD和FPGA另外一個(gè)區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個(gè)因此有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行</p><p>  4. 交織器的FPGA實(shí)現(xiàn)</p><p><b>  4.1

42、 設(shè)計(jì)流程</b></p><p><b>  圖4-1 設(shè)計(jì)流程</b></p><p><b>  4.2 設(shè)計(jì)思路</b></p><p>  本設(shè)計(jì)本設(shè)計(jì)中采用的是ALTERA公司的CYCLONE II 系列的FPGA芯片EP2C35F672C6,VHDL語言描述,運(yùn)用塊交織的模式,按行向存儲單元寫入數(shù)

43、據(jù),按列從存儲單元中讀出數(shù)據(jù),完成交織過程。</p><p>  如圖4-2所示,考慮到如果用單RAM讀寫數(shù)據(jù),在寫入數(shù)據(jù)的同時(shí),不能讀數(shù)據(jù);在讀數(shù)據(jù)的時(shí)候,不能寫入數(shù)據(jù)。這樣處理數(shù)據(jù)不但浪費(fèi)時(shí)間,而且讀寫效率低下。因此采用雙RAM為數(shù)據(jù)緩存,雙RAM交替讀寫,當(dāng)一個(gè)RAM按行寫入時(shí),另外一個(gè)RAM按列讀出,以達(dá)到并行處理讀寫信號,提高了處理數(shù)據(jù)效率的要求。</p><p>  在數(shù)據(jù)處理

44、交織方式上,本設(shè)計(jì)采用的是地址發(fā)生器控制雙RAM的讀寫地址的產(chǎn)生而形成交織。這種方式不但易于理解和實(shí)現(xiàn),同時(shí)也使得系統(tǒng)比較精簡,穩(wěn)定性提高。</p><p>  下面以圖4-3 4x4 大小的RAM 為模型,說明一下本設(shè)計(jì)中RAM 的讀寫地址情況。</p><p><b>  列地址</b></p><p>  00 01

45、 10 11</p><p><b>  00</b></p><p><b>  01</b></p><p><b>  行地址</b></p><p><b>  10</b></p><p><

46、b>  11</b></p><p>  一位按行寫地址的順序?yàn)椋?lt;/p><p>  0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111.</p><p><b>  則信息寫入順序?yàn)椋?lt;/b></p>

47、<p>  A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4,D1,D2,D3,D4.</p><p>  兩位按列讀地址的順序?yàn)椋?lt;/p><p>  0000,0100,1000,1100,0010,0110,1010,1110.</p><p>  0001,0101,1001,1101,0011,0111,1011,1111.

48、</p><p><b>  則信息讀出順序?yàn)椋?lt;/b></p><p>  A1,B1,C1,D1,A3,B3,C3,D3.</p><p>  A2,B2,C3,D4,A4,B4,C4,D4.</p><p>  在本設(shè)計(jì)中8x8的交織器,我們運(yùn)用了7位計(jì)數(shù)器產(chǎn)生讀寫地址與讀寫控制端。則用低6位確定地址單元,高1位控

49、制讀寫狀態(tài)。</p><p>  4.3設(shè)計(jì)中各模塊的VHDL描述</p><p>  下面是設(shè)計(jì)的頂層原理圖:</p><p>  圖4-4 頂層原理圖</p><p>  如圖4-4所示,器件1為7位計(jì)數(shù)器提供讀寫地址,器件2為偽隨機(jī)碼發(fā)生器提供傳輸數(shù)據(jù),器件3、4為RAM起數(shù)據(jù)緩存作用,器件5為選擇器提供4選2 功能。</p>

50、;<p>  4.3.1 7位計(jì)數(shù)器(地址產(chǎn)生器)</p><p>  圖4-5 七位計(jì)數(shù)器</p><p>  程序中使用了兩個(gè)proecss,第一個(gè)process進(jìn)程中的輸出的為一位寫地址,第二個(gè)process進(jìn)程中輸出為雙線一位讀地址,即兩位地址。Rst為復(fù)位輸入端,高電平有效;Clk為時(shí)鐘輸入;output為ram提供寫地址;control為讀寫控制端;scan,s

51、can1為雙線讀地址。</p><p>  7位計(jì)數(shù)器的VHDL描述如下:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity

52、 counter is</p><p>  port(rst,clk: in std_logic;</p><p>  output : out std_logic_vector(5 downto 0);</p><p>  control : out std_logic;</p><p>  scan,scan1 : out std_log

53、ic_vector(5 downto 0));</p><p>  end entity counter;</p><p>  architecture behave of counter is</p><p>  signal temp2 : std_logic_vector(6 downto 0);</p><p><b>  

54、begin </b></p><p>  process(rst,clk)</p><p>  variable temp1 : std_logic_vector(6 downto 0);</p><p><b>  begin</b></p><p>  if rst = '1' then

55、temp1 := (others => '0');</p><p><b>  else</b></p><p>  if clk'event and (clk='1') and (clk'last_value='0') then </p><p>  if temp1 &l

56、t; 127 then </p><p>  temp1 := temp1 + 1; </p><p><b>  else </b></p><p>  temp1 := (others => '0');</p><p><b>  end if; </b>&

57、lt;/p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  control <= temp1(6); ――――高1位賦給控制端</p><p>  output <= te

58、mp1(5 downto 0); ――――低6位為RAM提供寫地址</p><p>  end process;</p><p>  process(rst,clk) ――――這一進(jìn)程提取奇數(shù)列地址</p><p>  variable k : std_logic_v

59、ector(6 downto 0);</p><p><b>  begin</b></p><p>  if rst = '1' then k := (others => '0');</p><p><b>  else</b></p><p>  if cl

60、k'event and (clk='1') and (clk'last_value='0') then </p><p>  if k >= 62 then</p><p>  k := (others => '0');</p><p>  elsif k >= 56 then<

61、/p><p>  k := k -54 ;</p><p>  else k := k + 8;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b><

62、;/p><p>  temp2 <= k + 1; ――――提取偶數(shù)列地址</p><p>  scan(5) <= k(5);</p><p>  scan(4) <= k(4);</p><p>  scan(3) <= k(3);

63、 奇數(shù)列地址賦予scan端輸出</p><p>  scan(2) <= k(2);</p><p>  scan(1) <= k(1);</p><p>  scan(0) <= k(0);</p><p>  scan1(5) <= temp2(5);</p>&

64、lt;p>  scan1(4) <= temp2(4);</p><p>  scan1(3) <= temp2(3); 偶數(shù)列地址賦予scan1端輸出</p><p>  scan1(2) <= temp2(2);</p><p>  scan1(1) <= temp2(1);&l

65、t;/p><p>  scan1(0) <= temp2(0);</p><p>  end process;</p><p>  end architecture behave;</p><p><b>  圖4.-6</b></p><p>  上圖4-6為7位計(jì)數(shù)器仿真情況,時(shí)鐘周期設(shè)置為

66、10ns,復(fù)位端使用低電平。Control為低電平,給ram“寫”指示。Rst為低電平,不工作狀態(tài)??梢钥吹?,output(寫地址)按照行順序輸出。Scan,scan1(雙線讀地址)按照列輸出</p><p>  圖4-7 計(jì)數(shù)器仿真結(jié)果</p><p>  上圖4-7所示,時(shí)鐘周期用10ns模擬,control在output顯示63后,從低電平變?yōu)楦唠娖?,表示ram讀寫狀態(tài)的轉(zhuǎn)變。即ra

67、m1如果在output計(jì)數(shù)到63前為寫狀態(tài),則63后變?yōu)樽x狀態(tài)。</p><p>  4.3.2 8x8的RAM</p><p>  圖4-8 8x8 ram</p><p>  Addr輸入對應(yīng)計(jì)數(shù)器的output輸出;addrx與addr輸入對應(yīng)計(jì)數(shù)器的scan與scan1輸出;wr與rd為讀寫控制輸入端,對應(yīng)計(jì)數(shù)器的control與“control非”;c

68、lk為時(shí)鐘輸入;datain輸入對應(yīng)偽隨機(jī)碼發(fā)生器輸出端,充當(dāng)所要傳達(dá)的信息;dataout與dataout1為輸出信息。</p><p>  8x8 ram的VHDL描述如下:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.

69、std_logic_unsigned.all;</p><p>  entity ram is</p><p>  port(addr:in std_logic_vector(0 to 5);</p><p>  addrx:in std_logic_vector(0 to 5);</p><p>  addw:in std_logic_ve

70、ctor(0 to 5);</p><p>  wr:in std_logic;</p><p>  rd:in std_logic;</p><p>  clk:in std_logic;</p><p>  datain:in std_logic;</p><p>  dataout:out std_logic;&

71、lt;/p><p>  dataout1:out std_logic);</p><p><b>  end ram;</b></p><p>  architecture one of ram is</p><p>  type memory is array(0 to 63)of std_logic;</p>

72、<p>  signal data1:memory;</p><p>  signal addr1:integer range 0 to 63;</p><p>  signal addr2:integer range 0 to 63;</p><p>  signal addw1:integer range 0 to 63;</p>&

73、lt;p><b>  begin</b></p><p>  addr1<=conv_integer(addr);</p><p>  addr2<=conv_integer(addrx);</p><p>  addw1<=conv_integer(addw);</p><p>  proces

74、s(wr,clk,addw1,datain)</p><p><b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  if wr='1' then</p><p>  data1(addw1)<=da

75、tain;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  process(rd,clk,addr1,data1,addr2)</p><p><b

76、>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  if rd='1' then</p><p>  dataout<=data1(addr1);</p><p>  dataout1<=data1(

77、addr2);</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end;</b></p><p>  4.3.3偽隨機(jī)碼發(fā)生

78、器</p><p>  圖4-9 偽隨機(jī)碼發(fā)生器</p><p>  Set為置位端,clk為時(shí)鐘輸入,out為輸出端。</p><p>  圖4-10 偽隨機(jī)碼發(fā)生器結(jié)構(gòu)圖</p><p>  如圖4-10所示,由6個(gè)D觸發(fā)器和異或門級聯(lián)而成,主要作用為輸出隨機(jī)碼,充當(dāng)所要傳輸?shù)男畔?。它產(chǎn)生序列的最大長度為26-1。 </p>

79、<p>  圖4-11 偽隨機(jī)碼發(fā)生器仿真圖</p><p>  圖4-11中out為時(shí)鐘周期為10ns下的偽隨機(jī)碼發(fā)生器輸出隨機(jī)信號。</p><p>  4.3.4 4選2選擇器</p><p>  圖4-12 四選二選擇器</p><p>  In1,in2,in3,in4四個(gè)輸入分別對應(yīng)兩個(gè)ram的四個(gè)輸出,a輸入對應(yīng)計(jì)

80、數(shù)器中的control輸出端;en為使能端;out1,out2為選擇后的輸出。</p><p>  4選2 選擇器的VHDL描述如下:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  entity sel2_1 is</p><

81、;p>  port(in1,in2,in3,in4:in std_logic;</p><p>  a:in std_logic;</p><p>  en:in std_logic;</p><p>  out1,out2:out std_logic);</p><p>  end sel2_1;</p><p&g

82、t;  architecture one of sel2_1 is</p><p><b>  begin</b></p><p>  process (in1,in2,in3,in4,en,a)</p><p><b>  begin</b></p><p>  if en='0'

83、; then out1<='0';</p><p>  out2<='0';</p><p><b>  else</b></p><p><b>  case a is</b></p><p>  when '0'=>out1<

84、;=in1;out2<=in2;</p><p>  when '1'=>out1<=in3;out2<=in4;</p><p>  when others=>out1<='0';out2<='0';</p><p><b>  end case;</b>

85、;</p><p><b>  end if;</b></p><p>  end process;</p><p><b>  end;</b></p><p>  5.系統(tǒng)的檢驗(yàn)和仿真</p><p>  圖5-1 系統(tǒng)仿真圖1</p><p>

86、  時(shí)鐘周期為10ns;en使能端控制選擇器,置1;in為偽隨機(jī)碼的輸出數(shù)據(jù);rst置0;set置1;out1,out11為ram1的輸出數(shù)據(jù);out2,out22為ram2的輸出數(shù)據(jù);out_0和out_1為選擇后的輸出數(shù)據(jù)。</p><p>  由圖5-1看到當(dāng)control從‘0’跳至‘1’時(shí),ram1開始讀出數(shù)據(jù),ram2開始寫入數(shù)據(jù)。這時(shí)control同時(shí)給選擇器提供讀ram1的信號,所以選擇器的out

87、_0與out_1分別輸出out1與out11的數(shù)據(jù)。</p><p>  我們可以看到,地址產(chǎn)生器給ram1提供了讀地址:線1 addrout讀順序?yàn)?,8,16,24,32,40,48,56,2,10……62;線2 addrxout讀順序?yàn)?,9,17,25,33,41,48,57,3,11……63;地址產(chǎn)生器給ram2提供了寫地址addwout:0,1,2,3,4,5,6,7,8,9……63 。</p&

88、gt;<p>  圖5-2 系統(tǒng)仿真圖2</p><p>  由圖5-2看到當(dāng)control從‘1’跳至‘0’時(shí),ram2開始讀出數(shù)據(jù),ram1開始寫入數(shù)據(jù)。Out2,out22為ram2的輸出數(shù)據(jù),這是control同時(shí)給選擇器提供讀ram2的信號,所以選擇器的out_0與out_1分別輸出out2與out22的數(shù)據(jù)。</p><p>  我們可以看到,地址產(chǎn)生器給ram2

89、提供了讀地址:線1 addrout讀順序?yàn)?,8,16,24,32,40,48,56,2,10……62;線2 addrxout讀順序?yàn)?,9,17,25,33,41,48,57,3,11……63;地址產(chǎn)生器給ram1提供了寫地址addwout:0,1,2,3,4,5,6,7,8,9……63 。</p><p>  通過圖5-3的ram地址表的參照,仿真結(jié)果地址控制完全符合了按行輸入,按列兩位輸出的交織要求。<

90、;/p><p>  圖5-3 Ram地址表</p><p>  上面驗(yàn)證完控制地址的正確性后,我們驗(yàn)證輸入數(shù)據(jù)與輸出數(shù)據(jù)的交織情況。</p><p>  圖5-4 系統(tǒng)仿真圖3</p><p>  我們?nèi)?4個(gè)時(shí)鐘周期(如圖5-4,兩紅色線之間,640ns~1280ns)觀察數(shù)據(jù)的輸入情況。這個(gè)時(shí)候contro置‘l’。ram2寫入數(shù)據(jù)情況如下

91、圖</p><p>  圖5-5 ram2寫入數(shù)據(jù)</p><p>  可以將圖5-5的數(shù)據(jù)寫入情況形象地表達(dá)為:</p><p>  寫入:11 11 11 00 00 01 00 00 11 00 01 01 00 11 11 01 00 01 11 00 10 01 01 10 11 10 11 00 11 01 01 01</p>

92、<p>  如果交織正確我們的數(shù)據(jù)輸出結(jié)果應(yīng)該是</p><p>  輸出:1)10100111100100101001101000000100 </p><p>  2)10100011110111011011111100110001</p><p>  圖5-6 系統(tǒng)仿真圖7</p><p>  我們再觀察下一個(gè)64個(gè)時(shí)鐘周

93、期(如圖5-6,兩紅線之間,1280ns~1920ns)的數(shù)據(jù)讀取情況。由于輸出為兩位,所以只要觀察前32個(gè)時(shí)鐘周期即可。這個(gè)時(shí)候control置‘0’,ram2讀出數(shù)據(jù)如下圖</p><p>  圖5-7 ram2雙線讀出數(shù)據(jù)</p><p>  將圖5-7的數(shù)據(jù)讀出情況形象地表達(dá)為:</p><p>  1)101001111001001010011010000

94、00100</p><p>  2)10100011110111011011111100110001</p><p>  顯然,實(shí)際輸出數(shù)據(jù)與之前所假設(shè)的情況相符合。</p><p>  最后通過下載到DE2,再由示波器檢驗(yàn)數(shù)據(jù)交織情況。</p><p><b>  圖5-8 輸入數(shù)據(jù)</b></p>&l

95、t;p>  5-8圖中的為示波器CH1端接收的輸入數(shù)據(jù)波形,可以形象表示為:</p><p>  11 11 00 00 01 00 00 11 00 01 01 00 11 11 01 00 01 11 00 10 01 01 10 11 10 11 00 11 01 01 01 11</p><p>  選擇兩線輸出的第一線數(shù)據(jù)進(jìn)行假設(shè),若交織無誤,輸出數(shù)據(jù)應(yīng)該為:</p&

96、gt;<p>  10010010100110100000010001001111</p><p>  圖5-9 線1輸出數(shù)據(jù)</p><p>  選擇其中一線輸出數(shù)據(jù)由CH2接收,得出圖5-9的波形,與假設(shè)數(shù)據(jù)對比,完全符合。</p><p>  綜上所述,設(shè)計(jì)達(dá)到了一位按行寫入,兩位按列輸出的交織要求,設(shè)計(jì)成功。</p><p&

97、gt;<b>  6.總結(jié)</b></p><p>  本文討論了交織技術(shù)的原理與應(yīng)用,并基于QUARTUS II的FPGA上實(shí)現(xiàn)了一種按行輸入,按列輸出的交織器設(shè)計(jì)。設(shè)計(jì)思路是通過地址產(chǎn)生器(計(jì)數(shù)器)控制ram的讀寫地址順序,從而達(dá)到交織的效果。設(shè)計(jì)中運(yùn)用了7位的計(jì)數(shù)器產(chǎn)生地址與控制讀寫狀態(tài);數(shù)據(jù)源由偽隨機(jī)碼發(fā)生器提供;采用雙ram達(dá)到交替讀寫,并行處理數(shù)據(jù);最后由4選2選擇器選擇由哪個(gè)r

98、am讀出數(shù)據(jù)。</p><p>  文中的設(shè)計(jì)思路容易理解,易于實(shí)現(xiàn),系統(tǒng)結(jié)構(gòu)精簡,提高了穩(wěn)定性。在QUARTUS II平臺上應(yīng)用VHDL語言編寫,構(gòu)圖和仿真。并在實(shí)驗(yàn)室中通過下載到DE2板上,觀察示波器波形驗(yàn)證結(jié)果正確。</p><p>  但是正由于這種設(shè)計(jì)思路簡單,所以也存在缺點(diǎn)。由于文中數(shù)據(jù)是兩位輸出,而數(shù)據(jù)一位寫入。所以當(dāng)一個(gè)ram通過雙線,經(jīng)過32個(gè)時(shí)鐘周期已經(jīng)把數(shù)據(jù)全部讀出的

99、同時(shí),另外一個(gè)ram經(jīng)過32個(gè)時(shí)鐘周期,才寫入了容量一半的數(shù)據(jù)。所以在仿真結(jié)果圖5.1,圖5.2中可以看出當(dāng)一個(gè)ram的數(shù)據(jù)寫入經(jīng)過64個(gè)時(shí)鐘周期寫滿時(shí),另外一個(gè)ram雙線輸出數(shù)據(jù)讀出了兩遍。這樣就影響了系統(tǒng)的工作效率。當(dāng)然如果用雙線寫入,雙線輸出能解決這個(gè)矛盾。</p><p><b>  【參考文獻(xiàn)】</b></p><p>  [1] 王開軍 姜宇柏編著,面向

100、CPLD/FPGA的VHDL設(shè)計(jì),機(jī)械工業(yè)出版社</p><p>  [2] 羅朝霞 高書莉編著,CPLD/FPGA設(shè)計(jì)及應(yīng)用,人民郵電出版社</p><p>  [3] 周潤景 圖雅 張麗敏編著,基于QUARTUS II的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例,電子工業(yè)出版社 </p><p>  [4] 田耘 徐文波 張延偉等編著,無線通信FPGA設(shè)計(jì),電子工

101、業(yè)出版社</p><p>  [5] 王道憲主編著,CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā),國防工業(yè)出版社</p><p>  [6] 曹志剛 錢亞生編著,現(xiàn)代通信原理,清華大學(xué)出版社</p><p>  [7] (加)Robert K.Dueck編著,張春等譯,數(shù)字系統(tǒng)設(shè)計(jì) : CPLD應(yīng)用與VHDL編程,清華大學(xué)出版社</p><p

102、>  [8] 王輝 殷穎 陳婷編著,MAX+plus Ⅱ和Quartus Ⅱ應(yīng)用與開發(fā)技巧,機(jī)械工業(yè)出版社</p><p>  [9] 張赟隆 交織與解交織的算法研究及FPGA的實(shí)現(xiàn)</p><p>  [10] 陳石平 孫金星 尚揚(yáng) 李全,基于FPGA的幻方交織器的設(shè)計(jì)與實(shí)現(xiàn),2008 - 2007年北京地區(qū)高校研究生學(xué)術(shù)交流會</p><p><

103、;b>  致謝</b></p><p>  本文是在指導(dǎo)老師劉春平副教授的悉心指導(dǎo)下順利完成的。在寫論文期間,老師給我提供了許多寶貴的意見和資料,并且密切關(guān)注我的論文進(jìn)程,不斷督促我的論文的調(diào)整,從而使我能順利的完成畢業(yè)論文的寫作。劉春平副教授深厚的學(xué)術(shù)造詣、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、淵博的知識、實(shí)事求是的精神深深的影響了我,將使我終身收益。再次向劉春平副教授致以最深沉的謝意和敬意。</p>

104、<p>  同時(shí)要感謝文生同學(xué)。從構(gòu)思到設(shè)計(jì),他都為我解答了很多疑難,并且給我很多有益的建議,使我能較完善和順利地完成論文的寫作。</p><p>  The Design and Implementation of Interleaver Based on FPGA</p><p>  【Abstract】Digital signal during transmission

105、is usually leaded to distortion by a variety of interference, in most of practical channels, such as: short-wave, scattering and other channels, will inevitably occurr unexpected errors. It’s beyond the capacity of error

106、-correcting code against these unexpected errors.After adding the interleaver technology in the channel-coding, making unexpected error separate into a random error, receiver can use a shorter code word for error correct

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論