首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于CycloneII系列FPGA的DDFS信号源实现
来源:本站整理  作者:佚名  2010-04-09 11:24:03




3 DDFS的FPGA实现
    根据DDFS的原理,其FPGA设计原理如图2所示。其中控制单元由有限状态机构成。虽然整个系统的控制不一定需要使用有限状态机,但由于使用的FPGA芯片不支持异步的ROM,即从地址锁存进入ROM单元,到数据从ROM中读出有至少一个时钟周期以上的延时。因此采用状态机来进行控制,可以达到较好的输出与时钟同步。控制流程为:时钟信号进入控制单元,由它产生地址发生单元的输入时钟adrclk,地址发生单元在时钟adrclk的驱动下,结合输入的步进信号Step,产生地址及此地址所对应的象限Phase,此地址产生后立即输入到ROM单元中,过两个时钟周期后,控制单元从ROM存储单元中读出输入地址对应的数据,并在时钟的控制下,将前面所产生的象限值Phase与ROM数据一起送到补码转换单元,补码转换单元根据Phase的值来决定是否需要进行补码转换,若需要,则进行补码运算并将数据输出,若不需要,则直接将数据输出。下面给出各模块的具体设计细节。

    (1)控制单元:控制单元是整个系统的核心部件。由一个简单的有限状态机构成。其状态转换图如图3所示。

    (2)地址发生单元:设计思路为根据输入的Step值,计算出总共四个象限所需取值的点数,也就可以计算出一个象限所要取值的点数m,然后在时钟作用下进行计数,当计数值达m个时,说明一个象限内已经取完点,此时phase自加1,计数变量重新置零。由于在(0,π/2)sin的函数值为从0→1变化;(π/2,π)函数值从1→0变化;(π,3π/2)函数值从0→-1变化;(3π/2,2π)函数值从-1→0变化。故在(0,π/2)和(π,3π/2)地址值从0→32767,每隔一个步进Step读一个数据,当然后者的数据要经过补码单元的处理;而在(π/2,π)和(3π/2,2π)象限,地址值则从32767→0,每隔一个步进Step读一个数据即可,同样的,后者的数据也要经过补码单元的处理。
    (3)ROM存储单元:ROM存储单元的数据可以通过Matlab进行计算获得,并将其存储为*.mif的文件格式。在进行ROM设计时,调用此mif文件作为ROM的初始数据文件即可。
    (4)补码转换单元:根据目前地址所处象限来决定是否需要进行补码转换。如产生正弦信号时,(0,π)象限sin函数值为正,而(π,2π)象限上sin函数值为负,因此在(π,2π)象限时,需要对输出数据进行补码转换。补码转换单元较简单,根据二进制数取补的原理进行设计即可。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:297,273.40000 毫秒