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

下載本文檔

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

文檔簡介

1、【摘要】本文主要介紹利用ALTERA公司的Quartus II軟件實(shí)現(xiàn)(7,4)漢明碼的編碼和譯碼的設(shè)計,設(shè)計共分為三個模塊:m序列產(chǎn)生與分組模塊、編碼模塊、譯碼模塊,實(shí)現(xiàn)m序列的分組輸出。在QuartusII編輯環(huán)境下用VHDL文本輸入的輸入方法編制程序,經(jīng)編譯正確后進(jìn)行波形仿真,調(diào)試,從而驗證設(shè)計的正確性。關(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章 問題的提出及方案論證31.1 問題的提出31.2 方案論證31.2.1 Quartus II和VHDL簡介31.2.2 軟件設(shè)計方案介紹6第2章 設(shè)計方案的實(shí)施82.1 m序列模塊82.1.1 m序列簡介82.1.2 m序列模塊設(shè)計流程92.2 (7,4)漢明碼知識介紹10基本概念10監(jiān)督矩陣11生成矩陣122.2.4 伴隨式(校正子)S122.3 漢明碼編碼模塊13漢明碼編碼原理132.3.2 漢明碼編碼程序設(shè)計流程142.4 漢明碼譯碼模塊15漢明碼譯碼原理15漢明碼譯碼程序設(shè)計流程16

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

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

6、且提升了調(diào)試能力。支持MAX7000/MAX3000等乘積項器件 其中,Quartus II軟件5.1支持可編程邏輯和結(jié)構(gòu)化ASIC設(shè)計達(dá)到最佳效能的新特性包括:l Stratix II GX器件支持:設(shè)計人員采用Quartus II軟件5.1,現(xiàn)在可以開始進(jìn)行Stratix II GX全系列產(chǎn)品設(shè)計。l PowerPlay技術(shù)包:隨著PowerPlay技術(shù)包的全面推出,Quartus II軟件用戶現(xiàn)在具備了業(yè)界可編程邏輯功耗分析和優(yōu)化的最高級工具。與Quartus II軟件5.0相比,5.1版的功耗優(yōu)化特性平均降低了20的動態(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è)計應(yīng)用方面,為用戶提供實(shí)時、循序漸進(jìn)的幫助。l 漸進(jìn)式設(shè)計流程:漸進(jìn)式編譯使設(shè)計人員能夠?qū)⒃O(shè)計分為物理和邏輯分區(qū),然后進(jìn)行綜合和適配。5.1版引入了漸進(jìn)式編譯自下而上的流程,每個工程師可以獨(dú)立的開發(fā)和優(yōu)化功能,然后輕松將其集成在一個完整的設(shè)計中。這種特性完善了年初引入的自上而下基于模塊的流程,使設(shè)計人員在優(yōu)化其他模塊時,能夠保留專用模塊的性能不變。l 流行的IP模塊:Altera訂購包現(xiàn)在含有對部分流行MegaCore功能的全面許可,幫助設(shè)計人員縮短設(shè)計時間。此外,Qu

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

9、多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項工程設(shè)計,或稱設(shè)計實(shí)體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實(shí)體。這種將設(shè)計實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計的優(yōu)點(diǎn)如下幾點(diǎn):(1)與其他的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力

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

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

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

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

14、長度不能整除4,因而在m序列移出15位后在數(shù)組a中的最后一位添加一個“0”。這樣一個周期的m序列就可以周期性的分成4組,易于觀察分組碼是否正確或波形圖是否吻合。2.2 (7,4)漢明碼知識介紹2.2.1基本概念線性分組碼是一類重要的糾錯碼,應(yīng)用很廣泛。在(n,k)分組碼中,若監(jiān)督碼元是按線性關(guān)系模2相加而得到的,則稱其為線性分組碼?,F(xiàn)在以(7,4)分組碼為例來說明線性分組碼的特點(diǎn)。設(shè)其碼字為A=a6,a5,a4,a3,a2,a1,a0,其中前4位是信息碼元,后3位是監(jiān)督碼元,可用下列線性方程組來描述該分組碼產(chǎn)生監(jiān)督元: (2-1) 顯然,這3個方程是線性無關(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個錯或檢測2個錯。漢明碼是能夠糾正單個錯誤的線性分組碼,其特點(diǎn)是:最小碼距d0=3,碼長n與監(jiān)督位滿足n=2r-1的關(guān)系,說明上述的(7,4)線性

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

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

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

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

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

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

22、000000000010000010000010000010000010000010000010000000000010101000111011101112.4.2漢明碼譯碼程序設(shè)計流程漢明碼譯碼設(shè)計流程圖圖 2-4 譯碼設(shè)計流程圖首先,輸入7位漢明碼a6a5a4a3a2a1a0,用以下語句來實(shí)現(xiàn):port(a:in std_logic_vector(6 downto 0);然后,根據(jù)這7位碼a6a5a4a3a2a1a0,計算校正子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語句,若等于0,則表示沒有錯誤;若不為0,則表示其中有一位出錯。根據(jù)表4-1,可以得到校正子S與錯誤圖樣E之間的關(guān)系,才用case語句,編寫程序如下:校正子 錯碼糾正 錯碼位置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,時,表示a0出錯,則只需將這一位的值取反,然后再送給輸出。a1、a2、a3、a4、a5、a6出錯的原理也是一樣的。最后,將沒有錯誤的(7,4)漢明碼或已經(jīng)糾正1個錯誤的(7,4)漢明碼輸出,這樣譯碼程序就完成了。為了方便閱讀波形,加入輸出了校正子S和錯誤位數(shù)N。若第0位(a0)出錯,則N輸出0,依次類推;若無錯,則輸出7。第3章 軟件調(diào)試及遇到的問題3.1 軟件調(diào)試仿真波形圖1 . m序列仿真波形圖圖3-1 m序列仿真波形圖2. 漢明碼編碼仿真波形圖圖3-2 漢明碼編

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

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

27、時間的主要精力就花在了這方面,通過借閱有關(guān)這方面的書籍和實(shí)際操作來熟悉他們。后期的主要工作便是程序設(shè)計調(diào)試,雖然問題不斷,但在和同學(xué)的共同探討下,最終基本完成了漢明碼的編譯碼的設(shè)計。 通過這次課程設(shè)計,我加深了對漢明碼編譯碼過程的了解。夯實(shí)了理論基礎(chǔ)知識,也提高了實(shí)際運(yùn)用方面的能力。在這個過程中,每當(dāng)一個個小問題被解決時,對自己來說都是令人欣喜的,每一點(diǎn)小小的進(jìn)步,都是對自己的肯定。這次課程設(shè)計是一次難忘的經(jīng)歷,讓我從中學(xué)到了很多東西,將對我以后的學(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論