EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx

上传人:b****5 文档编号:16255333 上传时间:2022-11-22 格式:DOCX 页数:17 大小:65.46KB
下载 相关 举报
EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx_第1页
第1页 / 共17页
EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx_第2页
第2页 / 共17页
EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx_第3页
第3页 / 共17页
EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx_第4页
第4页 / 共17页
EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx

《EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

EDA课程报告正弦波信号发生器的设计Word格式文档下载.docx

,i,(int)((s+1)*255/2))

}

其次,把上述程序编译后,在DOS命令行下执行命令:

romgen>

sdata.mif;

将生成的sdata.mif文件,再加上.mif文件的头部说明即可。

.mif文件的头部说明如下所示:

WIDTH=8;

DEPTH=1024;

ADDRESS_RADIX=DEC;

DATA_RADIX=DEC;

CONTENTBEGIN

0:

127;

1:

130;

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的设计。

利用MegaWizardPlug-Inmanager定制正弦信号数据ROM宏功能块,并将以上的波形数据加载于此ROM中。

设计步骤如下:

1)打开MegaWizardPlug-Inmanager初始对话框。

在Tools菜单中选择MegaWizardPlug-Inmanager产生一个对话框,选择Createanewcustom...项,即定制一个新的模块。

单击Next按钮后,在所产生的对话框的左栏选择Storage项下的LPM_ROM,再选择CycloneⅡ器件和VHDL语言方式;

最后输入ROM文件存放的路径和文件名:

e:

\www\rom_1024.vhd,单击Next按钮。

2)选择ROM控制线、地址线和数据线。

在弹出的对话框中选择地址线位宽和ROM中数据数分别为10和1024;

选择地址锁存控制信号clock。

3)单击Next按钮在对话框的“WhatshouldtheRAM…”栏选择默认的Auto。

在栏选择“Doyouwantto…Yes,usethisfileformemorycontentdata”项,并按Browse钮,选择指定路径上的文件rom_1024.mif。

“AllowIn-SystemMemory…”栏选择打勾,并在“TheInstanceIDofthisROM”栏输入ROM1,作为ROM的ID名称。

最后单击Next按钮,再单击Finish按钮后完成ROM定制。

4)打开此文件可以看到其中调用初始化数据文件的语句为:

init_file=>

"

sdata.mif"

最后生成的ROM元件文件如源代码1所示,其中的init_file指向已做了修改。

修改后用于例化的波形数据ROM文件rom_1024.vhd如下。

六、源代码:

1)、源代码1如下所示:

LIBRARYieee;

USEieee.std_logic_1164.all;

LIBRARYaltera_mf;

USEaltera_mf.altera_mf_components.all;

ENTITYrom_1024IS

PORT

(address:

INSTD_LOGIC_VECTOR(9DOWNTO0);

clock:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDrom_1024;

ARCHITECTURESYNOFrom_1024IS

SIGNALsub_wire0:

STD_LOGIC_VECTOR(7DOWNTO0);

COMPONENTaltsyncram

--例化altsyncram元件,调用了LPM模块altsyncram

GENERIC(--参数传递语句

--类属参量数据类型定义

intended_device_family:

STRING;

width_a:

NATURAL;

widthad_a:

numwords_a:

operation_mode:

outdata_reg_a:

address_aclr_a:

outdata_aclr_a:

width_byteena_a:

init_file:

lpm_hint:

lpm_type:

STRING

PORT(--altsyncram元件接口声明

clock0:

address_a:

q_a:

ENDCOMPONENT;

BEGIN

q<

=sub_wire0(7DOWNTO0);

altsyncram_component:

altsyncram

GENERICMAP(

intended_device_family=>

"

Cyclone"

--参数传递映射

width_a=>

8,--数据线宽度8

widthad_a=>

10,--地址线宽度10

numwords_a=>

1024,--数据数量1024

operation_mode=>

ROM"

--LPM模式ROM

outdata_reg_a=>

CLOCK0"

--输出锁存CLOCK0

address_aclr_a=>

NONE"

--无异步地址清0

outdata_aclr_a=>

--无输出锁存异步清0

width_byteena_a=>

1,--byteena_a输出口宽度1

init_file=>

--ROM初始化数据文件

lpm_hint=>

ENABLE_RUNTIME_MOD=NO"

lpm_type=>

altsyncram"

--LPM类型

PORTMAP(

clock0=>

clock,

address_a=>

address,

q_a=>

sub_wire0

);

ENDSYN;

2)、顶层设计代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitysingtis

port(clk:

instd_logic;

--信号源时钟

dout:

outstd_logic_vector(7downto0));

--8位波形数据输出

endsingt;

architecturedaccofsingtis

componentrom_1024

--调用波形数据存储器LPM_ROM,

文件:

rom_1024.vhd声明

port(address:

instd_logic_vector(9downto0);

--10位地址信号

clock:

--地址锁存时钟

q:

outstd_logic_vector(7downto0));

endcomponent;

signalq1:

std_logic_vector(9downto0);

--设内部节点作为地址计数器

begin

process(clk)--LPM_ROM地址发生进程

begin

ifclk'

eventandclk='

1'

then

q1<

=q1+1;

--Q1作为地址发生器计数器

endif;

endprocess;

u1:

rom_1024portmap(address=>

q1,q=>

dout,clock=>

clk);

--例化

enddacc;

3)为此顶层设计创建一项工程,工程名和实体名都是singt。

4)全程编译一次后进入时序仿真测试。

由波形可见,随着每一个时钟上升沿的到来,输出端口将正弦波数据依次输出。

5)硬件测试。

选择电路模式5,则时钟CLK接实验箱的clock0。

将dout(0)…dout(7)分别锁定于实验系统上与DAC0832相接的I/O口:

PIO24、PIO25、PIO26、PIO27、PIO28、PIO29、PIO30、PIO31。

编译下载singt.sof后,打开电压开关,将CLK的时钟通过实验箱上clock0的跳线选择频率为12MHZ,再将示波器接于实验箱的两个挂钩上就能观察波形的输出情况了。

七、仿真波形图:

八、仿真电路图:

九、引脚锁定:

十、设计结果:

Clock0=12MHZ,输出频率为:

f=47KHZ,周期为:

T=21us

十一、设计体会:

在本次设计的过程中,我在编译过程中出现问题,第一个问题出在建立.mif格式文件中,没有将生成的sdata.mif文件加上.mif文件的头部说明。

由于没有加.mif文件的头部说明,导致用于例化的波形数据ROM文件rom_1024.vhd编译失败。

最后在老师的指导帮助下,正确的把.mif文件的头部说明加在了生成的sdata.mif文件中,这样rom_1024.vhd文件编译成功。

第二个问题出现在完成存放波形数据ROM的设计过程中,没有正确的选择指定路径文件名sdata.mif导致用于例化的波形数据ROM文件rom_1024.vhd编译失败,经过我的思考和分析后,我正确的选择指定路径文件名sdata.mif,这样编译正确通过。

最后,正确的设计正弦波信号发生器的顶层文件sight.vhd,使设计顺利的通过编译。

在编译下载singt.sof后,当改变实验箱上clock0的跳线频率时,相应的波形输出情况也发生相应的变化。

在这次设计中,我也深深地体会到“细节决定成败

”这句话的真正含义,也许就因为一个小的细节就会导致设计的失败。

这次设计也启发了我在以后的学习中一定要耐心、细心、认真,不可粗枝大叶。

libraryieee;

entityabcis

port(

clk:

instd_logic;

dout:

outintegerrange255downto0;

a:

instd_logic);

architectureoneofabcis

signalQ:

integerrange127downto0;

signalW:

integerrange255downto0;

signalD:

signalC:

integerrange63downto0;

begin

process(clk)

ifclk'

eventandclk='

thenQ<

=Q+1;

C<

=C+1;

ifQ<

127THENQ<

ELSEQ<

=0;

ifC<

63THENC<

ELSEC<

ENDIF;

ENDPROCESS;

PROCESS(C,Q)

CASECIS

WHEN000=>

D<

=255;

WHEN001=>

=254;

WHEN002=>

=252;

WHEN003=>

=249;

WHEN004=>

=245;

WHEN005=>

=239;

WHEN006=>

=233;

WHEN007=>

=225;

WHEN008=>

=217;

WHEN009=>

=207;

WHEN010=>

=197;

WHEN011=>

=186;

WHEN012=>

=174;

WHEN013=>

=162;

WHEN014=>

=150;

WHEN015=>

=137;

WHEN016=>

=124;

WHEN017=>

=112;

WHEN018=>

=99;

WHEN019=>

=87;

WHEN020=>

=75;

WHEN021=>

=64;

WHEN022=>

=53;

WHEN023=>

=43;

WHEN024=>

=34;

WHEN025=>

=26;

WHEN026=>

=19;

WHEN027=>

=13;

WHEN028=>

=8;

WHEN029=>

=4;

WHEN030=>

=1;

WHEN031=>

WHEN032=>

WHEN033=>

WHEN034=>

WHEN035=>

WHEN036=>

WHEN037=>

WHEN038=>

WHEN039=>

WHEN040=>

WHEN041=>

WHEN042=>

WHEN043=>

WHEN044=>

WHEN045=>

WHEN046=>

WHEN047=>

WHEN048=>

WHEN049=>

WHEN050=>

WHEN051=>

WHEN052=>

WHEN053=>

WHEN054=>

WHEN055=>

WHEN056=>

WHEN057=>

WHEN058=>

WHEN059=>

WHEN060=>

WHEN061=>

WHEN062=>

WHEN063=>

ENDCASE;

CASEQIS

W<

=251;

=247;

=243;

=235;

=231;

=227;

=223;

=219;

=215;

=211;

=203;

=199;

=195;

=191;

=187;

=183;

=179;

=175;

=171;

=167;

=163;

=159;

=155;

=151;

=147;

=143;

=139;

=135;

=131;

=127;

=123;

=119;

=115;

=111;

=107;

=103;

=95;

=91;

=83;

=79;

=71;

=67;

=63;

=59;

=55;

=51;

=47;

=39;

=35;

=31;

=27;

=23;

=15;

=11;

=7;

=3;

WHEN064=>

WHEN065=>

WHEN066=>

WHEN067=>

WHEN068=>

WHEN069=>

WHEN070=>

WHEN071=>

WHEN072=>

WHEN073=>

WHEN074=>

WHEN075=>

WHEN076=>

WHEN077=>

WHEN078=>

WHEN079=>

WHEN080=>

WHEN081=>

WHEN082=>

WHEN083=>

WHEN084=>

WHEN085=>

WHEN086=>

WHEN087=>

WHEN088=>

WHEN089=>

WHEN090=>

WHEN091=>

WHEN092=>

WHEN093=>

WHEN094=>

WHEN095=>

WHEN096=>

WHEN097=>

WHEN098=>

WHEN099=>

WHEN100=>

WHEN101=>

WHEN102=>

WHEN103=>

WHEN104=>

WHEN105=>

WHEN106=>

WHEN107=>

WHEN108=>

WHEN109=>

WHEN110=>

WHEN111=>

WHEN112=>

WHEN113=>

WHEN114=>

WHEN115=>

WHEN116=>

WHEN117=>

W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1