基于FPGA的漢明碼譯碼器的設(shè)計_第1頁
基于FPGA的漢明碼譯碼器的設(shè)計_第2頁
基于FPGA的漢明碼譯碼器的設(shè)計_第3頁
基于FPGA的漢明碼譯碼器的設(shè)計_第4頁
基于FPGA的漢明碼譯碼器的設(shè)計_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、大連交通大學(xué)信息工程學(xué)院畢業(yè)設(shè)計(論文)題目基于FPGA的漢明碼譯碼器的設(shè)計學(xué)生姓名蘆斌專業(yè)班級信息工程09-2指導(dǎo)教師徐佳職稱講師所在單位教研室主任石桂名完成日期2013年6月28日Keywords:HammingDecoderFPGAVeriloglanguageQuartusII摘要在數(shù)字通訊的系統(tǒng)中,數(shù)字信號在傳輸?shù)倪^程中容易受到干擾,造成碼元波形破壞,使得接收端接收到的信號發(fā)生錯誤的判決。為了提高信息傳輸?shù)臏?zhǔn)確性,我們引進(jìn)了差錯控制技術(shù)。該項技術(shù)應(yīng)采用了可靠而且有效的信道編碼方法來實現(xiàn)。漢明碼就是一種可以糾正差錯的編碼。漢明碼編譯碼器是目前最為常用的數(shù)字通信內(nèi)部器件之一,它被廣泛地應(yīng)

2、用在網(wǎng)絡(luò)傳輸、存儲器校驗糾錯以及數(shù)據(jù)安全中。本課題是基于FPGA的漢明碼譯碼器的設(shè)計,使用Verilog語言來實現(xiàn)漢明碼譯碼器的設(shè)計。通過理解漢明碼譯碼原理的基礎(chǔ)上,設(shè)計出了漢明碼的譯碼器,并且寫出了譯碼源程序,還通過QuartusII軟件實現(xiàn)仿真。本次設(shè)計首先介紹了EDA的硬件描述語言Verilog和仿真調(diào)試軟件QuartusII,然后介紹了FPGA的發(fā)展歷程和產(chǎn)品特性,借此選出合適的FPGA的芯片,最后介紹了漢明碼。通過了解漢明碼的理論知識來掌握漢明碼的譯碼原理,然后經(jīng)過理解和分析設(shè)計出實現(xiàn)漢明碼譯碼的算法,并且使用Verilog語言在QuartusII軟件里完成了基于FPGA的漢明碼譯碼

3、器的編程和仿真實現(xiàn)。同時根據(jù)需要,選擇了合適的FPGA的芯片和外圍元器件,設(shè)計出外圍硬件的原理圖,將理論和實踐結(jié)合起來。關(guān)鍵詞:漢明碼譯碼器FPGAVerilog語言QuartusIIABSTRACTIndigitalcommunicationsystems,digitalsignalduringtransmissioniseasytobedisturbed,resultingindestructionofthesymbolwaveform,sothatthereceiverreceivesthesignalerroroccurredjudgment.Inordertoimprovetheac

4、curacyofinformation,weintroduceerrorcontroltechniques.Thetechnologyusesareliableandeffectivemethodofchannelcodingtoachieve.Hammingcodeisakindofcodewhichisabletocorrecterrors.Hammingcodecodesisonekindofthemostcommonlyuseddevicesindigitalcommunications,whichiswidelyusedinnetworktransmission,memorypari

5、tyerrorcorrectionanddatasecurity.ThedesignofHammingcodecodecinthisproject,thispassagerealizeddecodeofhammingwithlanguageofverilog.Basedonthetheoryofintroductionofdecodeofhamming,thispassagedesigneddecoderofhamming.Thesourceprogramwadwrittenbyveriloglanguage.ThesoftofQuartusIIsimulatedandtestedthepro

6、gram.Itrequiresbasictheoreticalknowledgeofhammingcode,andlearnhowtousethesimulationanddebuggingsoftwareQuartusIIaswellasthehardwaredescriptionlanguageVerilog,andunderstandthevariousfeaturesofHammingcodestomasterthepeincipleofcodinganddecoding,thentounderstandandanalyze,designitsalgorithmimplementati

7、on,andcompletetheVeriloglanguageprogrammingandsimulationonFPGA-basedsoftwareQuartusII;inthemeantime,accordingtoitsrequirement,selectaFPGAchipandexternalcomponents,finallycreatethehardwareentity,combinethetheorywithpractice.目錄TOC o 1-5 h z1前言1選題背景1本課題的研究意義2本課題研究目標(biāo)及主要任務(wù)2本課題可行性分析3 HYPERLINK l bookmark1

8、0 o Current Document 2EDA的基礎(chǔ)知識與集成運(yùn)行環(huán)境4EDA概念4QuartusII的軟件介紹5Verilog的簡介8Verilog的主要功能10Verilog的基礎(chǔ)語法10Verilog的語言優(yōu)勢13 HYPERLINK l bookmark12 o Current Document FPGA的簡介14 HYPERLINK l bookmark14 o Current Document FPGA的發(fā)展歷程14FPGA的產(chǎn)品特性及發(fā)展現(xiàn)狀14FPGA的發(fā)展趨勢15 HYPERLINK l bookmark18 o Current Document FPGA的硬件介紹17

9、HYPERLINK l bookmark20 o Current Document 漢明碼譯碼系統(tǒng)模塊設(shè)計與實現(xiàn)19漢明碼的原理19漢明碼的定義19漢明碼的監(jiān)督矩陣H21漢明碼的生成矩陣G224.1.4漢明碼的校正子(伴隨式)S22漢明碼的譯碼器設(shè)計24譯碼器的流程圖設(shè)計25譯碼器的代碼設(shè)計25譯碼器的仿真,調(diào)試與分析274.3基于FPGA的漢明碼譯碼器硬件設(shè)計30結(jié)論32謝辭33參考文獻(xiàn)34附錄35大連交通大學(xué)信息工程學(xué)院2013屆本科生畢業(yè)設(shè)計(論文)大連交通大學(xué)信息工程學(xué)院2013屆本科生畢業(yè)設(shè)計(論文) 1.1選題的背景隨著現(xiàn)代通信技術(shù)的迅速發(fā)展,其應(yīng)用的領(lǐng)域已滲入到社會生活的各個方面

10、,用戶對通信系統(tǒng)的質(zhì)量和對通信系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃耘c有效性的要求也越來越高,通信系統(tǒng)需要具備更高的可靠性、高效率、低復(fù)雜性來適應(yīng)發(fā)展的需求4。通信的根本任務(wù)是傳遞信息,其中準(zhǔn)確地傳輸數(shù)字信號是數(shù)字通信的一個重要的環(huán)節(jié)。在實際應(yīng)用中,傳輸數(shù)據(jù)的無線信道是非常復(fù)雜的。在傳輸數(shù)字信號時,由于信道的時變性、衰減性、帶寬資源有限性以及干擾大等特點,再有加性噪聲的影響,這就導(dǎo)致接收端接收到的信息和發(fā)送端實際發(fā)送的信息之間存在一定的差錯,勢必會造成接收端接收到的信號存在一定的誤差,造成一定程度的失真。這時就需求我們?nèi)ふ乙环N辦法,能夠在確保通信系統(tǒng)的可靠性與高效性的基礎(chǔ)上來減少數(shù)據(jù)傳輸過程中的誤比特率。信道

11、編碼就是減少數(shù)字信號誤比特率的主要手段之一。圖1-1通訊系統(tǒng)的組成在實際的應(yīng)用中,衡量一個通信系統(tǒng)的優(yōu)劣,其中的有效性和可靠性是兩個最重要的指標(biāo),同時它們也是通信技術(shù)設(shè)計的重要組成部分。然而,從信息傳輸角度來考慮,既要提高通信系統(tǒng)的有效性(即傳輸速率),又要提高通信系統(tǒng)的可靠性,這樣往往是相互矛盾的。為了提高可靠性,可以在二進(jìn)制信息序列中以受控的方式引入一些冗余碼元(即監(jiān)督碼元),使他們滿足一定的約束關(guān)系,以期達(dá)到檢錯和糾錯的目的。但是,由于添加了冗余碼元(監(jiān)督碼元),導(dǎo)致傳輸信息的速率下降;同時,為了提高效率,信號以簡潔、快速的方式傳輸,這樣在遭受到干擾和噪聲時,其自我保護(hù)能力大大下降,從而

12、降低了傳輸?shù)目煽啃?。于是,在實際通信的應(yīng)用中,采取比較折中的方式,可在確??煽啃灾笜?biāo)達(dá)到系統(tǒng)要求的前提下,盡可能的提高傳輸速率1;抑或在滿足一定有效性的指標(biāo)下,盡量提高傳輸?shù)目煽啃浴Mㄐ偶夹g(shù)設(shè)計一直致力于提高信息傳輸?shù)挠行院涂煽啃裕渲斜WC通信的可靠性是現(xiàn)代數(shù)字通信系統(tǒng)需要解決的首要問題。信道編碼技術(shù)正是用來改善通信可靠性問題的主要技術(shù)手段之一。在實際應(yīng)用中,一個通信系統(tǒng)一般包含信道編碼和信道譯碼兩個模塊2。信道編碼的主要目的是為了降低誤比特率,提高數(shù)字通信的可靠性,其方法是在二進(jìn)制信息序列中添加一些冗余碼元(監(jiān)督碼元),與信息碼元一起組成被傳輸?shù)拇a字。這些冗余碼元是以受控的方式引入,它們與

13、信息碼元之間有著相互制約的關(guān)系。在信道中傳輸該碼字,如果錯誤了發(fā)生,信息碼元和冗余碼元之間相互制約的關(guān)系就將會被破壞1。那么,在接收端對接收到的信息序列按照既定的規(guī)則校驗碼字各碼元間的約束關(guān)系,從而達(dá)到檢錯、糾錯的目的。通過信道編碼這種方法,能夠有效的在接收端克服信號在無線信道中傳輸時受到噪聲和干擾產(chǎn)生的影響。信道譯碼也就是信道編碼的逆過程,即接收端將接收信息序列按照既定約束關(guān)系,同時去掉比特流在傳播的過程中混入的噪聲干擾和添加的冗余,恢復(fù)為比較完整、可靠的信息的過程。信道編碼涉及到的內(nèi)容也十分廣泛,前身糾錯編碼(FEC)、線性分組碼(漢明碼、循環(huán)碼)、理德-所羅門碼(RS碼)、FIRE碼、交

14、織碼、卷積碼、TCM編碼、Turbo碼等都是信道編碼的研究范疇11。漢明碼是信道編碼比較好的選擇。漢明碼是漢明于1950年提出的,是具有糾正一位錯誤能力的線性分組碼。漢明碼是在原編碼的基礎(chǔ)上附加一部分代碼,使其能滿足糾錯碼的條件6。它的突出特點是:編譯碼電路簡單,易于硬件的實現(xiàn);用軟件實現(xiàn)編譯碼算法時,軟件的效率高;而且性能也比較好。由于漢明碼的抗干擾能力較強(qiáng),至今仍是應(yīng)用比較廣泛的一類碼。本課題的研究意義本次課程設(shè)計的任務(wù)就是基于FPGA,利用EDA的技術(shù)在QuartusII軟件下用Verilog語言來實現(xiàn)漢明碼譯碼器的設(shè)計和仿真。漢明碼是一個在原有數(shù)據(jù)中插入若干校驗碼來進(jìn)行錯誤檢查和糾正的

15、編碼技術(shù),在原編碼的基礎(chǔ)上附加了一部分代碼,使其滿足糾錯碼的條件。漢明碼的編碼與譯碼是通信領(lǐng)域的一個重要研究內(nèi)容。與一般的編碼相比漢明碼具有比較高效率,同時也是分組碼的典型代表,是深入研究其他分組碼的基礎(chǔ),也是研究其他非分組碼(如循環(huán)碼)的基礎(chǔ)。EDA(ElectronicDesignAutomation)技術(shù)是隨著集成電路和計算機(jī)技術(shù)飛速發(fā)展而應(yīng)運(yùn)而生的一種高級、快速、有效的電子設(shè)計自動化工具17。EDA的主要特征是使用硬件描述語言Verilog來完成設(shè)計,這在電子設(shè)計領(lǐng)域里受到廣泛的接受。EDA技術(shù)的發(fā)展和推廣應(yīng)用,對高校電子技術(shù)課程的教學(xué)思想、教學(xué)方法和教學(xué)目標(biāo)產(chǎn)生了深遠(yuǎn)的影響,是電子、

16、信息、通信、電氣等電類相關(guān)專業(yè)的基礎(chǔ)學(xué)科。本課題利用EDA來實現(xiàn),與實際聯(lián)系很大,對將來從事實際工作和相關(guān)研究具有很大幫助。同時,選擇FPGA的芯片和外圍元器件,設(shè)計出硬件的原理圖,將理論和實踐結(jié)合起來,對以后的實際工作提供很多的經(jīng)驗。本課題研究目標(biāo)及主要任務(wù)(1)研究目標(biāo):本論文是基于FPGA的漢明碼譯碼器的設(shè)計。主要研究漢明碼編、譯碼的原理和方法,基于FPGA使用EDA開發(fā)軟件QuartusII上實現(xiàn)漢明碼譯碼器的設(shè)計。通過對漢明碼的學(xué)習(xí),使用硬件描述語言Verilog設(shè)計出了漢明碼的譯碼器,并且寫出了源程序,最后通過QuartusII軟件的仿真實現(xiàn)。滿足電路簡單,成本低,開發(fā)周期短,執(zhí)行

17、速度高,升級方便等特點。(2)主要任務(wù):本次設(shè)計要求學(xué)會使用仿真調(diào)試軟件QuartusII和硬件描述語言Verilog,還要求學(xué)習(xí)漢明碼的理論知識,了解漢明碼的各種特點,掌握漢明碼的譯碼原理。通過分析設(shè)計出實現(xiàn)譯碼的算法,并且使用Verilog語言在QuartusII軟件里完成了基于FPGA的漢明碼譯碼器的編程和仿真實現(xiàn)。同時根據(jù)需要,選擇合適的FPGA的芯片和外圍元器件,設(shè)計外圍硬件的原理圖,將理論和實踐結(jié)合起來。本課題可行性的分析本課題以理論研究和實驗分析相結(jié)合的方式進(jìn)行。課題首先在理論上是可行的,漢明碼是1950年由漢明首先構(gòu)造的,目前漢明碼在中小型計算機(jī)中普遍采用,其技術(shù)已經(jīng)成熟。圖1

18、-2譯碼流程圖在實際操作方面,我們可以借鑒科學(xué)工作者已得出的結(jié)論,另外其跨專業(yè)的技術(shù)不多,所以也很少給設(shè)計帶來不便。在實際設(shè)計方面,我們可以利用學(xué)校的圖書資料和網(wǎng)上資源,利用EDA開發(fā)軟件QuartusII,使用硬件描述語言Verilog來對漢明碼譯碼器進(jìn)行設(shè)計,觀察其可行性,并對結(jié)果進(jìn)行分析。2EDA的基礎(chǔ)知識與集成運(yùn)行環(huán)境2.1EDA概念EDA(ElectronicDesignAutomation)即電子設(shè)計自動化,是以微電子技術(shù)為物理層面,現(xiàn)代電子設(shè)計為靈魂,計算機(jī)軟件技術(shù)為手段,最終形成集成電子系統(tǒng)或?qū)S眉呻娐沸酒珹SIC(ApplicationSpecificIntegratedC

19、ircuit)為目的的一門新興技術(shù)口7】。在20世紀(jì)90年代初從計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助制造(CAM)、計算機(jī)輔助測試(CAT)和計算機(jī)輔助工程(CAE)的概念發(fā)展而來的?,F(xiàn)在對EDA的概念或范圍用得很寬,包括在機(jī)械、電子、通信、航空航天、化工礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。利用EDA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量的工作可以通過計算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出IC版圖或PCB版圖的整個過程都在計算機(jī)上自動處理完成。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門中廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計、

20、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。本次畢業(yè)設(shè)計實現(xiàn)的核心技術(shù)即為EDA相關(guān)技術(shù)。本文所指的EDA技術(shù),主要針對電子電路設(shè)計、PCB設(shè)計和IC設(shè)計。EDA技術(shù)是現(xiàn)代電子設(shè)計技術(shù)的核心。EDA技術(shù)就是依靠功能強(qiáng)大的電子計算機(jī),在EDA工具軟件平臺上,對以硬件描述語言(如Verilog)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化和仿真,直至下載到可編程邏輯器件CPLD/FPGA或?qū)S眉呻娐稟SIC芯片中,進(jìn)行特定芯片的適配編譯、邏輯映射和編程下載等工作,實現(xiàn)既定的電子電路設(shè)計功能。EDA代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本設(shè)計方法是

21、:設(shè)計人員按照“自頂向下”的設(shè)計方法,對整個系統(tǒng)進(jìn)行方案設(shè)計和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實現(xiàn),然后采用硬件描述語言(HDL)完成系統(tǒng)行為級的設(shè)計,最后通過綜合器和適配器來生成最終的目標(biāo)器件,這樣的設(shè)計方法被稱為高層次的電子設(shè)計方法7。EDA技術(shù)的優(yōu)勢:(1)采用硬件描述語言,便于復(fù)雜的系統(tǒng)設(shè)計(2)擁有強(qiáng)大的系統(tǒng)建模和電路仿真功能(3)擁有自主知識產(chǎn)權(quán)(4)開發(fā)技術(shù)的標(biāo)準(zhǔn)化和規(guī)范化(5)全方位地利用計算機(jī)的自動設(shè)計、仿真和測試(6)對設(shè)計者的硬件知識和經(jīng)驗要求低。EDA設(shè)計的實現(xiàn)目標(biāo):(1)印刷電路板設(shè)計;(2)集成電路(IC或ASIC)設(shè)計;(3)可編程邏輯

22、器件(FPGA/CPLD)設(shè)計;(4)混合電路設(shè)計。EDA設(shè)計的常用軟件和設(shè)計工具層出不窮,目前進(jìn)入我國并具有廣泛影響的EDA軟件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim,ISE等等。這些工具都有較強(qiáng)的功能,一般可用于幾個方面,例如很多軟件都可以進(jìn)行電路設(shè)計與仿真,同進(jìn)還可以進(jìn)行PCB自動布局布線,還可以輸出多種網(wǎng)表文件,與第三方軟件接口。EDA工具在EDA技術(shù)應(yīng)用中占據(jù)極其重要的位置,EDA的核心是利用計算機(jī)完成電子設(shè)

23、計全過程自動化,因此,基于計算機(jī)環(huán)境的EDA軟件的支持是必不可少的OEDA工具大致可以分為以下5個模塊:設(shè)計輸入編輯器;HDL綜合器;仿真器;適配器(或布局布線器);下載器。當(dāng)然這種分類不是絕對的,現(xiàn)在往往把各EDA工具集成在一起,女口MAX+PLUSII、QuartusII等。2.2QuartusII的軟件介紹QuartusII是Altera公司提供的FPGA/CPLD集成開發(fā)軟件,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusI在21世初被推出,是Altera老一代FPGA/CPLD集成開發(fā)軟件MAX+plusII的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在QuartusI

24、I上可以完成設(shè)計輸入、布新布局(適配)、HDL綜合、仿真和選擇以及硬件測試等流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進(jìn)行設(shè)計輸入、處理和器件編程。QuartusII提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的需求,也是單片機(jī)可編程系統(tǒng)(SoPC)設(shè)計的綜合環(huán)境和SoPC開發(fā)的基本設(shè)計工具,并為AlteraDSP開發(fā)包運(yùn)行系統(tǒng)模型的設(shè)計提供了集成綜合環(huán)境。QuartusI設(shè)計完全支持VHDL、Verilog的設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。QuartusI可利用第三方的綜合工具(如LeonardoSpectrum、SynplifyPro、FPGACom

25、plierII),并能直接調(diào)用這些工具。同時,QuartusI具備仿真功能,同時支持第三方的仿真工具(如ModelSin)。此外,QuartusI與MATLAB和DSPBuilder結(jié)合,可用于進(jìn)行基于FPAG的DSP系統(tǒng)開發(fā)。用QuartusII軟件進(jìn)行設(shè)計開發(fā)的流程圖2-1所示:圖2-1QuartusII軟件設(shè)計開發(fā)流程圖其開發(fā)步驟為:(1)設(shè)計輸入:設(shè)計輸入就是設(shè)計者將所設(shè)計的電路或系統(tǒng)以開發(fā)軟件要求的某種形式表達(dá)出來,并送入計算機(jī)的過程。通常有原理圖輸入、HDL文本輸入、EDIF網(wǎng)表輸入、波形輸入等幾種輸入方式。(2)編譯:先根據(jù)設(shè)計要求設(shè)定編譯方式和編譯策略,如器件的選擇、邏輯綜合方

26、式的選擇等;然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計項目進(jìn)行網(wǎng)表提取、邏輯綜合、器件適配,并產(chǎn)生報告文件、延時信息文件及編程文件,供分析、仿真和編程使用。(3)仿真與定時分析:仿真和定時分析均屬于設(shè)計校驗,其作用是測試設(shè)計的邏輯功能和延時特性。仿真包括功能仿真和時序仿真。定時分析器可通過三種不同的分析模式分別對傳播延時、時序邏輯性能和建立或保持時間來進(jìn)行分析。(4)編程與驗證:用得到的編程文件通過編程電纜配置PLD,加入實際激勵,進(jìn)行在線測試。在測試過程中,會對包括語法檢查和設(shè)計規(guī)則檢查、邏輯綜合與化簡、邏輯適配、布局與布線等工作進(jìn)行檢查,如果出現(xiàn)錯誤,則需重新回到設(shè)計輸入階段,改正錯誤或調(diào)整電路后重新

27、測試。QuartusII軟件的工作環(huán)境如圖2-2所示:菜單欄工具按鈕圖2-3QuartusII工具欄Q尅0圖2-2QuartusII管理器窗口表2-1工具欄各按鈕的基本功能口建立一個新的圖形、文本、波形或是符號文件。色打開個文件,啟動相應(yīng)的編輯器。保存當(dāng)前文件。甦打印當(dāng)前文件或窗口內(nèi)容。圖將選中的內(nèi)容剪切到剪貼板。遷將選中的內(nèi)容復(fù)制到剪貼板。m粘貼剪貼板的內(nèi)容到當(dāng)前文件中。iM撤銷上次的操作。檢單擊此按鈕后再單擊窗口的任何部位,將顯示相關(guān)幫助文檔。必打開層次顯示窗口或?qū)⑵鋷е燎芭_。陵打開平面圖編輯器或?qū)⑵鋷е燎芭_。馬打開編譯器窗口或?qū)⑵鋷е燎芭_。因打開仿真器窗口或?qū)⑵鋷е燎芭_。助打開時序分析器

28、窗口或?qū)⑵鋷е燎芭_。妙打開編程器窗口或?qū)⑵鋷е燎芭_。圍指定工程名。圍將工程名設(shè)置為和當(dāng)前文件名一樣。蠹打開當(dāng)前工程的頂層設(shè)計文件或?qū)⑵鋷е燎芭_。囿保存所有打開的編譯器輸入文件,并檢查當(dāng)前工程的語法和其他基本錯誤。蹩:保存工程內(nèi)所有打開的設(shè)計文件,并啟動編譯器。:保存工程內(nèi)所有打開的仿真器輸入文件,并啟動仿真器。31EJi11*Erb亡也&xeLoui-vnlxinCycloneII、StratixII系列、StratixGX系列等。支持IP核,包含了LPM/MegaFunction宏功能模塊庫,用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。此外,QuartusII通過和DSP

29、Builder工具與Matlab和Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。QuartusII對第三方EDA工具的支持:對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。Altera的QuartusII可編程邏輯軟件屬于第四代PLD開發(fā)平臺。該平臺支持一個工作組環(huán)境下的設(shè)計要求,其中包括支持基于Internet的協(xié)作設(shè)計。Quartus平臺與CadenceExemplarLogic、MentorGraphics、Syn

30、opsys和Synplicity等EDA供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的LogicLock模塊設(shè)計功能,增添了FastFit編譯選項,推進(jìn)了網(wǎng)絡(luò)編輯性能,并且提升了調(diào)試能力。QuartusII設(shè)計軟件提供完整的多平臺設(shè)計環(huán)境,可以很輕松地滿足特定設(shè)計的需要。它是可編程片上系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境,擁有FPGA和CPLD設(shè)計的所有階段的解決方案。與其它EDA軟件相比較QuartusII軟件的特點主要包括:(1)可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計實體文件。芯片(電路)平面布局連線編輯。LogicLock增量設(shè)計方法,使用戶可建

31、立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊。(4)功能強(qiáng)大的邏輯綜合工具。(5)完備的電路功能仿真與時序邏輯分析。(6)定時和時序分析與關(guān)鍵路徑延時分析。(7)使用SignalTapII邏輯分析工具進(jìn)行嵌入式的邏輯分析。(8)支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件。(9)使用組合編譯方式可一次完成整體設(shè)計流程。(10)自動定位編譯的錯誤。(11)高效的編程與驗證工具。(12)可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。(13)能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。2.3Verilog的簡介Qua

32、rtusII設(shè)計軟件經(jīng)常使用VerilogHDL和VHDL這兩種硬件描述語言來進(jìn)行設(shè)計,同時VerilogHDL和VHDL也是目前世界上最流行的兩種硬件描述語言(HDL:HardwareDescriptionLanguage),均為IEEE標(biāo)準(zhǔn),被廣泛地應(yīng)用于基于可編程邏輯器件的項目開發(fā)。二者都是在20世紀(jì)80年代中期開發(fā)出來的,前者由GatewayDesignAutomation公司(該公司于1989年被Cadence公司收購)開發(fā),后者由美國軍方所研發(fā)。VerilogHDL是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首創(chuàng)的,最初只是設(shè)

33、計了一個仿真與驗證工具,之后又陸續(xù)開發(fā)了相關(guān)的故障模擬與時序分析工具。1985年Moorby推出它的第三個商用仿真器Verilog-XL,獲得了巨大的成功,從而使得VerilogHDL迅速得到推廣和應(yīng)用。1989年CADENCE公司收購了GDA公司,使得VerilogHDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開發(fā)表了VerilogHDL,并成立LVI組織以促進(jìn)VerilogHDL成為IEEE標(biāo)準(zhǔn),即IEEEStandard1364-1995。VerilogHDL在語言描述風(fēng)格上傳承了上一代硬件描述語言的解釋風(fēng)格,所以描述的器件在編譯和綜合時適應(yīng)能力強(qiáng),系統(tǒng)可以自動優(yōu)化。雖然對

34、應(yīng)語言的解讀性能較弱,但是仿真以后的糾錯能力強(qiáng)。VerilogHDL在模型上注重結(jié)構(gòu)和數(shù)據(jù)的解釋,所以得到EDA生產(chǎn)廠商的喜愛,VerilogHDL成為了一種開放的商業(yè)EDA語言。VerilogHDL既是一種行為描述的語言也是一種結(jié)構(gòu)描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設(shè)計電路的VerilogHDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應(yīng)的模型類型共有以下五種:系統(tǒng)級(system):用高級語言結(jié)構(gòu)實現(xiàn)設(shè)計模塊的外部性能的模型。算法級(algorithm):用高級語言結(jié)構(gòu)實現(xiàn)設(shè)計算法的模型。RTL級(Reg

35、isterTransferLevel):描述數(shù)據(jù)在寄存器之間流動和如何處理這些數(shù)據(jù)的模型。門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。開關(guān)級(switch-level):描述器件中三極管和儲存節(jié)點以及它們之間連接的模型。VerilogHDL常用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯示進(jìn)行時序建模14。VerilogHDL語言具有下述描述能力:設(shè)計的行為特性、設(shè)計的數(shù)據(jù)流特性、設(shè)計的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計驗證方面的時延和波形產(chǎn)生機(jī)制。

36、所有這些都使用同一種建模語言。此外,VerilogHDL語言提供了編程語言接口,通過該接口可以在模擬、驗證期間從設(shè)計外部訪問設(shè)計,包括模擬的具體控制和運(yùn)行。VerilogHDL語言不僅定義了語法,而且對每個語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進(jìn)行驗證。語言從C編程語言中繼承了多種操作符和結(jié)構(gòu)。VerilogHDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,VerilogHDL語言的核心子集非常易于學(xué)習(xí)和使用,這對大多大連交通大學(xué)信息工程學(xué)院2013屆本科生畢業(yè)設(shè)計(論文)大連交通大學(xué)信息工程學(xué)院2013屆本科生畢業(yè)設(shè)計(論文)

37、數(shù)建模應(yīng)用來說已經(jīng)足夠了。Verilog的主要功能作為一種硬件描述語言,VerilogHDL可以直接描述硬件結(jié)構(gòu),也可以通過描述系統(tǒng)行為來實現(xiàn)建模。VerilogHDL的主要特點和功能有以下幾點:(I)描述基本邏輯門,如and、or等基本邏輯門都內(nèi)置在語言中,可以直接調(diào)用。(2)描述基本開關(guān)模型,如nmos、pmos和coms等基本開關(guān)都可以直接調(diào)用。(3)允許用戶定義基元(UDP),這種方式靈活有效,用戶定義的基元既可以是組合邏輯也可以是時序邏輯。(4)VerilogHDL中有兩種數(shù)據(jù)類型,線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲元件。(5)

38、能夠描述層次設(shè)計,可使用模塊實例結(jié)構(gòu)描述任何層次。(6)設(shè)計的規(guī)??梢允侨我獾?,語言不對設(shè)計的規(guī)模(大?。┦┘尤魏蜗拗?。(7)VerilogHDL語言的描述能力可以通過使用編程接口(PLI)進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問VerilogHDL模塊內(nèi)信息,允許設(shè)計者與模擬器交互的例程集合。(8)設(shè)計能夠在多個層次上加以描述,從開關(guān)級、門級、寄存器傳送級(RTL)到算法級,報括進(jìn)程和隊列級。(9)能夠使用內(nèi)置開關(guān)級原語,在開關(guān)級對設(shè)計進(jìn)行完整建模。(10)同一語言可用于生成模擬激勵和指定測試的驗證的約束條件。(II)VerilogHDL不僅能夠在RTL上進(jìn)行設(shè)計描述,而且能夠在體系結(jié)構(gòu)級和算法

39、級的行為上進(jìn)行設(shè)計描述。(12)能夠使用門和模塊實例化語句在結(jié)構(gòu)級上進(jìn)行結(jié)構(gòu)描述。(13)VerilogHDL具有混合方式建模的能力,即設(shè)計中每個模塊均可以在不同設(shè)計層次上建模。(14)VerilogHDL具有內(nèi)置算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。(15)用延遲表達(dá)式或事件表達(dá)式來明確地控制過程的啟動時間。(16)通過命名的事件來觸發(fā)其它過程里的激活行為或停止行為。(17)可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu),并且提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。Verilog的基礎(chǔ)語法Verilog的設(shè)計初衷是成為一種基本語法與C語言相近的硬件描述語言。這是因為C語言在Verilog設(shè)計之初

40、,已經(jīng)在許多領(lǐng)域中得到廣泛應(yīng)用,C語言的許多語言要素已經(jīng)被許多人所習(xí)慣。一種與C語言相似的硬件描述語言,可以讓電路設(shè)計人員更容易學(xué)習(xí)和接受。不過,Verilog與C語言還是存在許多差別。另外,作為一種與普通計算機(jī)編程語言不同的硬件描述語言,它還具有一些獨(dú)特的語言要素,例如向量形式的線網(wǎng)和寄存器、過程中的非阻塞賦值等??偟膩碚f,具備C語言的設(shè)計人員將能夠很快掌握。Verilog的基本設(shè)計單元是“模塊(block)。一個模塊是由兩部分組成:一部分描述接口信息,另一部分描述邏輯功能,即定義輸入是如何影響輸出的。根據(jù)常見的VerilogHDL程序可以總結(jié)出以下特征:VerilogHDL程序是由模塊所構(gòu)

41、成的。每個模塊的內(nèi)容都是嵌在module和endmodule這兩個語句之間的,每個模塊實現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。每個模塊首先要進(jìn)行端口定義,并說明輸入(input)和輸出(output)然后對模塊的功能進(jìn)行邏輯描述。VerilogHDL程序的書寫格式自由,一行可以寫幾個語句,一個語句也可以分多行寫。除了endmodule語句外,每個語句的最后必須要加分號??梢杂?和/對VerilogHDI程序的任何部分作注釋。由此我們可以得出VerilogHDL語言的基礎(chǔ)語法有以下幾點網(wǎng):首先,VerilogHDL程序是由模塊構(gòu)成的。VerilogHDL結(jié)構(gòu)完全嵌在module和endmodu

42、le聲明語句之間,每個模塊實現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。每個Verilog程序包括4個主要部分:端口定義,I/O說明,信號類型聲明和功能描述。在編寫VerilogHDL程序時還需要常量,參數(shù)(Parameter)型和變量。在程序運(yùn)行過程中,其值不能被改變的量稱為常量。參數(shù)型數(shù)據(jù)是一種常數(shù)型的數(shù)據(jù),用參數(shù)來定義常量,即用參數(shù)來定義一個標(biāo)識符代表一個常量,稱為符號常量。采用標(biāo)識符來代表一個常量,這樣可提高程序的可讀性和可維護(hù)性。參數(shù)型常數(shù)經(jīng)常用于定義延遲時間和變量寬度。變量是在程序運(yùn)行過程中其值是可以改變的量,在VerilogHDL中變量的數(shù)據(jù)類型有很多種,我們這里主要介紹三種:wir

43、e型變量、reg型變量和memory型變量。wire型表示結(jié)構(gòu)(例如門)之間的物理連接wire型的變量不能儲存值,而且它必須受到驅(qū)動器或連續(xù)賦值語句assign的驅(qū)動。如果沒有驅(qū)動器連接到wire型變量上,則該變量就是高阻態(tài)。wire型數(shù)據(jù)常用來表示以assign關(guān)鍵字指定的組合邏輯信號。Verilog程序模塊中輸入輸出信號類型缺省時將自動定義為wire型。wire型信號可以用作任何方程式的輸入,也可以用作“assign”語句或?qū)嵗妮敵觥eg型是寄存器數(shù)據(jù)類型的關(guān)鍵字。寄存器是數(shù)據(jù)儲存單元的抽象。通過賦值語句可以改變寄存器的值,其作用相當(dāng)于改變觸發(fā)器存儲器的值。reg型數(shù)據(jù)常用來表示a

44、lways模塊內(nèi)的指定信號,常代表觸發(fā)器。reg類型數(shù)據(jù)的缺省初始值為不定值X。memory型是通過擴(kuò)展reg型數(shù)據(jù)的地址范圍來生成的。由于VerilogHDL通過對reg型變量建立數(shù)組來對存儲器建模,可以描述RAM型存儲器,ROM存儲器和reg文件。數(shù)組中的每一個單元通過一個數(shù)組索引進(jìn)行尋址。但在Verilog語言中沒有多維數(shù)組存在,所以就需要memory型來生成。其次,在編寫VerilogHDL程序是還需要各種的運(yùn)算符。有算術(shù)運(yùn)算符(+,X,%等),位運(yùn)算符(&,等),邏輯運(yùn)算符(&,|等),關(guān)系運(yùn)算符(,等),等式運(yùn)算符(=,!=等),移位運(yùn)算符(,等),位拼接運(yùn)算符,縮減運(yùn)算符等14。

45、在程序編寫的公式中如果用到多個運(yùn)算符,這時就需要按照每種運(yùn)算符的優(yōu)先級順序來進(jìn)行運(yùn)算。每種運(yùn)算符的優(yōu)先級別各不相同,優(yōu)先級從上到下依次遞減,最上面具有最高的優(yōu)先級。其中邏輯非運(yùn)算符的優(yōu)先級最高,邏輯或運(yùn)算符的優(yōu)先級最低。下表為各運(yùn)算符的優(yōu)先級別:優(yōu)先級別!高X/%+!&AA1|&Xr|低圖2-5各運(yùn)算符的優(yōu)先級別最后,在編寫VerilogHDL程序是還需要各種的語句。(1)賦值語句有兩種,一種是非阻塞賦值(non_blocking)(如bo=IQ.KT_SdraEIOIOIOQIOVCCG1GNDDKLK1IOLOT?EF1E1nCSO.IODATADnCOKFIGVCCA.PLL1CLKJL

46、WCLKpCL-K1LVDWCLKiiGKDA.PL-LlGNDG_PLL1nCEOnCE居ELQKtSELlKLKASDO.LOPLL_OUTp.IOPLL.OUTfilODP:LKC-IOVCC01GNDIO.VKEJMlVCC03ENDDPCLK4LOIOIOIOIO.TLET1E3TDILOCLK2LTOSCLEJpCLK3LWSCLKJnIOIDOIUSTCKsiJTASUSCONF_IX)NEIOLOIODPCLK5LOVCCWGNDIOAT1EF2E3多可用的I/O腳102個,可用RAM總共有24576Bits,最大可用LE個數(shù)1728。足夠滿足系統(tǒng)設(shè)計的需要。EP1C3T144

47、C6芯片擁有144個引腳,其中板載了1Mbit串行配置芯片EPCS1,支持AS和JTAG兩種配置方式;有5V/1.5A的DC電源供電,內(nèi)部產(chǎn)生核壓1.5V、I/O電壓3.3V;PLL電源電路進(jìn)行濾波處理,更加穩(wěn)定可靠;板載25MHz有源晶振,預(yù)留1個未焊接晶振接口;還有4個獨(dú)立按鍵、2個復(fù)用LED、1個串口、1個SD卡接口、1個256色VGA接口、1個64MBit(4*1M*256Bit)SDRAM、8位撥碼開關(guān)、1個復(fù)位按鍵、4位數(shù)碼管,僅使用3個I/O口控制,由兩個74HC595芯片實現(xiàn)、2個20PIN的擴(kuò)展接口,供用戶任意發(fā)揮、1個FPGA重配置按鍵等芯片的內(nèi)置信息。綜上所述,EP1C3

48、T144C6芯片能夠滿足實驗設(shè)計要求。4漢明碼譯碼系統(tǒng)模塊設(shè)計與實現(xiàn)4.1漢明碼的原理在(n,k)分組碼中,若監(jiān)督元是按線性關(guān)系相加而得到的,則稱其為線性分組碼。線性分組碼是一類重要的糾錯碼,它應(yīng)用很廣泛。而且在計算機(jī)系統(tǒng)中,信息均按字節(jié)或字組成,故一般采用線性分組碼。線性分組碼是對信源輸出的序列,按每組長胡立進(jìn)行分組,則在二進(jìn)制情況下共有個不同的組合,再按某一種規(guī)則,將每一組久位增加了r位校驗位(r=n-k,町是含有碼元的個數(shù)),使之在瀘個碼字集合構(gòu)成的分組碼成為具有一定糾錯或檢錯能力的碼字。線性分組碼具有很多的優(yōu)點。首先,線性碼比非線性碼更容易編碼和譯碼。其次,線性碼傳送信息更快,而且碼的

49、所有碼字均可由它的基底表示,線性碼的最小距離和它的最小重量相等1。線性分組碼一般可用符號(n,k)表示,線性分組碼(n,k)中許用碼字(組)為個。定義線性分組碼的加法為模二加法,乘法為二進(jìn)制乘法。線性分組碼(n,k)其中的久是每組的信息元數(shù)目,:是碼組的總位數(shù),又稱為碼組的長度(碼長)。y為碼組的監(jiān)督元數(shù)目。在(n,k)線性分組碼中,常用編碼效率R衡量碼的有效性,它定義為信息位在碼字中所占的比重:二=宀匸。其中R越大,表明碼的冗余度越小。兩個碼組對應(yīng)位上數(shù)字不同的個數(shù)稱為碼組的距離,簡稱碼距,也叫漢明距離。對于(n,k)線性碼來說,個碼字中所有可能碼字對之間的漢明距離中最小的距離稱為該碼的最小

50、漢明距離,用dmin表示,這是衡量這種編碼檢錯和糾錯能力的重要參數(shù)。4.1.1漢明碼的定義設(shè)原代碼的碼長為久比特,附加糾錯編碼部分為比特,則合成后的糾錯碼為L-=T比特,如下圖4-1所示。圖4-1漢明碼碼字組成如果這種糾錯碼的糾錯能力為糾正1個差錯,則應(yīng)滿足如下基本條件:(4.1)當(dāng)上式取等號時則稱漢明碼(HammingCode)。干擾不僅使原代碼的每一位G比特)可能出錯,而且附加糾錯位(讓匕特)也可能出錯,故“一個差錯”的情況共有v-T種,加上“正?!睜顟B(tài)共有種狀態(tài),而r比特的附加糾錯位要能分辨這-L-】種狀態(tài)。通過對(7,4)漢明碼為例來說明漢明碼的特點。設(shè)其碼字為A=aaaaaaa,其中

51、前4位是信息元,后3位是監(jiān)督元,可用下列6543210線性方程組來描述該分組碼,產(chǎn)生監(jiān)督元:a=aaa2654va=aaa1653a=aaa0643表4-14)漢明碼全部碼字(4.2)序號字碼序號字碼元33碼a4息巧信元Oa督幻監(jiān)a2元33碼a4息巧信元0a督al2監(jiān)日oOOOOOOO8OOO111111OOO11O91OO1OO12O1OO1O1O1O1O1O1O311OOO11111O11OO4OO1OO1112OO111OO51O1O1O1311O11O1O6O11O11O41O111OO17111OOOO11111111由上表可以看出(7,4)碼的最小碼距二:=3,碼長n與監(jiān)督位r滿足

52、關(guān)系式2r-1n,它能糾出1個錯位或2個錯位。由此可以推出漢明碼的特點是:最小碼距:g:,.=7=2;碼長:匸=2-1;信息位:久=-一匕;校驗位(監(jiān)督碼位):::二丁二二-二,且:35;糾錯能力:t=1;碼率:kn=(n一r);n=1-r;n由于碼率kn=(n-r)fn=1-rn,故當(dāng)n很大和r很小時,碼率接近1,可見:漢明碼是一種高效碼。漢明碼是一個錯誤校驗碼碼集,由Bell實驗室的R.W.Hamming發(fā)明,因此定名為漢明碼。當(dāng)計算機(jī)存儲或移動數(shù)據(jù)時,可能會產(chǎn)生數(shù)據(jù)位錯誤,這時可以利用漢明碼來檢測并糾錯。漢明碼作為第一個設(shè)計用來糾錯的線性分組碼,可以檢出兩位錯,并糾正一位錯的糾錯碼。二進(jìn)

53、制漢明碼n和k服從以下規(guī)律:(4.3)(n,k)=(2m一1,2m一1-m)式中匕二T:-久,當(dāng)匕=3,4,5時,有(7,4),(15,11),(31,26)漢明碼。漢明碼是完備碼,它滿足下式:z1(n=1+n=1+=)m=-n2(4.4)同時漢明碼也是一種多重(復(fù)式)奇偶檢錯系統(tǒng),可以將信息用邏輯形式編碼,以便能夠檢錯和糾錯。用在漢明碼中的全部傳輸碼字是由原來的信息和附加的奇偶監(jiān)督位所組成的。每一個這種奇偶位被編在傳輸碼字的特定比特位置上。實現(xiàn)合適時,這個系統(tǒng)對于錯誤的數(shù)位無論是原有信息位中的,還是附加監(jiān)督位中的都能把它分離出來。在原編碼的基礎(chǔ)上附加一部分代碼,使其滿足糾錯碼的條件,受其抗干

54、擾能力較強(qiáng),所以至今仍是應(yīng)用比較廣泛的一類碼5-6。漢明碼也利用了奇偶校驗位的概念,通過在數(shù)據(jù)位后面增加一些比特,可以驗證數(shù)據(jù)的有效性。利用一個以上的校驗位,漢明碼不僅可以驗證數(shù)據(jù)是否有效,還能在數(shù)據(jù)出錯的情況下指明錯誤的位置。在接受端通過糾錯譯碼自動糾正傳輸中的差錯來實現(xiàn)碼糾錯功能,稱為前向糾錯FEC。在數(shù)據(jù)鏈路中存在大量噪音時,F(xiàn)EC可以增加數(shù)據(jù)吞吐量。通過在傳輸碼列中加入冗余位(也稱糾錯位)可以實現(xiàn)前向糾錯。但這種方法比簡單重傳協(xié)議的成本要高。漢明碼利用奇偶塊機(jī)制也降低了前向糾錯的成本。4.1.2漢明碼的監(jiān)督矩陣H編譯漢明碼還需要漢明碼的監(jiān)督矩陣H(paritycheckmatrix)。

55、只要監(jiān)督矩陣H給定,編碼時監(jiān)督位和信息位的關(guān)系就完全確定了。通過式(4.1)所示的(7,4)漢明碼的監(jiān)督方程可以改寫為8:門總應(yīng)5巳應(yīng)1=0(4.5)相當(dāng)于”程1叫。門4丄巳Op;?;?0(4.6)(4.7)(4.8)=0用矩陣的形式可以將上式表示為:%liioiotr%01101010aa0.1011001.0.3-0并簡記為:HAt二0t或HtA二0其中,H成為監(jiān)督矩陣,只要H給定,信息位和監(jiān)督位的關(guān)系也就隨即確定下來了。H的行數(shù)就是監(jiān)督矩陣的數(shù)目,等于監(jiān)督數(shù)目r。H的每一行中的“1”的位置表示相應(yīng)大連交通大學(xué)信息工程學(xué)院2013屆本科生畢業(yè)設(shè)計(論文)大連交通大學(xué)信息工程學(xué)院2013屆本

56、科生畢業(yè)設(shè)計(論文) 碼元之間存在的監(jiān)督關(guān)系。H序列可分為兩部分1110:101101:011011:00其中P為rxk階矩陣,I為rxr階單位陣r因為HTA=0,所以可以用這個關(guān)系式來若HTA=0,則說明碼字A有錯,反之則說冃4.1.3漢明碼的生成矩陣G。由代數(shù)理論可知,H監(jiān)督矩陣的的各行應(yīng)該無關(guān)的監(jiān)督關(guān)系式,從而也得不到r個獨(dú)立的式,則其各行一定是線性無關(guān)的。若將式(4.2)的監(jiān)督方程補(bǔ)充完整并寫成即:A=Gaaaa=GM4365100011010011000101010001011的形式:矩陣可以寫成PI的矩陣形PIr4.9)判斷接收碼字A是否出錯的依據(jù)。A無錯。言性無關(guān)的,否則將得不到

57、r個線性若(4.1a0)(4.10)4.11)G成為生成矩陣,也可分為兩部分,即根據(jù)式4.4知:由G和信息碼M就能產(chǎn)生所有碼字。生成矩陣4.12)上式中Q=111101010114.13)Q為kxr階矩陣,I為k階單位陣。k4.1.4漢明碼的校正子(伴隨式)S設(shè)一發(fā)送碼組A=a,a,.a,a。n-1n210在傳輸?shù)倪^程中受到干擾可能發(fā)生誤碼,接受碼組與發(fā)送碼組A不一定相同。設(shè)接受碼組為B=b,b,,b,b,收發(fā)碼組之差n-1n-210定義為錯誤圖樣E。三=三一土(4.14)(4.15),當(dāng)b二a當(dāng)ii(4.16),當(dāng)b豐aii其中,E=e,e,.,e,e,n-1n-210廠0ei1因此,若e=

58、0,表示該接收碼元無錯;若e=1,則表示該接收碼元有錯。式(4.14)ii可以改寫為三二上一三(4.17)若三二二,即接收碼組無錯,則三=丄-三二上,將B帶入公式HtA二0仍成立。即有HtA=HtB=0。當(dāng)接收碼組有錯時,E弄0將B帶入公式HTA=0則不定成立。需要校正子S。令S二BHt,稱為校正子(伴隨式)。S=BHt二(A+E)Ht二EHt(4.18)可見:校正子S與錯誤圖樣E之間由確定的線性變換關(guān)系。校正子S與SSS有著210一一對應(yīng)的關(guān)系,SSS的關(guān)系j=Xh&A,7210,則S能代表錯碼位置11。(7,4)漢明碼的校正子和錯誤圖樣之間的對應(yīng)關(guān)系如表4-2所示。表4-24)漢明碼S與E

59、對應(yīng)關(guān)系(糾正譯碼表)錯誤碼位錯誤圖樣E校正子S錯誤位置Ceeeeeee6543210SSS210b000000010010b100000100101b200001001002b300010000113b400100001014b501000001105b610000001116無錯00000000007由表4-2可知:當(dāng)S=001時,則出錯在0位,即b出錯;0當(dāng)S=010時,則出錯在1位,即b出錯;1當(dāng)S=100時,則出錯在2位,即b出錯;2當(dāng)S=011時,則出錯在3位,即b出錯;3當(dāng)S=101時,則出錯在4位,即b出錯;4當(dāng)S=110時,則出錯在5位,即b出錯;5當(dāng)S=lll時,則出錯在6

60、位,即b出錯;6當(dāng)S=000時,則無錯。4.2漢明碼的譯碼器設(shè)計(7,4)漢明碼的譯碼器的功能就是把輸入的7位漢明碼B=bbbbbbb譯為465432l0位信息碼aaaa,并且根據(jù)伴隨矩陣S從而糾正編碼中可能出現(xiàn)的1位錯碼。32l0根據(jù)監(jiān)督矩陣H和生成矩陣G的關(guān)系,即:PI,其中I是3x3的單位陣,rIQkr,其中I是4x4的單位陣,(4.19)kP二Qt生成矩陣G=l000lll0l00ll000l0l0l000l0ll1110由式P二Qt,得P=11011011監(jiān)督矩陣1110:H=1101:1011:100010=pir001由式(4.10)知S二BHT二(A+E)Ht=EHt,其中E=

溫馨提示

  • 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

提交評論