预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JIANGSUUNIVERSITYOFTECHNOLOGYFPGA技术实验报告基于FPGA的基于DDS技术的信号发生器设计学院:电信学院专业:电子信息工程班级:11电子2班姓名:学号:指导教师:朱雷、陈海忠设计时间:__2014年2月16日——2014年2月28日目录1FPGA硬件系统设计1.1功能要求1.2FPGA硬件系统组成1.3FPGA最小系统简介1.4FPGA外围电路设计1.4.1拨码开关电路设计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设计总结及感想1FPGA硬件系统设计1.1功能要求基于FPGA的DDS技术设计正弦波、三角波、方波等波形发生器,实现波形的D/A转换,实现改变高低电平开关电路设计。1.2FPGA硬件系统组成FPG最小系统实现软件的写入,外围电路实现开关电路和D/A转换。1.3FPGA最小系统简介通过APS接口下载程序到FPGA。1.4FPGA外围电路设计1.4.1拨码开关电路设计用开关控制输出高低电平。FPGA/CPLD芯片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~+10VRfb:反馈信号输入端IOUT1:电流输出1端IOUT2:电流输出2端VCC:电源AGND:模拟地DGND:数字地1.5硬件电路调试及结果分析硬件焊接时,容易将焊点漏焊或则连接在一起。第一次焊好是先发没有输出波形。经过检查发现是输出插针没有与输出端口焊好。经过重新焊接后就可以输出波形了。2基于DDS技术的信号发生器设计2.1功能要求基于FPGA的DDS技术设计正弦波、三角、方波、锯齿波发生器。2.2整体设计2.3DDS技术的基本原理1)频率预置与调节电路作用:实现频率控制量的输入;不变量K被称为相位增量,也叫频率控制字。2)累加器相位累加器的组成=N位加法器+N位寄存器相位累加器的作用:在时钟的作用下,进行相位累加注意:当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。DDS的输出频率为:f0=fCK/2NDDS输出的最低频率:K=1时,fC/2NDDS输出的最高频率:Nyquist采样定理决定,即fC/2,K的最大值为2N-1结论:只要N足够大,DDS可以得到很细的频率间隔。要改变DDS的输出频率,只要改变频率控制字K即可。2.4程序设计2.4.1方波产生程序设计及仿真通过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;ENTITYfangboISPORT(address:INSTD_LOGIC_VECTOR(9DOWNTO0);clock:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDfangbo;ARCHITECTURESYNOFfangboISSIGNALsub_wire0:STD_LOGIC_VECTOR(9DOWNTO0);COMPONENTaltsyncramGENERIC(clock_enable_input_a:STRING;clock_enable_output_a:STRING;init_file:STRING;intended_device_family:STRING;lpm_hint:STRING