asic fpga dds 实验报告

asic fpga dds 实验报告

ID:18694556

大小:299.36 KB

页数:6页

时间:2018-09-21

asic fpga dds 实验报告_第1页
asic fpga dds 实验报告_第2页
asic fpga dds 实验报告_第3页
asic fpga dds 实验报告_第4页
asic fpga dds 实验报告_第5页
资源描述:

《asic fpga dds 实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ASIC实验报告——基于AlteraDE2的DDS设计设计思路概述DDS建立在采样定理基础上,首先对需要产生的波形进行采样,将采样值量化后存入查找表,然后通过地址读出数据,再经过D/A得到模拟量。以输出正弦波为例,Asin(Ɯt+Ɵ),A是幅度,使用乘法器得到,我们主要是控制相位,即控制频率与初相。等时间输出,可以视为相位是累加变化的。相位输出就是ROM的地址信号,通过改变步长K,达到控制频率的效果。总体设计框图及详细说明我们设计的部分主要是控制逻辑与数字频率合成DDS的部分。控制逻辑主要负责发送复位信号、发送波形选择信号,发送相位控制字K。复位

2、信号可以送至相位累加器,使其置零,而波形选择信号,可以是作为复用输出的选择信号,相位控制字则送到相位累加器。首先我们通过matlab产生正弦序列,模拟采样量。这里要注意matlab产生的是浮点数,我们可以根据设计要求选取幅度值后,通过round函数使其成为整数。假设时钟周期是Tc,则输出的正弦序列周期Ts=Tc*N/K(N是每个周期的采样点数,K是频率控制字)。所以频率fs=K*fc/N,根据奈奎斯特定理,fs<2f采样,显然f采样就是时钟频率fc。因此K要小于N/2。设计中要求我们每个周期采样2^16次(因此K<2^15),并且用16bit表示

3、。但是由于ROM空间不够,因此利用正弦序列的对称性,只需要采样1/4周期的值,即需要2^14个采样点。而且全部是非负的值,因此可以只用15bit表示。大大减少需要的存储空间。指标分析,ROM大小为2^14*15bit,时钟50MHz,fmax≈25MHz,fmin≈76.3Hz(即分辨率)。模块设计框图、相关时序1.复位按键状态机模块图状态机由于按键按下后会自动弹起,所以只能用状态机,不能用简单的译码判断。这里采用moore机,reset输出只与状态有关。2.ROM模块直接调用altera的IP核,存储器初始化文件mif通过quartus建立,数

4、据由matlab生成,直接复制插入到mif中。3.信号处理逻辑模块在这里与设计框图略微有点不同,我们把构造地址也归入此模块。此模块主要实现这么几个功能。1.构造正逆向地址,因为正弦序列的轴对称性,必须要构造正逆向地址,逆向地址其实只需要用地址总长度减去正向地址。取[1:0]flag计数4个1/4周期,当flag[0]=1时应该用逆向地址,flag[0]=0时应该用正向地址。2.生成需要的正弦序列,因为存储的是15bit原码,实际要求为16位,所以我们要扩充位数,而且还要适当取补码。当flag[1]=0时,应该用原码输出,补上最高位,当flag[1

5、]=1时,应该用补码输出,进行符号扩展。1.利用正弦序列生成三角波、方波、锯齿波序列。4.地址累加器由寄存器与加法器构成,在时钟触发下,将寄存器中数值与频率控制字相加,然后将结果保存至寄存器中。5.信号选择模块由复用器构成,在控制逻辑影响下,切换多种波形的输出。代码及必要注释1.复位按键状态机modulestate(clk,button,reset);//reset按键的状态机localparam[1:0]got1=0,got0=1,got01=3;inputbutton;inputclk;outputreset;reg[1:0]current;

6、regreset;always@(negedgeclk)//通过检测01序列判断是否按下按键case(current)got0:beginreset<=1;if(button==0)current<=got0;elsecurrent<=got01;endgot1:beginreset<=1;if(button==0)current<=got0;elsecurrent<=got1;endgot01:beginreset<=0;current<=got1;enddefault:beginreset<=1;current<=got1;endendcas

7、eendmodule2.主模块moduledds1(button,change,data,clk,qout);input[1:0]change;//波形选择开关inputbutton;//复位按键input[14:0]data;//频率控制字inputclk;output[15:0]qout;reg[13:0]add;reg[13:0]add1;wire[14:0]sin_DR;wire[15:0]rec;reg[15:0]trio;reg[15:0]sin_DR1;reg[1:0]flag;wire[1:0]current;wirereset;

8、reg[15:0]qout;wire[15:0]qout1;statestate1(clk,button,reset);//复位状态机例

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。