91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 模擬技術

基于FPGA和SRAM的數控振蕩器的設計與實現

發布時間:2008/5/26 0:00:00 訪問次數:506

        

    

    

    作者:國防科技大學atr實驗室 佟力永,肖山竹

    

    摘要:介紹數控振蕩器的工作原理,重點闡述用現場可編程門陣列(fpga)和靜態隨機存儲器(sram)實現數控振蕩器的方法,同時給出采用此結構設計的數控振蕩器的特點和性能。

    

    關鍵詞:數控振蕩器(nco);查找表;xc2v1000;cy7c1021;設計中圖分類號:tn914.3 文獻標識碼:a 文章編號:1006—6977(2006)01—0022一03

    

    1 引言

    

    數控振蕩器是數字通信中調制解調單元必不可少的部分,同時也是各種數字頻率合成器和數字信號發生器的核心。隨著數字通信技術的發展。對傳送數據的精度和速率要求越來越高。如何得到可數控的高精度的高頻載波信號是實現高速數字通信系統必須解決的問題。可編程邏輯器件和大容量存儲器的發展為這一問題的解決帶來了曙光。本文介紹如何用fpga(現場可編程邏輯門陣列)和sram(靜態隨機存儲器)實現高精度數控振蕩器。

    

    2 nco概述

    

    nco(numerical controlled oscillator)即數控振蕩器用于產生可控的正弦波或余弦波。其實現的方法目前主要有計算法和查表法等。計算法以軟件編程的方式通過實時計算產生正弦波樣本.該方法耗時多且只能產生頻率相對較低的正弦波.而需要產生高速的正交信號時,用此方法無法實現。因此,在實際應用中一般采用最有效、最簡單的查表法,即事先根據各個nco正弦波相位計算好相位的正弦值。并以相位角度作為地址把該相位的正弦值數據存儲在表中,然后通過相位累加產生地址信息讀取當前時刻的相位值在表中對應的正弦值,從而產生所需頻率的正弦波。

    

    用查表法實現nco的性能指標取決于查表的深度和寬度,即取決于表示相位數據的位數(查表存儲器地址線的位數)和表示正弦值數據的位數(查表存儲器數據線的位數)。改善nco性能最簡單和最根本的方法是加大查找表的深度和寬度。目前,用查找表法實現nco的普遍做法是用片內rom作為查找表,由于片內資源的限制,查找表的深度和寬度一般不會很大(通常為256x8 bits),大大限制了nco性能的提高。用獨立的大容量sram作為查找表,把查找表從片內移到片外,可以較好解決這個問題。基于這種思想,筆者成功地用fpga(xilinx公司的xc2v1000型門陣列)和sram(cypress公司的cy7c1021型存儲器)實現了nco。

    

    3 nco的實現

    

    3.1 結構設計

    

    用fpga和sram實現的nco的結構如圖1所示。大框內部分是由fpga完成.主要部件分為頻率控制字寄存器、相位控制字寄存器、通道控制字寄存器、累加器、加法器、通道選擇器和鎖存器等。微處理器對nc()進行控制,可用單片機或dst,(數字信號處理器)實現。

    

    

    3.1.1 頻率控制字寄存器、相位控制字寄存器、累加器和加法器

    

    頻率控制字寄存器和相位控制字寄存器都是32位并行輸入,并行輸出寄存器,它們通過微處理器接口進行讀寫。頻率控制字寄存器確定載波的頻率.相位控制字寄存器確定載波的初始相位。32位累加器對代表頻率的頻率控制字進行累加運算,累加結果與代表初始相位的相位控制字通過32位加法器進行相加運算.相加結果的高16位數據讀取查找表的地址信息。頻率控制字寄存器、相位控制字寄存器、累加器和加法器可以用vhd[.語言描述,集成在一個模塊中,其vhdl源程序如下:

    

    

    3.1.2通道控制字寄存器和通道選擇器

    

    通道控制字寄存器和頻率控制字寄存器與相位控制字寄存器的結構完全一樣.都是32位并行輸入/并行輸出寄存器,通過微處理器接口進行讀寫。通道控制字寄存器僅用最后一位對通道選擇器進行控制。通道選擇器是二選一復用器.當sel控制端為o時選擇通道l,當sel控制端為1時選擇通道2。通道選擇器作為sram與fpga的接口.每個通道不僅包括16條地址線,而且還有3條控制線和32條數據線。在圖l中,為了使nco的結構更加清晰,通道選擇器的控制線和數據線沒有表示出來。

&n

        

    

    

    作者:國防科技大學atr實驗室 佟力永,肖山竹

    

    摘要:介紹數控振蕩器的工作原理,重點闡述用現場可編程門陣列(fpga)和靜態隨機存儲器(sram)實現數控振蕩器的方法,同時給出采用此結構設計的數控振蕩器的特點和性能。

    

    關鍵詞:數控振蕩器(nco);查找表;xc2v1000;cy7c1021;設計中圖分類號:tn914.3 文獻標識碼:a 文章編號:1006—6977(2006)01—0022一03

    

    1 引言

    

    數控振蕩器是數字通信中調制解調單元必不可少的部分,同時也是各種數字頻率合成器和數字信號發生器的核心。隨著數字通信技術的發展。對傳送數據的精度和速率要求越來越高。如何得到可數控的高精度的高頻載波信號是實現高速數字通信系統必須解決的問題。可編程邏輯器件和大容量存儲器的發展為這一問題的解決帶來了曙光。本文介紹如何用fpga(現場可編程邏輯門陣列)和sram(靜態隨機存儲器)實現高精度數控振蕩器。

    

    2 nco概述

    

    nco(numerical controlled oscillator)即數控振蕩器用于產生可控的正弦波或余弦波。其實現的方法目前主要有計算法和查表法等。計算法以軟件編程的方式通過實時計算產生正弦波樣本.該方法耗時多且只能產生頻率相對較低的正弦波.而需要產生高速的正交信號時,用此方法無法實現。因此,在實際應用中一般采用最有效、最簡單的查表法,即事先根據各個nco正弦波相位計算好相位的正弦值。并以相位角度作為地址把該相位的正弦值數據存儲在表中,然后通過相位累加產生地址信息讀取當前時刻的相位值在表中對應的正弦值,從而產生所需頻率的正弦波。

    

    用查表法實現nco的性能指標取決于查表的深度和寬度,即取決于表示相位數據的位數(查表存儲器地址線的位數)和表示正弦值數據的位數(查表存儲器數據線的位數)。改善nco性能最簡單和最根本的方法是加大查找表的深度和寬度。目前,用查找表法實現nco的普遍做法是用片內rom作為查找表,由于片內資源的限制,查找表的深度和寬度一般不會很大(通常為256x8 bits),大大限制了nco性能的提高。用獨立的大容量sram作為查找表,把查找表從片內移到片外,可以較好解決這個問題。基于這種思想,筆者成功地用fpga(xilinx公司的xc2v1000型門陣列)和sram(cypress公司的cy7c1021型存儲器)實現了nco。

    

    3 nco的實現

    

    3.1 結構設計

    

    用fpga和sram實現的nco的結構如圖1所示。大框內部分是由fpga完成.主要部件分為頻率控制字寄存器、相位控制字寄存器、通道控制字寄存器、累加器、加法器、通道選擇器和鎖存器等。微處理器對nc()進行控制,可用單片機或dst,(數字信號處理器)實現。

    

    

    3.1.1 頻率控制字寄存器、相位控制字寄存器、累加器和加法器

    

    頻率控制字寄存器和相位控制字寄存器都是32位并行輸入,并行輸出寄存器,它們通過微處理器接口進行讀寫。頻率控制字寄存器確定載波的頻率.相位控制字寄存器確定載波的初始相位。32位累加器對代表頻率的頻率控制字進行累加運算,累加結果與代表初始相位的相位控制字通過32位加法器進行相加運算.相加結果的高16位數據讀取查找表的地址信息。頻率控制字寄存器、相位控制字寄存器、累加器和加法器可以用vhd[.語言描述,集成在一個模塊中,其vhdl源程序如下:

    

    

    3.1.2通道控制字寄存器和通道選擇器

    

    通道控制字寄存器和頻率控制字寄存器與相位控制字寄存器的結構完全一樣.都是32位并行輸入/并行輸出寄存器,通過微處理器接口進行讀寫。通道控制字寄存器僅用最后一位對通道選擇器進行控制。通道選擇器是二選一復用器.當sel控制端為o時選擇通道l,當sel控制端為1時選擇通道2。通道選擇器作為sram與fpga的接口.每個通道不僅包括16條地址線,而且還有3條控制線和32條數據線。在圖l中,為了使nco的結構更加清晰,通道選擇器的控制線和數據線沒有表示出來。

&n

相關IC型號

熱門點擊

 

推薦技術資料

泰克新發布的DSA830
   泰克新發布的DSA8300在一臺儀器中同時實現時域和頻域分析,DS... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
额敏县| 南丰县| 无极县| 合阳县| 林芝县| 睢宁县| 丹阳市| 涞水县| 榆林市| 高要市| 宝鸡市| 汝城县| 福安市| 麦盖提县| 长顺县| 吉安市| 伊通| 渝中区| 饶河县| 建水县| 陈巴尔虎旗| 抚州市| 五河县| 柳江县| 崇信县| 喜德县| 水城县| 惠来县| 蓝山县| 泗阳县| 鲜城| 托里县| 宁明县| 宿松县| 廊坊市| 麟游县| 光泽县| 霍林郭勒市| 磴口县| 甘肃省| 云安县|