Maxim設(shè)計(jì)了一個(gè)容易實(shí)現(xiàn)的CDMA基帶調(diào)制發(fā)生器用于對(duì)其蜂窩手機(jī)發(fā)射通道中的各種產(chǎn)品進(jìn)行電路評(píng)估。此設(shè)計(jì)包含一個(gè)高密度的可編程邏輯器件、一個(gè)晶體振蕩器和一對(duì)匹配的低通濾波器提供所需的正交輸出波形。由復(fù)雜可編程邏輯器件(CPLD)實(shí)現(xiàn)的數(shù)字電路是基于IS95標(biāo)準(zhǔn)的。使用4.9152MHz晶振驅(qū)動(dòng)CY37256 CPLD產(chǎn)生1.2288MHz的數(shù)字信號(hào)輸出,可以為輸出低通濾波器提供精確的I/Q (同相和正交)比特流。測(cè)量MAX2361發(fā)射機(jī)IC的ACPR,將結(jié)果與使用Agilent E4433B任意波形發(fā)生器作為參考信號(hào)源時(shí)觀察到的ACPR進(jìn)行比較就可以證實(shí)波形發(fā)生系統(tǒng)的性能。使用上述兩種方案的ACPR試驗(yàn)室測(cè)量結(jié)果的一致程度保持在0.5dB以內(nèi)。
概述
Maxim設(shè)計(jì)了一個(gè)容易實(shí)現(xiàn)的CDMA基帶調(diào)制發(fā)生器用于對(duì)其蜂窩手機(jī)發(fā)射通道中的各種產(chǎn)品進(jìn)行電路評(píng)估。此設(shè)計(jì)包含一個(gè)高密度的可編程邏輯器件、一個(gè)晶體振蕩器和一對(duì)匹配的低通濾波器提供所需的正交輸出波形。由復(fù)雜可編程邏輯器件(CPLD)實(shí)現(xiàn)的數(shù)字電路是基于IS95標(biāo)準(zhǔn)的。使用4.9152MHz晶振驅(qū)動(dòng)CY37256 CPLD產(chǎn)生1.2288MHz的數(shù)字信號(hào)輸出,可以給輸出低通濾波器提供精確的I/Q (同相和正交)比特流。測(cè)量MAX2361發(fā)射機(jī)IC的ACPR,將結(jié)果與使用Agilent E4433B任意波形發(fā)生器作為參考信號(hào)源時(shí)觀察到的ACPR進(jìn)行比較就可以證實(shí)波形發(fā)生系統(tǒng)的性能。使用上述兩種方案的ACPR試驗(yàn)室測(cè)量結(jié)果的一致程度保持在0.5dB以內(nèi)。
本文提供了CDMA反向鏈路波形發(fā)生器的數(shù)字部分,描述了設(shè)計(jì)中的一些問(wèn)題及解決方法。
數(shù)字系統(tǒng)描述
標(biāo)準(zhǔn)的CDMA信號(hào)發(fā)生器
圖1所示為CDMA反向信道發(fā)生器的框圖。
CDMA發(fā)生器由以下幾個(gè)部分組成:
數(shù)字?jǐn)?shù)據(jù)源。在蜂窩電話中為話音編碼數(shù)據(jù)。
編碼和交織(interleaving)功能部分。
Walsh碼發(fā)生器。
最大長(zhǎng)度的42位長(zhǎng)PN (偽噪聲)發(fā)生器,所謂“長(zhǎng)碼”的標(biāo)準(zhǔn)即參照此處。
3個(gè)模2的混頻器或者異或門。
兩個(gè)“短碼”,15位PN最大長(zhǎng)度移位寄存器。
一個(gè)1/2碼片延時(shí),等于(813.8ns / 2)即406.9ns。
一對(duì)匹配的有限沖擊響應(yīng)(FIR)低通濾波器。
圖1. 標(biāo)準(zhǔn)的CDMA反向鏈路發(fā)生器
對(duì)設(shè)計(jì)進(jìn)行簡(jiǎn)化
為了進(jìn)行實(shí)際測(cè)量,對(duì)編碼進(jìn)行一些簡(jiǎn)化。由于對(duì)頻譜的影響很小,刪除與前向糾錯(cuò)(FEC)和交織部分有關(guān)的模塊。為了模擬CELP編解碼數(shù)據(jù)源,使用7位最大PN發(fā)生器。
使用42位最大長(zhǎng)度移位寄存器長(zhǎng)碼實(shí)現(xiàn)31位的長(zhǎng)PN碼。這樣作是為了保留CPLD中的寄存器并使設(shè)計(jì)的驗(yàn)證更加迅速。42位PN發(fā)生器,以1.2288MHz的速度移位一周需要約三百六十萬(wàn)秒。 (簡(jiǎn)單的計(jì)算一下就可發(fā)現(xiàn)測(cè)試裝置必須連續(xù)41天無(wú)干擾地工作!)。提高驗(yàn)證42位PN發(fā)生器速度的一個(gè)方法是加快時(shí)鐘的速度。即使時(shí)鐘為20MHz,完成一周的驗(yàn)證仍然要花費(fèi)2.5天。使用31位的PN碼,在20MHz時(shí)鐘下運(yùn)行時(shí)間將小于兩分鐘,這個(gè)時(shí)間對(duì)測(cè)試來(lái)說(shuō)比較合理。
用簡(jiǎn)單的基于電感、電容的無(wú)源濾波器取代輸出端的數(shù)字(FIR)低通濾波器。本文不討論這些濾波器的復(fù)雜性和重要性,但是可以告訴那些對(duì)此感興趣的讀者,設(shè)計(jì)中使用的是帶有相位均衡的600kHz 7階橢圓低通濾波器。其性能關(guān)鍵點(diǎn)是,740kHz衰減為-45dBc,881kHz及更高頻率的衰減為-65dBc。發(fā)射頻譜的帶寬、滾降速率以及受此影響的觀察到的ACPR與這些濾波器的品質(zhì)有直接的聯(lián)系。
圖2所示為本項(xiàng)目中使用的簡(jiǎn)化的框圖。
圖2. 最后實(shí)現(xiàn)的CDMA反向鏈路發(fā)生器
設(shè)計(jì)中的細(xì)節(jié)問(wèn)題
本文不試圖把設(shè)計(jì)和實(shí)現(xiàn)中的每一個(gè)細(xì)節(jié)都呈現(xiàn)出來(lái)。用幾個(gè)關(guān)鍵的部分來(lái)說(shuō)明設(shè)計(jì)技術(shù)和解決方案。我們并不想把讀者都變成Verilog專家。
Walsh碼發(fā)生器
Walsh碼發(fā)生器在文獻(xiàn)中通常用矩陣符號(hào)表示:
等式1.
建立Walsh向量時(shí)假設(shè)初始矩陣為W1 = 0。等式中Walsh矩陣右下角區(qū)域帶有一個(gè)橫杠的Wn表示矩陣中的每一位都邏輯取反。Walsh矩陣中的每一行都能用一些異或門和一個(gè)6位的計(jì)數(shù)器產(chǎn)生。在觀察到這一點(diǎn)之前,使用Verilog代碼并在CPLD中產(chǎn)生Walsh矩陣似乎是一件令人生畏的事情。將Verilog代碼列在這里只是作為一個(gè)示例。
module walsh( clk, resetn, select, wout);//Walsh code generator. Selects one out of N = 64.
input clk, resetn;
input [5:0]select; // vector to select which walsh code is generated
output wout;
reg [5:0] cntval;
// intermediate terms to keep output exor size small.
reg [5:0] p ;
reg t01, t23, t45; // these registers are used to pipeline the EXOR section
reg s0, s1; // more pipeline registers for EXOR
always ? (negedge resetn or posedge clk)
begin
if(!resetn) // Is it time to reset??
begin
cntval <= 0; // initialize the counter register
end
else
begin
cntval <= cntval + 1; //Warp does an efficient job implementing this.
end
end
always ? (negedge resetn or posedge clk)
begin
if(!resetn) // Is it time to reset??
begin
p[5:0] <= 0; // initialize all registers associated with this section.
t01 <= 0;
t23 <= 0;
t45 <= 0;
s0 <= 0;
s1 <= 0;
end
else
begin
p <= cntval & select ;
t01 <= p[0] ^ p[1] ; // the ^ symbol is the exclusive OR operation.
t23 <= p[2] ^ p[3] ;
t45 <= p[4] ^ p[5] ;
s0 <= t01 ^ t23;
s1 <= t45;
end
end
assign wout = s0 ^ s1 ; // a last bit of async. Logic to generate the final output
endmodule
在上面的Verilog代碼中,注意構(gòu)成運(yùn)算所采取的安全措施并盡可能使用同步邏輯。使用同步技術(shù)對(duì)設(shè)計(jì)有兩方面的好處:
亞穩(wěn)定性條件被降到最低。
邏輯功能與CPLD結(jié)構(gòu)能夠有效對(duì)應(yīng)。
為了使用現(xiàn)代的硬件描述語(yǔ)言實(shí)現(xiàn)數(shù)字設(shè)計(jì),必須熟悉目標(biāo)硬件。大多數(shù)CPLD具有邏輯門 -> 寄存器的規(guī)則結(jié)構(gòu),Verilog代碼如果遵循同樣的結(jié)構(gòu)將有利于高效地對(duì)應(yīng)到CPLD中。這樣,工程師就能支配整個(gè)綜合處理的過(guò)程。如果忽略了這一點(diǎn),在Verilog代碼中使用了多級(jí)異步邏輯,CPLD裝配器將使邏輯迅速膨脹并很快超過(guò)目標(biāo)CPLD的容量,在實(shí)現(xiàn)異或功能時(shí)尤其如此。這里用Verilog代碼描述的Walsh碼發(fā)生器通過(guò)中間寄存器使用流水線技術(shù)實(shí)現(xiàn)異或功能,執(zhí)行過(guò)程非常緊湊。
Walsh碼發(fā)生器Verilog代碼還體現(xiàn)了可靠性設(shè)計(jì)的多個(gè)要點(diǎn)。在每一個(gè)"always ?"部分的開(kāi)始都進(jìn)行一次復(fù)位條件的測(cè)試,所有相關(guān)的寄存器根據(jù)需要調(diào)整或清零。這種總是以一個(gè)已知的狀態(tài)開(kāi)始工作的方法是一種已被證實(shí)的用來(lái)實(shí)現(xiàn)可靠工作的技術(shù)。代碼中還使用了單獨(dú)的部分實(shí)現(xiàn)6位計(jì)數(shù)器,另一部分用來(lái)創(chuàng)造異或邏輯以選擇正確的Walsh向量作為輸出。最后,注意如何使用注釋,在Verilog中以//符號(hào)標(biāo)識(shí)。
PN發(fā)生器
CDMA發(fā)生器使用4個(gè)PN發(fā)生器。有兩種基本的方法可以實(shí)現(xiàn)最大長(zhǎng)度碼移位寄存器:簡(jiǎn)單的反饋結(jié)構(gòu)和模塊化結(jié)構(gòu)(見(jiàn)圖3)。
圖3. 簡(jiǎn)單的和模塊化的PN發(fā)生器實(shí)例
當(dāng)與所用的邏輯相比碼率(碼片)較慢并且反饋抽頭的數(shù)量很小時(shí),簡(jiǎn)單的PN發(fā)生器是可以接受的。當(dāng)抽頭數(shù)目增加時(shí),簡(jiǎn)單的方法開(kāi)始呈現(xiàn)出局限性,通過(guò)多級(jí)異步邏輯的延時(shí)不斷增加,限制了可用的最大時(shí)鐘速率。簡(jiǎn)單的PN發(fā)生器在本設(shè)計(jì)中用于模擬隨機(jī)數(shù)據(jù),時(shí)鐘速率為4.8kHz。
模塊化的PN發(fā)生器使用更多的邏輯門,EXOR操作是在線性寄存器的每一級(jí)并行執(zhí)行的。由此對(duì)CPLD造成的負(fù)擔(dān)并不十分嚴(yán)重,因?yàn)閷懭氲腣erilog代碼只在需要的時(shí)候使用EXOR結(jié)構(gòu),其它時(shí)候使用簡(jiǎn)單的D類觸發(fā)器。
本設(shè)計(jì)中使用的CDMA特定多項(xiàng)式為:
短碼I:I(X):= X15 + X13 + X9 +X8 + X7 + X5 + 1
短碼Q:Q(X):= X15 + X12 + X11 + X10 + X6 + X5 + X4 + X3+ 1
長(zhǎng)碼:LC(X):= X42 + X35 + X33 + X31 + X27 + X26 + X25 + X22 + X21 + X19 + X18 + X17 + X16 + X10 + X7 + X6 + X5 + X3 + X2 + X1 + 1
實(shí)現(xiàn)短I碼的Verilog代碼為:
// Generate the 15-bit PN code using the polynomial
// x15 + x13 + x9 + x8 + x7 + x5 + 1
input clock, resetn;
output i_code_out;
reg [15:1]pi;
always ?(posedge clock or negedge resetn)
if(!resetn)
begin
pi <= 15';b111111111111111; // init the shift register with ones
end
else
begin // here starts the modular shift register
pi[1] <= pi[15];
pi[5:2] <= pi[4:1] ;
pi[6] <= pi[5] ^ pi[15];
pi[7] <= pi[6];
pi[8] <= pi[7] ^ pi[15];
pi[9] <= pi[8] ^ pi[15];
pi[10] <= pi[9] ^ pi[15];
pi[13:11] <= pi[12:10];
pi[14] <= pi[13] ^ pi[15];
pi[15] <= pi[14];
end
assign i_code_out = pi[15];
endmodule
這一實(shí)現(xiàn)只用了5個(gè)EXOR結(jié)構(gòu),而一個(gè)完全的模塊化實(shí)現(xiàn)需要14個(gè)EXOR結(jié)構(gòu)。這展示了如何用Verilog僅對(duì)所需的邏輯進(jìn)行合成。
在此需要指出另外兩點(diǎn),最大長(zhǎng)度PN發(fā)生器不允許在移位寄存器中出現(xiàn)表示只有恒定的低狀態(tài)輸出的全零。一個(gè)健全的設(shè)計(jì)應(yīng)該包括全零探測(cè)邏輯并在需要的時(shí)候插入一個(gè)“1”。
需要注意的另一點(diǎn)是,最大長(zhǎng)度PN發(fā)生器在整個(gè)序列0的個(gè)數(shù)和1的個(gè)數(shù)之間實(shí)現(xiàn)了幾乎完美的平衡。1的個(gè)數(shù)比0的個(gè)數(shù)多1個(gè)。這將產(chǎn)生一個(gè)小的DC偏移,它有可能擾亂無(wú)線裝置中混頻器或調(diào)制器的工作。標(biāo)準(zhǔn)的CDMA在序列中插入一個(gè)額外的0狀態(tài)強(qiáng)制實(shí)現(xiàn)DC平衡以保持調(diào)制器的正常工作。
圖4. CDMA發(fā)生器原理圖
圖4中沒(méi)有給出支持編程的電路內(nèi)部細(xì)節(jié)。這個(gè)額外的小電路安裝在10引腳的連接頭上,使用特殊的電纜連接到PC機(jī)的并行的打印端口。在基于Windows®的PC機(jī)上運(yùn)行Cypress Semiconductor的特殊軟件,將比特配置文件下載到CY37256中。這是實(shí)現(xiàn)數(shù)字系統(tǒng)的有力手段。它可以快速地發(fā)現(xiàn)代碼中的錯(cuò)誤,對(duì)CPLD進(jìn)行在線重新編程也很簡(jiǎn)單,可以很快恢復(fù)測(cè)試。
結(jié)果
使用包括輸出低通濾波器在內(nèi)的整個(gè)CDMA反向鏈路發(fā)生器測(cè)試MAX2361在CDMA應(yīng)用中的ACPR,用Agilent E4433B作為CDMA基帶I/Q信號(hào)源進(jìn)行同樣的測(cè)試。由兩種不同的信號(hào)源得到的ACPR結(jié)果非常接近;差別在±0.5dB以內(nèi)。在此,不能對(duì)輸出濾波器對(duì)ACPR測(cè)試結(jié)果的重要性進(jìn)行詳細(xì)闡述,這將是另一篇應(yīng)用筆記的主題。
參考文獻(xiàn)與資料來(lái)源
R.C. Dixon, Spread Spectrum Systems. New York: John Wiley & Sons, 1976 David P. Whipple, "North American Cellular CDMA", Hewlett-Packard Journal, December 1993, pp. 90-97 Ken Coffman, Real World FPGA Design with Verilog. Upper Saddle River: Prentice Hall PTR, 1999, ISBN 0-13-099851-6 Samir Palnitkar, Verilog HDL, A Guide to Digital Design and Synthesis Sunsoft Press/Prentice Hall, 1996, ISBN 0-13-451675-3 Special thanks to Lane Hauck at Cypress Semiconductor for his advice and guidance in learning Verilog and the nuances of CPLD design. Special thanks for Dave Devries of Maxim Integrated for his collaboration and certain key insights during this project.
評(píng)論