首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的多路正弦波信号发生器专用芯片设计
来源:本站整理  作者:佚名  2010-05-10 12:25:58



目前,正弦波信号发生器技术正逐渐成熟,各种直接数字频率合成器(DDS)集成电路如AD9850等已得到广泛应用;FPGA方面也已经有相关的DDS设计。但DDS专用芯片还很少见。本文介绍了一种工作频率为25 MHz、可进行异步串行通信、频率相位可调的3路正弦波信号发生器专用芯片的设计方法。
    本设计采用OR1200处理器作为主控制器,通过Wishbone总线将3个DDS模块、UART控制器模块、片内RAM模块连接到系统中,构建出一个硬件平台;然后对OR1200进行软件编程,使UART控制器接收专用芯片外部异步串口传送的数据,将这些数据进行处理后传送到DDS模块相应寄存器,从而产生特定频率相位的正弦波信号;最后将程序固化到片内RAM中,在FPGA上实现多路正弦波信号发生器专用芯片的设计。
1 理论分析
    直接数字频率合成技术是20世纪60年代末出现的第三代频率合成技术。该技术从相位概念出发,以Nyquist时域采样定理为基础,在时域中进行频率合成。DDS频率转换速度快、频率分辨率高,并在频率转换时可保持相位的连续,因而易于实现多种调制功能。DDS是全数字化技术,其幅度、相位、频率均可实现程控,并可通过更换波形数据灵活实现任意波形。本设计实现频率相位可控的正弦波输出。所用DDS IP软核原理框图如图1所示(未给出时钟和复位信号)。


    图1中,ftw_i为频率控制字,phase_i为相位控制字,ampl_o为正弦波信号幅度输出,phase_o为正弦波信号相位输出。本设计中频率控制字的位宽为32位,选用的ROM波形数据为10×10结构,因此相位控制字的位宽为10位,正弦波幅度输出位宽也为10位。
    图1中第1个加法器和第1个单位延时电路构成相位累加器。它在时钟的控制下以步长ftw_i做累加,输出的N位二进制码与M位相位控制字phase_i相加作为波形ROM的地址。由于在ROM中存取的是1/4周期的正弦波形数据,因此,根据正弦波不同的象限,由相位控制字的2个最高有效位(MSB)来控制是否对波形ROM地址进行移位或者对幅度输出进行反相,最终输出10位的正弦波数字信号。

    频率相位值从UART串口输入,OR1200处理器根据式(1)和式(2)对数据进行处理得出频率相位控制字,赋给相应DDS模块的频率相位寄存器,从而输出特定频率相位的正弦波信号[1]。
2 专用芯片硬件设计
2.1 专用芯片总体结构设计

    正弦波信号发生器专用芯片的结构框图如图2所示。Wishbone总线是整个硬件平台的系统总线,OR1200处理器的数据BIU(Bus Interface Unit)和指令BIU作为Wishbone总线的主设备,UART控制器、3个DDS模块以及FPGA片上RAM作为Wishbone总线的从设备,它们通过Wishbone总线连接到系统中。OR1200是整个硬件平台的主控制器,控制该专用芯片配置数据的读入与转换。UART控制器模块主要实现该专用芯片与外部异步串口的通信,负责读入配置数据。3个DDS模块是产生正弦波信号的核心模块,根据频率控制字和相位控制字产生特定频率相位的正弦波信号。FPGA片上RAM作为该专用芯片的片内RAM,系统软件要固化在RAM中。OR1200处理器、Wishbone总线、UART控制器模块及片内RAM模块的时钟直接连到外部时钟源上,3个DDS模块的时钟由外部时钟源通过PLL倍频得到。本专用芯片为低电平复位。

2.2 OR1200处理器
    OpenRISC1200处理器(简称OR1200)是Opencores组织发布维护的基于GPL并属于OpenRISC1000序列的一款RISC处理器。OR1200是32位RISC,它具有哈佛结构、5级整数流水线,支持虚拟内存(MMU),带有基本的DSP功能,并且外部数据和地址总线接口符合Wishbone标准[2]。
    OR1200通用框架由CPU/DSP核心、直接映射的数据Cache、直接映射的指令Cache、基于DTLB的Hash表的数据MMU和指令MMU、电源管理单元及接口、Tick定时器,调试单元及开发接口、中断控制器和中断接口、指令及数据Wishbone主机接口[3]组成。
2.3 片内RAM设计
    片内RAM由Altera公司的EDA工具QuartusII中MegaWizard Plug-In Manager…生成。它为单端口RAM,数据总线32位,大小为8 KB。编写的固化软件程序编译链接后转换为hex格式,在RAM初始化时固化到其中。由QuartusII生成的片内RAM模块不具有Wishbone接口,本设计为其添加了1个Wishbone总线接口。

[1] [2]  下一页

关键词:

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

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:86,617.19000 毫秒