數(shù)字電路課程設(shè)計--直接數(shù)字頻率合成_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  《數(shù)字電路課程設(shè)計》</p><p>  ——直接數(shù)字頻率合成</p><p>  摘要:本次課程設(shè)計主要任務(wù)是設(shè)計數(shù)字正弦信號發(fā)生器,主要依據(jù)的原理原理是奈奎斯特采樣定律,從一個連續(xù)的正弦信號中經(jīng)取樣、量化、編碼,形成一個正弦函數(shù)表,存于ROM中。合成時,通過改變相位累加器的累加步長控制字來改變相位增量。相位增量不同,輸出的一個正弦周期內(nèi)的采樣點數(shù)就不同,從而達到改

2、變頻率的目的。實驗利用xilinx軟件進行編寫程序之后下載到xilinx開發(fā)板上,最后生成正弦波。</p><p><b>  二、設(shè)計方案</b></p><p><b>  實驗任務(wù)與原理</b></p><p><b>  任務(wù)指標(biāo):</b></p><p>  掌握數(shù)

3、字函數(shù)發(fā)生器的基本原理;</p><p>  通過實驗掌握xilinx軟件及開發(fā)板的基本使用方法;</p><p>  進一步掌握VHDL。</p><p><b>  功能需求:</b></p><p>  產(chǎn)生一定范圍內(nèi)的任意頻率的正弦波。</p><p><b>  原理闡述:&l

4、t;/b></p><p>  在時鐘頻率即采樣頻率不變的情況下,通過相位增量的改變來實現(xiàn)頻率的改變。對于正弦信號發(fā)生器,它的輸出可以用下式來描述:;Sout是該信號發(fā)生器的輸出信號波形,fout指輸出信號對應(yīng)的頻率。上式的表述對于時間t是連續(xù)的,為了用數(shù)字邏輯實現(xiàn)該表達式,必須進行離散化處理。用基準(zhǔn)時鐘clk進行抽樣,令正弦信號的相位:;在一個clk周期Tclk內(nèi),相位的增量為: 。</p>

5、<p>  Fclk指clk的頻率,對相位增加進行數(shù)字量化,則2π切割成2的N次方份,每個clk周期相位增加則為,K為整數(shù),稱K為頻率控制字。于是,得到。就可以得到輸出信號的頻率為 。</p><p><b>  系統(tǒng)設(shè)計及仿真</b></p><p><b>  1、頂層模塊設(shè)計:</b></p><p>

6、;<b>  代碼:</b></p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164.ALL;</p><p>  entity top is</p><p>  Port ( clk : in STD_LOGIC;</p><p> 

7、 din : in STD_LOGIC_VECTOR (7 downto 0);</p><p>  dout : out STD_LOGIC_VECTOR (7 downto 0));</p><p><b>  end top;</b></p><p>  architecture Behavioral of top is</p&

8、gt;<p>  component rom is</p><p><b>  port (</b></p><p>  clka: IN std_logic;</p><p>  addra: IN std_logic_VECTOR(10 downto 0);</p><p>  douta: OUT s

9、td_logic_VECTOR(7 downto 0)</p><p><b>  );</b></p><p>  end component;</p><p>  component accumulator is</p><p>  Port ( clk : in STD_LOGIC;</p><

10、;p>  k : in STD_LOGIC_VECTOR (7 downto 0);</p><p>  dout : out STD_LOGIC_VECTOR (10 downto 0));</p><p>  end component;</p><p>  signal addr: STD_LOGIC_VECTOR(10 downto 0);<

11、/p><p><b>  begin</b></p><p>  U1: accumulator</p><p>  port map(clk, din, addr);</p><p><b>  U2: rom</b></p><p>  port map(clk, addr,

12、 dout);</p><p>  end Behavioral;</p><p><b>  累加器設(shè)計:</b></p><p><b>  代碼:</b></p><p>  library IEEE;</p><p>  use IEEE.STD_LOGIC_1164

13、.ALL;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  entity accumulator is</p><p>  Port ( clk : in STD_LOGIC;</p><p>  k : in STD_LOGIC_VECTOR (7 downto 0);</

14、p><p>  dout : out STD_LOGIC_VECTOR (10 downto 0));</p><p>  end accumulator;</p><p>  architecture Behavioral of accumulator is</p><p>  signal tmp: STD_LOGIC_VECTOR(10

15、downto 0) := (others => '0');</p><p>  signal ktmp: STD_LOGIC_VECTOR(10 downto 0) := (others => '0');</p><p><b>  begin</b></p><p>  ktmp <= &qu

16、ot;000"&k;</p><p>  process(clk)</p><p><b>  begin</b></p><p>  if(rising_edge(clk)) then</p><p>  tmp <= tmp + ktmp;</p><p><b&

17、gt;  end if;</b></p><p>  end process;</p><p>  dout <= tmp;</p><p>  end Behavioral;</p><p>  3、波形存儲器ROM</p><p>  其作用是進行波形的相位—幅值轉(zhuǎn)換。其原理是: </p&g

18、t;<p>  ROM的N位地址 :把0—2*pi的正弦角度離散成具有2N個樣值的序列;</p><p>  ROM的D位數(shù)據(jù)位:則2N個樣值的幅值量化為D位二進制數(shù);</p><p><b>  作品調(diào)試及仿真結(jié)果</b></p><p>  從仿真結(jié)果可以看出,成功得到了正弦波,并且可以通過撥碼開關(guān)來改變累加器累加步長從而改變

19、正弦波的頻率。</p><p><b>  第4章 結(jié)束語</b></p><p>  過程故障分析與處理: 本實驗編寫代碼部比較簡單,但是由于缺乏只用開發(fā)板的經(jīng)驗,在后續(xù)的下板過程中遇到了很多困難,比如說用matlab生成ROM所需要的coe文件,將生成的文件程序下載到開發(fā)板中,最后看波形,等等這些困難,當(dāng)然最后還是在老師和同學(xué)的耐心指導(dǎo)下學(xué)會的那些操作步驟,完成的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論