EDA课程报告正弦波信号发生器的方案设计书Word下载.docx
- 文档编号:19179745
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:17
- 大小:37.35KB
EDA课程报告正弦波信号发生器的方案设计书Word下载.docx
《EDA课程报告正弦波信号发生器的方案设计书Word下载.docx》由会员分享,可在线阅读,更多相关《EDA课程报告正弦波信号发生器的方案设计书Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
%d。
\n"
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的跳线频率时,相应的波形输出情况也发生相应的变化。
在这次设计中,我也深深地体会到“细节决定成败”这句话的真正含义,也许就因为一个小的细节就会导致设计的失败。
这次设计也启发了我在以后的学习中一定要耐心、细心、认真,不可粗枝大叶。
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=>
WHEN118=>
WHEN119=>
=223
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程 报告 正弦波 信号发生器 方案设计