74漢明碼課程設(shè)計(jì)_第1頁(yè)
74漢明碼課程設(shè)計(jì)_第2頁(yè)
74漢明碼課程設(shè)計(jì)_第3頁(yè)
74漢明碼課程設(shè)計(jì)_第4頁(yè)
74漢明碼課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、【摘要】本文主要介紹利用ALTERA公司的Quartus II軟件實(shí)現(xiàn)(7,4)漢明碼的編碼和譯碼的設(shè)計(jì),設(shè)計(jì)共分為三個(gè)模塊:m序列產(chǎn)生與分組模塊、編碼模塊、譯碼模塊,實(shí)現(xiàn)m序列的分組輸出。在QuartusII編輯環(huán)境下用VHDL文本輸入的輸入方法編制程序,經(jīng)編譯正確后進(jìn)行波形仿真,調(diào)試,從而驗(yàn)證設(shè)計(jì)的正確性。關(guān)鍵字:漢明碼,編碼,譯碼,VHDL【Abstract】This article propose a method for Hamming encoder and Hamming decoder which is based on the VHDL language. It introd

2、uces the theory of Hamming encoder and Hamming decoder and the source program based on VHDL, and the way simulated and checked through QuartusII.Throughout the whole design is totally divided into three modules: the m sequence generated and the Packet Module,the encoding module,the decoding Module.K

3、eywords: Hamming, coder,encoder, decoder ,VHDL目錄第1章 問(wèn)題的提出及方案論證31.1 問(wèn)題的提出31.2 方案論證31.2.1 Quartus II和VHDL簡(jiǎn)介31.2.2 軟件設(shè)計(jì)方案介紹6第2章 設(shè)計(jì)方案的實(shí)施82.1 m序列模塊82.1.1 m序列簡(jiǎn)介82.1.2 m序列模塊設(shè)計(jì)流程92.2 (7,4)漢明碼知識(shí)介紹10基本概念10監(jiān)督矩陣11生成矩陣122.2.4 伴隨式(校正子)S122.3 漢明碼編碼模塊13漢明碼編碼原理132.3.2 漢明碼編碼程序設(shè)計(jì)流程142.4 漢明碼譯碼模塊15漢明碼譯碼原理15漢明碼譯碼程序設(shè)計(jì)流程16

4、第3章 軟件調(diào)試及遇到的問(wèn)題193.1 軟件調(diào)試仿真波形圖193.2 軟件調(diào)試過(guò)程中遇到的問(wèn)題20第4章 總結(jié)體會(huì)22附錄:23參考文獻(xiàn)30 第1章 問(wèn)題的提出及方案論證1.1 問(wèn)題的提出在上學(xué)期的通信原理課程中,我們學(xué)習(xí)了線性碼的基本理論知識(shí)。通過(guò)學(xué)習(xí),我們知道線性碼是按照一組線性方程構(gòu)成的。漢明(Hamming)碼又是一種能夠糾正一位錯(cuò)碼效率較高的線性分組碼。本次課程設(shè)計(jì)的任務(wù)就是利用EDA技術(shù)在Quartus II軟件下用VHDL語(yǔ)言實(shí)現(xiàn)(7,4)漢明碼的編譯碼設(shè)計(jì)和仿真。從而在實(shí)踐過(guò)程中,加深對(duì)漢明碼編譯碼原理的理解。1.2 方案論證1.2.1 Quartus II和VHDL簡(jiǎn)介1.

5、Quartus II 軟件簡(jiǎn)介Quartus是Altera公司推出的CPLD/FPGA的開(kāi)發(fā)工具,Quartus提供了完全集成且與電路結(jié)構(gòu)無(wú)關(guān)的開(kāi)發(fā)環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開(kāi)發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于Internet的協(xié)作設(shè)計(jì)。Quartus平臺(tái)與Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供應(yīng)商的開(kāi)發(fā)工具相兼容。改進(jìn)了軟件的LogicLock模塊設(shè)計(jì)功能,增添了FastFit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而

6、且提升了調(diào)試能力。支持MAX7000/MAX3000等乘積項(xiàng)器件 其中,Quartus II軟件5.1支持可編程邏輯和結(jié)構(gòu)化ASIC設(shè)計(jì)達(dá)到最佳效能的新特性包括:l Stratix II GX器件支持:設(shè)計(jì)人員采用Quartus II軟件5.1,現(xiàn)在可以開(kāi)始進(jìn)行Stratix II GX全系列產(chǎn)品設(shè)計(jì)。l PowerPlay技術(shù)包:隨著PowerPlay技術(shù)包的全面推出,Quartus II軟件用戶(hù)現(xiàn)在具備了業(yè)界可編程邏輯功耗分析和優(yōu)化的最高級(jí)工具。與Quartus II軟件5.0相比,5.1版的功耗優(yōu)化特性平均降低了20的動(dòng)態(tài)功耗,而Altera Stratix II器件則達(dá)到了60。此外,

7、5.1版包括了新的功耗優(yōu)化向?qū)?,完善了Quartus II軟件4.1引入的面積和性能優(yōu)化向?qū)В趦?yōu)化Quartus II軟件設(shè)計(jì)應(yīng)用方面,為用戶(hù)提供實(shí)時(shí)、循序漸進(jìn)的幫助。l 漸進(jìn)式設(shè)計(jì)流程:漸進(jìn)式編譯使設(shè)計(jì)人員能夠?qū)⒃O(shè)計(jì)分為物理和邏輯分區(qū),然后進(jìn)行綜合和適配。5.1版引入了漸進(jìn)式編譯自下而上的流程,每個(gè)工程師可以獨(dú)立的開(kāi)發(fā)和優(yōu)化功能,然后輕松將其集成在一個(gè)完整的設(shè)計(jì)中。這種特性完善了年初引入的自上而下基于模塊的流程,使設(shè)計(jì)人員在優(yōu)化其他模塊時(shí),能夠保留專(zhuān)用模塊的性能不變。l 流行的IP模塊:Altera訂購(gòu)包現(xiàn)在含有對(duì)部分流行MegaCore功能的全面許可,幫助設(shè)計(jì)人員縮短設(shè)計(jì)時(shí)間。此外,Qu

8、artus II軟件網(wǎng)絡(luò)版和訂購(gòu)版現(xiàn)在均包括一套嵌入式外設(shè)已經(jīng)同Nios II嵌入式處理器一起,分別進(jìn)行了許可。l 外部邏輯分析儀接口:Quartus II設(shè)計(jì)人員不但可以使用SignalTap II嵌入式邏輯分析儀特性,還可以使用新的邏輯分析儀接口功能,在利用邏輯分析儀進(jìn)行板級(jí)調(diào)試時(shí),能夠掌握內(nèi)部FPGA節(jié)點(diǎn)的情況。2. VHDL語(yǔ)言簡(jiǎn)介VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口,除了含有許

9、多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱(chēng)設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱(chēng)可是部分,及端口)和內(nèi)部(或稱(chēng)不可視部分),既涉及實(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)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)如下幾點(diǎn):(1)與其他的硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力

10、是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。(2)VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。(3)VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。(4)對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門(mén)級(jí)網(wǎng)表。(5)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什

11、么,而進(jìn)行獨(dú)立的設(shè)計(jì)。1.2.2 軟件設(shè)計(jì)方案介紹軟件設(shè)計(jì)方案流程如下圖所示4級(jí)m序列發(fā)生器(7,4)漢明碼編碼器(7,4)漢明碼譯碼器漢明碼4位數(shù)據(jù)位輸出譯碼后的m序列輸出 圖 1-1 軟件設(shè)計(jì)流程圖4級(jí)m序列的最長(zhǎng)周期為15,而(7,4)漢明碼所需的數(shù)據(jù)位是4位,當(dāng)一個(gè)周期的m序列一位一位移出,放入一個(gè)長(zhǎng)度為4的數(shù)組,要分四次組,但還缺少一個(gè)數(shù)據(jù),使得分組沒(méi)有周期性,故在程序設(shè)計(jì)中進(jìn)行第四次分組時(shí),在數(shù)組的最低位補(bǔ)0,使其在一個(gè)m序列周期內(nèi)正好分為4組。這樣循環(huán)移位輸出的m序列滿(mǎn)足周期性,在觀察波形時(shí)易于發(fā)現(xiàn)誤碼的現(xiàn)象,一目了然。分組后的一串?dāng)?shù)據(jù)即數(shù)組就進(jìn)入下一級(jí)作為(7,4)編碼器的信息

12、位進(jìn)行編碼。在編碼過(guò)程中加入監(jiān)督位。這樣,信息位和監(jiān)督位就組成了七位碼。經(jīng)譯碼后便可輸出漢明碼的數(shù)據(jù)位以及譯碼的m序列。第2章 設(shè)計(jì)方案的實(shí)施2.1 m序列模塊2.1.1 m序列簡(jiǎn)介m序列是最長(zhǎng)線性反饋移位寄存器序列的簡(jiǎn)稱(chēng),它是由線性反饋的移存器產(chǎn)生的周期最長(zhǎng)的序列。一般說(shuō)來(lái),一個(gè)n級(jí)反饋移位寄存器可能產(chǎn)生的最大周期等于(2n-1).現(xiàn)在我們引入m序列的本原多項(xiàng)式的概念。若一個(gè)n次多項(xiàng)式f(x)滿(mǎn)足以下條件(1)f(x)為既約的;(2)f(x)可整除(xm+1),m=2n-1;(3)f(x)除不盡(xq+1),qm 。則f(x)為本原多項(xiàng)式。m序列通過(guò)線形反饋移位寄存器產(chǎn)生如圖: 圖 2-1

13、m序列產(chǎn)生原理框圖設(shè)n級(jí)移位寄存器的初始狀態(tài):a-1 ,a-2,a-3,a-4,a-n經(jīng)過(guò)一次移位后,狀態(tài)變?yōu)閍0,a1,a-n+1,經(jīng)過(guò)n次移位以后狀態(tài)變?yōu)閍-n-1,a-n-2,a1,a0。當(dāng)n=4時(shí),產(chǎn)生的m序列的長(zhǎng)度為m=2n-1=15。我們可以取x4+x+1為本原多項(xiàng)式。2.1.2 m序列模塊設(shè)計(jì)流程start m序列流程圖:SET=1PRREG=0001CLKEVENT AND CLK = 1PRREG=異或,移位PRREG=PRREG輸出m序列圖2-2 m序列設(shè)計(jì)流程圖在時(shí)鐘信號(hào)觸發(fā)下,4級(jí)m序列一位一位地移出,因?yàn)閙序列的周期長(zhǎng)度為15,(7,4)漢明碼要求的信息位為4位,周期

14、長(zhǎng)度不能整除4,因而在m序列移出15位后在數(shù)組a中的最后一位添加一個(gè)“0”。這樣一個(gè)周期的m序列就可以周期性的分成4組,易于觀察分組碼是否正確或波形圖是否吻合。2.2 (7,4)漢明碼知識(shí)介紹2.2.1基本概念線性分組碼是一類(lèi)重要的糾錯(cuò)碼,應(yīng)用很廣泛。在(n,k)分組碼中,若監(jiān)督碼元是按線性關(guān)系模2相加而得到的,則稱(chēng)其為線性分組碼。現(xiàn)在以(7,4)分組碼為例來(lái)說(shuō)明線性分組碼的特點(diǎn)。設(shè)其碼字為A=a6,a5,a4,a3,a2,a1,a0,其中前4位是信息碼元,后3位是監(jiān)督碼元,可用下列線性方程組來(lái)描述該分組碼產(chǎn)生監(jiān)督元: (2-1) 顯然,這3個(gè)方程是線性無(wú)關(guān)的。根據(jù)公式2-1可得(7,4)碼的

15、全部碼組,如表1所示。 表 2-1(7,4)漢明碼的全部碼組1111111000011110011100110110010110110101010011100110010000110111100011010101010100101001001011000111110000000000監(jiān)督位a2 a1 a0信息位a6 a5 a4 a3監(jiān)督位a2 a1 a0信息位a6 a5 a4 a3根據(jù)線性碼封閉性,再由表1可知(7,4)碼的最小碼距d0=3,它能糾1個(gè)錯(cuò)或檢測(cè)2個(gè)錯(cuò)。漢明碼是能夠糾正單個(gè)錯(cuò)誤的線性分組碼,其特點(diǎn)是:最小碼距d0=3,碼長(zhǎng)n與監(jiān)督位滿(mǎn)足n=2r-1的關(guān)系,說(shuō)明上述的(7,4)線性

16、分組碼就是一個(gè)漢明碼。由于碼率k/n = (n - r) /n =1 r/n,故當(dāng)n很大和r很小時(shí),碼率接近1。【1】可見(jiàn),漢明碼是一種高效碼。2.2.2監(jiān)督矩陣式(2-1)所示(7,4)漢明碼的3個(gè)監(jiān)督方程改寫(xiě)后可用矩陣形式表示為簡(jiǎn)記為 HAT=0T 或 AHT=0 H稱(chēng)為監(jiān)督矩陣,只要監(jiān)督矩陣H給定,編碼時(shí)信息位和監(jiān)督位之間的關(guān)系就完全確定了。H的行數(shù)就是監(jiān)督矩陣的數(shù)目,等于監(jiān)督數(shù)目r。H序列可分為2部分:HAT=0T,可以用來(lái)作為判斷接收碼字A是否出錯(cuò)的依據(jù)。2.2.3生成矩陣把監(jiān)督方程補(bǔ)充完整并改寫(xiě)為矩陣形式上式表示,在信息位給定后,用信息位的行矩陣乘矩陣Q就產(chǎn)生出監(jiān)督位。Q的左邊加上

17、1個(gè)k k階單位方陣,就構(gòu)成1個(gè)生成矩陣G 。而且可由G和信息組產(chǎn)生對(duì)應(yīng)的全部碼組。在得出的碼組中,信息位的位置不變,監(jiān)督位附加于其后。其中,Q PT。2.2.4 伴隨式(校正子)S設(shè)發(fā)送碼組A= an-1,an-2,a1,a0 ,在傳輸過(guò)程中可能發(fā)生誤碼。接收碼組B= bn-1,bn-2,b1,b0 ,則發(fā)送碼組和接收碼組之差為錯(cuò)誤圖樣E: B A = E (模2)令S = BHT,稱(chēng)為伴隨式或校正子。S = BHT =(A + E)HT = EHT,用來(lái)指示錯(cuò)碼的位置。(7,4)漢明碼的伴隨式與錯(cuò)誤圖樣的對(duì)應(yīng)關(guān)系如表2所示。漢明碼S與E的對(duì)應(yīng)關(guān)系表 2-2 漢明碼S與E的對(duì)應(yīng)關(guān)系S1 S2

18、 S3錯(cuò)碼位置S1 S2 S3錯(cuò)碼位置001a0101a4010a1110a5100a2111a6011a3000無(wú)錯(cuò)碼2.3 漢明碼編碼模塊2.3.1漢明碼編碼原理漢明碼是在原編碼的基礎(chǔ)上附加一部分代碼,使其滿(mǎn)足糾錯(cuò)碼的條件。它屬于線性分組碼,由于漢明碼的抗干擾能力較強(qiáng),至今仍是應(yīng)用比較廣泛的一類(lèi)碼。在(n,k)漢明碼中,(n-k)個(gè)附加的監(jiān)督碼元是由信息碼元的線性運(yùn)算產(chǎn)生的。碼長(zhǎng)為n,信息碼元長(zhǎng)度為k,2k個(gè)碼組構(gòu)成n維線性空間中的一個(gè)k維子空間,編碼的實(shí)質(zhì)就是要在n維空間中,找出一組長(zhǎng)為n的k個(gè)線性無(wú)關(guān)的矢量g1g k-1 ,使得每個(gè)碼組a都可以表示為k個(gè)矢量的線性組合,即a=an-1

19、an-2 a0= ak-1 g0+ ak-2 g1+ a0g k-1 其中,a i0,1,i=0,1, ,k-1。將上式寫(xiě)成矩陣形式得由此,an-1 an-2 a0是帶編碼信息的信息組,G是一個(gè)k*n階矩陣,G稱(chēng)為(n,k)漢明碼的生成矩陣。當(dāng)G確定以后,編碼的問(wèn)題也就解決了。 根據(jù)監(jiān)督碼元是有信息碼元的線性運(yùn)算產(chǎn)生的關(guān)系可知,監(jiān)督碼(a0,a1,a2)滿(mǎn)足以下關(guān)系式:即可算出三位監(jiān)督位,再與信息位結(jié)合,可得到(7,4)漢明碼2.3.2 漢明碼編碼程序設(shè)計(jì)流程 漢明碼編碼設(shè)計(jì)流程圖圖2-3 編碼設(shè)計(jì)流程圖輸入信息碼a3a2a1a0,輸出(7,4)漢明碼b6b5b4b3b2b1b0。首先,輸入信

20、息碼a3a2a1a0,即使用以下語(yǔ)句:port(a:in std_logic_vector(3 downto 0);就可以得到監(jiān)督位與信息碼之間的對(duì)應(yīng)關(guān)系,使用異或運(yùn)算,即:b(2)=a(3) xor a(2) xor a(1);b(1)=a(3) xor a(2) xor a(0);b(0)=n或2 r=k+r+1 (2-1)設(shè)(7,4)漢明碼中,n=7,k=4,為了糾錯(cuò)一位碼,由表達(dá)式2-1可知,要求監(jiān)督位數(shù)r=3。用a6a5 a0表示要進(jìn)行譯碼的碼元,用S2、S1 和S0表示監(jiān)督關(guān)系式的校正子,則S0、S1和S2的值與錯(cuò)碼對(duì)應(yīng)關(guān)系可以規(guī)定如表2-3所示,由表可知,當(dāng)一位錯(cuò)碼的位置在a2、

21、a4、a5或a6時(shí),校正子為1;否則為0,可推知,a2,a4,a5或a6 4個(gè)碼元構(gòu)成偶數(shù)監(jiān)督關(guān)系S2=a6a5a4a2 (2-2)同理可得S1=a6a5a3a1 (2-3)S0=a6a4a3a0 (2-4)接收到每個(gè)碼組之后,先按照式2-22-4計(jì)算出S2,S1,S0,再按照表2-3判斷錯(cuò)碼情況。例如接收碼組為0000011,可計(jì)算出S1=0,S2=1,S3=1。由于S1S2S3=011,可知a3位出錯(cuò),只需對(duì)其取反即可表 2-3 (7,4)碼校正子與錯(cuò)誤圖樣的對(duì)應(yīng)關(guān)系序號(hào)錯(cuò)誤碼位ESe6 e5 e4 e3 e2 e1 e0S0S1S201234567無(wú)錯(cuò)碼a0a1a2a3a4a5a6000

22、000000000010000010000010000010000010000010000010000000000010101000111011101112.4.2漢明碼譯碼程序設(shè)計(jì)流程漢明碼譯碼設(shè)計(jì)流程圖圖 2-4 譯碼設(shè)計(jì)流程圖首先,輸入7位漢明碼a6a5a4a3a2a1a0,用以下語(yǔ)句來(lái)實(shí)現(xiàn):port(a:in std_logic_vector(6 downto 0);然后,根據(jù)這7位碼a6a5a4a3a2a1a0,計(jì)算校正子s2s1s0的值,可知校正子S與(7,4)漢明碼各位之間的關(guān)系,即:ss(2):=a(6) xor a(5) xor a(3) xor a(2);ss(1):=a(

23、6) xor a(4) xor a(3) xor a(1);ss(0):=a(5) xor a(4) xor a(3) xor a(0);第三,要判定校正子與0的關(guān)系,使用if語(yǔ)句,若等于0,則表示沒(méi)有錯(cuò)誤;若不為0,則表示其中有一位出錯(cuò)。根據(jù)表4-1,可以得到校正子S與錯(cuò)誤圖樣E之間的關(guān)系,才用case語(yǔ)句,編寫(xiě)程序如下:校正子 錯(cuò)碼糾正 錯(cuò)碼位置when 001 =bb(0):= not bb(0);nbb(1):= not bb(1);nbb(2):=not bb(2);nbb(3):=not bb(3);nbb(4):=not bb(4);nbb(5):=not bb(5);nbb(6

24、):=not bb(6);n=110;上述程序中,bb是變量,存放的是輸入7位漢明碼a6a5a4a3a2a1a0,當(dāng)S=001,時(shí),表示a0出錯(cuò),則只需將這一位的值取反,然后再送給輸出。a1、a2、a3、a4、a5、a6出錯(cuò)的原理也是一樣的。最后,將沒(méi)有錯(cuò)誤的(7,4)漢明碼或已經(jīng)糾正1個(gè)錯(cuò)誤的(7,4)漢明碼輸出,這樣譯碼程序就完成了。為了方便閱讀波形,加入輸出了校正子S和錯(cuò)誤位數(shù)N。若第0位(a0)出錯(cuò),則N輸出0,依次類(lèi)推;若無(wú)錯(cuò),則輸出7。第3章 軟件調(diào)試及遇到的問(wèn)題3.1 軟件調(diào)試仿真波形圖1 . m序列仿真波形圖圖3-1 m序列仿真波形圖2. 漢明碼編碼仿真波形圖圖3-2 漢明碼編

25、碼仿真波形圖3. 漢明碼譯碼仿真波形圖圖3-3 漢明碼譯碼仿真波形圖4. 軟件整體調(diào)試仿真波形圖圖3-4 軟件整體測(cè)試仿真波形圖3.2 軟件調(diào)試過(guò)程中遇到的問(wèn)題在軟件調(diào)試過(guò)程中主要遇到了以下問(wèn)題:(1)毛刺干擾問(wèn)題:相鄰編碼組之間存在毛刺干擾信號(hào),可能是由于賦值語(yǔ)句的依次賦值順延以及過(guò)程中的運(yùn)算時(shí)延造成的。(2)延時(shí)問(wèn)題:在m序列模塊、編碼模塊中,存在一些延時(shí)現(xiàn)象,造成部分?jǐn)?shù)據(jù)的丟失,為了盡可能減小延時(shí),在編寫(xiě)程序時(shí),盡量采用并行程序;在定義數(shù)據(jù)類(lèi)型時(shí),要選擇變量,盡可能少地用信號(hào)類(lèi)型,以減少程序運(yùn)行時(shí)間;在傳遞參數(shù)時(shí),盡可能用元件例化語(yǔ)句實(shí)現(xiàn)。(3)數(shù)據(jù)丟失以及時(shí)序配合問(wèn)題:m序列分組時(shí),要

26、保證數(shù)據(jù)不丟失以及時(shí)序配合,用計(jì)數(shù)器配合時(shí)鐘來(lái)實(shí)現(xiàn),當(dāng)時(shí)鐘上升沿到來(lái)時(shí),計(jì)數(shù)器才進(jìn)行相應(yīng)動(dòng)作,才將數(shù)據(jù)放入數(shù)組。(4)VHDL語(yǔ)法問(wèn)題:在寫(xiě)整個(gè)程序的元件例化語(yǔ)句時(shí),元件例化的參量的定義應(yīng)與元件例化說(shuō)明語(yǔ)句一致,注意變量與信號(hào)賦值方式的不同,實(shí)體定義的名字應(yīng)該與文件名一致。在調(diào)試過(guò)程中也還遇到不少其他的問(wèn)題,比如在生成總的電路圖的過(guò)程中,如果沒(méi)有新建工程,就有指示有錯(cuò)誤。并且新建工程名必須與程序?qū)嶓w名保持一直,否則會(huì)報(bào)錯(cuò):沒(méi)有定義實(shí)體。第4章 總結(jié)體會(huì) 為期近兩周的通信原理課程設(shè)計(jì)結(jié)束了,在這次課程設(shè)計(jì)中,也遇到了不少問(wèn)題。由于對(duì)Quartus II 軟件和 VHDL語(yǔ)言不太熟悉,所以開(kāi)始一段

27、時(shí)間的主要精力就花在了這方面,通過(guò)借閱有關(guān)這方面的書(shū)籍和實(shí)際操作來(lái)熟悉他們。后期的主要工作便是程序設(shè)計(jì)調(diào)試,雖然問(wèn)題不斷,但在和同學(xué)的共同探討下,最終基本完成了漢明碼的編譯碼的設(shè)計(jì)。 通過(guò)這次課程設(shè)計(jì),我加深了對(duì)漢明碼編譯碼過(guò)程的了解。夯實(shí)了理論基礎(chǔ)知識(shí),也提高了實(shí)際運(yùn)用方面的能力。在這個(gè)過(guò)程中,每當(dāng)一個(gè)個(gè)小問(wèn)題被解決時(shí),對(duì)自己來(lái)說(shuō)都是令人欣喜的,每一點(diǎn)小小的進(jìn)步,都是對(duì)自己的肯定。這次課程設(shè)計(jì)是一次難忘的經(jīng)歷,讓我從中學(xué)到了很多東西,將對(duì)我以后的學(xué)習(xí)工作有所幫助。附錄:1. 總電路圖2. 程序清單 m序列:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;US

28、E IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY m4 ISPORT(CLK,CLR:IN STD_LOGIC; DATAOUT1:out STD_LOGIC; DATAOUT16:OUT STD_LOGIC_vector(3 downto 0); END m4 ;ARCHITECTURE ART OF m4 ISsignal s1,s2:std_logic_vector(3 downto 0);signal s5:std_logic;begin process(clr,clk) is begin if clr=1 then s1=0001; elsif(clk=1 a

29、nd clkevent) then s1=(s2(0) xor s2(3)&s2(3 downto 1); end if; s2=s1; s5=s2(0); end process;process (clk,s5)isbegin if(clkevent and clk=1)thenDATAOUT1=s5; -m序列輸出end if;end process;process(clk,s5,clr)-實(shí)現(xiàn)分組以及數(shù)組補(bǔ)“0”variable temp:integer range 0 to 3;variable temp1:integer range 0 to 7;variable a:std_log

30、ic_vector(3 downto 0);beginif clr=1 then dataout16=0000; elsif rising_edge(clk) then if temp1a(3):=s5;temp:=1;when 1=a(2):=s5;temp:=2;when 2=a(1):=s5;temp:=3;when 3=a(0):=s5;temp:=0;temp1:=temp1+1;dataout16a(3):=s5;temp:=1;when 1=a(2):=s5;temp:=2;when 2=a(1):=s5;a(0):=0;temp:=0;temp1:=0;dataout16null;end case;end if;end if;end process;END ART; 編碼:library ieee;use ieee.std_logic_1164.all;entity hamenc is port(datain:in

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論