基于VHDL語(yǔ)言的漢明碼編碼/解碼電路設(shè)計(jì)

摘要

摘?要:文章提出了一種基于VHDL語(yǔ)言的串行、并行轉(zhuǎn)換及漢明碼的編碼和譯碼的實(shí)現(xiàn)方法秸歧。在介紹漢明碼編碼和譯碼原理的基礎(chǔ)上,給出了基于VHDL實(shí)現(xiàn)的源程序,通過(guò)Quartus Ⅱ軟件進(jìn)行設(shè)計(jì)并利用FPGA開(kāi)發(fā)板進(jìn)行驗(yàn)證。

關(guān)鍵詞:VHDL 粘姜;漢明碼形入;串/并轉(zhuǎn)換

Absrtact: This paper presents a method of serial and parallel conversion based on VHDL and the implementation of Hamming code coding and decoding. Based on the introduction of the coding and decoding principle of Hamming code, the source program based on VHDL is given, which is designed by Quartus II software and verified by FPGA development board.

Keywords: VHDL; Hamming code; Serial; Parallel?

1.?目錄


2. 正文

2.1 系統(tǒng)設(shè)計(jì)

2.1.1 設(shè)計(jì)要求

已知(7,4)漢明碼的編碼和譯碼電路原理圖如下,完成相應(yīng)編碼及譯碼模塊的開(kāi)發(fā)藕赞,實(shí)現(xiàn)串行比特流的編碼和譯碼(輸入和輸出都是串行比特流)成肘。

【圖片】----------------------------------

2.1.2 系統(tǒng)設(shè)計(jì)方案

工作原理

漢明碼是在原編碼的基礎(chǔ)上附加一部分碼字,使其滿足糾錯(cuò)碼的條件。它屬于線性分組碼, 由于漢明碼的抗干擾能力較強(qiáng) ,至今仍是應(yīng)用比較廣泛的一類碼已日。

在工程設(shè)計(jì)中常常涉及到信號(hào)傳輸鹦倚,主流的方法有串行傳輸方法和并行傳輸方法,串行方法只有一根線洒闸,干擾少但傳輸速度慢。并行方案大大提升了傳輸速度均芽,但傳輸距離短丘逸,易受干擾。故在實(shí)際的工程設(shè)計(jì)中常常要進(jìn)行串掀宋、并轉(zhuǎn)換深纲。

本系統(tǒng)通過(guò)漢明碼的編碼與譯碼以及引入串并轉(zhuǎn)換仲锄,展示了一種較為有效的自動(dòng)糾錯(cuò)電路設(shè)計(jì)方案。

總體方案的論證與比較

有兩種系統(tǒng)總體方案:

1.?引入時(shí)鐘脈沖信號(hào)湃鹊,數(shù)據(jù)自動(dòng)輸入儒喊,同時(shí)系統(tǒng)進(jìn)行相應(yīng)的編碼\解碼操作;

2.?手動(dòng)輸入數(shù)據(jù)涛舍,每傳送4位數(shù)據(jù)系統(tǒng)進(jìn)行一次編碼\解碼操作澄惊;

方案1增加了模塊數(shù)量,但進(jìn)行的操作數(shù)更少富雅,系統(tǒng)穩(wěn)定性更高掸驱;

方案2設(shè)計(jì)簡(jiǎn)單,但增加了操作的復(fù)雜程度没佑;

綜合考慮設(shè)計(jì)難度和操作的直觀性毕贼,選擇方案1。

各功能塊的劃分與組成

系統(tǒng)設(shè)計(jì)流程圖如下圖所示蛤奢,串行數(shù)據(jù)進(jìn)入串行轉(zhuǎn)并行模塊鬼癣,被轉(zhuǎn)換為4位并行數(shù)據(jù),送入漢明碼編碼器啤贩。數(shù)據(jù)在漢明碼編碼器中生成7位編碼數(shù)據(jù)待秃,通過(guò)信道模塊傳輸至漢明碼解碼模塊。解碼模塊將7位數(shù)據(jù)解碼糾錯(cuò)后輸出4位解碼數(shù)據(jù)痹屹。4位解碼數(shù)據(jù)經(jīng)由并行轉(zhuǎn)串行模塊后章郁,轉(zhuǎn)換為串行數(shù)據(jù)。

漢明碼編碼器輸出4路未調(diào)制數(shù)據(jù)志衍,信道模塊輸出7路編碼信號(hào)暖庄,漢明碼解碼模塊輸出1路糾錯(cuò)指示標(biāo)志,并行轉(zhuǎn)串行模塊輸出1路輸出信號(hào)

【圖片】---------------------------------------

2.2 單元電路設(shè)計(jì)

2.2.1?時(shí)鐘脈沖模塊(1Hz)

本模塊對(duì)FPGA芯片的內(nèi)部時(shí)鐘源進(jìn)行分頻楼肪,將50MHz時(shí)鐘脈沖轉(zhuǎn)換為50%占空比的1Hz脈沖培廓。

其本質(zhì)是一個(gè)計(jì)數(shù)器,每當(dāng)計(jì)數(shù)器計(jì)數(shù)到25M時(shí)將輸出信號(hào)進(jìn)行翻轉(zhuǎn)春叫,從而輸出50%占空比的1Hz脈沖肩钠。

2.2.2 串行轉(zhuǎn)并行模塊

本模塊將串行數(shù)據(jù)轉(zhuǎn)換為4位二進(jìn)制并行數(shù)據(jù),每送入4位串行數(shù)據(jù)刷新輸出的4位并行數(shù)據(jù)暂殖。

其本質(zhì)是一個(gè)4位移位寄存器价匠,每送入一個(gè)并行數(shù)據(jù),模塊就將原來(lái)的數(shù)據(jù)進(jìn)行左移央星,丟棄最高位霞怀,將新數(shù)據(jù)寫(xiě)入最低位惫东。每當(dāng)寄存器內(nèi)被送入4位新數(shù)據(jù)莉给,模塊將寄存器內(nèi)的數(shù)據(jù)讀取并行輸出毙石。

模塊結(jié)構(gòu)圖如圖所示

【圖片】

2.2.3?漢明碼編碼模塊

本模塊將4位并行數(shù)據(jù)進(jìn)行漢明碼編碼,輸出7位并行編碼數(shù)據(jù)颓遏。

漢明碼編碼原理:XXXX

2.2.4?信道模塊

本模塊模擬7位并行數(shù)據(jù)信道徐矩,同時(shí)在每一路信道添加可調(diào)非門,模擬傳輸數(shù)據(jù)出錯(cuò)的情況叁幢。

模塊結(jié)構(gòu)圖如圖所示

【圖片】

2.2.5?漢明碼譯碼模塊

本模塊將7位并行數(shù)據(jù)進(jìn)行漢明碼譯碼滤灯,輸出4位并行譯碼數(shù)據(jù)。

漢明碼譯碼原理:本模塊將4位并行數(shù)據(jù)進(jìn)行漢明碼編碼曼玩,輸出7位并行編碼數(shù)據(jù)鳞骤。

漢明碼編碼原理:

在(n, k)漢明碼中, (n-k)個(gè)附加的監(jiān)督碼元是由信息碼元的線性運(yùn)算產(chǎn)生的。碼長(zhǎng)為n 黍判,信息元長(zhǎng)度為k , 2^k個(gè)碼字構(gòu)成n維線性空間中的一個(gè)k維子空間豫尽,編碼的實(shí)質(zhì)就是要在n維空間中, 找出一組長(zhǎng)為n 的k 個(gè)線性無(wú)關(guān)的向量g0 g1 gk - 1 , 使得每個(gè)碼字C都可以表示為k個(gè)向量的線性組合 , 即

C=[C_(n-1) C_(n-2)?C_0 ]=C_(k-1 ) g_0+C_(k-2 ) g_1+?+C_(0 ) g_(k-1)? ? (1)

其中, ci ?{ 0 , 1} , i = 0 , 1 , ? , k - 1 顷帖。將上式寫(xiě)成矩陣形式得

C=[■(■(C_(k-1 )&C_(k-2 ) )&?&C_(0 ) )][■(■(g_0@g_1 )@?@g_(k-1) )]=[■(■(C_(k-1 )&C_(k-2 ) )&C_(k-2 )&C_(0 ) )]? G? (2)

由此[■(■(C_(k-1 )&C_(k-2 ) )&?&C_(0 ) )]是帶編碼信息的信息組, G是一個(gè)n×k 階矩陣,稱為(n, k)漢明碼的生成矩陣美旧。

本系統(tǒng)中,采用7,4漢明碼編碼方式贬墩,由設(shè)計(jì)要求得生成矩陣

G=[■(1&1&■(1&0)@0&1&■(1&1)@1&1&■(0&1))]

當(dāng)G確定以后榴嗅,編碼的問(wèn)題也就解決了。

根據(jù)監(jiān)督碼元是有信息碼元的線性運(yùn)算產(chǎn)生的關(guān)系可知陶舞,監(jiān)督碼(a0,a1,a2)滿足以下關(guān)系式:

{█(a_2=a_6 ?a_5 ?a_4@a_1=a_5 ?a_4 ?a_3@a_0=a_6 ?a_5 ?a_3 )┤

即可算出三位監(jiān)督位嗽测,再與信息位(a6,a5,a4,a3)結(jié)合,可得到(7吊说,4)漢明碼论咏。

2.2.6?并行轉(zhuǎn)串行模塊

本模塊將4位二進(jìn)制并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)依次輸出

其本質(zhì)是一個(gè)4位移位讀取寄存器,每輸入一個(gè)時(shí)鐘脈沖信號(hào)颁井,模塊就將寄存器內(nèi)數(shù)據(jù)讀取標(biāo)志位左移并讀取對(duì)應(yīng)位置寄存器內(nèi)的數(shù)據(jù)厅贪,讀取標(biāo)志位從D0開(kāi)始,讀取4位后歸零雅宾。

模塊結(jié)構(gòu)圖如圖所示

【圖片】

2.2.7? ? 顯示模塊

本模塊將漢明碼編碼器輸出的4路未調(diào)制數(shù)據(jù)信號(hào)养涮,

信道模塊輸出的7路編碼信號(hào),

漢明碼解碼模塊輸出的1路糾錯(cuò)指示標(biāo)志信號(hào)眉抬,

并行轉(zhuǎn)串行模塊輸出的1路輸出信號(hào)顯示出來(lái)贯吓。

2.3 軟件設(shè)計(jì)

2.3.1 設(shè)計(jì)平臺(tái)、開(kāi)發(fā)工具和實(shí)現(xiàn)方法

本系統(tǒng)利用EDA技術(shù)在Quartus II軟件下用VHDL語(yǔ)言實(shí)現(xiàn)(7蜀变,4)漢明碼的編譯碼及串/并行轉(zhuǎn)換設(shè)計(jì)悄谐,并在基于Cyclone II EP2C5T144I8芯片的FPGA實(shí)驗(yàn)板上進(jìn)行演示。

2.3.2?頂層設(shè)計(jì)圖

本系統(tǒng)的頂層設(shè)計(jì)圖如圖所示

【圖片】

2.3.3 程序清單

2.3.3.1?時(shí)鐘脈沖模塊(1Hz)


2.3.3.2?串行轉(zhuǎn)并行模塊


2.3.3.3?漢明碼編碼模塊


2.3.3.4?信道模塊


2.3.3.5?漢明碼譯碼模塊


2.3.3.6?并行轉(zhuǎn)串行模塊


2.3.3.7?四位并行信號(hào)轉(zhuǎn)四路顯示信號(hào)模塊


2.3.3.8?數(shù)碼管譯碼模塊


2.4?系統(tǒng)測(cè)試

2.4.1 性能指標(biāo)

實(shí)現(xiàn)串行库北,并行數(shù)據(jù)轉(zhuǎn)換

實(shí)現(xiàn)數(shù)據(jù)檢錯(cuò)與糾錯(cuò)爬舰,并指出錯(cuò)誤位置

2.4.2 測(cè)試方法们陆、步驟

在數(shù)據(jù)模塊中輸入想要輸入的數(shù)據(jù),調(diào)整信道模塊連接方法(將任意一路非門接入信道)情屹;

燒錄并接通電源坪仇,系統(tǒng)將在數(shù)碼管前四位顯示輸入的并行信號(hào),在第五位顯示輸出的一位并行信號(hào)垃你,在第八位顯示誤碼的位置椅文,在LED燈1~7位顯示漢明碼編碼后的七位數(shù)據(jù);

按下按鍵K1惜颇,系統(tǒng)將復(fù)位皆刺,數(shù)據(jù)重新輸入,重新顯示系統(tǒng)輸出及各項(xiàng)信息凌摄。

2.4.3 測(cè)試數(shù)據(jù)

假設(shè)輸入數(shù)據(jù)為00001111循環(huán)芹橡,信道第4位接非門,則數(shù)碼管前四位將循環(huán)顯示0000=>1111=>0000=>...

第五位依次循環(huán)顯示0,0,0,0,1,1,1,1望伦,...

最后一位顯示3(信道第4位)林说。

2.5?結(jié)論

本次設(shè)計(jì)實(shí)現(xiàn)了串行數(shù)據(jù)和并行數(shù)據(jù)間的相互轉(zhuǎn)換,用漢明碼編碼/譯碼方法實(shí)現(xiàn)數(shù)據(jù)傳輸中的自動(dòng)檢錯(cuò)與糾錯(cuò)屯伞,使用頂層設(shè)計(jì)的方法進(jìn)行了EDA程序設(shè)計(jì)與FPGA開(kāi)發(fā)腿箩,完成了全部設(shè)計(jì)要求和擴(kuò)展要求。

3.?參考文獻(xiàn)

[1] 樊昌信 曹麗娜.通信原理(第6版)[M].國(guó)防工業(yè)出版社,2006.

[2] 劉愛(ài)蓮.糾錯(cuò)編碼原理及MATLAB實(shí)現(xiàn)[M].清華大學(xué)出版社:北京,2013.53-55.

[3 ] 金西. VHDL與復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)[M] .西安:西安電子科技大學(xué)出版社,2003. 81-115.

[4] 潘松 黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社:北京,2005

4.?附錄

https://pan.baidu.com/s/1k0MElRy7b9hk_unG2OJg7w

https://pan.baidu.com/s/1XYfZYUEKAnkA7eW566KU9g

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末劣摇,一起剝皮案震驚了整個(gè)濱河市珠移,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌末融,老刑警劉巖钧惧,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異勾习,居然都是意外死亡浓瞪,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門巧婶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乾颁,“玉大人,你說(shuō)我怎么就攤上這事艺栈∮⒘耄” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵湿右,是天一觀的道長(zhǎng)诅妹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)毅人,這世上最難降的妖魔是什么吭狡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任荧库,我火速辦了婚禮,結(jié)果婚禮上赵刑,老公的妹妹穿的比我還像新娘。我一直安慰自己场刑,他們只是感情好般此,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著牵现,像睡著了一般铐懊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞎疼,一...
    開(kāi)封第一講書(shū)人閱讀 52,549評(píng)論 1 312
  • 那天科乎,我揣著相機(jī)與錄音,去河邊找鬼贼急。 笑死茅茂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的太抓。 我是一名探鬼主播空闲,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼走敌!你這毒婦竟也來(lái)了碴倾?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掉丽,失蹤者是張志新(化名)和其女友劉穎跌榔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捶障,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僧须,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了项炼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皆辽。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖芥挣,靈堂內(nèi)的尸體忽然破棺而出驱闷,到底是詐尸還是另有隱情,我是刑警寧澤空免,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布空另,位于F島的核電站,受9級(jí)特大地震影響蹋砚,放射性物質(zhì)發(fā)生泄漏扼菠。R本人自食惡果不足惜摄杂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望循榆。 院中可真熱鬧析恢,春花似錦、人聲如沸秧饮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盗尸。三九已至柑船,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泼各,已是汗流浹背鞍时。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扣蜻,地道東北人逆巍。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像莽使,于是被迫代替她去往敵國(guó)和親蒸苇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容