基于FPGA的基于DDS技术的信号发生器设计说明Word文档格式.docx
- 文档编号:5254982
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:31
- 大小:123.52KB
基于FPGA的基于DDS技术的信号发生器设计说明Word文档格式.docx
《基于FPGA的基于DDS技术的信号发生器设计说明Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的基于DDS技术的信号发生器设计说明Word文档格式.docx(31页珍藏版)》请在冰点文库上搜索。
1.5硬件电路调试及结果分析
2基于DDS技术的信号发生器设计
2.1功能要求
2.2整体设计
2.3DDS技术的基本原理
2.4程序设计
2.4.1方波产生程序设计及仿真
2.4.2三角波产生程序设计及仿真
2.4.3正弦波产生程序设计及仿真
2.4.4锯齿波产生程序设计及仿真
2.4.5AM产生程序设计及仿真
2.4.6DSB产生程序设计及仿真
2.4.7DSB产生程序设计及仿真
2.4.8DSB产生程序设计及仿真
2.4.9DSB产生程序设计及仿真
2.4.10DSB产生程序设计及仿真
2.4.7顶层程序设计及仿真
(1)程序的功能
(2)结构图或实体图
(3)VHDL程序及注释
(4)仿真波形及分析
2.5硬件测试及结果分析
3设计分析与总结
3.1故障分析
3.2功能分析
3.3设计总结及感想
基于FPGA的DDS技术设计正弦波、三角波、方波等波形发生器,实现波形的D/A转换,实现改变高低电平开关电路设计。
FPG最小系统实现软件的写入,外围电路实现开关电路和D/A转换。
通过APS接口下载程序到FPGA。
用开关控制输出高低电平。
1.4.3DAC0832电路设计
DAC0832是采用CMOS/Si-Cr工艺实现的8位D/A转换器。
该芯片包含8位输入寄存器、8位DAC寄存器、8位D/A转换器。
DAC0832中有两级锁存器,第一级即输入寄存器,第二级即DAC寄存器,可以工作在双缓冲方式下。
引脚特性:
D7~D0:
8位数据输入端
ILE:
输入寄存器锁存允许信号
CS#:
芯片选择信号
WR1#:
输入寄存器写信号
XFER#:
数据传送信号
WR2#:
DAC寄存器写信号
VREF:
基准电压,-10V~+10V
Rfb:
反馈信号输入端
IOUT1:
电流输出1端
IOUT2:
电流输出2端
VCC:
电源
AGND:
模拟地
DGND:
数字地
硬件焊接时,容易将焊点漏焊或则连接在一起。
第一次焊好是先发没有输出波形。
经过检查发现是输出插针没有与输出端口焊好。
经过重新焊接后就可以输出波形了。
基于FPGA的DDS技术设计正弦波、三角、方波、锯齿波发生器。
1)频率预置与调节电路
作用:
实现频率控制量的输入;
不变量K被称为相位增量,也叫频率控制字。
2)累加器
相位累加器的组成=N位加法器+N位寄存器
相位累加器的作用:
在时钟的作用下,进行相位累加
注意:
当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。
DDS的输出频率为:
f0=fCK/2N
DDS输出的最低频率:
K=1时,fC/2N
DDS输出的最高频率:
Nyquist采样定理决定,即fC/2,
K的最大值为2N-1
结论:
只要N足够大,DDS可以得到很细的频率间隔。
要改变DDS的输出频率,只要改变频率控制字K即可。
通过C++做一个方波的ROM,输入是1024个(
),输出为10位(
),编译运行后,找出fangbo.exe后缀的文件将其转换为fangbo.mif,通过quarter将后缀fangbo.mif文件做成ROM后,会得到fangbo.vhd。
编译后仿真得到如下波形。
程序
LIBRARYieee;
USEieee.std_logic_1164.all;
LIBRARYaltera_mf;
USEaltera_mf.all;
ENTITYfangboIS
PORT
(
address:
INSTD_LOGIC_VECTOR(9DOWNTO0);
clock:
INSTD_LOGIC;
q:
OUTSTD_LOGIC_VECTOR(9DOWNTO0)
);
ENDfangbo;
ARCHITECTURESYNOFfangboIS
SIGNALsub_wire0:
STD_LOGIC_VECTOR(9DOWNTO0);
COMPONENTaltsyncram
GENERIC(
clock_enable_input_a:
STRING;
clock_enable_output_a:
init_file:
intended_device_family:
lpm_hint:
lpm_type:
numwords_a:
NATURAL;
operation_mode:
outdata_aclr_a:
outdata_reg_a:
widthad_a:
width_a:
width_byteena_a:
NATURAL
PORT(
clock0:
address_a:
q_a:
ENDCOMPONENT;
BEGIN
q<
=sub_wire0(9DOWNTO0);
altsyncram_component:
altsyncram
GENERICMAP(
clock_enable_input_a=>
"
BYPASS"
clock_enable_output_a=>
init_file=>
fangbo.mif"
intended_device_family=>
CycloneII"
lpm_hint=>
ENABLE_RUNTIME_MOD=NO"
lpm_type=>
altsyncram"
numwords_a=>
1024,
operation_mode=>
ROM"
outdata_aclr_a=>
NONE"
outdata_reg_a=>
UNREGISTERED"
widthad_a=>
10,
width_a=>
width_byteena_a=>
1
)
PORTMAP(
clock0=>
clock,
address_a=>
address,
q_a=>
sub_wire0
);
ENDSYN;
通过C++做一个三角波的ROM,输入是1024个(
),编译运行后,找出sanjiao.exe后缀的文件将其转换为三角.mif,通过quarter将后缀sanjiao.mif文件做成ROM后,会得到sanjiao.vhd。
ENTITYsanjiaoboIS
ENDsanjiaobo;
ARCHITECTURESYNOFsanjiaoboIS
COMPONENTaltsyncram
sanjiaobo.mif"
通过C++做一个正弦波的ROM,输入是1024个(
),编译运行后,找出sin.exe后缀的文件将其转换为sin.mif,通过quarter将后缀sin.mif文件做成ROM后,会得到sin.vhd。
ENTITYmyrom1IS
ENDmyrom1;
ARCHITECTURESYNOFmyrom1IS
myrom1.mif"
2.4.4锯齿产生程序设计及仿真
通过C++做一个锯齿波的ROM,输入是1024个(
),编译运行后,找出juchi.exe后缀的文件将其转换为juchi.mif,通过quarter将后缀juchi.mif文件做成ROM后,会得到juchi.vhd。
ENTITYjuchiboIS
ENDjuchibo;
ARCHITECTURESYNOFjuchiboIS
juchibo.mif"
),编译运行后,找出AM.exe后缀的文件将其转换为AM.mif,通过quarter将后缀AM.mif文件做成ROM后,会得到AMvhd。
ENTITYamIS
ENDam;
ARCHITECTURESYNOFamIS
am.mif"
),编译运行后,找出DSB.exe后缀的文件将其转换为DSB.mif,通过quarter将后缀DSB.mif文件做成ROM后,会得到DSB.vhd。
编译后仿真得到如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA DDS 技术 信号发生器 设计 说明