正弦函數(shù)信號發(fā)生器的設(shè)計EDA課程設(shè)計報告.doc
《正弦函數(shù)信號發(fā)生器的設(shè)計EDA課程設(shè)計報告.doc》由會員分享,可在線閱讀,更多相關(guān)《正弦函數(shù)信號發(fā)生器的設(shè)計EDA課程設(shè)計報告.doc(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
存檔資料 成績: 華東交通大學(xué)理工學(xué)院 課 程 設(shè) 計 報 告 書 所屬課程: EDA技術(shù)及應(yīng)用 設(shè)計題目: 正弦函數(shù)信號發(fā)生器的設(shè)計 分 院: 電 信 分 院 班 級: 通信工程 2008級 2班 姓 名: 駱 玉 春 學(xué) 號: 20080210420224 指導(dǎo)教師: 王 濤 實驗地點: 實驗樓五樓(EDA實驗室506) 2010 年 6 月 19 日 華東交通大學(xué)理工學(xué)院 課程設(shè)計任務(wù)書 專業(yè):08通信工程 班級: 2班 姓名: 駱玉春 一、課程設(shè)計題目 正弦函數(shù)信號發(fā)生器的設(shè)計 二、課程設(shè)計工作:自 2011 年 6月 16 日起至 2011 年 6 月20 日止。 三、課程設(shè)計的內(nèi)容要求: 1、識別各種Quartus II軟件中各元件及其圖形表示和文字符號。 2、學(xué)會如何使用Quartus II。 3、掌握VHDL語言的編程思想和VHDL語言的基本使用規(guī)則。 4、熟練掌握正弦函數(shù)信號發(fā)生器的工作原理,并讀懂源程序。 5、按照編譯、調(diào)試、仿真的正確步驟,并正確進(jìn)行調(diào)試和仿真。 6、學(xué)會分析仿真圖。 學(xué)生簽名: 2011年 6月 19日 課程設(shè)計評閱意見 序號 項 目 等 級 優(yōu)秀 良好 中等 及格 不及格 1 課程設(shè)計態(tài)度評價 2 出勤情況評價 3 任務(wù)難度評價 4 工作量飽滿評價 5 任務(wù)難度評價 6 設(shè)計中創(chuàng)新性評價 7 論文書寫規(guī)范化評價 8 綜合應(yīng)用能力評價 綜合評定等級 評閱人 職稱 2011 年 月 日 目 錄 課程設(shè)計評閱意見 1 目 錄 2 第一章 設(shè)計目的 3 第二章 設(shè)計要求 3 第三章 設(shè)計內(nèi)容 3 第四章 設(shè)計原理 3 第五章 設(shè)計步驟 4 5.1建立.mif格式文件 4 5.2建立.hex格式文件 5 5.3定制LPM_ROM 5 5.4完成頂層設(shè)計 11 第六章 課程設(shè)計總結(jié) 13 參考文獻(xiàn) 14 第一章 設(shè)計目的 進(jìn)一步熟悉QuartusII 6.0及其LPM_ROM與FPGA硬件資源的使用方法。培養(yǎng)動手能力以及諧作能力。 第二章 設(shè)計要求 1、CLK為12MHz。 2、通過DAC0832輸出正弦波電壓信號,電壓范圍0~-5V。 3、通過仿真觀察波形。 第三章 設(shè)計內(nèi)容 在Quartus II上完成正弦波信號發(fā)生器的設(shè)計,包括仿真和資源利用情況了解(假設(shè)利用Cyclone器件)。最后在實驗系統(tǒng)上實測,包括FPGA中ROM的在系統(tǒng)數(shù)據(jù)讀寫測試和仿真測試。信號輸出的D/A使用實驗系統(tǒng)上的DAC0832。 第四章 設(shè)計原理 正弦波信號發(fā)生器的結(jié)構(gòu)由四部分組成: 1、計數(shù)器或地址發(fā)生器(這里選擇6位)。 2、正弦信號數(shù)據(jù)ROM(6位地址線,8位數(shù)據(jù)線),含有64個8位數(shù)據(jù)(一個周期)。 3、VHDL頂層設(shè)計。 4、8位D/A(實驗中可用ADC0832代替)。 圖1所示的信號發(fā)生器結(jié)構(gòu)框圖中,頂層文件singt.vhd在FPGA中實現(xiàn),包含兩個部分:ROM的地址信號發(fā)生器,由6位計數(shù)器擔(dān)任;一個正弦數(shù)據(jù)ROM,由LPM_ROM模塊構(gòu)成。LPM_ROM底層是FPGA中的M4K模塊。地址發(fā)生器的時鐘CLK的輸入頻率與每周期的波形數(shù)據(jù)點數(shù)(在此選擇64點),以及D/A輸出的頻率f的關(guān)系是:f=fo/64 VHDL頂層設(shè)計 singt.vhd 波形數(shù)據(jù)輸出 8位D/A 正弦波數(shù)據(jù) 存儲ROM 6位計數(shù)器 (地址發(fā)生器) 圖1 正弦信號發(fā)生器結(jié)構(gòu)框圖 第五章 設(shè)計步驟 首先確定如圖1中所示的波形數(shù)據(jù)文件。Quartus II能接受的LPM_ROM模塊中的初始化數(shù)據(jù)文件的格式有兩種:Memory Initialization File文件(.mif 文件)格式和Hexadecimal(Intel-Format)File文件(.hex文件) 格式 。 5.1建立.mif格式文件 首先在Quartus II中選擇ROM數(shù)據(jù)文件編輯窗口,即在File菜單中選擇New并在New窗口選擇Other file頁,再選擇Memory Initialization File項,單擊OK按鈕后產(chǎn)生ROM數(shù)據(jù)文件大小選擇窗口。根據(jù)64點8位正弦數(shù)據(jù)的情況,可選ROM的數(shù)據(jù)數(shù)Number為64位,數(shù)據(jù)寬Word size取8位。單擊OK按鈕,將出現(xiàn)如圖2所示的空的mif數(shù)據(jù)表格,表格中的數(shù)據(jù)格式可通過鼠標(biāo)右鍵單擊窗口邊緣的地址數(shù)據(jù)彈出窗口選擇。此表中任一數(shù)據(jù)(如第三行的99)對應(yīng)的地址為左列與頂行數(shù)之和(如16+2=18,十六進(jìn)制為12,即00010010)。然后將波形數(shù)據(jù)填入此表中。最后在File菜單單擊Save as按鈕,保存此數(shù)據(jù)文件,這里不妨取名romd.mif。 圖2 將波形數(shù)據(jù)填入mif文件表中 5.2建立.hex格式文件 建立.hex格式文件,與建立.mif格式文件方法相同,只是在New窗口中選擇Other file 項后,選擇Hexadecimal(Inter-Format) File項,最后存盤.hex格式文件。如圖3所示。 圖3 將波形數(shù)據(jù)填入hex文件表轉(zhuǎn)換成十六進(jìn)制的數(shù)據(jù)表 5.3定制LPM_ROM 在設(shè)計正弦波信號發(fā)生器前,必須首先完成存放波形數(shù)據(jù)ROM的設(shè)計。利用MegaWizard Plug-In manager定制正弦信號數(shù)據(jù)ROM宏功能塊,并將以上的波形數(shù)據(jù)加載于此ROM中。設(shè)計步驟如下: (1)打開 MegaWizard Plug-In manager 初始對話框。在 Tools 菜單中選擇MegaWizard Plug-In manager產(chǎn)生一個對話框,選擇Create a new custom...項,即定制一個新的模塊。單擊Next按鈕后,在所產(chǎn)生的對話框的左欄選擇Storage項下的LPM_ROM,再選擇Cyclone器件和VHDL語言方式;最后輸入ROM文件存放的路徑和文件名,單擊Next按鈕。 (2)選擇ROM控制線、地址線和數(shù)據(jù)線。在彈出的對話框中選擇地址線位寬和ROM中數(shù)據(jù)數(shù)分別為6和64;選擇地址鎖存控制信號inclock。 (3)單擊Next按鈕在對話框的“What should the RAM…”欄選擇默認(rèn)的Auto。在欄選擇“Do you want to…Yes,use this file for memory content data”項,并按Browse鈕,選擇指定路徑上的文件data_rom.mif。在“Allow In-System Memory…”欄選擇打勾,并在“The Instance ID of this ROM”欄輸入ROM1,作為ROM的ID名稱。最后單擊Next按鈕,再單擊Finish 按鈕后完成ROM定制。 (4)打開此文件可以看到其中調(diào)用初始化數(shù)據(jù)文件的語句為:init_file => "sdata.mif"。其中的init_file指向已做了修改。修改后用于例化的波形數(shù)據(jù)ROM文件data_rom.vhd如下。 data_rom.vhd 源代碼: -- megafunction wizard: %LPM_ROM% -- GENERATION: STANDARD -- VERSION: WM1.0 -- MODULE: altsyncram -- ============================================================ -- File Name: data_rom.vhd -- Megafunction Name(s): -- altsyncram -- ============================================================ -- ************************************************************ -- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! -- 6.0 Build 178 04/27/2006 SJ Full Version -- ************************************************************ -- Copyright (C) 1991-2006 Altera Corporation -- Your use of Altera Corporations design tools, logic functions -- and other software and tools, and its AMPP partner logic -- functions, and any output files any of the foregoing -- (including device programming or simulation files), and any -- associated documentation or information are expressly subject -- to the terms and conditions of the Altera Program License -- Subscription Agreement, Altera MegaCore Function License -- Agreement, or other applicable license agreement, including, -- without limitation, that your use is for the sole purpose of -- programming logic devices manufactured by Altera and sold by -- Altera or its authorized distributors. Please refer to the -- applicable agreement for further details. LIBRARY ieee; --庫說明 USE ieee.std_logic_1164.all; --調(diào)用程序包 LIBRARY altera_mf; USE altera_mf.all; --使用宏功能庫中的所有元件 ENTITY data_rom IS --定義實體(正弦波數(shù)據(jù)存儲器) PORT --data_rom 端口說明 ( address: IN STD_LOGIC_VECTOR (5 DOWNTO 0); inclock: IN STD_LOGIC ; q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END data_rom; --結(jié)束定義實體 ARCHITECTURE SYN OF data_rom IS --定義結(jié)構(gòu)體 SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0); COMPONENT altsyncram --例化altsyncram元件;調(diào)用LPM模塊altsyncram GENERIC ( --參數(shù)傳遞語句 address_aclr_a: STRING; init_file: STRING; intended_device_family: STRING;--類屬參量數(shù)據(jù)類型定義 lpm_hint: STRING; lpm_type: STRING; numwords_a : NATURAL; operation_mode: STRING; outdata_aclr_a: STRING; outdata_reg_a: STRING; widthad_a: NATURAL; width_a: NATURAL; width_byteena_a: NATURAL); PORT ( --altsyncram元件接口說明 clock0: IN STD_LOGIC ; address_a: IN STD_LOGIC_VECTOR (5 DOWNTO 0); q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; BEGIN q<= sub_wire0(7 DOWNTO 0); altsyncram_component: altsyncram GENERIC MAP ( address_aclr_a => "NONE", --無異步地址清零 init_file => "D:/myproject/zidata/sdata.hex", --ROM初始化數(shù)據(jù)文件,此處已修改過 intended_device_family => "Cyclone", --參數(shù)傳遞映射 lpm_hint => "ENABLE_RUNTIME_MOD=NO", lpm_type => "altsyncram", --LPM數(shù)據(jù)類型 numwords_a => 64, --數(shù)據(jù)數(shù)量64 operation_mode => "ROM", --LPM模式ROM outdata_aclr_a => "NONE", --無輸出鎖存異步清0 outdata_reg_a => "UNREGISTERED", --輸出無鎖存 widthad_a => 6, --地址線寬度6 width_a => 8, --數(shù)據(jù)線寬度8 width_byteena_a => 1 --byteena_a輸入口寬度為1 ) PORT MAP ( clock0 => inclock,address_a => address,q_a => sub_wire0); END SYN; -- ============================================================ -- CNX file retrieval info -- ============================================================ -- Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0" -- Retrieval info: PRIVATE: AclrAddr NUMERIC "0" -- Retrieval info: PRIVATE: AclrByte NUMERIC "0" -- Retrieval info: PRIVATE: AclrOutput NUMERIC "0" -- Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC "0" -- Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8" -- Retrieval info: PRIVATE: BlankMemory NUMERIC "0" -- Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0" -- Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0" -- Retrieval info: PRIVATE: Clken NUMERIC "0" -- Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0" -- Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A" -- Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0" -- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" -- Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0" -- Retrieval info: PRIVATE: JTAG_ID STRING "NONE" -- Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0" -- Retrieval info: PRIVATE: MIFfilename STRING "D:/myproject/zidata/sdata.hex" -- Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "64" -- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" -- Retrieval info: PRIVATE: RegAddr NUMERIC "1" -- Retrieval info: PRIVATE: RegOutput NUMERIC "0" -- Retrieval info: PRIVATE: SingleClock NUMERIC "0" -- Retrieval info: PRIVATE: UseDQRAM NUMERIC "0" -- Retrieval info: PRIVATE: WidthAddr NUMERIC "6" -- Retrieval info: PRIVATE: WidthData NUMERIC "8" -- Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE" -- Retrieval info: CONSTANT: INIT_FILE STRING "D:/myproject/zidata/sdata.hex" -- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" -- Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO" -- Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram" -- Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "64" -- Retrieval info: CONSTANT: OPERATION_MODE STRING "ROM" -- Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING "NONE" -- Retrieval info: CONSTANT: OUTDATA_REG_A STRING "UNREGISTERED" -- Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "6" -- Retrieval info: CONSTANT: WIDTH_A NUMERIC "8" -- Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1" -- Retrieval info: USED_PORT: address 0 0 6 0 INPUT NODEFVAL address[5..0] -- Retrieval info: USED_PORT: inclock 0 0 0 0 INPUT NODEFVAL inclock -- Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL q[7..0] -- Retrieval info: CONNECT: @address_a 0 0 6 0 address 0 0 6 0 -- Retrieval info: CONNECT: q 0 0 8 0 @q_a 0 0 8 0 -- Retrieval info: CONNECT: @clock0 0 0 0 0 inclock 0 0 0 0 -- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all -- Retrieval info: GEN_FILE: TYPE_NORMAL data_rom.vhd TRUE -- Retrieval info: GEN_FILE: TYPE_NORMAL data_rom.inc FALSE -- Retrieval info: GEN_FILE: TYPE_NORMAL data_rom.cmp TRUE -- Retrieval info: GEN_FILE: TYPE_NORMAL data_rom.bsf TRUE -- Retrieval info: GEN_FILE: TYPE_NORMAL data_rom_inst.vhd FALSE2) 定制好LPM模塊后應(yīng)將其設(shè)置成工程進(jìn)行仿真測試,以確保其功能的可靠,并熟悉該元件的時序情況。對于LPM_ROM,通過仿真測試了解數(shù)據(jù)文件是否被加載進(jìn)去。 5.4完成頂層設(shè)計 頂層的設(shè)計主要包括編輯頂層文件、創(chuàng)建工程、全程編譯、觀察RTL電路圖、仿真、了解時序分析結(jié)果、引腳鎖定、等等。 (1)信號發(fā)生器的頂層設(shè)計文件如下所示: library ieee; --庫說明 use ieee.std_logic_1164.all; --引用程序包 use ieee.std_logic_unsigned.all; --引用程序包 entity singt is --定義信號發(fā)生器實體 port( clk: in std_logic; --信號源時鐘 dout: out std_logic_vector(7 downto 0)); --8位波形數(shù)據(jù)輸出 end singt; --結(jié)束實體定義 architecture dacc of singt is --定義結(jié)構(gòu)體 component data_rom --調(diào)用波形數(shù)據(jù)存儲器LPM_ROM,data_rom.vhd聲明 port( address: in std_logic_vector(5 downto 0); --6位地址信號 inclock: in std_logic; --地址鎖存時鐘 q: out std_logic_vector(7 downto 0)); end component; signal q1:std_logic_vector(5 downto 0); --設(shè)內(nèi)部節(jié)點作為地址計數(shù)器 begin process(clk) --LPM_ROM地址發(fā)生進(jìn)程 begin if clkevent and clk=1 then q1<=q1+1;--Q1作為地址發(fā)生器計數(shù)器 end if; end process; u1: data_rom port map (address=>q1,q=>dout,inclock=>clk); --例化 end dacc; --結(jié)束結(jié)構(gòu)體,結(jié)束本程序 2)為此頂層設(shè)計創(chuàng)建一項工程,工程名和實體名都是singt。 3)全程編譯一次后進(jìn)入時序仿真測試。圖4是仿真過程截圖,由波形可見,隨著每一個時鐘上升沿的到來,輸出端口將正弦波數(shù)據(jù)依次輸出。 圖4 仿真波形輸出圖 第六章 課程設(shè)計總結(jié) 在本次設(shè)計的過程中,我在編譯過程中出現(xiàn)問題,第一個問題出在定制LPM_ROM的過程中,我按照書上的指導(dǎo)一步步進(jìn)行下去,可是到最后還是沒編譯出來,后來在老師和同學(xué)的指導(dǎo)下,發(fā)現(xiàn)問題所在,因我用的quartus軟件版本太低, 后來在重新安裝了一個更高版本的軟件,即quartus6.0版本,本以為這樣就沒問題了,當(dāng)我把第一個問題解決完的時候,第二個問題接踵而至。 第二個問題出現(xiàn)在完成存放波形數(shù)據(jù)ROM的設(shè)計過程中,沒有正確的選擇指定路徑文件名romd.mif導(dǎo)致用于例化的波形數(shù)據(jù)ROM文件data_rom.vhd編譯失敗,經(jīng)過同學(xué)的指導(dǎo)和我的思考和分析后,我正確的選擇指定路徑文件名romd.mif,這樣編譯正確通過。第三個問題是,在仿真的過程中,我對仿真的具體流程不太熟悉,因為平時做實驗都用的是max+plus2軟件在進(jìn)行編譯仿真,最后,在老師和同學(xué)的熱情幫助下,順利完成仿真。并熟練地掌握了quartus的使用方法。在這次設(shè)計中,我也深深地體會到“細(xì)節(jié)決定成敗”這句話的真正含義,也許就因為一個小的細(xì)節(jié)就會導(dǎo)致設(shè)計的失敗。這次設(shè)計也啟發(fā)了我在以后的學(xué)習(xí)中一定要耐心、細(xì)心、認(rèn)真,不可粗枝大葉,不懂的時候一定得虛心向別人請教。 參 考 文 獻(xiàn) [1] 潘松、黃繼業(yè). EDA實用教程. 北京:科學(xué)出版社,2006 [2] 沈明山編著.EDA技術(shù)及可編程器件應(yīng)用實訓(xùn) 北京:科學(xué)出版社,2004 [3] 崔建明主編.電工電子EDA仿真技術(shù) 北京:高等教育出版社,2004 [4] 侯繼紅.李向東主編,EDA實用技術(shù)教程 北京:中國電力出版社,2004 [5] 李衍編著.EDA技術(shù)入門與提高王行 西安:西安電子科技大學(xué)出版社,2005 [6] 林明權(quán)等編著.馬維旻改編,VHDL數(shù)字控制系統(tǒng)設(shè)計范例 北京:電子工業(yè)出版社,2003 [7] 辛春艷編著.VHDL硬件描述語言 北京:國防工業(yè)出版社,2002- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 正弦 函數(shù) 信號發(fā)生器 設(shè)計 EDA 課程設(shè)計 報告
鏈接地址:http://m.jqnhouse.com/p-6485565.html