歐陽雪,鄒文英
(中國電子科技集團公司第58研究所,江蘇 無錫 214035)
數控振蕩器是數字通訊中調制解調單元必不可少的部分,同時也是各種數字頻率合成器和數字信號發生器的核心部分,具有頻率分辨率高、頻率變化速度快、相位可連續線性變化和生成的正/余弦信號正交特性好等特點。而且數控振蕩器的相位、幅度均已數字化,可以直接進行高精度的數字調制/解調。隨著數字通信技術的發展,傳送的數據速率越來越高,如何得到一個可數控的高頻載波信號是實現高速數字通信系統必須解決的問題。本文將介紹用查表法實現數控振蕩器的ASIC設計的一種方法。
NCO(Numerical Controlled Oscillator)即數控振蕩器用于產生可控的正弦波或余弦波,其實現的方法目前主要有計算法和查表法等。計算法以軟件編程的方式通過實時計算產生正弦波樣本,該方法耗時多且只能產生頻率相對較低的正弦波,而需要產生高速的正交信號時,用此方法無法實現。因此,在實際應用中一般采用最有效、最簡單的查表法,即事先根據各個NCO正弦波相位計算好相位的正弦值,并以相位角度作為地址把該相位的正弦值數據存儲在表中,然后通過相位累加產生地址信息,讀取當前時刻的相位值在表中對應的正弦值,構成一個幅度/相位轉換電路(即波形存儲器),通過該轉換電路產生所需頻率的正弦波。
用查表法實現NCO的性能指標取決于查表的深度和寬度,即取決于表示相位數據的位數(查表存儲器地址線的位數)和表示正弦值數據的位數(查表存儲器數據線的位數)。改善NCO性能最簡單和最根本的方法是加大查找表的深度和寬度。目前,用查找表法實現NCO的普遍做法是用片內ROM作為查找表,由于片內資源的限制,查找表的深度和寬度一般不會很大,大大限制了NCO性能的提高,因此,設計高速、高精度的NCO時,大容量、讀取速度快的ROM設計成為一大難題。采用正向全定制設計ROM模塊,嵌入片內與標準單元進行布局布線,是用查表法實現數控振蕩器的ASIC設計的一種好方法。基于此設計構想,筆者成功地利用0.5μm單多晶三鋁的CMOS工藝設計加工出一款48位編碼的高速、高精度NCO集成電路。

圖1 NCO的結構框圖
圖1是數控振蕩器的頂層電路結構,可以看到主要部件分為頻率控制字寄存器,相位控制字寄存器、累加器、加法器、鎖存器等。
3.2.1 功能框圖
該電路可以在WRN、CSN及ADDR總線的控制下,將DATA總線上的數據置入48位數據緩沖器中,在LDSTB下降沿的時候通過CLOCK將緩沖器中的數據每4位為1個單位,分12個節拍鎖入鎖存器中,累加器每次將最新的結果和鎖存器中的數據相加,輸出最高的13位結果,然后根據電路外部SIN和TWO兩個控制線的狀態輸出相應數字格式的正余弦波。

圖2 48位NCO的功能框圖
3.2.2 頻率控制字寄存器、相位控制寄存器、累加器和加法器的設計
頻率控制字寄存器和相位控制字寄存器都是48位并行輸入/并行輸出寄存器,它們通過微處理器接口進行讀寫。頻率控制字寄存器確定載波的頻率,相位控制字寄存器確定載波的初始相位。48位累加器對代表頻率的頻率控制字進行累加運算,累加器對系統時鐘進行計數,每到達輸入頻率控制字的值即進行累加,累加結果與代表初始相位的相位控制字通過48位加法器進行相加運算,在本電路中,取相加結果的高13位數據讀取查找表的地址信息。
其中,累加器是決定NCO性能的一個關鍵模塊,可以利用進位鏈實現快速、高效的電路結構,但是,過長的進位鏈會減少其他邏輯使用的布線資源;同時,也會制約整個系統速度的提高。因此,設計中采用進位鏈和流水線技術相結合的辦法,能大幅提高系統的性能和速度。其原理結構如圖3所示。

圖3 采用流水線技術的累加器結構原理圖
針對該電路的設計要求設計帶流水線技術的48位高速并行相位累加器,每個時鐘周期產生一個新的累加值,超出波形發生器最大值的累加值被溢出,并取48位數據的高13位作為波形發生器的地址信息,累加器的邏輯圖如圖4。

圖4 電路相位累加器邏輯圖
3.2.3 ROM模塊設計
正余弦查找表的設計也是NCO電路關鍵的一塊,本電路設計用13位≥12位(8192×12)的查找表,并采用Y對稱原則進行相位簡化為(4096×12)查找表,再進行正負幅度簡化為(4096×11)查找表,評估X對稱原則(即取四分之一象限)簡化為(2048×11)查找表,采用兩個相同ROM模塊實現,結構如圖5。

圖5 簡化后的ROM結構圖
為達到讀取速度的要求,ROM單元晶體管級的電路設計如圖6,兩個N管共漏減小位電容,版圖設計時在柵上覆蓋三鋁,減小電阻。再根據此單元,全定制設計一字長11位、字深11位(2048×11)的ROM模塊,嵌入自動布局布線的版圖內部。

圖6 ROM單元晶體管級電路圖
按照上述結構,筆者設計的電路工作時鐘為80MHz。用DSP作為微處理器,通過系統測試,該NCO的性能指標達到了設計要求,頻率分辨率Δf=0.0186Hz,輸出頻率fout=25MHz(當然,NCO輸出頻率的上限要受到Nyquist定律的限制,即fout的最大值為工作時鐘的1/2,實際設計一般不大于0.4fclk)。圖7為NCO的部分仿真時序圖。

圖7 寫時序和輸出時序圖
本文介紹了一種NCO的ASIC實現方法,用該方法設計的NCO可實現對載波頻率、相位和幅度的完全控制,由于片內全定制設計ROM作為查找表,并引入流水線結構設計,使得NCO有較高的精度,且電路結構簡單,可靠性高,在數控振蕩器的傳統設計方法上提高了電路精度和頻率,非常適用于在正交數字混頻器重進行高精度的數字調制/解調。