基于FPGA的HDB3編解碼器的設(shè)計(jì)說(shuō)明書(shū)
基于FPGA的HDB3編解碼器的設(shè)計(jì)說(shuō)明書(shū),基于,fpga,hdb3,編解碼器,設(shè)計(jì),說(shuō)明書(shū),仿單
基于FPGA的HDB3編解碼器設(shè)計(jì)
附錄2 系統(tǒng)頂層設(shè)計(jì)原理圖
專(zhuān)業(yè)
班級(jí)
學(xué)號(hào)
姓名
設(shè)計(jì)
課題
名稱(chēng)
基于FPGA的HDB3編解碼器設(shè)計(jì)
比例
100%
審核
圖號(hào)
A4
日期
圖名
系統(tǒng)頂層設(shè)計(jì)原理圖
共3張
第1張
附錄3 HDB3編碼器RTL視圖
專(zhuān)業(yè)
班級(jí)
學(xué)號(hào)
姓名
設(shè)計(jì)
課題
名稱(chēng)
基于FPGA的HDB3編解碼器設(shè)計(jì)
比例
100%
審核
圖號(hào)
A4
日期
圖名
HDB3編碼器RTL視圖
共3張
第2張
附錄4 HDB3解碼器RTL視圖
專(zhuān)業(yè)
班級(jí)
學(xué)號(hào)
姓名
設(shè)計(jì)
課題
名稱(chēng)
基于FPGA的HDB3編解碼器設(shè)計(jì)
比例
100%
審核
圖號(hào)
A4
日期
圖名
HDB3解碼器RTL視圖
共3張
第3張
37
XXXX
XXX設(shè)計(jì)任務(wù)書(shū)
課題: 基于FPGA的HDB3編解碼器設(shè)計(jì)
專(zhuān)業(yè)
學(xué)生姓名
班級(jí)
學(xué)號(hào)
指導(dǎo)教師
專(zhuān)業(yè)系主任
發(fā)放日期
XXX
1. 畢業(yè)設(shè)計(jì)(論文)任務(wù)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求)
1、 主要內(nèi)容以及技術(shù)參數(shù)
HDB3(High Density Binary-3)碼是AMI碼的一種改進(jìn)型。HDB3碼保持了AMI碼的優(yōu)點(diǎn),克服了AMI碼在遇到連“0”長(zhǎng)時(shí)難以提取定時(shí)信息的困難,因而獲得廣泛應(yīng)用。CCITT已建議把HDB3碼作為PCM終端設(shè)備一次群到三次群的接口碼型。
設(shè)計(jì)首先區(qū)分NRZ,AMI,HDB3碼之間的聯(lián)系,然后分析HDB3的編解碼器的工作原理,最后采用VHDL語(yǔ)言實(shí)現(xiàn)HDB3編/解碼器。在Quartus II+ModelSim仿真平臺(tái)驗(yàn)證編解碼器的功能。
2、設(shè)計(jì)中要求做的工作
a) 熟練掌握Quartus II與ModelSim軟件。
b) 靈活運(yùn)用VHDL語(yǔ)言進(jìn)行編程。
c) 理解HDB3編碼/解碼工作原理。
d) 用VHDL實(shí)現(xiàn)。
e) 仿真調(diào)試
f) 完成畢業(yè)設(shè)計(jì)論文的編寫(xiě)。
3、 工作要求
a) 對(duì)待設(shè)計(jì)工作要具有認(rèn)真的態(tài)度、嚴(yán)謹(jǐn)?shù)淖黠L(fēng)
b) 要求每天按照計(jì)劃保質(zhì)保量地完成當(dāng)天的任務(wù)
c) 遵守設(shè)計(jì)場(chǎng)所的紀(jì)律制度,做好值日生工作
2. 圖紙內(nèi)容及張數(shù):
1、頂層設(shè)計(jì)原理圖 ………………1張
2、仿真波形圖 ………………2張
3. 實(shí)物內(nèi)容及要求(包括開(kāi)題報(bào)告、畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)、源程序、成果實(shí)物、資料光盤(pán)等):
(1) 完成畢業(yè)實(shí)習(xí)報(bào)告一份。
(2) 完成開(kāi)題報(bào)告一份。寫(xiě)明課題研究的意義,設(shè)計(jì)或研究的思路,采用的主要器件,以及設(shè)計(jì)最終所獲得的成果。詳細(xì)列出在畢業(yè)設(shè)計(jì)期間各個(gè)時(shí)間段要完成的工作。
(3) 完成8000字的資料摘要一份。
(4) 完成與本課題相關(guān)的外文資料譯文一份(3000漢字以上)。
(5) 按照鹽城工學(xué)院畢業(yè)設(shè)計(jì)(論文)教學(xué)工作手冊(cè)中的要求完成畢業(yè)設(shè)計(jì)說(shuō)明書(shū)一份。符合學(xué)校制定的本科畢業(yè)設(shè)計(jì)(論文)的格式要求、字?jǐn)?shù)要求,文筆流暢、條理清晰,無(wú)原則性錯(cuò)誤。任務(wù)書(shū)、開(kāi)題報(bào)告、設(shè)計(jì)說(shuō)明書(shū)等資料刻成光盤(pán)。
4. 其他:
無(wú)
5. 參考文獻(xiàn):
[1] 宋燕輝,蘇鋼. 適用于RoF系統(tǒng)的高速串行接口的FPGA設(shè)計(jì)(本期優(yōu)秀論文)[J]. 光通信技術(shù). 2012(07)
[2] 劉速,孫偉峰,王洪君. 目標(biāo)跟蹤系統(tǒng)在FPGA上的實(shí)時(shí)實(shí)現(xiàn)[J]. 西安電子科技大學(xué)學(xué)報(bào). 2012(05)
[3] 崔洲涓,胡遼林. SDH中HDB3編解碼電路的FPGA實(shí)現(xiàn)[J]. 光通信技術(shù). 2011(03)
[4] 韓德紅,孫筱萌,張顯才. 基于FPGA的HDB3編解碼器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 空軍雷達(dá)學(xué)院學(xué)報(bào). 2010(04)
[5] 吳海濤,陳英俊,梁迎春. 基于FPGA的HDB3編解碼器設(shè)計(jì)[J]. 微計(jì)算機(jī)信息. 2008(17)
[6] 邵鐘浩,馬駿,張國(guó)強(qiáng). 光碼分多址接入技術(shù)中單、多維編解碼器的實(shí)現(xiàn)[J]. 光通信研究. 2001(06)
[7] 劉國(guó)駟,周浩強(qiáng),蔡茂國(guó),崔哲順. 光纖延遲線編解碼器的設(shè)計(jì)[J]. 光通信研究. 2000(01)
[8] 小型數(shù)字信號(hào)編解碼器[J]. 國(guó)外電子元器件. 2002(05)
[9] 尹波,劉必晨,白瑤晨,唐敏,蔣東新. 大容量可共享光編解碼器的設(shè)計(jì)與性能分析[J]. 半導(dǎo)體光電. 2007(01)
6. 畢業(yè)設(shè)計(jì)(論文)進(jìn)度計(jì)劃
起訖日期
工 作 內(nèi) 容
備 注
3月8日~3月15日
畢業(yè)實(shí)習(xí)以及畢業(yè)設(shè)計(jì)的前期工作,完成中文文獻(xiàn)摘要、英文文獻(xiàn)翻譯、實(shí)習(xí)報(bào)告和設(shè)計(jì)的開(kāi)題報(bào)告
3月16日~3月29日
進(jìn)行開(kāi)題陳述和答辯,設(shè)計(jì)正式開(kāi)題
3月30日~4月7日
Quartus II與ModelSim軟件的熟悉
4月8日~4月14日
HDB3編解碼器工作原理
4月15日~5月10日
用VHDL語(yǔ)言實(shí)現(xiàn)
5月11日~5月24日
仿真調(diào)試與優(yōu)化
5月25日~6月14日
撰寫(xiě)畢業(yè)設(shè)計(jì)說(shuō)明書(shū),準(zhǔn)備畢業(yè)答辯
6月15日~6月20日
完成畢業(yè)答辯以及設(shè)計(jì)資料的歸檔工作
6月21日~6月27日
答辯
7.教師簽字: 制定日期: 年 月 日
8. 審批
專(zhuān)業(yè)系意見(jiàn):
專(zhuān)業(yè)系主任(簽字)
年 月 日
XX設(shè)計(jì)開(kāi)題報(bào)告
課題:
基于FPGA的HDB3編解碼器設(shè)計(jì)
專(zhuān)業(yè)
學(xué)生姓名
班級(jí)
學(xué)號(hào)
指導(dǎo)教師
專(zhuān)業(yè)系主任
撰寫(xiě)日期
XXX
課題名稱(chēng): 基于FPGA的HDB3編解碼器設(shè)計(jì)
課題類(lèi)型: (√) 應(yīng)用型 ( ) 研究型
1. 本課題的意義
HDB3(High Density Bipolar 三階高密度雙極性)碼是在AMI碼的基礎(chǔ)上改進(jìn)的一種雙極性歸零碼,它除具有AMI碼功率譜中無(wú)直流分量,可進(jìn)行差錯(cuò)自檢等優(yōu)點(diǎn)外,還克服了AMI碼當(dāng)信息中出現(xiàn)連“0”碼時(shí)定時(shí)提取困難的缺點(diǎn),而且HDB3碼頻譜能量主要集中在基波頻率以下,占用頻帶較窄,是ITU-TG.703推薦的PCM基群、二次群和三次群的數(shù)字傳輸接口碼型,因此HDB3碼的編解碼就顯得極為重要了。目前,HDB3碼主要由專(zhuān)用集成電路及相應(yīng)匹配的外圍中小規(guī)模集成芯片來(lái)實(shí)現(xiàn),但集成程度不高,特別是位同步提取非常復(fù)雜,不易實(shí)現(xiàn)。隨著可編程器件的發(fā)展,這一難題得到了很好的解決。
本文利用現(xiàn)代EDA設(shè)計(jì)方法學(xué)和VHDL語(yǔ)言及模塊化的設(shè)計(jì)方法,設(shè)計(jì)了適合于FPGA實(shí)現(xiàn)的HDB3編譯碼器的硬件實(shí)現(xiàn)方案。不但克服了分立硬件電路帶來(lái)的抗干擾性差和不易調(diào)整等缺陷,而且具有軟件開(kāi)發(fā)周期短、成本低、執(zhí)行速度高、實(shí)時(shí)性強(qiáng)、升級(jí)方便等特點(diǎn)。
2. 課題的基本內(nèi)容:
編碼器設(shè)計(jì):把二進(jìn)制碼編碼成兩路單極性的碼字輸出,編碼分為四個(gè)模塊:①判斷4個(gè)連“0”位置并插入V;②記相鄰V碼間1的個(gè)數(shù);③跟蹤V碼位置;④編碼輸出。
解碼器設(shè)計(jì):①首先根據(jù)HDB3碼的特點(diǎn)檢測(cè)出極性破壞點(diǎn),即找出4連零碼中添加V碼的位置(破壞點(diǎn)位置);②其次去掉添加的V碼;③最后去掉4連零碼中添加的B碼以將其還原成單極性不歸零碼。
3. 課題的研究方法、技術(shù)路線、設(shè)計(jì)(研究)方案:
研究方法:查找和本次設(shè)計(jì)相關(guān)的資料,確定整體設(shè)計(jì)方案;學(xué)習(xí)編解碼器原理及仿真程序語(yǔ)言;查閱基于FPGA的HDB3編解碼器設(shè)計(jì)的相關(guān)文獻(xiàn)資料。
技術(shù)路線:本文使用FPGA來(lái)實(shí)現(xiàn)NRZ碼到HDB3碼的轉(zhuǎn)換,基于VHDL語(yǔ)言編程實(shí)現(xiàn),然后在QuartusⅡ上仿真,根據(jù)仿真效果進(jìn)行硬件調(diào)試。
設(shè)計(jì)方案:①了解HDB3編解碼原理;②設(shè)計(jì)編解碼器;③仿真;④硬件調(diào)試。
4. 課題的效果預(yù)測(cè)
①系統(tǒng)的輸入是二進(jìn)制碼,輸出是兩路單極性碼;
②FPGA的最大工作頻率是100MHZ;
③隨機(jī)信號(hào)輸入相對(duì)編碼信號(hào)輸出延遲了5個(gè)單位時(shí)鐘,解碼信號(hào)延時(shí)了11個(gè)單位時(shí)鐘。
5. 畢業(yè)設(shè)計(jì)(論文)進(jìn)度計(jì)劃
起訖日期
工 作 內(nèi) 容
備 注
3月8日~3月15日
畢業(yè)實(shí)習(xí)以及畢業(yè)設(shè)計(jì)的前期工作,完成中文文獻(xiàn)摘要、英文文獻(xiàn)翻譯、實(shí)習(xí)報(bào)告和設(shè)計(jì)的開(kāi)題報(bào)告
3月16日~3月29日
進(jìn)行開(kāi)題陳述和答辯,設(shè)計(jì)正式開(kāi)題
3月30日~4月7日
Quartus II與ModelSim軟件的熟悉
4月8日~4月14日
HDB3編解碼器工作原理
4月15日~5月10日
用VHDL語(yǔ)言實(shí)現(xiàn)
5月11日~5月24日
仿真調(diào)試與優(yōu)化
5月25日~6月14日
撰寫(xiě)畢業(yè)設(shè)計(jì)說(shuō)明書(shū),準(zhǔn)備畢業(yè)答辯
6月15日~6月20日
完成畢業(yè)答辯以及設(shè)計(jì)資料的歸檔工作
6月21日~6月27日
答辯
6. 開(kāi)題報(bào)告審批意見(jiàn)
指導(dǎo)教師意見(jiàn):
指導(dǎo)教師(簽字):
年 月 日
專(zhuān)業(yè)系意見(jiàn):
專(zhuān)業(yè)系主任(簽字):
年 月 日
5
基于FPGA的HDB3編解碼器設(shè)計(jì)
摘 要:在數(shù)字通信系統(tǒng)中,數(shù)字基帶信號(hào)由信源發(fā)出,但是夾雜著低頻分量和直流分量,在傳輸信號(hào)時(shí)會(huì)容易產(chǎn)生碼間的干擾從而嚴(yán)重影響了傳輸?shù)目煽啃裕蚨獙?duì)其進(jìn)行編碼再進(jìn)行傳輸。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)作為21世紀(jì)興起的一種可編程器件,要比傳統(tǒng)的可編程器件的集成度要高,且編碼電路直接集成在了FPGA芯片上。利用HDB3碼(三階高密度雙極性碼)在傳輸過(guò)程中可打破長(zhǎng)連“0”、不含直流、碼譜位于高頻段和提取同步信號(hào)方便這一特點(diǎn),本文提出了基于FPGA的HDB3編解碼器設(shè)計(jì),基于頂層設(shè)計(jì)原理,首先介紹了FPGA的開(kāi)發(fā)基礎(chǔ)和HDB3編解碼的原理,其次設(shè)計(jì)HDB3編解碼模塊,再者通過(guò)集成了FPGA設(shè)計(jì)環(huán)境的QuartusⅡ軟件中完成編解碼器的編譯與仿真等過(guò)程,分別對(duì)編碼模塊和解碼模塊進(jìn)行仿真,最后進(jìn)行了編解碼模塊的合成仿真,得到了與預(yù)期相符合的波形。最終結(jié)果表明,本次設(shè)計(jì)的基于FPGA的HDB3編解碼器具有編解碼簡(jiǎn)單、程序靈活、工作可靠性高的特點(diǎn),相比其他的可編程器件而言,基于FPGA的HDB3編解碼器的集成度更高,體積更小。
關(guān)鍵詞:FPGA;HDB3碼;VHDL語(yǔ)言;編解碼器
The Design of HDB3 Encoder and Decoder Based on FPGA
Abstract:In digital communication system,digital baseband signal is issued by the signal source with low frequency component and the dc component. This is easy to produce the interference in the process of transmission signal which can seriously affect the reliability of transmission.Therefore,it is necessary to encode before the transmission. As the rise of a programmable device of the 21st century, FPGA(field programmable gate array) have a higher level of integration than traditional programmable device, and encoding circuit is directly integrated in the FPGA chip. In the process of transmission, HDB3 code (third-order high density bipolar codes) have the characteristics of break long "0", not including dc, code spectrum at high frequencies, and easy to extract the sync signal. Use of these advantages, this paper puts forward the HDB3 encoder and decoder design based on FPGA. Based on the principle of top design, this paper firstly introduces the development foundation of FPGA and the principle of HDB3 encoder and decoder. Secondly, design HDB3 encoder and decoder module.Through Quartus Ⅱ software which integrationed of the FPGA design environment, complete the process of compilation and simulation of encoder and decoder. Finally,has carried on the synthesis simulation of encoder and decoder module, and expectations of the wave are obtained. Final results show that the design of HDB3 encoder and decoder based on FPGA has the characteristics of simple and flexible in application and high working reliability.Compared with other programmable devices, HDB3 encoder and decoder based on the FPGA is more integrated and smaller.
Key Words: FPGA; HDB3 code; VHDL language; codecs
目 錄
1. 概述 1
1.1 課題的意義 1
1.2 課題的研究背景 1
1.3 課題的主要研究工作 2
1.4 現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)方法 3
1.5 論文結(jié)構(gòu) 3
2. FPGA開(kāi)發(fā)基礎(chǔ) 4
2.1 Quartus II?簡(jiǎn)介 4
2.2 可編程邏輯器件簡(jiǎn)介 5
2.3 硬件描述語(yǔ)言簡(jiǎn)介 7
2.4 FPGA開(kāi)發(fā)流程 9
2.5 FPGA器件選型 12
3. HDB3編解碼原理 13
3.1 基本碼型簡(jiǎn)介 13
3.2 HDB3碼的編解碼規(guī)則 16
4. HDB3編解碼器的設(shè)計(jì)與實(shí)現(xiàn) 18
4.1 總體設(shè)計(jì)構(gòu)思 18
4.2 HDB3編碼器的FPGA實(shí)現(xiàn) 18
4.2.1 插“V”模塊 19
4.2.2 插“B”模塊 19
4.2.3 極性變換模塊 20
4.2.3 HDB3編碼器的仿真 21
4.3 HDB3解碼器的FPGA實(shí)現(xiàn) 22
4.3.1 +V、-V碼的檢測(cè) 24
4.3.2 扣V扣B模塊建模 24
4.3.3 HDB3解碼器的仿真 25
4.4 HDB3編解碼器合成及驗(yàn)證 25
5. 總結(jié)和展望 27
參考文獻(xiàn) 28
致 謝 29
附 錄 30
附錄1:基于VHDL語(yǔ)言的HDB3編解碼器源程序 31
附錄2:系統(tǒng)頂層設(shè)計(jì)原理圖 34
附錄3:HDB3編碼器RTL視圖 35
附錄4:HDB3解碼器RTL視圖 36
基于FPGA的HDB3編解碼器設(shè)計(jì)
1. 概述
1.1 課題的意義
相對(duì)于傳統(tǒng)的AMI碼來(lái)說(shuō),可以自檢出傳輸中的編碼錯(cuò)誤,頻譜能量主要在基波頻率中段,其功率譜中沒(méi)有直流分量,但是當(dāng)信息代碼在傳輸?shù)倪^(guò)程中出現(xiàn)4連“0”碼時(shí),這時(shí)的AMI碼就不具備了定時(shí)提取的功能,這也就是AMI的缺陷。為了克服這種編碼的缺陷,人們改進(jìn)了傳統(tǒng)的AMI碼,并得到一種全新的雙極性歸零碼HDB3碼,由于HDB3碼是一種三階高密度雙極性碼,相比于AMI碼而言,它的頻譜能量主要集中在基波頻率的高頻段,且占用較窄的頻帶,具有編碼規(guī)則簡(jiǎn)單、便于時(shí)鐘信號(hào)的提取、無(wú)直流分量、頻帶較窄的優(yōu)點(diǎn),實(shí)現(xiàn)的電路的結(jié)構(gòu)層次也要比采用AMI碼編碼方式簡(jiǎn)單,是標(biāo)準(zhǔn)ITU-TG.703推薦的PCM終端設(shè)備基群、二次群和三次群的標(biāo)準(zhǔn)數(shù)字傳輸接口碼型。
本文設(shè)計(jì)了基于FPGA的HDB3編解碼器,運(yùn)用EDA所學(xué)的設(shè)計(jì)方法,結(jié)合VHDL語(yǔ)言編程,最后進(jìn)行系統(tǒng)編解碼功能的時(shí)序仿真。仿真結(jié)果表明,最終設(shè)計(jì)的HDB3編解碼器具有較強(qiáng)的抗擾動(dòng)性能,且改變參數(shù)就可調(diào)整編解碼器的功能,還具有軟件開(kāi)發(fā)簡(jiǎn)單、造價(jià)低、應(yīng)變能力快、互動(dòng)性強(qiáng)、便于改動(dòng)等特點(diǎn)。
1.2 課題的研究背景
EDA(Electrical Design Automation,電子設(shè)計(jì)自動(dòng)化)技術(shù)不僅是現(xiàn)代集成電路的基礎(chǔ),還是數(shù)字電子技術(shù)電路設(shè)計(jì)要用到的關(guān)鍵平臺(tái),作為21世紀(jì)科技創(chuàng)新和產(chǎn)業(yè)發(fā)展的關(guān)鍵部分,EDA技術(shù)的設(shè)計(jì)是基于大規(guī)模的可編程器件,如FPGA,表達(dá)方式有很多種,但其中最方便使用的是VHDL語(yǔ)言,VHDL語(yǔ)言是一種硬件描述語(yǔ)言,主要功能是實(shí)現(xiàn)系統(tǒng)硬件邏輯描述。EDA技術(shù)在開(kāi)發(fā)使用中用到了很多工具,其中有計(jì)算機(jī)、大規(guī)模可編程邏輯器件,還有為其配套開(kāi)發(fā)的軟件以及實(shí)驗(yàn)系統(tǒng),EDA技術(shù)最大的功能是實(shí)現(xiàn)電子系統(tǒng)向硬件系統(tǒng)的轉(zhuǎn)變,我們可以在EDA的平臺(tái)上進(jìn)行軟件的邏輯編譯、邏輯化簡(jiǎn)與邏輯仿真,EDA也會(huì)自動(dòng)完成對(duì)于FPGA芯片的適配編譯、邏輯映射與編程下載等過(guò)程,這就是現(xiàn)代數(shù)字電路中常用的一種方法,也是一門(mén)新技術(shù)。
現(xiàn)代集成電路技術(shù)發(fā)展迅猛,已經(jīng)進(jìn)入了一個(gè)全新的階段,不管是從工藝上還是集成電路的復(fù)雜程度上,都比過(guò)去提升了很多。電子系統(tǒng)電路之所以成為現(xiàn)在發(fā)展熱門(mén)的一種技術(shù),就是由于它所使用的集成電路高度的集成化,使得電子系統(tǒng)成為一個(gè)復(fù)雜的系統(tǒng)。所以說(shuō),離開(kāi)EDA技術(shù),電子系統(tǒng)的設(shè)計(jì)是很困難的。21世紀(jì)是人才競(jìng)爭(zhēng)的世紀(jì),高素質(zhì)的電子科技人才是需要培養(yǎng)的,一個(gè)重要的途徑就是EDA教學(xué),這也成為了IC從業(yè)人員提升自我的一個(gè)重要手段。由于EDA技術(shù)的迅猛發(fā)展,對(duì)我們國(guó)家高校的傳統(tǒng)教學(xué)形成了無(wú)形的挑戰(zhàn),沖擊著傳統(tǒng)的電子技術(shù)教學(xué),需要提升高校的教師教學(xué)水平,在革新教學(xué)思路與創(chuàng)新教學(xué)方法上多下功夫。近年來(lái),國(guó)內(nèi)許多高校更加注重高等人才的培養(yǎng),積極探索更加適應(yīng)新世紀(jì)的教學(xué)方法,電子技術(shù)的快速發(fā)展需要更多的優(yōu)秀人才,高校引入并消化吸收形成了完善的電子技術(shù)教學(xué)模式,比如開(kāi)設(shè)電子技術(shù)課程,注重學(xué)生的實(shí)驗(yàn)?zāi)芰?,在電子技術(shù)有獨(dú)特優(yōu)勢(shì)的高校在獲得國(guó)家重點(diǎn)項(xiàng)目支持資金后建立起了先進(jìn)的實(shí)驗(yàn)室,有的是國(guó)家級(jí),有的是省級(jí)。總起起來(lái),國(guó)內(nèi)高校不管是從硬件上還是從軟件上都開(kāi)展了一系列電子技術(shù)教學(xué)創(chuàng)新,借助于EDA這一現(xiàn)代教學(xué)方法就更加方便了教學(xué),學(xué)生可以方便地使用EDA軟件進(jìn)行電子技術(shù)設(shè)計(jì)與仿真等。電子系統(tǒng)的設(shè)計(jì)主要依靠EDA技術(shù)來(lái)完成,一般有系統(tǒng)級(jí)、電路級(jí)和物理級(jí)三個(gè)層次的電路設(shè)計(jì)。EDA技術(shù)可以設(shè)計(jì)的電子電路的頻段不再受局限,從低頻到高頻甚至更高頻率的微波都在EDA設(shè)計(jì)的范疇。更重要的是,電路的線性與非線性、種類(lèi)、復(fù)雜程度等也都在EDA的考慮范圍內(nèi),因此,EDA所研究的對(duì)象是非常廣泛的。
我們?cè)囍鴱钠渌嵌葋?lái)看EDA的發(fā)展,比如專(zhuān)用集成電路(ASIC)的開(kāi)發(fā)與應(yīng)用角度,一個(gè)完整的電子系統(tǒng)的設(shè)計(jì)至少應(yīng)包括以下5個(gè)子模塊:設(shè)計(jì)輸入子模塊、設(shè)計(jì)數(shù)據(jù)庫(kù)子模塊、分析驗(yàn)證子模塊、綜合仿真子模塊、布局布線子模塊。
由此可見(jiàn),EDA技術(shù)已經(jīng)成為現(xiàn)在數(shù)字電子技術(shù)設(shè)計(jì)的有力工具。
1.3 課題的主要研究工作
本課題主要研究的內(nèi)容是利用FPGA芯片,選擇合適的一種碼型對(duì)信號(hào)進(jìn)行編碼,設(shè)計(jì)信號(hào)傳輸過(guò)程中的編碼器和解碼器,最終進(jìn)行仿真驗(yàn)證。本次設(shè)計(jì)采用的是HDB3碼對(duì)信號(hào)進(jìn)行編碼,這是由于HDB3碼相比較于傳統(tǒng)的AMI碼而言可以打破4連“0”,在解碼環(huán)節(jié)便于同步提取,HDB3碼的的各項(xiàng)指標(biāo)都比較符合設(shè)計(jì)所需,比如在頻率、頻帶上。鑒于HDB3碼的優(yōu)越特點(diǎn),PCM系統(tǒng)的基群到三次群通常采用HDB3碼作為標(biāo)準(zhǔn)接口碼型,課題的主要工作是以下幾點(diǎn):
a) 用QuartusⅡ軟件實(shí)現(xiàn)基于FPGA的HDB3編解碼;
b) 在QuartusⅡ環(huán)境下構(gòu)建系統(tǒng)總體及編解碼原理圖設(shè)計(jì);
c) 對(duì)系統(tǒng)進(jìn)行時(shí)序仿真;
d) 驗(yàn)證編解碼器的功能;
e) 對(duì)本次的設(shè)計(jì)進(jìn)行一個(gè)總結(jié)。
1.4 現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)方法
傳統(tǒng)設(shè)計(jì)數(shù)字系統(tǒng)電路的方法就是自上而下的設(shè)計(jì)方法,利用現(xiàn)有的元器件焊接好電路板,借助電路板來(lái)做出數(shù)字系統(tǒng)。設(shè)計(jì)人員在設(shè)計(jì)之初的首要工作就是選擇合適的元器件,選取元器件時(shí)要注意器件的各項(xiàng)參數(shù)指標(biāo)是否能達(dá)到要求。其次就是把我們用到的各種元器件焊接到電路板上,并用仿真軟件檢查電路的電氣可靠性能。EDA技術(shù)的出現(xiàn)催生出了新的設(shè)計(jì)理論和設(shè)計(jì)方法,并且也促進(jìn)了可編程邏輯器件的新發(fā)。由于可編程器件具有編寫(xiě)程序很靈活的特點(diǎn),又利用現(xiàn)代EDA技術(shù)設(shè)計(jì)輸入,已經(jīng)成為了數(shù)字系統(tǒng)設(shè)計(jì)的主要方法。
可編程邏輯器件在器件內(nèi)部通過(guò)硬件描述語(yǔ)言來(lái)完成各個(gè)功能模塊設(shè)計(jì),最終實(shí)現(xiàn)系統(tǒng)整體的功能設(shè)計(jì)。設(shè)計(jì)者按照系統(tǒng)的需求完成內(nèi)部邏輯和定義相應(yīng)的功能管腳,在芯片內(nèi)設(shè)計(jì)就可以完成電路板設(shè)計(jì)的大量工作,在芯片內(nèi)設(shè)計(jì)靈活的組合內(nèi)部功能塊定義管腳等來(lái)實(shí)現(xiàn)數(shù)字系統(tǒng)的邏輯功能,可以有效的減輕電路板以及電路設(shè)計(jì)的工作量和難度,極大的提高工作效率。采用可編程邏輯器件作為芯片的設(shè)計(jì)方法,設(shè)計(jì)人員可以反復(fù)設(shè)計(jì)編程,修改錯(cuò)誤,方便靈活研發(fā)周期短,便于更快的開(kāi)發(fā)產(chǎn)品搶占市場(chǎng),而且縮小了系統(tǒng)的體積,減少了芯片的使用數(shù)量,可以提高系統(tǒng)的可靠性能。
利用EDA軟件和可編程邏輯器件芯片,可以形成專(zhuān)業(yè)從事IP模塊生產(chǎn)的無(wú)芯片EDA公司,也可以形成無(wú)生產(chǎn)線的集成電路設(shè)計(jì)公司,設(shè)計(jì)時(shí)調(diào)用IP核減少開(kāi)發(fā)量??梢哉f(shuō),可編程邏輯器件和EDA設(shè)計(jì)工具在現(xiàn)代的數(shù)字系統(tǒng)設(shè)計(jì)也越來(lái)越重要了。
1.5 論文結(jié)構(gòu)
本文主要研究的是如何搭建好一個(gè)仿真平臺(tái),首先就是對(duì)系統(tǒng)的整體設(shè)計(jì)進(jìn)行規(guī)劃,然后設(shè)計(jì)各個(gè)子模塊,最后在搭建好的平臺(tái)上進(jìn)行模塊仿真,具體章節(jié)安排如下:第一章是概述,這章介紹了本論文選題的背景及意義,以及可編程邏輯器件的發(fā)展歷程和現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)理論與方法。第二章是EDA技術(shù)和FPGA開(kāi)發(fā)基礎(chǔ),詳細(xì)介紹了EDA技術(shù)和FPGA開(kāi)發(fā)的基本原理,探析了FPGA芯片的種類(lèi)和選型。第三章詳細(xì)說(shuō)明了HDB3編解碼器的原理,首先介紹NRZ碼、AMI碼和HDB3碼這三種基本碼型及其編解碼規(guī)則,其次分別介紹了HDB3編碼器和解碼器的編解碼規(guī)則。第四章是基于FPGA芯片來(lái)實(shí)現(xiàn)HDB3編解碼器的設(shè)計(jì),首先畫(huà)出了HDB3編解碼器設(shè)計(jì)的總體框圖,然后分別設(shè)計(jì)了編碼器模塊和解碼器模塊,在仿真軟件中得到時(shí)序仿真波形圖,然后將編碼器解碼器合成仿真,最終完成整體系統(tǒng)的時(shí)序仿真驗(yàn)證。第五章是全文總結(jié),從總體上概括本次設(shè)計(jì),寫(xiě)出了這次設(shè)計(jì)的成果和不足之處。
2. FPGA開(kāi)發(fā)基礎(chǔ)
2.1 Quartus II?簡(jiǎn)介
Altera公司在之前開(kāi)發(fā)出了一綜合性仿真平臺(tái)軟件,它就是Quartus II集成開(kāi)發(fā)軟件,該軟件支持多種輸入方式,自帶仿真器,能自動(dòng)完成硬件系統(tǒng)到軟件的PLD設(shè)計(jì)。Quartus II同時(shí)也支持多種可操作的系統(tǒng),設(shè)計(jì)流程不僅可以幫助我們直觀地瀏覽RTL視圖,它的設(shè)計(jì)方式也非常多樣化,支持友好的用戶(hù)界面。它的顯著特點(diǎn)就是運(yùn)行穩(wěn)定、界面友好、易于初學(xué)者掌握。在Quartus II內(nèi)部提供了一系列的調(diào)試查看工具,包括Technology Map、RTL Viewer、Chip Planner和TimeQuest等,并且集成了總線接口和軟核,提供最新型的研發(fā)工具,載入到設(shè)計(jì)的硬件系統(tǒng)中,可以編寫(xiě)源程序以及Test bench程序。
不僅如此,Quartus II可以和DSP直接連接,還可以支持DSP操作系統(tǒng)。另外,片上開(kāi)發(fā)系統(tǒng)也離不開(kāi)Quartus II軟件的支持,可以在Quartus II平臺(tái)上開(kāi)發(fā)相應(yīng)的系統(tǒng),系統(tǒng)整體設(shè)計(jì)和編程開(kāi)發(fā)整合在一起,因此Quartus II是一個(gè)綜合性的平臺(tái)。
在使用Quartus II軟件進(jìn)行電路設(shè)計(jì)時(shí),我們可以采用圖形或者HDL編輯器進(jìn)行編輯,因?yàn)檫@個(gè)軟件本身就是模塊化的編譯器。一個(gè)系統(tǒng)整個(gè)設(shè)計(jì)過(guò)程的第一步是進(jìn)行設(shè)計(jì)的輸入,第二步是編寫(xiě)我們所能實(shí)現(xiàn)電路的程序,第三步是進(jìn)行仿真驗(yàn)證。等仿真驗(yàn)證的結(jié)果沒(méi)有問(wèn)題后我們才畫(huà)元器件的布局與布線圖,隨后在Quartus II軟件中生成可下載的源文件,Quartus II軟件的設(shè)計(jì)流程如圖2-1所示。
圖2-1 Quartus II設(shè)計(jì)流程圖
Quartus II自帶IP內(nèi)核,包含模塊庫(kù)里面的宏功能,模塊功能強(qiáng)大,便于用戶(hù)利用,設(shè)計(jì)精簡(jiǎn)了復(fù)雜度,從而優(yōu)化了設(shè)計(jì)。同時(shí)多方面支持EDA系統(tǒng)工具,使用戶(hù)對(duì)整個(gè)設(shè)計(jì)流程都熟悉。
不僅如此,Quartus II可以和DSP無(wú)縫對(duì)接,支持DSP應(yīng)用系統(tǒng),另外片上可編程系統(tǒng)也離不開(kāi)Quartus II的支持,可以在Quartus II平臺(tái)上開(kāi)發(fā)相應(yīng)的系統(tǒng),系統(tǒng)整體設(shè)計(jì)和編程開(kāi)發(fā)整合在一起,因此Quartus II是一個(gè)綜合性的平臺(tái)。
2.2 可編程邏輯器件簡(jiǎn)介
數(shù)字集成電路在最近的幾十年里得到了快速的發(fā)展,從小規(guī)模的集成電路到中規(guī)模集成電路再到大規(guī)模集成電路和超大規(guī)模集成電路,這一過(guò)程也說(shuō)明了數(shù)字電子技術(shù)本身迅猛的發(fā)展。此過(guò)程出現(xiàn)了各種類(lèi)型的數(shù)字集成電路,但大體上分為以下三種。
a) 標(biāo)準(zhǔn)邏輯器件。之所以稱(chēng)為標(biāo)準(zhǔn)器件就是因?yàn)樗侵行∫?guī)模集成電路,基于TTL工作原理的計(jì)數(shù)器、多路轉(zhuǎn)換器、譯碼器、觸發(fā)器等都是比較典型的邏輯器件。標(biāo)準(zhǔn)器件的特點(diǎn)就是產(chǎn)量大、價(jià)格低廉、便于編譯。由于具有完整的功能,在設(shè)計(jì)標(biāo)準(zhǔn)器件時(shí)更注重提高產(chǎn)品的性能,因此標(biāo)準(zhǔn)器件的工作速度很快,幾乎沒(méi)有延遲。典型數(shù)字系統(tǒng)設(shè)計(jì)就要使用到標(biāo)準(zhǔn)器件,但是標(biāo)準(zhǔn)器件也有一些不足之處,那就是它的集成度不太高,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),消耗的能量多,而且在印制排版時(shí)比較復(fù)雜,不容易焊接,這樣對(duì)用戶(hù)來(lái)說(shuō)就很不方便,不方便修改,導(dǎo)致整個(gè)系統(tǒng)的可靠性能大大地降低。另外,當(dāng)設(shè)計(jì)的電路中一個(gè)元器件改變,就要重新設(shè)計(jì)電路板,這就嚴(yán)重影響了我們的設(shè)計(jì)工作。
b) 集成電路器件。21世紀(jì)電子技術(shù)的迅猛發(fā)展造就了基于軟件的集成電路器件,最著名的就是單片機(jī)和PLC等。與傳統(tǒng)的標(biāo)準(zhǔn)器件相比較而言,這類(lèi)元器件實(shí)現(xiàn)了很多之前傳統(tǒng)器件不能實(shí)現(xiàn)的復(fù)雜功能。其特點(diǎn)是整個(gè)電路有很高的集成度,可以在自身的平臺(tái)上進(jìn)行邏輯的實(shí)現(xiàn),使得我們?cè)O(shè)計(jì)的整個(gè)系統(tǒng)更加方便可靠。但是它也有一些缺點(diǎn),就是這類(lèi)器件的工作速度也不高,尤其是需要高速邏輯器件的場(chǎng)合更加不適合使用。再者就是這類(lèi)電路的組成也很復(fù)雜,這是因?yàn)樗诠ぷ鲿r(shí)需要外圍電路的幫助才能正常可靠的工作。
c) ASIC集成電路。為了克服以上器件的缺點(diǎn),ASIC集成電路應(yīng)運(yùn)而生,ASIC電路是具有實(shí)現(xiàn)某種特定功能的一個(gè)芯片,有了ASIC電路,我們減小了設(shè)計(jì)電路的大小,更提高了工作的穩(wěn)定性。
現(xiàn)在標(biāo)準(zhǔn)的ASIC電路分為三種,分別是全定制產(chǎn)品、半定制產(chǎn)品和可編程邏輯器件。全定制產(chǎn)品是指根據(jù)具體的要求設(shè)計(jì)制造,全定制電路的使用條件就是產(chǎn)能需求很大。半定制產(chǎn)品是指為了簡(jiǎn)化設(shè)計(jì)、縮短研發(fā)時(shí)間和提高產(chǎn)能,半定制產(chǎn)品就是這樣一種方式??删幊踢壿嬈骷朔撕芏嗟膯?wèn)題,而且還可以再次編寫(xiě)程序,為設(shè)計(jì)和研發(fā)提供了方便,可以作為我們?cè)O(shè)計(jì)電路的理想器件?,F(xiàn)代的可編程邏輯器件在實(shí)現(xiàn)的功能上可分為兩類(lèi),一種是簡(jiǎn)單PLD,另一種是復(fù)雜PLD,兩種PLD在原理上相近,使用的場(chǎng)合不盡相同,圖2-2是PLD的分類(lèi)圖。
圖2-2 PLD的分類(lèi)圖
對(duì)比之下,F(xiàn)PGA和CPLD在目前的應(yīng)用更為廣泛些,這是由于這些可編程器件本身的功能更為強(qiáng)大、集成度很高,從而能實(shí)現(xiàn)更為復(fù)雜、較大規(guī)模的電路設(shè)計(jì)做基礎(chǔ),對(duì)于二次開(kāi)發(fā)更為有好處,F(xiàn)PGA和CPLD的區(qū)別如表2-1所示。
表2-1 FPGA與CPLD的區(qū)別示意圖
參數(shù)指標(biāo)
FPGA
CPLD
程序存儲(chǔ)
SRAM,外掛EEPROM
內(nèi)部的EEPROM
資源類(lèi)型
觸發(fā)器種類(lèi)繁多
電路組合形式多樣
集成度
很高
比較低
使用場(chǎng)合
大規(guī)模集成電路
中小規(guī)模集成電路
速度
很快
比較慢
其他資源
EAB
無(wú)
2.3 硬件描述語(yǔ)言簡(jiǎn)介
EDA技術(shù)可以采用多種靈活的編程語(yǔ)言,目前應(yīng)用比較廣泛的就是VHDL和VerilogHDL這兩種硬件描述語(yǔ)言。本次設(shè)計(jì)根據(jù)課題開(kāi)題報(bào)告中的要求采用VHDL語(yǔ)言編程,故以下重點(diǎn)介紹這一硬件描述語(yǔ)言。
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language,超高速集成電路硬件描述語(yǔ)言),VHDL語(yǔ)言是基于門(mén)級(jí)的邏輯設(shè)計(jì)語(yǔ)言,誕生于 1982 年,以后的幾十年里得到了迅猛的發(fā)展,現(xiàn)在已經(jīng)是數(shù)字系統(tǒng)電路的開(kāi)發(fā)必不可少的工具。VHDL語(yǔ)言主要用于數(shù)字系統(tǒng)的設(shè)計(jì)和仿真,它表述了很多的結(jié)構(gòu)或者開(kāi)發(fā)行為,內(nèi)含了一些接口模式。VHDL語(yǔ)言不僅具有普通編程語(yǔ)言的基本硬件特征外,它還能像高級(jí)語(yǔ)言一樣,用于我們?cè)O(shè)計(jì)數(shù)字系統(tǒng)。在進(jìn)行數(shù)字系統(tǒng)的硬件電路設(shè)計(jì)時(shí),我們之前采取的辦法就是首先選取合適的元器件,然后做好基于這些元器件的原理圖。這種方法是先設(shè)計(jì)好系統(tǒng)的頂層,再設(shè)計(jì)各個(gè)子系統(tǒng),這樣就基本做好了系統(tǒng)的硬件電路結(jié)構(gòu),設(shè)計(jì)從最基本的電路原理圖著手,然后一層一層逐層往上設(shè)計(jì),最終得到想要的波形文件。VHDL語(yǔ)言的語(yǔ)法嚴(yán)格,描述方法對(duì)于不同的模塊也會(huì)不太一樣。對(duì)于不同的描述方法要采用不同的編碼模塊才行。因此,VHDL語(yǔ)言學(xué)習(xí)起來(lái)不是很簡(jiǎn)單,需要首先學(xué)習(xí)簡(jiǎn)單的語(yǔ)句和語(yǔ)法,然后認(rèn)識(shí)一些典型的編程案例,進(jìn)行分析,這樣才能發(fā)揮出VHDL語(yǔ)言的強(qiáng)大功能。但是對(duì)于專(zhuān)業(yè)用戶(hù)而言,VHDL是非常有用的編程語(yǔ)言。為了快速地研發(fā)大規(guī)模集成電路,提高生產(chǎn)效率,并對(duì)研發(fā)成果保護(hù)以及增加成果的可復(fù)制性,各個(gè)大規(guī)模集成電路廠家都有自己的硬件描述語(yǔ)言。VHDL正式由于這種強(qiáng)大的需求才發(fā)展起來(lái)的,VHDL以形式化方式描述電路結(jié)構(gòu),并且和高級(jí)的描述方法結(jié)合起來(lái),可以描述硬件電路的功能,比電路的原理圖更直接地顯示電路關(guān)系。VHDL語(yǔ)言具有高級(jí)程序語(yǔ)言的一些特點(diǎn),他的主要目的就是用來(lái)編寫(xiě)電路的邏輯關(guān)系,電路的性質(zhì)決定了VHDL設(shè)計(jì)的邏輯模型。
VHDL語(yǔ)言以其鮮明的特點(diǎn)獲得了社會(huì)的認(rèn)同,并廣泛用于現(xiàn)在的大規(guī)模數(shù)字系統(tǒng)設(shè)計(jì)層次上,作為類(lèi)似于計(jì)算機(jī)高級(jí)語(yǔ)言的一種編程語(yǔ)言,VHDL語(yǔ)言具有強(qiáng)大的功能,且用戶(hù)體驗(yàn)效果好,可以方便地在用戶(hù)之間進(jìn)行交流,VHDL語(yǔ)言具有以下幾個(gè)特點(diǎn):
a) 電路設(shè)計(jì)形式多樣。VDHL語(yǔ)言可以支持靈活多樣的設(shè)計(jì)方法,很多的邏輯電路都可以使用VHDL語(yǔ)言來(lái)實(shí)現(xiàn),現(xiàn)在EDA軟件支持很多種硬件描述語(yǔ)言,VHDL語(yǔ)言就在其中;
b) 電路設(shè)計(jì)層次多樣。VHDL語(yǔ)言對(duì)電路的功能進(jìn)行逐層掃描,甚至到門(mén)級(jí)電路的標(biāo)準(zhǔn),并且VHDL還支持更多層次系統(tǒng)描述的能力。此外,不同層次的結(jié)構(gòu)描述語(yǔ)言可以和與之對(duì)應(yīng)的行為描述語(yǔ)言一起使用;
c) 實(shí)現(xiàn)有關(guān)工藝編程。在采用VHDL語(yǔ)言設(shè)計(jì)的數(shù)字系統(tǒng)時(shí),我們往往使用相應(yīng)的工具進(jìn)行使用前的仿真驗(yàn)證,從而可以更方便地描述電路所顯現(xiàn)的功能。當(dāng)設(shè)計(jì)需求發(fā)生改變時(shí),我們只需要改動(dòng)相應(yīng)的驗(yàn)證工具就可使得電路的功能發(fā)生改變,這對(duì)我們的設(shè)計(jì)是很方便的;
d) 易于共享和復(fù)用。VHDL語(yǔ)言作為標(biāo)準(zhǔn)的硬件描述語(yǔ)言,以其嚴(yán)格的語(yǔ)句及語(yǔ)法得到了廣泛的應(yīng)用。當(dāng)我們?cè)O(shè)計(jì)一個(gè)大規(guī)模的數(shù)字系統(tǒng)時(shí),不可能像設(shè)計(jì)中小規(guī)模數(shù)字系統(tǒng)一樣,從門(mén)級(jí)電路開(kāi)始設(shè)計(jì),而是應(yīng)該首先設(shè)計(jì)出相應(yīng)的子模塊,通過(guò)模塊的累加從而達(dá)到設(shè)計(jì)電路的要求。并且由于VHDL語(yǔ)言是一種基于仿真平臺(tái)的綜合語(yǔ)言,所以用VHDL語(yǔ)言設(shè)計(jì)出來(lái)的成果方便了用戶(hù)之間的交流,從而為設(shè)計(jì)者減少了壓力并大大地縮短了一個(gè)產(chǎn)品的研發(fā)周期。
VHDL語(yǔ)言主要用于描述數(shù)字電路結(jié)構(gòu)上,所涉及的電路一般有以下五個(gè)層次:系統(tǒng)級(jí)、算法級(jí)、寄存器傳輸級(jí)、門(mén)級(jí)和電路級(jí)。VHDL語(yǔ)言不僅有描述硬件電路性質(zhì)的語(yǔ)言,更重要的是它的語(yǔ)句類(lèi)似于計(jì)算機(jī)的C語(yǔ)言。VHDL語(yǔ)言的特點(diǎn)是將一個(gè)數(shù)字電路工程分成外部和內(nèi)部?jī)蓚€(gè)部分,在對(duì)一個(gè)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就會(huì)直接調(diào)用這個(gè)實(shí)體。VHDL語(yǔ)言可以支持自頂向下和基于庫(kù)的設(shè)計(jì)方法,還支持同步電路、異步電路、FPGA以及其他隨機(jī)電路的設(shè)計(jì),但是VHDL語(yǔ)言不具備描述模擬電路的能力。
2.4 FPGA開(kāi)發(fā)流程
現(xiàn)代集成電路設(shè)計(jì)的主要方式是基于硬件描述語(yǔ)言VHDL,經(jīng)過(guò)綜合布線與布局,下載到FPGA中進(jìn)行軟件合法性測(cè)試,從而實(shí)現(xiàn)了基本的門(mén)電路,比如與門(mén)、或門(mén)、與非門(mén)等,更加復(fù)雜的譯碼器也可以得到。大多數(shù)的FPGA包含觸發(fā)器,是一種記憶元件,或是一種記憶塊。
FPGA基于邏輯單元陣列LCA(Logic Cell Array),內(nèi)部集成配置邏輯模塊CLB、輸入輸出模塊IOB和內(nèi)部連線三個(gè)部分。FPGA是可編程器件,相比之前的PAL或者GAL而言,F(xiàn)PGA的內(nèi)部結(jié)構(gòu)做了很大的改動(dòng)。FPGA實(shí)現(xiàn)組合邏輯的方法是利用查表法,每個(gè)表端指向一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間可以利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無(wú)限次的編程。FPGA作為一種可編程邏輯器件的出現(xiàn)不是偶然的,而是可編程邏輯器件發(fā)展的必然結(jié)果,F(xiàn)PGA的出現(xiàn)同時(shí)也促進(jìn)了可編程邏輯的發(fā)展。上個(gè)世紀(jì)60年代,F(xiàn)PGA得到了大力發(fā)展,用FPGA設(shè)計(jì)的數(shù)字系統(tǒng)完全顛覆了以往的設(shè)計(jì)理念,用它設(shè)計(jì)的電路工作的可靠性非常高。FPGA內(nèi)部的邏輯塊可以被人為的連接,就像芯片里集成了一塊電路實(shí)驗(yàn)板一樣。成品的FPGA可以根據(jù)人們的意愿改變,所以FPGA具有強(qiáng)大的可編寫(xiě)功能。
FPGA雖說(shuō)是專(zhuān)用集成電路的一部分,但是它要比專(zhuān)用集成電路慢,想要實(shí)現(xiàn)同樣的功能,要比專(zhuān)用集成電路占用的電路面積要小很多。FPGA也有很多優(yōu)點(diǎn),比如從設(shè)計(jì)到成品的時(shí)間非常短,自帶的程序可擦除再覆蓋,具有良好的可執(zhí)行性。FPGA的設(shè)計(jì)流程一般是頂層設(shè)計(jì)、模塊設(shè)計(jì)、編譯仿真和現(xiàn)場(chǎng)調(diào)試。
可編程邏輯器件的設(shè)計(jì)過(guò)程是利用EDA開(kāi)發(fā)軟件和編程工具對(duì)器件進(jìn)行開(kāi)發(fā)的過(guò)程??删幊踢壿嬈骷囊话阍O(shè)計(jì)流程如圖2-3所示,包括設(shè)計(jì)準(zhǔn)備,設(shè)計(jì)輸入,功能仿真,設(shè)計(jì)處理,時(shí)序仿真和器件編程及測(cè)試等七個(gè)步驟。
圖2-3 可編程邏輯器件的一般設(shè)計(jì)流程
a) 設(shè)計(jì)準(zhǔn)備。設(shè)計(jì)一個(gè)系統(tǒng)我們首先要做的就是要進(jìn)行方案論證,然后選擇系統(tǒng)所需的元器件。根據(jù)設(shè)計(jì)的難易程度,比如系統(tǒng)達(dá)到的功能或是復(fù)雜程度、工作的可靠性以及綜合布線等進(jìn)行考量,選擇好我們的方案。一般而言,設(shè)計(jì)系統(tǒng)我們采用的是自上而下的方法。
b) 設(shè)計(jì)輸入。在確定好設(shè)計(jì)的要求后將電路以VHDL語(yǔ)言的形式表達(dá)出來(lái),下載到計(jì)算機(jī)中,這就是設(shè)計(jì)的輸入階段,設(shè)計(jì)輸入通常有以下幾種形式:??
原理圖輸入方式?。設(shè)計(jì)描述方式最直接的一種方法就是原理圖,軟件系統(tǒng)中的元件庫(kù)可以調(diào)用元件,然后再畫(huà)出原理圖。這對(duì)從業(yè)人員的要求就很高,需要掌握很多的專(zhuān)業(yè)方面知識(shí)。原理圖的主要優(yōu)點(diǎn)就是可以方便地仿真,偏于設(shè)計(jì)人員觀察信號(hào),并作出相應(yīng)的電路原理圖調(diào)整。但也有缺點(diǎn),就是需要人為地進(jìn)行改動(dòng),從而大大降低了效率。
硬件描述語(yǔ)言輸入方式?。硬件描述語(yǔ)言描述設(shè)計(jì)的方法是文本方式,它有兩種,一種是普通硬件描述語(yǔ)言,另一種是行為描述語(yǔ)言。普通硬件描述語(yǔ)言有ABEL、CUR和LFM等,它們支持邏輯方程。行為描述語(yǔ)言是常用的頂級(jí)描述語(yǔ)言,主要有VHDL和?Verilog?HDL兩個(gè)IEEE標(biāo)準(zhǔn)。其優(yōu)點(diǎn)是:編程語(yǔ)言基于系統(tǒng)頂層原理圖,設(shè)計(jì)人員利用邏輯驗(yàn)證確立方案的可行性;VHDL語(yǔ)言可移植性強(qiáng),便于系統(tǒng)設(shè)計(jì);邏輯描述和仿真功能強(qiáng)大,可以隨意在輸入庫(kù)之間轉(zhuǎn)換。?
波形輸入方式?。波形輸入方式主要是用來(lái)建立和編輯波形設(shè)計(jì)文件,以及輸入仿真向量和功能測(cè)試向量。
c) 功能仿真。所謂功能仿真就是對(duì)電路的實(shí)現(xiàn)功能進(jìn)行驗(yàn)證,仿真的結(jié)果并沒(méi)有延時(shí),僅驗(yàn)證電路功能。在開(kāi)始仿真前,首先用VHDL語(yǔ)言編程,然后輸入到波形編輯器中建立文件,仿真會(huì)產(chǎn)生一些信號(hào)脈沖,觀察信號(hào)的變化與邏輯驗(yàn)證相比較,再做出一些修改。
d) 設(shè)計(jì)處理。系統(tǒng)設(shè)計(jì)中的核心環(huán)節(jié)就是設(shè)計(jì)處理。編譯軟件將對(duì)設(shè)計(jì)輸入文件進(jìn)行邏輯化簡(jiǎn)、綜合優(yōu)化和適配,最后產(chǎn)生編程用的編程文件。設(shè)計(jì)處理過(guò)程如下:?
語(yǔ)法和設(shè)計(jì)規(guī)則檢查;
邏輯優(yōu)化;
配和分割;
布局和布線。
e) 時(shí)序仿真。另外一種帶延時(shí)的仿真叫時(shí)序仿真,但是器件的延時(shí)取決于電路的布局與布線,因此在設(shè)計(jì)處理過(guò)程中,在對(duì)電路仿真前首先分析電路的時(shí)序和工作的可靠性,以及檢查并消除冒險(xiǎn)競(jìng)爭(zhēng)等是很重要的。
f) 編程測(cè)試。開(kāi)始時(shí)序仿真后,編程就開(kāi)始調(diào)用軟件的數(shù)據(jù)。對(duì)FPGA來(lái)說(shuō),編程后產(chǎn)生了位數(shù)據(jù)庫(kù)文件,然后自動(dòng)完成編程數(shù)據(jù)下載到FPGA這一過(guò)程。
在滿(mǎn)足了編程所需的電壓、時(shí)序和算法后,器件編程才能成功。一般的FPGA器件編程需要專(zhuān)門(mén)設(shè)計(jì)的編程器來(lái)完成,但是基于高速閃存的FPGA可以由可擦寫(xiě)的存儲(chǔ)元件修改,這樣就進(jìn)行了編程測(cè)試。
2.5 FPGA器件選型
傳統(tǒng)的可編輯器件存在著很多缺陷,因此導(dǎo)致了FPGA的誕生。FPGA(Field-Programmable Gate Array)即現(xiàn)場(chǎng)可編程門(mén)陣列,屬于大規(guī)模集成電路中的一種,同時(shí)也是一種半加工電路,克服了加工電路本身的缺陷,同時(shí)還增加了自身邏輯門(mén)電路的數(shù)量,并提高了工作效率?,F(xiàn)代集成電路設(shè)計(jì)的主要方式是基于硬件描述語(yǔ)言VHDL,經(jīng)過(guò)綜合布局,下載到FPGA中進(jìn)行軟件合法性測(cè)試,從而實(shí)現(xiàn)了基本的門(mén)電路,比如與門(mén)、或門(mén)、與非門(mén)等,大多數(shù)的FPGA包含觸發(fā)器,是一種記憶元件,或是一種記憶塊。
FPGA內(nèi)部的邏輯塊可以被人為的連接,就像芯片里集成了一塊電路實(shí)驗(yàn)板一樣。成品的FPGA可以根據(jù)人們的意愿改變,所以FPGA具有強(qiáng)大的可編寫(xiě)功能。
FPGA雖說(shuō)是專(zhuān)用集成電路的一部分,但是它要比專(zhuān)用集成電路慢,想要實(shí)現(xiàn)同樣的功能,專(zhuān)用集成電路占用的電路面積要小很多。但是優(yōu)點(diǎn)也有很多,比如從設(shè)計(jì)到成品的時(shí)間非常短,自帶的程序可擦除再覆蓋,具有良好的可執(zhí)行性。
FPGA技術(shù)設(shè)計(jì)的原理來(lái)自于基本的邏輯單元陣列組合,通過(guò)組合達(dá)到實(shí)現(xiàn)的功能。FPGA內(nèi)部集成了很多的模塊,有邏輯模塊、控制模塊和總線模塊。FPGA能實(shí)現(xiàn)組合設(shè)計(jì)的原因是它內(nèi)部集成了查表算法,從一個(gè)表端到另一個(gè)表端進(jìn)行了特定的指向,最終指向D觸發(fā)器的輸入端,通過(guò)觸發(fā)器的觸發(fā)功能完成系統(tǒng)輸入與輸出接口的驅(qū)動(dòng),這樣構(gòu)成的功能模塊實(shí)現(xiàn)的功能就很強(qiáng)大了,既可以實(shí)現(xiàn)功能仿真又可以實(shí)現(xiàn)時(shí)序仿真,模塊與模塊之間的連接通過(guò)可靠的金屬線。FPGA的工作原理是通過(guò)內(nèi)置的模塊編譯來(lái)實(shí)現(xiàn)的,存儲(chǔ)單元的大小決定了電路實(shí)現(xiàn)功能的復(fù)雜程度,由于編譯軟件的靈活性,F(xiàn)PGA受到了很多用戶(hù)的歡迎。
整個(gè)系統(tǒng)設(shè)計(jì)的最重要部分就是FPGA的選型,選型應(yīng)該根據(jù)很多因素來(lái)決定,型號(hào)如果選擇不好就會(huì)對(duì)整個(gè)設(shè)計(jì)系統(tǒng)的運(yùn)行不利,因此,合理的選型可以節(jié)省了設(shè)計(jì)時(shí)間,優(yōu)化了設(shè)計(jì)結(jié)構(gòu)。本次設(shè)計(jì)選用的FPGA芯片是Altera公司的CycloneⅡ系列的EP2C35F672C8。該芯片擁有的邏輯單元多達(dá)33216個(gè),并且自帶484K片內(nèi)RAM,可以很好的完成本設(shè)計(jì)任務(wù),其余的資源可供后期開(kāi)發(fā)應(yīng)用。
3. HDB3編解碼原理
3.1 基本碼型簡(jiǎn)介
在用HDB3碼設(shè)計(jì)編解碼器設(shè)計(jì)之前要首先了解傳輸信號(hào)的基本碼型,所以首先介紹NRZ碼、AMI碼和HDB3碼。NRZ碼的全稱(chēng)是Non-Return to Zero,NRZ碼的編碼規(guī)則如下:信道傳輸來(lái)的信號(hào)的1是有脈沖的,而0是沒(méi)有脈沖的,NRZ碼的信號(hào)占空比是1。但是NRZ碼的一個(gè)缺點(diǎn)就是含有太大的直流分量,而且頻率主要集中在高頻段。
NRZ碼分為單極性NRZ碼和雙極性NRZ碼兩種,單極性NRZ碼表示一個(gè)信道時(shí),二進(jìn)制的1和0分別對(duì)應(yīng)著基帶信號(hào)的正電平和負(fù)電平,在整個(gè)信號(hào)的傳輸過(guò)程中,基帶信號(hào)的電平的極性保持不變,如圖3-1所示。
圖3-1 單極性NRZ碼示意圖
在NRZ和雙極性非歸零編碼過(guò)程中,二進(jìn)制的1和0也分別對(duì)應(yīng)著基帶信號(hào)的正負(fù)電平脈沖,如圖3-2所示。雙極性非歸零NRZ嗎的特點(diǎn)是濾去了直流分量、電壓門(mén)檻低、工作頻率穩(wěn)定,因此在傳輸信號(hào)時(shí)的抗干擾性能強(qiáng),甚至在鋪設(shè)電纜時(shí)可以不用鋪設(shè)屏蔽線就能直接傳輸,雙極性的NRZ碼如圖3-2所示。
圖3-2 雙極性NRZ碼示意圖
現(xiàn)在一般使用雙極性歸零碼也就是AMI碼來(lái)進(jìn)行信號(hào)的傳輸,下面介紹AMI碼。
AMI碼傳輸?shù)氖墙惶娴男盘?hào),根據(jù)傳輸代碼中出現(xiàn)0或者1來(lái)進(jìn)行編碼。當(dāng)代碼中傳輸?shù)氖?信號(hào)時(shí),傳輸碼仍然為0保持不變,而當(dāng)代碼中傳輸?shù)氖?信號(hào)時(shí)則變?yōu)?1、-1這樣極性相互交替的脈沖。AMI碼并沒(méi)有直流成分信號(hào),且信號(hào)基本為低頻信號(hào),在上述過(guò)程進(jìn)行后,這樣在信道傳輸?shù)倪^(guò)程中信號(hào)不容易失真,保證了傳輸?shù)目煽啃?。AMI碼優(yōu)點(diǎn)在于編碼電路相對(duì)比較簡(jiǎn)單,誤碼狀況很容易觀察出來(lái),但是沒(méi)有對(duì)長(zhǎng)的連串0進(jìn)行判斷,過(guò)長(zhǎng)的0序列也會(huì)造成對(duì)另一端的解碼工作的影響。但是AMI的缺點(diǎn)就是提取定時(shí)信號(hào)比較困難,可能在傳輸過(guò)程中出現(xiàn)3個(gè)及3個(gè)以上的長(zhǎng)連0數(shù)據(jù)串,圖3-3是AMI碼的示意圖。
圖3-3 AMI碼示意圖
HDB3碼之所以被稱(chēng)為三階高密度雙極性碼時(shí)因?yàn)樗趥鹘y(tǒng)AMI碼上做了很大的改進(jìn),從而得到了一種新型的NRZ碼,也就是單極性歸零碼。數(shù)據(jù)在傳輸過(guò)程中沒(méi)有出現(xiàn)4個(gè)及4個(gè)以上含0字符的時(shí),此時(shí)HDB3碼就是AMI碼,也就是替代了原先的馬克反演碼,是一種正負(fù)交替的信號(hào)。當(dāng)信號(hào)傳輸過(guò)程中出現(xiàn)四個(gè)以上或含0的四個(gè)字符,首先對(duì)字符按照AMI編碼規(guī)則進(jìn)行編碼,然后再進(jìn)行以下的操作,最后的一位0將由破壞性脈沖信號(hào)V碼的正負(fù)性來(lái)替換,但是考慮到AMI碼正負(fù)性的交替,只要保證其正負(fù)交替的極性與原來(lái)非0的極性相同即可。同時(shí),兩個(gè)相鄰的V碼的標(biāo)志交替變換極性,以確保代碼沒(méi)有直流組件。在上述過(guò)程進(jìn)行開(kāi)始后,兩個(gè)相鄰的V碼為了嚴(yán)格保證沒(méi)有直流組件,其極性需要正負(fù)交替。在本次設(shè)計(jì)中,插入V碼后的數(shù)據(jù)串被稱(chēng)為破壞性序列。當(dāng)V碼和相鄰V碼間的0的個(gè)數(shù)是奇數(shù)的時(shí)候,最終編譯產(chǎn)生的便是我們想要的HDB3編碼。從另一個(gè)方面說(shuō),在上述過(guò)程進(jìn)行后,破壞性序列的首位0應(yīng)該被插B信號(hào)的正負(fù)信號(hào)所取代,至于B碼的正負(fù)極性判定就要用到前面的非0信號(hào)來(lái)判定,它與非0信號(hào)之間應(yīng)該是相反的,而且非0信號(hào)緊挨著V碼,這樣就完成了整個(gè)編碼的工作,它的轉(zhuǎn)換步驟見(jiàn)表3-1。
表3-1 HDB3編碼的格式表
二進(jìn)制序列
1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1
AMI碼
1 -1 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1
編碼的第一步
1 -1 1 0 0 0 V -1 0 0 0 -V 0 0 0 -V 1
編碼的第二步
1 -1 1 0 0 0 V -1 0 0 0 -V B 0 0 V -1
設(shè)定信息碼為0000 0110 0001 0000,那么對(duì)應(yīng)的NRZ碼、AMI碼、HDB3碼的波形如圖3-4所示。
圖3-4 NRZ、AMI、HDB3碼波形圖
由圖3-4我們可以知道,不管是傳統(tǒng)的AMI碼還是改進(jìn)的HDB3碼,它們都是連續(xù)的信號(hào),沒(méi)有離散,信號(hào)對(duì)應(yīng)著基本的NRZ波形,通過(guò)編譯工作,NRZ碼就可以進(jìn)行直接的傳輸。在設(shè)計(jì)過(guò)程中,本文將原始信號(hào)轉(zhuǎn)換為AMI碼,然后再轉(zhuǎn)換成HDB3碼,當(dāng)AMI碼中不出現(xiàn)4連0信號(hào)時(shí),此時(shí)HDB3碼就是AMI碼,但是只要出現(xiàn)4連0碼,HDB3碼就需要重新進(jìn)行編碼了。
3.2 HDB3碼的編解碼規(guī)則
a) HDB3碼的編碼規(guī)則:在傳輸信號(hào)的接收端所接受到的HDB3碼并不能直接使用,還要將其再還原成AMI碼才能使用。AMI在傳輸過(guò)程中不會(huì)改變0的極性,但是會(huì)改變1的極性,使得1的極性正負(fù)交替,在把AMI碼變換為HDB3碼的過(guò)程中就要考慮AMI中的4連0情況了,當(dāng)AMI中沒(méi)有4連0時(shí),此時(shí)的HDB3碼就是AMI碼,但是AMI中有了4連0時(shí),此時(shí)就需要將連0數(shù)據(jù)串的最后一位0替換成V碼的正負(fù)極性信號(hào),用+V和-V來(lái)表示。然后對(duì)比觀察兩個(gè)V符號(hào)出現(xiàn)的位置,記錄下這個(gè)位置,數(shù)位置之間的非0符號(hào)的個(gè)數(shù),如果數(shù)出來(lái)的非0個(gè)數(shù)是整數(shù)個(gè)的話(huà)就需要將出現(xiàn)V符號(hào)位置的前一個(gè)非0符號(hào)的首位0改成+B或者-B字母,此時(shí)根據(jù)前面非0信號(hào)的極性來(lái)判定B的極性,簡(jiǎn)單的說(shuō),B的極性與前面的非0信號(hào)極性相反。HDB3碼的基帶信號(hào)含有很少的低頻率,并且無(wú)直流要素,為了提取同步信號(hào)信息,設(shè)計(jì)考慮的只是在連0數(shù)據(jù)串只有3個(gè)的情況下的信號(hào)傳輸。
綜上所述歸納總結(jié)HDB3碼的特點(diǎn):基帶信號(hào)的所含的頻率很低,并且濾去了直流要素;為了利于提取定時(shí)信息,連0串符號(hào)最多只有3個(gè);編碼規(guī)則相比較而言復(fù)雜,信號(hào)的傳輸可靠性提高。
b) HDB3碼的解碼規(guī)則:從HDB3碼的編碼規(guī)則中可以推斷出來(lái),在HDB3碼的每一個(gè)V碼前面必須有一個(gè)與其極性相同的非0碼。因此,解碼器的工作原理如下:如果兩個(gè)相鄰的非零的HDB3碼序列中的代碼都是相同的極性,則第二個(gè)必須是V,那么就將其之前的所有三個(gè)代碼轉(zhuǎn)換成0000序列,然后把所有剩下的的± 1序列轉(zhuǎn)換成1序列,0序列仍然是0序列。與其他的解碼器相比,這種設(shè)計(jì)實(shí)現(xiàn)的解碼器最大的優(yōu)點(diǎn)在于它有解碼功能以及錯(cuò)誤檢測(cè)和糾正功能,當(dāng)輸入的HDB3碼有一些錯(cuò)誤時(shí),它可以在解碼之前先糾正它們。
根據(jù)HDB3碼的編碼規(guī)則可知,HDB3碼譜序列中的錯(cuò)誤一定是以下三種情況之一造成的:同極性的兩個(gè)相鄰的非0碼的個(gè)數(shù)超過(guò)2;相鄰的0序列碼的個(gè)數(shù)超過(guò)3;極性相同的兩個(gè)相鄰的非0代碼間的0序列的個(gè)數(shù)小于2。當(dāng)發(fā)生錯(cuò)誤時(shí),編碼器將根據(jù)一定的原則首先糾正錯(cuò)誤的代碼,這個(gè)原則便是最大化修改后的每個(gè)解碼步驟的結(jié)果中包含0的個(gè)數(shù),考慮到NRZ序列碼轉(zhuǎn)換成為HDB3碼并被傳輸?shù)钠渲幸粋€(gè)特點(diǎn)就是它包含很長(zhǎng)的連續(xù)的0序列。其修改過(guò)程如下,當(dāng)錯(cuò)誤代碼為0,首先要看它是否能夠取代一個(gè)它之前的與第一個(gè)非0的代碼相同的極性的非0代碼。如果答案是否定的,那么取代它的極性相反的非0代碼。當(dāng)錯(cuò)誤的代碼是非0,首先要看它是否可以被0所取代。如果答案是否定的,然后由它取代極性相反的非0代碼。關(guān)于這個(gè)設(shè)計(jì)提出來(lái)的修改建議中,這是所有可能中唯一的。當(dāng)錯(cuò)誤的HDB3碼序列在這一原則的基礎(chǔ)上糾正之后,解碼結(jié)果將會(huì)有更多的0序列。經(jīng)過(guò)更正的錯(cuò)誤的代碼,它會(huì)被立刻解碼。當(dāng)輸入HDB3碼沒(méi)有錯(cuò)誤,它就會(huì)被直接解碼。
4. HDB3編解碼器的設(shè)計(jì)與實(shí)現(xiàn)
4.1 總體設(shè)計(jì)構(gòu)思
本研究的主要目的就是利用FPGA完成HDB3編解碼器的設(shè)計(jì),本課題主要研究的內(nèi)容是利用FPGA芯片,選擇合適的一種碼型對(duì)信號(hào)進(jìn)行編碼,設(shè)計(jì)信號(hào)傳輸過(guò)程中的編碼器和解碼器,最終仿真驗(yàn)證成果。本次設(shè)計(jì)采用的是HDB3碼對(duì)信號(hào)進(jìn)行編碼,這是由于HDB3碼相比較于傳統(tǒng)的AMI碼而言可以打破4連“0”,在解碼環(huán)節(jié)便于同步提取,HDB3碼的的各項(xiàng)指標(biāo)都基本符合設(shè)計(jì)的預(yù)期效果,比如在頻率、頻帶上。圖4-1為系統(tǒng)總體設(shè)計(jì)框圖,表明了總體上設(shè)計(jì)需要的模塊以及各個(gè)子模塊之間的關(guān)系。
圖4-1 HDB3編解碼框圖
HDB3編碼器模塊是將AMI碼變換為HDB3碼,通過(guò)相關(guān)的功能模塊傳送到HDB3解碼器模塊,在解碼模塊檢測(cè)解碼后的信號(hào)與AMI信號(hào)是否一致,一致則證明編解碼器設(shè)計(jì)成功,否則就要重新設(shè)計(jì)。
4.2 HDB3編碼器的FPGA實(shí)現(xiàn)
本次設(shè)計(jì)的基本內(nèi)容就是在原始信號(hào)的基礎(chǔ)上,利用HDB3編解碼規(guī)則來(lái)實(shí)現(xiàn)系統(tǒng)所要實(shí)現(xiàn)的功能,由于加入了外圍的模塊電路,最終實(shí)現(xiàn)了傳輸信號(hào)的單雙極性變換過(guò)程,HDB3編碼模塊如圖4-2所示。
圖4-2 HDB3編碼框圖
本次設(shè)計(jì)的HDB3編碼器模塊按照功能劃分為三個(gè)組成部分:插“V”模塊、插“B”模塊以及極性變換模塊。由于采用各個(gè)模塊之間采用了頻率一樣的時(shí)鐘上升沿信號(hào),這就保證了各個(gè)模塊工作的一致,也為仿真創(chuàng)造了一致的時(shí)序,設(shè)計(jì)的編碼器為了清除異步信號(hào)還帶有清零端口,下面分別介紹各個(gè)組成模塊。
4.2.1 插“V”模塊
建立好一個(gè)插“V”模塊就是當(dāng)傳輸信號(hào)中出現(xiàn)四連“0”的時(shí)候?qū)ζ溥M(jìn)行檢測(cè),從而得到其位置,把最后一個(gè)“0”替換為“V”模塊中的V碼,V碼可以是上升沿有效的高電平,在其他原則條件下,就保證了傳輸信號(hào)的解碼輸出。為了后續(xù)工作的方便開(kāi)展,我們用“11”來(lái)代表插入的信號(hào),“01”來(lái)代表“1”,“00”來(lái)代表“0”。事實(shí)上,插“V”模塊的設(shè)計(jì)并不難,我們首先檢測(cè)傳送到來(lái)的原始信源,如果信源中出現(xiàn)了0碼,找出與之相鄰的0碼的個(gè)數(shù),如果查到的個(gè)數(shù)不小于3個(gè)時(shí),我們就用V碼來(lái)替換原始信源。如果沒(méi)有出現(xiàn)0碼,原始信源就會(huì)繼續(xù)傳送,這就實(shí)現(xiàn)了插“V”模塊的設(shè)計(jì)。
在前面得設(shè)計(jì)中插“V”模塊的設(shè)計(jì)用到了4位選擇器,用來(lái)標(biāo)出插“V”的具體位置。在程序的編譯過(guò)程中,我們編寫(xiě)了VHDL語(yǔ)句來(lái)實(shí)現(xiàn)插“V”的編碼功能??梢圆捎脿顟B(tài)機(jī)的方式控制,為了簡(jiǎn)化這里使用流程來(lái)控制,將條件判斷語(yǔ)句(if語(yǔ)句)嵌套在選擇語(yǔ)句(case語(yǔ)句)中,這樣控制來(lái)實(shí)現(xiàn)功能。(詳細(xì)程序見(jiàn)附錄一)
當(dāng)輸入了一序列消息代碼后,在完成插入“V”符號(hào)操作后,對(duì)比輸入信息代碼與插入“V”之間的關(guān)系如表4-1所示:
表4-1 代碼與插“V”關(guān)系表
代碼
1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0
插“V”后
01 00 00 00 11 01 00 00 00 11 01 01 00 00 00 11
4.2.2 插“B”模塊
HDB3編解碼時(shí)并無(wú)直流產(chǎn)生的原因就是信碼極性的相互交替,在加入了插“V”模塊后可能會(huì)對(duì)極性的交替產(chǎn)生影響,所以就引入了插“B”模塊,插“B”模塊可以很好的解決極性交替失常的問(wèn)題。插“B”模塊的工作原理是:當(dāng)兩個(gè)V碼之間的非“0”符號(hào)的個(gè)數(shù)不是奇數(shù)時(shí),就在含有非“0”數(shù)據(jù)串的第一位用“B”符號(hào)來(lái)替換,這就是插“B”模塊的基本實(shí)現(xiàn)原理。
上圖中的插“B”模塊最大的難點(diǎn)就是狀態(tài)不確定因素如何解決,這里面有一個(gè)狀態(tài)機(jī)的時(shí)序問(wèn)題。其中還有如何確定是“1”,還是“V”的問(wèn)題。解決這個(gè)難點(diǎn)的方法是:我們首先應(yīng)把經(jīng)過(guò)插“V”模塊操作的信號(hào)移出寄存器的寄存地址,由于采用了一樣的時(shí)鐘頻率,就保證了插“B”模塊的順利進(jìn)行。此時(shí)再把“V”符號(hào)替換為“B”符號(hào),本次設(shè)計(jì)采用的這兩個(gè)獨(dú)立模塊要調(diào)用前面提到的數(shù)據(jù)庫(kù),D觸發(fā)器的輸出會(huì)有一個(gè)延遲,在后面的仿真圖中我們可以清晰的看出來(lái)。
在做好了各個(gè)獨(dú)立模塊之后,下面要做的就是在元件庫(kù)中把各個(gè)模塊連接起來(lái),在原理圖中把接口引出,定義實(shí)體作為元件庫(kù)中的一個(gè)元件,然后通過(guò)VHDL語(yǔ)言編程下載到軟件中跟原理圖中的接口相連接,這樣設(shè)計(jì)的元件庫(kù)中的元件屬于比較低的設(shè)計(jì)層次,還需要頂層原理的設(shè)計(jì),已經(jīng)設(shè)計(jì)好的子模塊可以在后面的仿真中用到。VHDL語(yǔ)言引用的是實(shí)體元件,它可以很好地完成系統(tǒng)的頂層設(shè)計(jì)。
在進(jìn)行插“B”模塊的設(shè)計(jì)之前,我們首先應(yīng)該找出插“V”模塊后的V碼的具體位置,前面已經(jīng)提到,“11”代表“V”的位置,“01”代表“1”,“00”代表“0”,雙極性編碼就可以準(zhǔn)確找出V碼的位置。按照這種方式,輸入代碼與插“B” 及插“V”后的信號(hào)關(guān)系如表4-2所示:
表4-2 代碼插入模塊示意圖
代 碼
1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1
插“V”后
01 00 00 00 11 01 00 00 00 11 01 01 00 00 00 11 01 01
插“B”后
01 00 00 00 11 01 00 00 00 11 01 01 10 00 00 11 01 01
4.2.3 極性變換模塊
根據(jù)上面的碼型對(duì)比圖可以知道,兩個(gè)相鄰位置的V符號(hào)在正負(fù)號(hào)之間不斷進(jìn)行極性交替變換,這種編碼的方式同時(shí)也保證了V碼的極性和首位不是0碼的極性是相同的。我們用“11”、“10”和“01”來(lái)分別代替“V”、“B”和“1”,這就是雙相碼標(biāo)識(shí)的方法。
經(jīng)過(guò)進(jìn)一步的分析與討論可以知道,V碼的極性應(yīng)與第一位非“0”信號(hào)的極性一致,B碼的極性應(yīng)與第一位非“0”信號(hào)的極性相反。因?yàn)槲覀冇谩?1”來(lái)代替信號(hào)“V”碼,從而可以很清晰地看出信號(hào)之間的區(qū)別,只要將V碼進(jìn)行適度的極性變換就可以讓1碼和B碼一塊地變換極性,上述過(guò)程就是HDB3的編碼過(guò)程,這就實(shí)現(xiàn)了單極性到雙極性的變換。
在QUARTUS Ⅱ軟件中急需解決這樣一個(gè)問(wèn)題,就是這個(gè)軟件本身并不能自動(dòng)識(shí)別“-1”,因?yàn)椴还苁枪δ芊抡孢€是時(shí)序仿真都只能識(shí)別“1”和“0”。故在本次設(shè)計(jì)中采用兩相碼來(lái)解決這個(gè)問(wèn)題,在軟件設(shè)計(jì)中加入四選一數(shù)據(jù)選擇開(kāi)關(guān)完成兩相碼的定義,我們用“00”、“01”、“11”分別取代“0”、“+1”、“-1”,這樣QUARTUS Ⅱ軟件就可以自動(dòng)地識(shí)別和轉(zhuǎn)換了。
根據(jù)以上的設(shè)計(jì)想法首先編寫(xiě)好源程序,在QUARTUS Ⅱ軟件中生成可執(zhí)行的文件,下載到目標(biāo)芯片中就可以看到仿真的結(jié)果。對(duì)比發(fā)現(xiàn)波形的變化并不太平穩(wěn),因此在選擇器的地址編碼上采用數(shù)組的校驗(yàn)方法,這樣就得到了符合設(shè)計(jì)要求的波形。
4.2.4 HDB3編碼器的仿真
在完成了電路結(jié)構(gòu)的搭建并寫(xiě)好VHDL程序后,下一步就是在仿真軟件中進(jìn)行仿真了,仿真有著嚴(yán)格的思路,要遵循一定的步驟,在仿真之前還應(yīng)該把搭建好的電路檢查一下,并且對(duì)程序進(jìn)行逐一檢查。
按照上述思路編寫(xiě)好程序,然后將其生成可下載文件,下載到FPGA中,但其輸出結(jié)果發(fā)現(xiàn)是單極性雙電平信號(hào),并不是像“+1”、“-1”、“0” 這樣多種電平變化的波形,事實(shí)上,采用數(shù)據(jù)選擇器實(shí)現(xiàn)四選一功能,從而可以得到如圖4-3所示符合規(guī)則的“+1”、“-1”、“0”在輸出端輸出變化的波形。
圖4-3 HDB3編碼器仿真波形
下面是波形分析:圖4-3是編碼器在仿真軟件中得到的仿真波形,從圖中我們可以清晰地看出來(lái),主要有4路信號(hào)波形能反應(yīng)出編碼的仿真,分別是輸入波形、輸出波形、時(shí)鐘上升沿、V碼波形,傳輸信號(hào)經(jīng)過(guò)了前面編碼器設(shè)計(jì)的插“V”模塊和補(bǔ)“B”模塊后,得到的一個(gè)輸出波形的時(shí)序仿真圖,經(jīng)過(guò)對(duì)比測(cè)取波形的偏移量后發(fā)現(xiàn),輸出波形相比較于輸入波形來(lái)說(shuō),是有一定的延遲的,經(jīng)過(guò)認(rèn)真的對(duì)比后發(fā)現(xiàn)大約有5個(gè)周期的延遲,用時(shí)鐘脈沖的上升沿來(lái)保證所有模塊的工作頻率一致,這就為查看波形提供了極大的方便。圖中DATA-IN表示碼元輸入,CLOCK表示時(shí)鐘輸入,DATA-OUT表示插“V”后二進(jìn)制數(shù)碼輸出,V-CNT表示插“B”后的二進(jìn)制數(shù)碼輸出,“000”表示“0”,“010”表示“-1”,“110”表示“+1”,“011”“-V”表示,“111”表示“+V”,“001”表示“-B”,“101”表示“+B”。
4.3 HDB3解碼器的FPGA實(shí)現(xiàn)
本次設(shè)計(jì)中解碼器的設(shè)計(jì)利用了各個(gè)模塊的組合來(lái)實(shí)現(xiàn)的,因?yàn)橹霸O(shè)計(jì)了編碼器,所以有些模塊是根據(jù)了編碼模塊來(lái)進(jìn)行的解碼設(shè)計(jì),本次設(shè)計(jì)的解碼器共有4大模塊,分別是整流模塊、V碼檢測(cè)模塊、時(shí)鐘提取模塊和扣V模塊,模塊與模塊之間通過(guò)嚴(yán)謹(jǐn)?shù)倪壿嬯P(guān)系連接起來(lái)構(gòu)成了這樣的一個(gè)解碼器,設(shè)計(jì)中還用到了兩個(gè)相加電路,用于V碼的計(jì)算,圖4-4是HDB3解碼器框圖。
圖4-4 HDB3解碼框圖
正如圖中所示的一樣,HDB3碼傳輸過(guò)來(lái)之后經(jīng)過(guò)了兩個(gè)整流電路,一個(gè)是正整流電路,一個(gè)是負(fù)整流電路,這樣就分別整流成了帶有正負(fù)極性的信號(hào)。接下來(lái)要經(jīng)過(guò)“+V”碼和“-V”碼的檢測(cè)電路,這個(gè)電路的工作原理是:當(dāng)信號(hào)中沒(méi)有含V碼脈沖時(shí),這時(shí)信號(hào)脈沖“1”的極性會(huì)交替變換;當(dāng)出現(xiàn)兩個(gè)含“+1”或“-1”信號(hào)時(shí),我們根據(jù)前面的
收藏
編號(hào):12802983
類(lèi)型:共享資源
大?。?span id="ylynoj7" class="font-tahoma">5.62MB
格式:ZIP
上傳時(shí)間:2020-05-24
20
積分
- 關(guān) 鍵 詞:
-
基于
fpga
hdb3
編解碼器
設(shè)計(jì)
說(shuō)明書(shū)
仿單
- 資源描述:
-
基于FPGA的HDB3編解碼器的設(shè)計(jì)說(shuō)明書(shū),基于,fpga,hdb3,編解碼器,設(shè)計(jì),說(shuō)明書(shū),仿單
展開(kāi)閱讀全文
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶(hù)自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶(hù)書(shū)面授權(quán),請(qǐng)勿作他用。