正弦函數(shù)信號發(fā)生器的設計EDA課程設計報告.doc
《正弦函數(shù)信號發(fā)生器的設計EDA課程設計報告.doc》由會員分享,可在線閱讀,更多相關《正弦函數(shù)信號發(fā)生器的設計EDA課程設計報告.doc(16頁珍藏版)》請在裝配圖網上搜索。
存檔資料 成績: 華東交通大學理工學院課 程 設 計 報 告 書所屬課程: EDA技術及應用 設計題目: 正弦函數(shù)信號發(fā)生器的設計 分 院: 電 信 分 院 班 級: 通信工程 2008級 2班 姓 名: 駱 玉 春 學 號: 20080210420224 指導教師: 王 濤 實驗地點: 實驗樓五樓(EDA實驗室506) 2010 年 6 月 19 日 華東交通大學理工學院 課程設計任務書專業(yè):08通信工程 班級: 2班 姓名: 駱玉春 一、課程設計題目 正弦函數(shù)信號發(fā)生器的設計 二、課程設計工作:自 2011 年 6月 16 日起至 2011 年 6 月20 日止。三、課程設計的內容要求:1、識別各種Quartus II軟件中各元件及其圖形表示和文字符號。 2、學會如何使用Quartus II。 3、掌握VHDL語言的編程思想和VHDL語言的基本使用規(guī)則。 4、熟練掌握正弦函數(shù)信號發(fā)生器的工作原理,并讀懂源程序。 5、按照編譯、調試、仿真的正確步驟,并正確進行調試和仿真。 6、學會分析仿真圖。 學生簽名: 2011年 6月 19日 課程設計評閱意見序號項 目等級優(yōu)秀良好中等及格不及格1課程設計態(tài)度評價2出勤情況評價3任務難度評價4工作量飽滿評價5任務難度評價6設計中創(chuàng)新性評價7論文書寫規(guī)范化評價8綜合應用能力評價綜合評定等級評閱人 職稱 2011 年 月 日 目 錄課程設計評閱意見1目 錄2第一章 設計目的3第二章 設計要求3第三章 設計內容3第四章 設計原理3第五章 設計步驟45.1建立.mif格式文件45.2建立.hex格式文件55.3定制LPM_ROM55.4完成頂層設計11第六章 課程設計總結13參考文獻14 第一章 設計目的進一步熟悉QuartusII 6.0及其LPM_ROM與FPGA硬件資源的使用方法。培養(yǎng)動手能力以及諧作能力。第二章 設計要求1、CLK為12MHz。2、通過DAC0832輸出正弦波電壓信號,電壓范圍0-5V。3、通過仿真觀察波形。第三章 設計內容在Quartus II上完成正弦波信號發(fā)生器的設計,包括仿真和資源利用情況了解(假設利用Cyclone器件)。最后在實驗系統(tǒng)上實測,包括FPGA中ROM的在系統(tǒng)數(shù)據(jù)讀寫測試和仿真測試。信號輸出的D/A使用實驗系統(tǒng)上的DAC0832。第四章 設計原理正弦波信號發(fā)生器的結構由四部分組成:1、計數(shù)器或地址發(fā)生器(這里選擇6位)。2、正弦信號數(shù)據(jù)ROM(6位地址線,8位數(shù)據(jù)線),含有64個8位數(shù)據(jù)(一個周期)。3、VHDL頂層設計。4、8位D/A(實驗中可用ADC0832代替)。圖1所示的信號發(fā)生器結構框圖中,頂層文件singt.vhd在FPGA中實現(xiàn),包含兩個部分:ROM的地址信號發(fā)生器,由6位計數(shù)器擔任;一個正弦數(shù)據(jù)ROM,由LPM_ROM模塊構成。LPM_ROM底層是FPGA中的M4K模塊。地址發(fā)生器的時鐘CLK的輸入頻率與每周期的波形數(shù)據(jù)點數(shù)(在此選擇64點),以及D/A輸出的頻率f的關系是:f=fo/64VHDL頂層設計 singt.vhd波形數(shù)據(jù)輸出8位D/A正弦波數(shù)據(jù)存儲ROM6位計數(shù)器(地址發(fā)生器) 圖1 正弦信號發(fā)生器結構框圖第五章 設計步驟首先確定如圖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按鈕后產生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ù)格式可通過鼠標右鍵單擊窗口邊緣的地址數(shù)據(jù)彈出窗口選擇。此表中任一數(shù)據(jù)(如第三行的99)對應的地址為左列與頂行數(shù)之和(如16+2=18,十六進制為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文件表轉換成十六進制的數(shù)據(jù)表5.3定制LPM_ROM在設計正弦波信號發(fā)生器前,必須首先完成存放波形數(shù)據(jù)ROM的設計。利用MegaWizard Plug-In manager定制正弦信號數(shù)據(jù)ROM宏功能塊,并將以上的波形數(shù)據(jù)加載于此ROM中。設計步驟如下:(1)打開 MegaWizard Plug-In manager 初始對話框。在 Tools 菜單中選擇MegaWizard Plug-In manager產生一個對話框,選擇Create a new custom.項,即定制一個新的模塊。單擊Next按鈕后,在所產生的對話框的左欄選擇Storage項下的LPM_ROM,再選擇Cyclone器件和VHDL語言方式;最后輸入ROM文件存放的路徑和文件名,單擊Next按鈕。(2)選擇ROM控制線、地址線和數(shù)據(jù)線。在彈出的對話框中選擇地址線位寬和ROM中數(shù)據(jù)數(shù)分別為6和64;選擇地址鎖存控制信號inclock。(3)單擊Next按鈕在對話框的“What should the RAM”欄選擇默認的Auto。在欄選擇“Do you want toYes,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)打開此文件可以看到其中調用初始化數(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; -調用程序包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; -結束定義實體ARCHITECTURE SYN OF data_rom IS -定義結構體SIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncram -例化altsyncram元件;調用LPM模塊altsyncramGENERIC ( -參數(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;BEGINq 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ù)量64operation_mode = ROM, -LPM模式ROMoutdata_aclr_a = NONE, -無輸出鎖存異步清0outdata_reg_a = UNREGISTERED, -輸出無鎖存widthad_a = 6, -地址線寬度6width_a = 8, -數(shù)據(jù)線寬度8width_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 address5.0- Retrieval info: USED_PORT: inclock 0 0 0 0 INPUT NODEFVAL inclock- Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL q7.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模塊后應將其設置成工程進行仿真測試,以確保其功能的可靠,并熟悉該元件的時序情況。對于LPM_ROM,通過仿真測試了解數(shù)據(jù)文件是否被加載進去。5.4完成頂層設計頂層的設計主要包括編輯頂層文件、創(chuàng)建工程、全程編譯、觀察RTL電路圖、仿真、了解時序分析結果、引腳鎖定、等等。(1)信號發(fā)生器的頂層設計文件如下所示: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; -結束實體定義architecture dacc of singt is -定義結構體component data_rom -調用波形數(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); -設內部節(jié)點作為地址計數(shù)器beginprocess(clk) -LPM_ROM地址發(fā)生進程beginif clkevent and clk=1 then q1q1,q=dout,inclock=clk); -例化end dacc; -結束結構體,結束本程序2)為此頂層設計創(chuàng)建一項工程,工程名和實體名都是singt。3)全程編譯一次后進入時序仿真測試。圖4是仿真過程截圖,由波形可見,隨著每一個時鐘上升沿的到來,輸出端口將正弦波數(shù)據(jù)依次輸出。 圖4 仿真波形輸出圖第六章 課程設計總結在本次設計的過程中,我在編譯過程中出現(xiàn)問題,第一個問題出在定制LPM_ROM的過程中,我按照書上的指導一步步進行下去,可是到最后還是沒編譯出來,后來在老師和同學的指導下,發(fā)現(xiàn)問題所在,因我用的quartus軟件版本太低, 后來在重新安裝了一個更高版本的軟件,即quartus6.0版本,本以為這樣就沒問題了,當我把第一個問題解決完的時候,第二個問題接踵而至。 第二個問題出現(xiàn)在完成存放波形數(shù)據(jù)ROM的設計過程中,沒有正確的選擇指定路徑文件名romd.mif導致用于例化的波形數(shù)據(jù)ROM文件data_rom.vhd編譯失敗,經過同學的指導和我的思考和分析后,我正確的選擇指定路徑文件名romd.mif,這樣編譯正確通過。第三個問題是,在仿真的過程中,我對仿真的具體流程不太熟悉,因為平時做實驗都用的是max+plus2軟件在進行編譯仿真,最后,在老師和同學的熱情幫助下,順利完成仿真。并熟練地掌握了quartus的使用方法。在這次設計中,我也深深地體會到“細節(jié)決定成敗”這句話的真正含義,也許就因為一個小的細節(jié)就會導致設計的失敗。這次設計也啟發(fā)了我在以后的學習中一定要耐心、細心、認真,不可粗枝大葉,不懂的時候一定得虛心向別人請教。 參 考 文 獻1 潘松、黃繼業(yè). EDA實用教程. 北京:科學出版社,20062 沈明山編著.EDA技術及可編程器件應用實訓 北京:科學出版社,20043 崔建明主編.電工電子EDA仿真技術 北京:高等教育出版社,20044 侯繼紅.李向東主編,EDA實用技術教程 北京:中國電力出版社,20045 李衍編著.EDA技術入門與提高王行 西安:西安電子科技大學出版社,20056 林明權等編著.馬維旻改編,VHDL數(shù)字控制系統(tǒng)設計范例 北京:電子工業(yè)出版社,20037 辛春艷編著.VHDL硬件描述語言 北京:國防工業(yè)出版社,2002- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 正弦 函數(shù) 信號發(fā)生器 設計 EDA 課程設計 報告
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.italysoccerbets.com/p-6485565.html