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