FPGA是可編程邏輯器件,它的主要優(yōu)點在于可以借助EDA工具通過軟件編程對器件的硬件結(jié)構(gòu)和工作方式進行重構(gòu),這就使得硬件設(shè)計具有軟件設(shè)計的靈活性和便捷性。本設(shè)計采用VHDL語言并選用可編程邏輯器件在QuartusⅡ下來實現(xiàn)CDMA 2000系統(tǒng)中的前向鏈路卷積編碼器。
1 卷積編碼器原理
卷積碼是由P.Elias在1954年首先提出來的,它是一種非分組碼,通常它更適用于前向糾錯,因為其性能對于許多實際情況常優(yōu)于分組碼,而且設(shè)備簡單。自從A.J.Viterbi于1967年發(fā)現(xiàn)了一種有效的譯碼算法,并由J.Omura于1969年證明這是一種ML譯碼算法后,使用Vit-erbi譯碼算法的卷積碼就成為現(xiàn)代通信系統(tǒng)中必不可少的編碼方案。CDMA 2000系統(tǒng)亦采用此種編碼方案。
1.1 卷積編碼器原理
與分組碼編碼器不同,卷積碼編碼器是有記憶的,即:編碼器在任何一段時間內(nèi)產(chǎn)生的n個碼元,不僅取決于這段時間中的k個信息位,而且還取決于前N-1段規(guī)定時間內(nèi)的信息位;即編碼器產(chǎn)生的n個碼元跟正在移入的每一個k位的信息比特有關(guān)。為了便于說明問題,在這里規(guī)定:編碼率r=k/n。其中,k表示一次移入編碼器的信息位數(shù);n表示對應于移入k位信息編碼器輸出符號數(shù)。此外,用K表示約束長度,它等于編碼器中移位寄存器的級數(shù);實際上,第一個移位寄存器是多余的。
描述卷積編碼過程的方法很多,如:多項式法、矩陣法、樹狀圖和網(wǎng)格圖等。這里采用與卷積編碼器結(jié)構(gòu)密切相關(guān)的多項式法來說明卷積碼的編碼原理。已知一個編碼率r=1/2,約束長度K=3的卷積編碼器,其卷積碼的生成多項式矩陣為:
式中:D為延遲算子,生成多項式的第一項為1D2,表示編碼器輸出的第一個碼元c1等于輸入碼元b1與前輸入碼元b3的模2和;其第二項為DD2,表示輸出的第二個碼元c2為前兩個輸入碼元b2和b3的模2和。
根據(jù)卷積碼的生成多項式矩陣可直接得到編碼器的結(jié)構(gòu)圖,如圖1所示。圖中s1,s2為移位寄存器;m1,m2為模2和加法器;其中b1代表當前輸入的信息位;移位寄存器狀態(tài)b2,b3存儲以前的信息位;c1,c2代表編碼后的輸出碼元。
在卷積碼的編碼過程中,編碼器從全零狀態(tài)出發(fā),最后必須回到全零狀態(tài),故當送完信息后,還要向編碼器再送入K-1段全零信息,以迫使編碼器回到全零狀態(tài)。設(shè)此編碼器的起始狀態(tài)為零,即b1b2b3為000。當輸入的信息位為11010時,為保證輸入的全部信息位都能通過移位寄存器,并對移位寄存器進行復位,必須在信息位后加約束長度減一個零,即兩個零;此時對應的輸出碼元序列為:10111001011100,丟棄后四位可得編碼器的輸出信息:1011100101。整個工作過程中編碼器的狀態(tài)如表1所示。
1.2 CDMA 2000系統(tǒng)中的前向鏈路卷積編碼器
在CDMA 2000系統(tǒng)中,前向鏈路使用編碼率為1/2,約束長度為9的卷積編碼器。前向鏈路卷積碼的生成多項式矩陣為:
由此生成多項式矩陣可得前向編碼器的結(jié)構(gòu)圖,如圖2所示。圖中s1~s8為移位寄存器;m1,m2為模2和加法器;其中b1代表當前輸入的信息位;移位寄存器狀態(tài)b2~b9存儲以前的信息位;c代表編碼后的輸出碼元。
2 CDMA 2000系統(tǒng)中前向鏈路卷積編碼器的實現(xiàn)
2.1 CDMA 2000前向鏈路卷積編碼器的電路組成
該設(shè)計采用模塊化的設(shè)計方法,根據(jù)CDMA2000系統(tǒng)中的前向鏈路卷積編碼器的功能將其內(nèi)部結(jié)構(gòu)分為:移位寄存器組、模2和加法器、輸出控制器以及時鐘電路等四個模塊,每一模塊對應一部分VHDL的設(shè)計文件,這樣利于程序的編寫和調(diào)試,從而降低了整個程序的調(diào)試難度,提高了軟件的可維護性和可讀性。前向鏈路卷積編碼器的組成框圖如圖3所示。
其中,時鐘信號clk1和clk2可由基站控制器(BSC)的時鐘電路直接提供,或由本次設(shè)計的時鐘電路將基站控制器(BSC)提供的原始時鐘信號進行分頻得到;輸出控制器包括輸出數(shù)據(jù)合成電路和整形電路兩部分。
2.2 CDMA 2000前向鏈路卷積編碼器的仿真實現(xiàn)
根據(jù)卷積編碼器電路框圖,采用VHDL語言編寫前向鏈路卷積編碼器的源程序輸入到QuartusⅡ開發(fā)軟件中進行編譯、仿真、綜合得到可下載文件,然后通過對器件編程完成設(shè)計。
仿真前假設(shè)編碼器的初始狀態(tài)為零,即:b1~b9為00000000;輸入的信息為11010,為保證輸入的全部信息位都能通過移位寄存器,并對移位寄存器進行復位,在信息位后加8個零,其輸出結(jié)果為11010111000001111111101100,,仿真時,輸入數(shù)據(jù)data的速率為9.6Kb/s;輸出碼元c的速率為19.2Kb/s。仿真結(jié)果如圖4所示,其中b為寄存器組各個時刻的狀態(tài)。
在前向鏈路卷積編碼器的設(shè)計中有一些需要注意的問題:首先要明確VHDL語言不同于其他的計算機語言,它是一種硬件描述語言,它描述的對象是客觀的電路系統(tǒng)。其次,不同的EDA工具對VHDL語言的支持程度不同。本次設(shè)計中采用的QuartusⅡ開發(fā)工具主要是針對可編程邏輯器件的軟件,它并不支持所有的VHDL語句,它只支持RTL級描述,不支持行為級描述。再有,在設(shè)計中需要根據(jù)設(shè)計要求和可編程邏輯器件的資源情況、速度等進行合理的選擇。該設(shè)計中采用的EP2C8Q208器件就可滿足資源和速度方面的要求。
3 結(jié)語
本文實現(xiàn)了一種適用于CDMA 2000系統(tǒng)的前向鏈路卷積編碼器,通過對整體電路的設(shè)計、仿真和調(diào)測,結(jié)果表明本編碼器可達到CDMA 2000系統(tǒng)要求,具有一定的實用價值,同時,本設(shè)計采用基于可編程邏輯器件借助VHDL語言及EDA工具進行設(shè)計的思路,大大縮短了設(shè)計周期,降低了成本,提高了設(shè)計的可靠性、靈活性,為通信系統(tǒng)設(shè)計提供了一種有效的設(shè)計方法。