新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA的DDS设计及实现

基于FPGA的DDS设计及实现

作者: 时间:2010-09-20 来源:网络 收藏

ADC转换芯片处理后的8位数字信号,为了使合成的频率较大,末尾补4个O作为参数化模块lpm_add_sub的12位输入datai。由于ADC信号输出的是8位二进制偏移码,与计算机处理的二进制补码形式不同,需将二进制偏移码转换成二进制补码,在这里与另一路输入信号常数2 048做减法,就能达到求补的目的,并输出12位有符号数。
12位的输出接入lpm_mult模块,lpm_mult的另一路输入为12位任意数输入。乘法器的输出直接影响累加器累加相位的速度。当乘以一个比较大的数,则频率变化加快。
同理,为了使合成频率较大,乘法器的24位输出在末尾补O成为32位数datab送到累加模块altaccumulate中。为了节省ROM容量,最后取altaccumulate输出的高10位作为ROM查找表的地址信号。累加控制模块的时序仿真如图3所示。

本文引用地址://m.amcfsurvey.com/article/191571.htm


2.2 ROM查找表的设计
针对不同的可编程器件,ROM查找表的设计采用的方法也不相同。主要是基于lpm_rom和VHDL选择语句这两种方法。使用lpm_rom的波形存储表只需要产生数据文件*.mif,然后直接在定制lpm_rom时,添加数据文件即可。不过这种方法在支持内部嵌入式阵列块(EAB)时才可以使用;使用VHDL选择语句比较直观,但当输入数据量大的时候,这种方法是比较繁琐的。此次设计采用第一种方法。
mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memory initialization file。创建mif文件的方式有很多种,在这次设计中,在Matlab中采用C语言来生成mif文件。mif文件编写格式如下:

通常相位累加器的位数N很大,实际设计中受到体积和成本的限制。为了节省ROM的容量采用相位截断的方法,一般只取累加器输出的高几位作为ROM的寻址地址。设计中取累加结果的高10(M=10)位来进行查表,也就是说正余弦ROM有210=1 024个寻址地址,数据宽度为12。如图4所示,设计了2个lpm_rom模块,分别是sin波形存储器和cos波形存储器。




关键词:FPGADDS

评论


相关推荐

技术专区

关闭