酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

基于FPGA的直接数字频率合成器的设计与实现

作者:王峰
来源:酷文网
点击:
载入中...
加入时间:2008-08-02
字体大小:[  ]

QuartusII允许对真个设计项目进行仿真测试,也可以对该设计中的任何子模块进行仿真测试。对工程的编译通过后,必须对其功能和时序进行仿真,以了解设计结果是否满足原设计要求。
 
图9 累加器仿真图
Fig  9  Accumulator simulation chart
从此波形图可以看出当RESET至于高电平时,输出结果将重置,而在下个上升沿时波形处于低电平,累加器将运行并将下次结果和BACKSUM累加,但是由于BACKSUM在此时设置为0,所以SUMOUT一直将为1
3.4  寄存器模块
 
图10 相位寄存模块
Fig10   The phase deposit of the module
本模块的功能比较简单,主要是用来为下个端口提供输入,而设计这样一个寄存器也是为了更好的使时钟同步[19]。
3.4.1 输入输出信号说明
输入信号说明:
CLK:给出一个冲击脉冲,当CLK=1时表示分频器启动了,将输出一个高电平进行分频,当CLKIN=0时,将输出一个低电平,分频器在等待状态。CLK采用1位2进制来表示。则用VHDL语句定义为CLK:IN SDT_LOGIC。在模块的单独模拟之中需要进行一个时钟周期的设置。而在最后的顶层模块的设计当中则会由分频器的脉冲进行输入。
A: 是一个15位的输入,它接受的是来自累加器的输入,在一个上升沿的时候将数据寄存入寄存器当中,这样保证了同步。用VHDL语句定义为A: IN STD_LOGIC_VECTOR(9 DOWNTO 0)
输出信号说明:
B:输出信号,这是一个经过了一个时钟沿后的输出,即可以保持数据的同步,又可以使信号作为一个输出。D采用15位2进制来表示,并即作为输入又作为输出,用VHDL定义为B:IN OUT SDT_LOGIC_VECTOR(9 DOWNTO 0)。
以上的四个模块是为了是组成DDS发生器的数字信号源,它能够为仿真及下载模拟提供一个5MHZ的时钟冲击,以及有n位控制频率字组成的数字信号源,15位的加法累加器。他的计算公式F=fC*2n/2m, 根据DDS 系统的原理,采用VHDL语言设计并实现一个基于FPGA的直接数字频率合成器,输出频率范围为160Hz~160K,分辨率为160Hz的正弦波,即输入频率控制字为10位,步进值为160Hz。
通过以上四个模块可以进行级联,这样可以利用 quarters中的图形功能生成四个功能模块的,然后进行端口的连接,就能形成一个直观的功能信号图,最后便可直接下载和仿真。这样做非常直观,简单,不用利用顶层程序将模块相连,程序更加易懂。但不足之处,遇到大型的模块图将会连线很复杂,容易出错,而且模块更加孤立,可读性不如做一个顶层文件程序强[20]。
Quartus II软件提供的元件进行原理图输入是一种最为直接的输入方式,原理图输入方式直观。顶层原理图可以由各个模块直接连成电路图,从而构成一个直接实现的引脚接口电路图。
3.5 顶层模块的设计
图中的顶层模块由以上介绍的四个模块连接而成,每个在之前的独立功能将会得到一定的整合,各自模块的输入输出与其他模块紧密相连,这样成为一个相连的整体。
3.5.1设计原理
图中的顶层模块由以上介绍的四个模块连接而成,每个在之前的独立功能将会得到一定的整合,各自模块的输入输出与其他模块紧密相连,这样成为一个相连的整体。
顶层程序主要是应用了层次化设计使一些常用模块可以被单独创建并存储,在以后的设计中可以直接调用而无需重新设计。使整个设计更结构化,程序具有更高的可读性:顶层文件只将一些模块整合在一起,这使整个系统的设计思想更容易被理解。使整个设计更结构化,程序具有更高的可读性:顶层文件只将一些模块整合在一起,这使整个系统的设计思想更容易被理解。层次化设计的核心思想:模块化、元件重用模块化:将一个大系统划分为几个子模块,这些子模块又由更小的子模块组成,如此往下,直至不可再分,这时自顶向下的设计方法。元件重用:同一个元件可以被不同的设计实体调用 ( 实体F ),也可以被同一个设计实体多次调用 ( 实体G) [21]。
顶层原理图可以发现图中的CLKIN,A[0….9]是外部输入信号,CLOCKOUT,D[15..0]是输出信号,RESET是外部输入重置信号。顶层模块主要研究的是外部输入信号、输出信号,而输入信号经过怎么样的处理输出等应该是个模块内部考虑的问题。由图中可以看出D[0…15]是作为一个BACKSUM的输入信号进入到上级累加器进行累加。这样在原来REG1和REG中寄存的信号将在一起相加,形成下一个抽象点,这样抽样是以一定步长不断向前抽样,在最后,当到达这个抽样点的在一个周期终点,这样抽样点将重新开始抽样下一个周期。


3.5.2原理图
原理图输入方式一般用于设计顶层模块,因为Quartus II软件提供的元件进行原理图输入是一种最为直接的输入方式,原理图输入方式直观,便于进行接口设计和管脚
锁定,便于信号的观察以及电路的调整,而且,采用图形方式设计的电路具有效率高和运行速度快等优点。上面设计的下层模块都生成了元件符号,所以很方便于上层模块原理图的生成。有了上面的底层模块,我们把底层模块连接起来实现系统整体的功能[22]
         
图11  顶层原理图
Fig11  Top layer principle diagram
3.5.3   顶层模块仿真波形图
 
图12  波形仿真
Fig12  Waveform simulation
仿真步骤:
(1) 创建一个仿真波形文件并保存文件名为默认的decoder7.vwf。
(2) 输入引脚,并对每个input引脚随机赋初值,保存仿真波形文件。
(3) 开始仿真,观察并分析仿真结果波形。
从本图上可以看出本次模拟是以步长是一的长度进行累加,每一次加一,这样就可以通过此突来计算它的输出的波形的周期,而且清楚验证了这个波形发生器的正确性,其输出频率计算公式如下:
fout=215*5/2                       (2)
3.6.顶层程序
编写一个顶层程序这样可以是程序的整体性更强,可读性也更强。因为你只是通过模块图进行连接,这样在模块图很多的情况下,会产生很多连线,导致电路图过于混乱,而自己编写一个顶层程序这样可以省去连写电路图的过程,而顶层程序的编写也相对大模块的应用,会简单灵活一些,你可以通过元件例化端口映射的方法进行编写,这里有详细的顶层模块的程序设计,见附录.
4 硬件的下载与测试转贴于 酷文网-论文下载中心 http://www.coolwen.net


共7页: 上一页 [1] [2] [3] [4] 5 [6] [7] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号