好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

EDA课程设计----正弦波信号发生器的设计.doc

7页
  • 卖家[上传人]:lizhe****0001
  • 文档编号:31230766
  • 上传时间:2018-02-06
  • 文档格式:DOC
  • 文档大小:1.59MB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • EDA 课程设计-----正弦波信号发生器的设计正弦信号源在实验室和电子工程设计中有着十分重要的作用,而传统的正弦信号源根据实际需要一般价格昂贵,低频输出时性能不好且不便于自动调节,工程实用性较差本文的设计以较低的成本制作正弦信号发生器,可用作核磁共振中引发磁场测量仪的激励一般的正弦信号,也可作为调制用的教学演示信号源正弦波信号发生器采用直接数字频率合成 DDS 技术,在 CPLD 上实现正弦信号查找表和地址扫描,经 D/A 输出可得到正弦信号一.设计目的1、了解宏功能模块2、学习用 fpga 实现正弦波信号的发生二.正弦波信号发生器的设计思路2.1 dds 技术原理DDS(direct digital synthesizer)是从相位概念出发直接合成所需的波形的一种频率合成技术一个 dds 信号发生器是由 :相位累加器、波形数 ROM 表、D/A 转换器以及模拟低通滤波器 LPF 组成, 原理框图如图 1 所示DDS 技术的核心是相位累加器 , 相位累加器在稳定时钟信号的控制下产生读取数据的地址值,随后通过查表变换, 地址值被转化为信号波形的数字幅度序列, 再由数/模变换器(D/A) 将代表波形幅度的数字序列转化为模拟电压, 最后经由低通滤波器将 D/A 输出的阶梯状波形平滑为所需的连续波形。

      其中 F 为频率控制字、P 为相位控制字、W 为波形控制字、Fc 为参考时钟频率相位累加器在时钟 Fc 的控制下以步长 F 作累加, 输出的值与相位控制字 P 和波形控制字 W 相加后形成查表的地址值, 对波形 ROM 进行寻址波形 ROM 的输出值即是幅度值, 经过 D/A 变换后形成阶梯状的波形, 最后通过低通滤波平滑成所需的波形合成信号的波形取决于 ROM 表中的幅度序列, 通过修改数据可以产生任意波形, 如果要产生多种波形, 只需把所需的多种波形数据存放到波形 ROM 表中本设计希望可以输出正弦波和锯齿波, 输出的波形由波形控制字 W 控制输出波形的频率为:Fout=(Fc*F)/2^N(其中的 N 表示相位相位累加器的位数, 本设计采用 256 点的相位, 有 N=8)整体设计采用 VHDL 语言实现, 使用 Altera 公司的 QuartusII 进行设计, 顶层的原理图如图图 1 dds 的原理图图 2 顶层文件的设计2.2 ROM 表的设计与实现ROM 表中包含了产生波形需要的幅值序列, 是产生波形的核心模块ROM 表的设计方式有 2 种, 如图 2 所示第一种是连续型的 , 第二种是间隔型的。

      不同的 ROM 表结构需要采用不同的查表方式, 所以 ROM 表的设计方式决定了相位累加器的构成本设计采用了间隔式的存储方式, 并存储了产生产生正弦波、锯齿波的数据图 3 ROM 表中地址存储的 2 种方式其中 W1- 1 表示第一种波形的第一个相位幅值地址,W1- 2 表示第一种波形的第二个相位幅值地址W2 表示第 2 种波形第一种设计采用连续方式:在波形 ROM 表中先连续存放第一种波形对应相位的所有幅值数据, 然后接下来是第二种波形的所有幅值数据, 依此类推.二种设计采用的是间隔式的方式:在波形 ROM 表中首先存放的是所有波形第一个相位的幅值数据,然后是所有波形第二个相位的幅值数据, 依此类推第二种方法采用间隔式存储, 不能连续读取某种波形的相位要获得某种波形的连续相位只需在第一种的基础上乘以2(左移 1 位), 第 1 种波形的第 N 个相位为:2*N, 第二种波形的第 N 个相位地址表示为:2*N+1 ROM 表的实现采用的是 Quartus 的 MegaWizard 生成Mega 是 Quartus 中用于RTL 级设计的一个工具, 可以方便的建立许多常用的模块本设计采用 Mega 生成了一个512 点的 ROM 表, 如图 4 所示。

      图 4 生成的 ROM 表的数据ROM 表中包含正弦波与锯齿波的数据, 采用间隔式的方式存放奇数地址存放正弦波数据, 偶数地址存放锯齿波数据2.3 相位累加器的设计以及实现由于采用间隔式的 ROM 表, 所以相位累加器的设计采用的是间隔式的寻址方式相位累加器的包括了 4 个部分: 累加器、加法器 1、乘法器、加法器 2累加器(ACC) 是一个 8 位累加器加法器 1(ADD1) 设计成 8 位加法器, 作用是把 ACC 产生的地址值与相位控制字 P 的数值求和由于本设计采用了 2 种波形, 乘法器(MUL2)把得到的地址乘以 2如果有 N 种波形, 则乘以 N最后在加法器 2(ADD2)中实现波形控制 , 控制输出某种波形4 个模块全部采用 VHDL 语言实现累加器是整个设计的关键部分, 累加器以频率 Fc 进行相位累加, 步长由频率控制字 F 控制当 F=1 时每次地址值增加 1,输出波形的频率为:Fc/2^N当 F=K 时每次地址数增加 K, 相位增加频率是 F=1 时的 K 倍, 输出波形的频率变为:Fc*k/2^N, 是F=1 时的 K 倍改变 F 的值就可以改变输出波形的频率。

      但是频率过高, 会导致跳过的相位太多, 一个周期内的相位点数大大减少, 波形的精度降低一般 F 设置在 1 到 32 之间比较合适如果要进一步提高频率, 可以提高时钟的频率累加器的实现采用 VHDL 语言编写图 5 相位累加器的构成2.4 仿真与调试全编译一次后进入时序仿真测试,图 6 是仿真结果,由波形可见,随着每一个时钟上升沿的到来,输出端口将正弦波数据依次输出图 6 quarts 中的仿真结果2.5 硬件测试选择电路模式 5,时钟 CLK 接试验箱的 clock0;将 DOUT(0)、DOUT(1)…DOUT(7)分别锁定于实验系统上与 DAC0832 相接的 I/O 口:PIO24、 PIO25、PIO26 、PIO27 、PIO28、PIO29、PIO30 、 PIO31.编译下载后,打开±12V电压开关,将 CLK 的时钟通过实验箱上 clock0 的跳线选择频率为 750KHZ,再将示波器接于实验箱的两个挂钩上就能观察到波形的输出情况,示波器显示如图 7图 7 显示波形三.VHDL 程序描述顶层文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SIN ISPORT(CLK:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END;ARCHITECTURE DACC OF SIN ISCOMPONENT SINDATAPORT(ADDRESS:IN STD_LOGIC_VECTOR(5 DOWNTO 0);INCLOCK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;SIGNAL Q1:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THEN Q1Q1,Q=>DOUT,INCLOCK=>CLK);END;数据文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SINDATA ISPORT(ADDRESS:IN STD_LOGIC_VECTOR(5 DOWNTO 0);INCLOCK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END SINDATA;ARCHITECTURE SYN OF SINDATA ISSIGNAL SUB_WIRE0:STD_LOGIC_VECTOR(7 DOWNTO 0);COMPONENT LPM_ROMGENERIC (LPM_WIDTH:NATURAL;LPM_WIDTHAD:NATURAL;LPM_ADDRESS_CONTROL:STRING;LPM_OUTDATA:STRING;LPM_FILE:STRING);PORT(ADDRESS:IN STD_LOGIC_VECTOR(5 DOWNTO 0);INCLOCK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;BEGINQ8,LPM_WIDTHAD=>6,LPM_ADDRESS_CONTROL=>"REGISTERED",LPM_OUTDATA=>"UNREGISTERED",LPM_FILE=>"D:/sin/sin_g.mif")PORT MAP(ADDRESS=>ADDRESS,INCLOCK=>INCLOCK,Q=>SUB_WIRE0);END SYN;四.心得体会:通本次课程设计,我又重新温习了一下用 VHDL 语言编写程序的方法和步骤,并且又熟悉了一遍试验箱的使用方法以及程序的烧录过程,再加上老师的指导与帮助,获益匪浅。

      最后调试的输出波形稳定,感觉很有成就感。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.