毛片视频免费观看-毛片视频在线免费观看-毛片手机在线视频免费观看-毛片特级-中文亚洲字幕-中文一级片

CDMA反向鏈路波形發(fā)生器的設(shè)計

2013-08-22 來源:微波射頻網(wǎng) 字號:

Maxim設(shè)計了一個容易實現(xiàn)的CDMA基帶調(diào)制發(fā)生器用于對其蜂窩手機發(fā)射通道中的各種產(chǎn)品進行電路評估。此設(shè)計包含一個高密度的可編程邏輯器件、一個晶體振蕩器和一對匹配的低通濾波器提供所需的正交輸出波形。由復雜可編程邏輯器件(CPLD)實現(xiàn)的數(shù)字電路是基于IS95標準的。使用4.9152MHz晶振驅(qū)動CY37256 CPLD產(chǎn)生1.2288MHz的數(shù)字信號輸出,可以為輸出低通濾波器提供精確的I/Q (同相和正交)比特流。測量MAX2361發(fā)射機IC的ACPR,將結(jié)果與使用Agilent E4433B任意波形發(fā)生器作為參考信號源時觀察到的ACPR進行比較就可以證實波形發(fā)生系統(tǒng)的性能。使用上述兩種方案的ACPR試驗室測量結(jié)果的一致程度保持在0.5dB以內(nèi)。

概述

Maxim設(shè)計了一個容易實現(xiàn)的CDMA基帶調(diào)制發(fā)生器用于對其蜂窩手機發(fā)射通道中的各種產(chǎn)品進行電路評估。此設(shè)計包含一個高密度的可編程邏輯器件、一個晶體振蕩器和一對匹配的低通濾波器提供所需的正交輸出波形。由復雜可編程邏輯器件(CPLD)實現(xiàn)的數(shù)字電路是基于IS95標準的。使用4.9152MHz晶振驅(qū)動CY37256 CPLD產(chǎn)生1.2288MHz的數(shù)字信號輸出,可以給輸出低通濾波器提供精確的I/Q (同相和正交)比特流。測量MAX2361發(fā)射機IC的ACPR,將結(jié)果與使用Agilent E4433B任意波形發(fā)生器作為參考信號源時觀察到的ACPR進行比較就可以證實波形發(fā)生系統(tǒng)的性能。使用上述兩種方案的ACPR試驗室測量結(jié)果的一致程度保持在0.5dB以內(nèi)。
本文提供了CDMA反向鏈路波形發(fā)生器的數(shù)字部分,描述了設(shè)計中的一些問題及解決方法。

數(shù)字系統(tǒng)描述

標準的CDMA信號發(fā)生器
圖1所示為CDMA反向信道發(fā)生器的框圖。

CDMA發(fā)生器由以下幾個部分組成:
數(shù)字數(shù)據(jù)源。在蜂窩電話中為話音編碼數(shù)據(jù)。
編碼和交織(interleaving)功能部分。
Walsh碼發(fā)生器。
最大長度的42位長PN (偽噪聲)發(fā)生器,所謂“長碼”的標準即參照此處。
3個模2的混頻器或者異或門。
兩個“短碼”,15位PN最大長度移位寄存器。
一個1/2碼片延時,等于(813.8ns / 2)即406.9ns。
一對匹配的有限沖擊響應(yīng)(FIR)低通濾波器。

圖1. 標準的CDMA反向鏈路發(fā)生器

對設(shè)計進行簡化

為了進行實際測量,對編碼進行一些簡化。由于對頻譜的影響很小,刪除與前向糾錯(FEC)和交織部分有關(guān)的模塊。為了模擬CELP編解碼數(shù)據(jù)源,使用7位最大PN發(fā)生器。

使用42位最大長度移位寄存器長碼實現(xiàn)31位的長PN碼。這樣作是為了保留CPLD中的寄存器并使設(shè)計的驗證更加迅速。42位PN發(fā)生器,以1.2288MHz的速度移位一周需要約三百六十萬秒。 (簡單的計算一下就可發(fā)現(xiàn)測試裝置必須連續(xù)41天無干擾地工作!)。提高驗證42位PN發(fā)生器速度的一個方法是加快時鐘的速度。即使時鐘為20MHz,完成一周的驗證仍然要花費2.5天。使用31位的PN碼,在20MHz時鐘下運行時間將小于兩分鐘,這個時間對測試來說比較合理。

用簡單的基于電感、電容的無源濾波器取代輸出端的數(shù)字(FIR)低通濾波器。本文不討論這些濾波器的復雜性和重要性,但是可以告訴那些對此感興趣的讀者,設(shè)計中使用的是帶有相位均衡的600kHz 7階橢圓低通濾波器。其性能關(guān)鍵點是,740kHz衰減為-45dBc,881kHz及更高頻率的衰減為-65dBc。發(fā)射頻譜的帶寬、滾降速率以及受此影響的觀察到的ACPR與這些濾波器的品質(zhì)有直接的聯(lián)系。

圖2所示為本項目中使用的簡化的框圖。

圖2. 最后實現(xiàn)的CDMA反向鏈路發(fā)生器

設(shè)計中的細節(jié)問題

本文不試圖把設(shè)計和實現(xiàn)中的每一個細節(jié)都呈現(xiàn)出來。用幾個關(guān)鍵的部分來說明設(shè)計技術(shù)和解決方案。我們并不想把讀者都變成Verilog專家。
Walsh碼發(fā)生器
Walsh碼發(fā)生器在文獻中通常用矩陣符號表示:

等式1.

建立Walsh向量時假設(shè)初始矩陣為W1 = 0。等式中Walsh矩陣右下角區(qū)域帶有一個橫杠的Wn表示矩陣中的每一位都邏輯取反。Walsh矩陣中的每一行都能用一些異或門和一個6位的計數(shù)器產(chǎn)生。在觀察到這一點之前,使用Verilog代碼并在CPLD中產(chǎn)生Walsh矩陣似乎是一件令人生畏的事情。將Verilog代碼列在這里只是作為一個示例。

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)成運算所采取的安全措施并盡可能使用同步邏輯。使用同步技術(shù)對設(shè)計有兩方面的好處:

  1. 亞穩(wěn)定性條件被降到最低。
  2. 邏輯功能與CPLD結(jié)構(gòu)能夠有效對應(yīng)。

為了使用現(xiàn)代的硬件描述語言實現(xiàn)數(shù)字設(shè)計,必須熟悉目標硬件。大多數(shù)CPLD具有邏輯門 -> 寄存器的規(guī)則結(jié)構(gòu),Verilog代碼如果遵循同樣的結(jié)構(gòu)將有利于高效地對應(yīng)到CPLD中。這樣,工程師就能支配整個綜合處理的過程。如果忽略了這一點,在Verilog代碼中使用了多級異步邏輯,CPLD裝配器將使邏輯迅速膨脹并很快超過目標CPLD的容量,在實現(xiàn)異或功能時尤其如此。這里用Verilog代碼描述的Walsh碼發(fā)生器通過中間寄存器使用流水線技術(shù)實現(xiàn)異或功能,執(zhí)行過程非常緊湊。

Walsh碼發(fā)生器Verilog代碼還體現(xiàn)了可靠性設(shè)計的多個要點。在每一個"always ?"部分的開始都進行一次復位條件的測試,所有相關(guān)的寄存器根據(jù)需要調(diào)整或清零。這種總是以一個已知的狀態(tài)開始工作的方法是一種已被證實的用來實現(xiàn)可靠工作的技術(shù)。代碼中還使用了單獨的部分實現(xiàn)6位計數(shù)器,另一部分用來創(chuàng)造異或邏輯以選擇正確的Walsh向量作為輸出。最后,注意如何使用注釋,在Verilog中以//符號標識。

PN發(fā)生器

CDMA發(fā)生器使用4個PN發(fā)生器。有兩種基本的方法可以實現(xiàn)最大長度碼移位寄存器:簡單的反饋結(jié)構(gòu)和模塊化結(jié)構(gòu)(見圖3)。

圖3. 簡單的和模塊化的PN發(fā)生器實例

當與所用的邏輯相比碼率(碼片)較慢并且反饋抽頭的數(shù)量很小時,簡單的PN發(fā)生器是可以接受的。當抽頭數(shù)目增加時,簡單的方法開始呈現(xiàn)出局限性,通過多級異步邏輯的延時不斷增加,限制了可用的最大時鐘速率。簡單的PN發(fā)生器在本設(shè)計中用于模擬隨機數(shù)據(jù),時鐘速率為4.8kHz。

模塊化的PN發(fā)生器使用更多的邏輯門,EXOR操作是在線性寄存器的每一級并行執(zhí)行的。由此對CPLD造成的負擔并不十分嚴重,因為寫入的Verilog代碼只在需要的時候使用EXOR結(jié)構(gòu),其它時候使用簡單的D類觸發(fā)器。
本設(shè)計中使用的CDMA特定多項式為:

短碼I:I(X):= X15 + X13 + X9 +X8 + X7 + X5 + 1
短碼Q:Q(X):= X15 + X12 + X11 + X10 + X6 + X5 + X4 + X3+ 1
長碼:LC(X):= X42 + X35 + X33 + X31 + X27 + X26 + X25 + X22 + X21 + X19 + X18 + X17 + X16 + X10 + X7 + X6 + X5 + X3 + X2 + X1 + 1
實現(xiàn)短I碼的Verilog代碼為:

module i_code_s( clock, resetn, i_code_out);
// 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

這一實現(xiàn)只用了5個EXOR結(jié)構(gòu),而一個完全的模塊化實現(xiàn)需要14個EXOR結(jié)構(gòu)。這展示了如何用Verilog僅對所需的邏輯進行合成。

在此需要指出另外兩點,最大長度PN發(fā)生器不允許在移位寄存器中出現(xiàn)表示只有恒定的低狀態(tài)輸出的全零。一個健全的設(shè)計應(yīng)該包括全零探測邏輯并在需要的時候插入一個“1”。

需要注意的另一點是,最大長度PN發(fā)生器在整個序列0的個數(shù)和1的個數(shù)之間實現(xiàn)了幾乎完美的平衡。1的個數(shù)比0的個數(shù)多1個。這將產(chǎn)生一個小的DC偏移,它有可能擾亂無線裝置中混頻器或調(diào)制器的工作。標準的CDMA在序列中插入一個額外的0狀態(tài)強制實現(xiàn)DC平衡以保持調(diào)制器的正常工作。

圖4. CDMA發(fā)生器原理圖

圖4中沒有給出支持編程的電路內(nèi)部細節(jié)。這個額外的小電路安裝在10引腳的連接頭上,使用特殊的電纜連接到PC機的并行的打印端口。在基于Windows®的PC機上運行Cypress Semiconductor的特殊軟件,將比特配置文件下載到CY37256中。這是實現(xiàn)數(shù)字系統(tǒng)的有力手段。它可以快速地發(fā)現(xiàn)代碼中的錯誤,對CPLD進行在線重新編程也很簡單,可以很快恢復測試。

結(jié)果

使用包括輸出低通濾波器在內(nèi)的整個CDMA反向鏈路發(fā)生器測試MAX2361在CDMA應(yīng)用中的ACPR,用Agilent E4433B作為CDMA基帶I/Q信號源進行同樣的測試。由兩種不同的信號源得到的ACPR結(jié)果非常接近;差別在±0.5dB以內(nèi)。在此,不能對輸出濾波器對ACPR測試結(jié)果的重要性進行詳細闡述,這將是另一篇應(yīng)用筆記的主題。

參考文獻與資料來源

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.

主題閱讀:CDMA  波形發(fā)生器
主站蜘蛛池模板: 五月婷婷综合网 | 亚洲视频在线免费观看 | 毛片特黄 | 欧美另类在线观看 | 国产精品秒播无毒不卡 | 免费不卡 | 国内精品国语自产拍在线观看91 | 欧美一区二区在线观看视频 | 国产白嫩美女在线观看 | 国产视频h | 天天摸天天操免费播放小视频 | 亚洲日韩欧美视频 | 麻豆视频免费在线 | 国产中文字幕在线观看 | 四虎高清成人永久免费影院 | 99re在线视频免费观看 | 视频在线18羞羞 | 国产精品欧美亚洲 | 亚洲天堂2017| 日本肉动漫在线 | 日本韩国欧美在线观看 | 国产一级在线观看 | 91青青青国产在观免费影视 | 亚洲a网| 欧美另类杂交a | 一级毛片aaaaaa视频免费看 | 99热热久久这里只有精品8 | 国产在线麻豆精品观看 | 羞羞视频在线观免费观看 | 亚洲黄色在线观看网站 | 欧美人与动牲高清 | 九一视频在线观看 | 国产真实乱对白在线观看 | 小色网站| 欧美人乱大交xxxxx | 精品999久久久久久中文字幕 | 亚洲视频四区 | 找国产毛片 | 欧美日韩国产另类在线观看 | 久草香蕉视频在线观看 | 精品福利网 |