周慶芳
【摘 要】本文在Altera公司開發(fā)的Quartus II開發(fā)平臺(tái)上,利用EDA技術(shù),采用VHDL程序設(shè)計(jì)輸入和原理圖設(shè)計(jì)輸入混合設(shè)計(jì)的方式,基于FPGA數(shù)字集成電路提出一種簡(jiǎn)單實(shí)用的8B10B編碼器的實(shí)現(xiàn)方法,完成8B10B編碼器模型的設(shè)計(jì)。其輸入輸出特性滿足8B10B基本原理和核心算法,實(shí)現(xiàn)了設(shè)計(jì)的要求。
【關(guān)鍵詞】CPLD 8B10B編碼器 EDA indata 時(shí)序仿真
一、前言
8B10B編碼技術(shù)廣泛應(yīng)用在串行連接SCSI、串行ATA、光纖鏈路、以太網(wǎng)、XAUI、PCI Express總線、Infini Band、Serial Rapid IO、Hyper Transport總線以及IEEE1394b接口(火線)等技術(shù)中[1]。8B10B2將8bit代碼組合編碼成10bit代碼,代碼組合包括256個(gè)數(shù)據(jù)字符編碼和12個(gè)控制字符編碼,通過仔細(xì)選擇編碼方法可以獲得不同的優(yōu)化特性[2]。在高速串行流中,如果1碼元或者0碼元有連續(xù)多位沒有發(fā)生變化,就會(huì)因?yàn)殡妷旱年P(guān)系而產(chǎn)生誤碼[3]。8B10B編碼方式保證了直流平衡,保證在串行碼元流中不會(huì)產(chǎn)生超過4個(gè)連續(xù)的1碼元或者0碼元,從而防止碼間干擾。
二、8B10B編碼器的實(shí)現(xiàn)
(一)8B10B編碼器頂層設(shè)計(jì)思路
8B10B是一個(gè)線路編號(hào),其標(biāo)注了一個(gè)8位符號(hào)到10位符號(hào)來完成直流平衡和有界視差。這是信號(hào)的一個(gè)重要屬性,其需要在很高速率下發(fā)送以減少符號(hào)間干擾。8位數(shù)據(jù)被當(dāng)作一個(gè)10位的實(shí)體來傳輸。這個(gè)數(shù)據(jù)的低5位被編碼成6位的組,最高的3位被編碼成一個(gè)4位組。這些編碼被連接在一起在電線上傳輸從而組成10位的符號(hào)[5]。
本文的8B10B編碼器采用層次描述方式,也采用原理圖輸入和文本輸入混合方式建立描述語言。8B10B編碼器由indata模塊、B3B4模塊、B5B6模塊、outdata模塊組成。indata模塊實(shí)現(xiàn)輸入8位信號(hào),并行輸出3位信號(hào)和5位信號(hào),為下一步3B4B編碼和5B6B編碼做基礎(chǔ)準(zhǔn)備。B3B4模塊實(shí)現(xiàn)了輸入3位碼元,通過查表法,輸出相對(duì)應(yīng)的4位編碼。indata模塊與B3B4 模塊、B5B6模塊之間的數(shù)據(jù)總線分別為3位和5位。Outdata模塊與B3B4模塊、B5B6模塊之間的數(shù)據(jù)總線分別為4位和6位。
(二)indata模塊設(shè)計(jì)
本文使用VHDL語言設(shè)計(jì)indata數(shù)據(jù)分流模塊。VHDL語言對(duì)時(shí)序器件功能和邏輯行為有強(qiáng)大的描述能力,體現(xiàn)與設(shè)計(jì)平臺(tái)和硬件實(shí)現(xiàn)對(duì)象無關(guān)性的優(yōu)秀特點(diǎn)。
運(yùn)行QuartusII軟件,按要求新建工程文件,在設(shè)計(jì)窗口輸入indata分流模塊的VHDL設(shè)計(jì)程序后,在Quartus上進(jìn)行綜合。綜合過程就是把VHDL語言設(shè)計(jì)的HDL描述與硬件結(jié)構(gòu)掛鉤,實(shí)現(xiàn)了將軟件轉(zhuǎn)換為硬件電路的目的。綜合就是根據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換,最后將電路的高級(jí)語言轉(zhuǎn)換成可與FPGA/CPLD基本機(jī)構(gòu)相映射的網(wǎng)表文件。B3B4模塊由encode3B4B1模塊、encode3B4B2模塊、mux2_3B4B模塊構(gòu)成。encode3B4B1模塊和encode3B4B2模塊實(shí)現(xiàn)輸入3位碼元,根據(jù)3B4B編碼算法,應(yīng)用查表法,編碼輸出4位碼元。其中,encode3B4B1模塊實(shí)現(xiàn)RD-的編碼功能,encode3B4B2實(shí)現(xiàn)RD+編碼。mux2_3B4B模塊的功能是實(shí)現(xiàn)通過en的高低電頻來選擇相對(duì)應(yīng)的4位碼元輸出。encode3B4B1模塊、encode3B4B2模塊、mux2_3B4B模塊都采用VHDL設(shè)計(jì)方式。B5B5模塊由encode5B6B1模塊、encode5B6B2模塊、mux2模塊組成。encode5B6B1模塊和encode5B6B2模塊根據(jù)B5B6編碼算法,采用查表法來實(shí)現(xiàn)輸入5位碼元,輸出6位碼元的功能。encode5B6B1模塊、encode5B6B2模塊、mux2模塊都采用VHDL設(shè)計(jì)方式,設(shè)計(jì)思路與B3B4模塊的設(shè)計(jì)相似。
(三)時(shí)序仿真驗(yàn)證
電路設(shè)計(jì)完成后,需要進(jìn)行功能仿真和時(shí)序仿真,驗(yàn)證設(shè)計(jì)結(jié)果是否滿足設(shè)計(jì)要求。通過實(shí)踐證明,雖然輸出有延遲和毛刺,但是結(jié)果與預(yù)測(cè)的8B10B編碼輸出相同。因此,本文的8B10B編碼器基本滿足8B10B的算法,能夠正確輸出相應(yīng)的編碼。
三、總結(jié)
本文基于Altera公司開發(fā)的Quartus II開發(fā)平臺(tái),利用EDA技術(shù),采用VHDL程序設(shè)計(jì)輸入和原理圖設(shè)計(jì)輸入混合設(shè)計(jì)的方式,提出一種簡(jiǎn)單實(shí)用的8B10B編碼器的實(shí)現(xiàn)方法,完成了8B10B編碼器模型的設(shè)計(jì)。該模型輸入輸出特性滿足8B10B基本原理和核心算法,基本實(shí)現(xiàn)了設(shè)計(jì)要求。
【參考文獻(xiàn)】
[1]楊軍,周克峰.創(chuàng)新實(shí)驗(yàn)指導(dǎo)書[Z].云南大學(xué)信息學(xué)院電路實(shí)驗(yàn)室,2005.
[2]楊軍,龍飛,徐煒.Quartus II實(shí)驗(yàn)指導(dǎo)書[Z].云南大學(xué)滇池學(xué)院現(xiàn)代教育技術(shù)中心,2006.
[3]李宗伯.VHDL設(shè)計(jì)表示和綜合[M].北京:機(jī)械工業(yè)出版社,2002.
[4]朱正偉.EDA技術(shù)及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[5]潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2005.