EDA课程报告_正弦波信号发生器的设计.doc
《EDA课程报告_正弦波信号发生器的设计.doc》由会员分享,可在线阅读,更多相关《EDA课程报告_正弦波信号发生器的设计.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、EDA课程设计报告 正弦波信号发生器的设计一、设计目的: 进一步熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。培养动手能力以及合作能力。二、设计要求: 1、clk为12MHz。2、通过DAC0832输出正弦波电压信号,电压范围0-5V。3、通过示波器观察波形。三、设计内容: 在QUARTUSII上完成正弦波信号发生器的设计,包括仿真和资源利用情况了解(假设利用Cyclone器件)。最后在实验系统上实测,包括FPGA中ROM的在系统数据读写测试和利用示波器测试。信号输出的D/A使用实验系统上的ADC0832。四、 设计原理: 图1所示的正弦波信号发生器的结构由四部分组成:
2、1、 计数器或地址发生器(这里选择10位)。2、 正弦信号数据ROM(10位地址线,8位数据线),含有1024个8位数据(一个周期)。3、 VHDL顶层设计。4、 8位D/A(实验中可用ADC0832代替)。图1所示的信号发生器结构图中,顶层文件singt.vhd在FPGA中实现,包含两个部分:ROM的地址信号发生器,由10位计数器担任;一个正弦数据ROM,由LPM_ROM模块构成。LPM_ROM底层是FPGA中的EAB、ESB或M4K等模块。地址发生器的时钟clk的输入频率fo与每周期的波形数据点数(在此选择1024点),以及D/A输出的频率f的关系是:f=fo/1024 VHDL顶层设计s
3、ingt.vhd8位D/A正弦波数据存储ROM10位计数器(地址发生器) 图1 正弦信号发生器结构框图 图2 正弦波信号发生器的设计图五、 设计步骤:1、 建立.mif格式文件首先,mif文件可用C语言程序生成,产生正弦波数值的C程序如下:#include#includemain()int i;float s;for(i=0;i sdata.mif;将生成的sdata.mif 文件,再加上.mif文件的头部说明即可。.mif文件的头部说明如下所示:WIDTH=8;DEPTH=1024;ADDRESS_RADIX=DEC;DATA_RADIX=DEC;CONTENT BEGIN0:127;1:1
4、30;2:133;3:136;4:139;5:143;6:146;(数据略去)1016:102;1017:105;1018:108;1019:111;1020:115;1021:118;1022:121;1023:124;END;2、 在设计正弦波信号发生器前,必须首先完成存放波形数据ROM的设计。利用MegaWizard Plug-In manager定制正弦信号数据ROM宏功能块,并将以上的波形数据加载于此ROM中。设计步骤如下:1) 打开MegaWizard Plug-In manager初始对话框。在Tools菜单中选择MegaWizard Plug-In manager产生一个对话框
5、,选择Create a new custom.项,即定制一个新的模块。单击Next按钮后,在所产生的对话框的左栏选择Storage项下的LPM_ROM,再选择Cyclone器件和VHDL语言方式;最后输入ROM文件存放的路径和文件名:e:wwwrom_1024.vhd,单击Next按钮。2) 选择ROM控制线、地址线和数据线。在弹出的对话框中选择地址线位宽和ROM中数据数分别为10和1024;选择地址锁存控制信号clock。3) 单击Next按钮在对话框的“What should the RAM”栏选择默认的Auto。在栏选择“Do you want toYes,use this file f
6、or memory content data”项,并按Browse钮,选择指定路径上的文件rom_1024.mif。在“Allow In-System Memory”栏选择打勾,并在“The Instance ID of this ROM”栏输入ROM1,作为ROM的ID名称。最后单击Next按钮,再单击Finish 按钮后完成ROM定制。4) 打开此文件可以看到其中调用初始化数据文件的语句为:init_file = sdata.mif。最后生成的ROM元件文件如源代码1所示,其中的init_file指向已做了修改。修改后用于例化的波形数据ROM文件rom_1024.vhd如下。六、 源代码:
7、1)、源代码1如下所示:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;ENTITY rom_1024 IS PORT ( address: IN STD_LOGIC_VECTOR (9 DOWNTO 0);clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END rom_1024;ARCHITECTURE SYN OF rom_1024 ISSIGNAL sub_wire0:S
8、TD_LOGIC_VECTOR(7 DOWNTO 0);COMPONENT altsyncram -例化altsyncram元件,调用了LPM模块altsyncram GENERIC ( -参数传递语句 -类属参量数据类型定义intended_device_family: STRING;width_a: NATURAL;widthad_a: NATURAL;numwords_a: NATURAL;operation_mode: STRING;outdata_reg_a: STRING;address_aclr_a: STRING;outdata_aclr_a: STRING;width_byt
9、eena_a: NATURAL;init_file: STRING;lpm_hint: STRING;lpm_type: STRING ); PORT ( - altsyncram元件接口声明clock0: IN STD_LOGIC ; address_a: IN STD_LOGIC_VECTOR (9 DOWNTO 0);q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT;BEGIN q Cyclone, -参数传递映射 width_a = 8, -数据线宽度8 widthad_a = 10, -地址线宽度10numwords_a
10、= 1024, -数据数量1024operation_mode = ROM,-LPM模式ROMoutdata_reg_a = CLOCK0,-输出锁存CLOCK0address_aclr_a = NONE,-无异步地址清0outdata_aclr_a = NONE,-无输出锁存异步清0width_byteena_a = 1, -byteena_a输出口宽度1init_file = sdata.mif, -ROM初始化数据文件lpm_hint = ENABLE_RUNTIME_MOD=NO,lpm_type = altsyncram -LPM类型)PORT MAP (clock0 = clock
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程 报告 正弦波 信号发生器 设计
限制150内