色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA和SRAM的數(shù)控振蕩器的設(shè)計(jì)與實(shí)現(xiàn)

          基于FPGA和SRAM的數(shù)控振蕩器的設(shè)計(jì)與實(shí)現(xiàn)

          ——
          作者:佟力永,肖山竹 時(shí)間:2007-01-26 來(lái)源:《國(guó)外電子元器件》 收藏


          1 引言

          本文引用地址:http://cafeforensic.com/article/20734.htm

          數(shù)控振蕩器是數(shù)字通訊中調(diào)制解調(diào)單元必不可少的部分,同時(shí)也是各種數(shù)字頻率合成器和數(shù)字信號(hào)發(fā)生器的核心。隨著數(shù)字通信技術(shù)的發(fā)展,對(duì)傳送數(shù)據(jù)的精度和速率要求越來(lái)越高。如何得到可數(shù)控的高精度的高頻載波信號(hào)是實(shí)現(xiàn)高速數(shù)字通信系統(tǒng)必須解決的問(wèn)題,可編程邏輯器件和大容量的發(fā)展為這一問(wèn)題的解決帶來(lái)了曙光。本文介紹如何用fpga(現(xiàn)場(chǎng)可編程邏輯門(mén)陣列)和sram(靜態(tài)隨機(jī))實(shí)現(xiàn)高精度數(shù)控振蕩器。

          2 nco概述

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

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

          3 nco的實(shí)現(xiàn)

          3.1 結(jié)構(gòu)設(shè)計(jì)

          用fpga和sram實(shí)現(xiàn)的nco的結(jié)構(gòu)如圖1所示。大框內(nèi)部分是由fpga完成,主要部件分為頻率控制字寄存器,相位控制字寄存器、通道控制字寄存器、累加器、加法器、通道選擇器和鎖存器等。微處理器對(duì)nco進(jìn)行控制,可用單片機(jī)或dsp(數(shù)字信號(hào)處理器)實(shí)現(xiàn)。

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

          頻率控制字寄存器和相位控制字寄存器都是32位并行輸入/并行輸出寄存器,它們通過(guò)微處理器接口進(jìn)行讀寫(xiě)。頻率控制字寄存器確定載波的頻率,相位控制字寄存器確定載波的初始相位。32位累加器對(duì)代表頻率的頻率控制字進(jìn)行累加運(yùn)算,累加結(jié)果與代表初始相位的相位控制字通過(guò)32位加法器進(jìn)行相加運(yùn)算,相加結(jié)果的高16位數(shù)據(jù)讀取查找表的地址信息。頻率控制字寄存器、相位控制字寄存器、累加器和加法器可以用vhdl語(yǔ)言描述,集成在一個(gè)模塊中,其vhdl源程序如下:

          entity addr_sin is

          port(clock:in std_logic;——時(shí)鐘信號(hào)

          reset:in std_logic;——同步復(fù)位信號(hào)

          ——定義頻率控制字寄存器

          g_sin:in std_logic;

          data_con_sin:in std_logic_vector(31 downto 0);

          d_con_sin:out std_logic_vector(31 downto 0);

          ——定義相位控制字寄存器

          g_sin1:in std_logic;

          data_con_sin1:in std_logic_vector(31 downto 0);

          d_con_sin1:out std_logic_vector(31 downto 0);

          dout:out std_logic_vector(15 downto 0)——加法器輸出信號(hào)

          );

          end addr_sin;

          architecture behavioral of addr_sin is

          signal a_sin,a_sin1,count,count1:std_logic_vector(31downto0):=“00000000000000000000000000000000”;——定義中間變量并初始化

          begin

          d_con_sin<=a_sin;——用于微處理器讀頻率控制字寄存器

          d_con_sin<=a_sin1;——用于微處理器讀相位控制字寄存器

          dout<=count1(31 downto 16);——加法器輸出

          process(g_sin,data_con_sin)——寫(xiě)頻率控制字寄存器

          begin

          if(g_sin=“1”)then

          a_sin<=data_con_sin;

          end if;

          end process;

          process(g_sin1,data_con_sin1)——寫(xiě)相位控制字寄存器

          begin

          if(g_sin1=‘1’)then

          a_sin1<=data_con_sin1;

          end if;

          end process;

          process(clock,reset)——加法器輸出邏輯

          begin

          if reset=‘1’then

          count<=“00000000000000000000000000000000”;——累加器清零

          count1<=“00000000000000000000000000000000”;——加法器清零

          elsif(clock=‘1’and clock’ event)then

          count<=count+a_sin;——累加器輸出

          count1<=count+a_sin1;——加法器輸出

          end if ;

          end process;

          end behavioral;

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

          通道控制字寄存器和頻率控制字寄存器與相位控制字寄存器的結(jié)構(gòu)完全一樣,都是32位并行輸入/并行輸出寄存器,通過(guò)微處理器接口進(jìn)行讀寫(xiě)。通道控制字寄存器僅用最后一位對(duì)通道選擇器進(jìn)行控制。通道選擇器是二選一復(fù)用器,當(dāng)sel控制端為0時(shí)選擇通道1,當(dāng)sel控制端為1時(shí)選擇通道2,通道選擇器作為sram與fpga的接口,每個(gè)通道不僅包括16條地址線,而且還有3條控制線和32條數(shù)據(jù)線,在圖1中,為了使nco的結(jié)構(gòu)更加清晰,通道選擇器的控制線和數(shù)據(jù)線沒(méi)有表示出來(lái)。

          3.1.3 sram和鎖存器

          sram是64k×32的高性能靜態(tài)ram,由2個(gè)cy7c1021(64k×16)并聯(lián)構(gòu)成,用作查找表。sram通過(guò)微處理器進(jìn)行配置,直接存放2路、1個(gè)周期、65 536個(gè)16位載波樣本(高16位存放正弦波,低16位存放余弦波)。雖然sram是異步器件,但由于工作速度極高,在簡(jiǎn)單控制邏輯配合下完全可以工作在同步模式下。nco工作時(shí),控制邏輯(用vhdl語(yǔ)言描述)通過(guò)通道1使sram的控制信號(hào)線處于讀有效電平,用相位地址直接驅(qū)動(dòng)sram,從sram讀出的數(shù)據(jù)進(jìn)入32位鎖存器,分2路直接輸出,不需要任何地址和數(shù)據(jù)轉(zhuǎn)換邏輯。用于鎖存器的時(shí)鐘和用于累加器、加法器時(shí)鐘在相位上相差180°,這是由sram的開(kāi)關(guān)特性決定的。

          3.2 nco的工作過(guò)程

          nco工作前必須對(duì)sram進(jìn)行初始化,圖2示出nco的工作流程。首先,微處理器向通道控制字寄存器寫(xiě)入1,使通道選擇器選擇微處理器接口。然后,微處理器對(duì)sram進(jìn)行配置,向sram中寫(xiě)入載波樣本,接著,微處理器向頻率控制字寄存器和相位控制字寄存器寫(xiě)入頻率控制字和相位控制字,確定載波的頻率和初始相位,最后,向通道控制字寄存器寫(xiě)入0,通道選擇器選擇通道1,使nco處于工作狀態(tài)。此時(shí)微處理器可以對(duì)頻率控制字寄存器和相位控制字寄存器進(jìn)行動(dòng)態(tài)讀寫(xiě),實(shí)現(xiàn)對(duì)nco的動(dòng)態(tài)實(shí)時(shí)控制,完成nco頻率與初始相位的調(diào)整。

          3.3 nco性能評(píng)估

          按照上述結(jié)構(gòu),筆者設(shè)計(jì)了一種nco系統(tǒng)。該系統(tǒng)的工作時(shí)鐘為80mhz,用dsp作為微處理器。通過(guò)系統(tǒng)測(cè)試,該nco的性能指標(biāo)達(dá)到了設(shè)計(jì)要求,頻率分辨率δf=0.0186hz,信噪比(snr)在100db以上,圖3示出nco的典型特性曲線。

          4 結(jié)構(gòu)特點(diǎn)

          用fpga和sram實(shí)現(xiàn)數(shù)控振蕩器有許多特點(diǎn)。

          首先,查找表的容量可以進(jìn)一步加大。此設(shè)計(jì)的結(jié)構(gòu)把相位累加部分和查找表分開(kāi)單獨(dú)實(shí)現(xiàn),由于fpga具有可重復(fù)編程性且有豐富的i/o資源,因此只要稍加改動(dòng)fpga內(nèi)的邏輯設(shè)計(jì)就可以外掛更大容量的sram。

          其次,載波樣本的數(shù)據(jù)位數(shù)可以靈活控制。在查找表容量一定的情況下,可以根據(jù)具體應(yīng)用調(diào)整載波樣本的數(shù)據(jù)寬度。實(shí)現(xiàn)的手段有二:一是在對(duì)sram配置時(shí)通過(guò)微處理器以軟件編程的方式直接調(diào)整sram的數(shù)據(jù)寬度;二是在fpga內(nèi)對(duì)sram輸出數(shù)據(jù)的位數(shù)進(jìn)行截位處理,可通過(guò)調(diào)整fpga中鎖存器的輸出實(shí)現(xiàn)。

          第三,能夠靈活應(yīng)用到其他領(lǐng)域中,該nco只消耗fpga中的6%的slices資源,大量資源包括片內(nèi)ram和硬件乘法器都沒(méi)有用到,利用這些資源可以對(duì)nco進(jìn)行功能擴(kuò)展,實(shí)現(xiàn)數(shù)字下變頻器(digital down converter——ddc)、數(shù)字頻率合成器(direct digital synthesizer——dds)和調(diào)制解調(diào)器等。

          5 結(jié)束語(yǔ)

          本文介紹了一種新的nco實(shí)現(xiàn)方法,用該方法設(shè)計(jì)的nco可實(shí)現(xiàn)對(duì)載波的頻率、相位和幅度的完全控制,由于用獨(dú)立的大容量sram作為查找表,使得nco有較高的精度,同時(shí)該nco有很大的發(fā)揮空間,能夠靈活的運(yùn)用到其他領(lǐng)域。



          關(guān)鍵詞: 存儲(chǔ)器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉