EDA实验-正弦信号发生器的设计说明

合集下载

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

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

《EDA技术》设计报告设计题目正弦信号发生器的设计院系:信息工程学院专业:通信工程____学号:姓名:__________一.设计任务及要求1.设计任务:利用实验箱上的D/A 转换器和示波器设计正弦波发生器,可以在示波器上观察到正弦波2.设计要求:(1) 用VHDL 编写正弦波扫描驱动电路(2)设计可以产生正弦波信号的电路(3)连接实验箱上的D/A 转换器和示波器,观察正弦波波形二.设计方案(1)设计能存储数据的ROM 模块,将正弦波的正弦信号数据存储在在ROM 中,通过地址发生器读取,将正弦波信号输入八位D/A 转化器,在示波器上观察波形(2)用VHDL 编写正弦波信号数据,将正弦波信号输入八位D/A 转化器,在示波器上观察波形三.设计框图图 1 设计框图信号发生器主要由以下几个部分构成:计数器用于对数据进行采样,ROM 用于存储待采样的波形幅度数值,TLV5620用于将采集的到正弦波数字量变为模拟量,最后通过示波器进行测量获得的波形。

其中,ROM 设置为7根地址线,8个数据位,8位并行输出。

TLV5260为串行输入的D/A 转换芯片,因此要把ROM 中并行输出的数据进行并转串。

四.实现步骤1.定制ROM计 数 器 7根地址线 8 位 R O M 并转串输出 CLKTLV5620D/A 转换RSTROM的数据位选择为8位,数据数选择128个。

利用megawizard plug-in manager定制正弦信号数据ROM宏功能块,并将上面的波形数据加载于此ROM中。

如图3所示。

图2 ROM存储的数据图3 调入ROM初始化数据文件并选择在系统读写功能2.设计顶层顶层设计主要是通过编写VHDL语言或设计原理图用于产生计数信号和调用room存储的数据并输出。

在此步骤里要建立EDA工程文件,工程文件结构如图4所示,SIN_CNT中的VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SIN_GNT ISPORT ( RST, CLK, EN : IN STD_LOGIC;ADDR : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END SIN_GNT;ARCHITECTURE BEHA VIOR OF SIN_GNT ISCOMPONENT ROM ISPORT ( address : IN STD_LOGIC_VECTOR(6 DOWNTO 0);inclock : IN STD_LOGIC;q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END COMPONENT;SIGNAL Q : STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINU : ROM PORT MAP ( address => Q,inclock => CLK,q => DOUT);PROCESS(CLK, RST, EN)BEGINIF RST = '0' THENQ <= "0000000";ELSIF CLK'EVENT AND CLK = '1' THENIF EN = '1' THENQ <= Q + 1;END IF;END IF;END PROCESS;ADDR <= Q;END BEHA VIOR;工程文件的建立步骤简述如下:1、新建一个文件夹。

EDA正弦波信号发生器的设计

EDA正弦波信号发生器的设计

利用LPM 设计正弦信号发生器一、设计目的:进一步熟悉maxplu sII 及其LPM 设计的运用。

二、设计要求:1、利用原理图输入方式。

2、信号数据点值自行想法实现。

3、得出正确时序仿真文件。

三、设计原理:图1 正弦信号发生器结构框图图1所示的正弦波信号发生器的结构由三部分组成计数器或地址发生器(这里选择8位),正弦信号数据ROM (8位地址线,8位数据线),含有256个8位数据(一个周期)。

四、VHDL 顶层设计。

设计步骤:1、建立.mif 格式文件建立C 语言文件sin.cpp ,运行产生sin.exe 文件。

sin.cpp 程序代码:#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){int i;float s;VHDL 顶层设计sin.vhd8位计数器 (地址发生器) 正弦波数据 存储ROM 产生波形数据cout<<"WIDTH=8;\nDEPTH=256;\n\nADDRESS_RADIX=HEX;\nDA TA_R ADIX=HEX;\n\nCONTENT\nBEGIN\n";for(i=0;i<256;i++){s=sin(atan(1)*8*i/256);cout<<" "<<i<<" : "<<setbase(16)<<(int)((s+1)*255/2)<<";"<<endl;}cout<<"END"<<endl;return 0;}把上述程序编译后,在DOS命令行下执行命令:sin.exe > sin.mif;将生成的sin.mif 文件。

EDA实验-正弦波信号发生器设计

EDA实验-正弦波信号发生器设计

实验八正弦信号发生器的设计一、实验目的1、学习用VHDL设计波形发生器和扫频信号发生器。

2、掌握FPGA对D/A的接口和控制技术,学会LPM_ROM在波形发生器设计中的实用方法。

二、实验仪器PC机、EDA实验箱一台Quartus II 6.0软件三、实验原理如实验图所示,完整的波形发生器由4部分组成:• FPGA中的波形发生器控制电路,它通过外来控制信号和高速时钟信号,向波形数据ROM 发出地址信号,输出波形的频率由发出的地址信号的速度决定;当以固定频率扫描输出地址时,模拟输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则模拟输出波形为扫频信号。

•波形数据ROM中存有发生器的波形数据,如正弦波或三角波数据。

当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据,地址变化得越快,则输出数据的速度越快,从而使D/A输出的模拟信号的变化速度越快。

波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM;由逻辑方式在FPGA中实现(如例6);或由FPGA中的EAB模块担当,如利用LPM_ROM实现。

相比之下,第1种方式的容量最大,但速度最慢;,第2种方式容量最小,但速度最最快;第3种方式则兼顾了两方面的因素;• D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。

输出波形的频率上限与D/A器件的转换速度有重要关系,本例采用DAC0832器件。

DAC0832是8位D/A转换器,转换周期为1µs,其引脚信号以及与FPGA目标器件典型的接口方式如附图2—7所示。

其参考电压与+5V工作电压相接(实用电路应接精密基准电压).DAC0832的引脚功能简述如下:•ILE(PIN 19):数据锁存允许信号,高电平有效,系统板上已直接连在+5V上。

•WR1、WR2(PIN 2、18):写信号1、2,低电平有效。

•XFER(PIN 17):数据传送控制信号,低电平有效。

•VREF(PIN 8):基准电压,可正可负,-10V~+10V.•RFB(PIN 9):反馈电阻端。

正弦信号发生器实验报告

正弦信号发生器实验报告

正弦信号发生器实验报告正弦信号发生器实验报告一、引言正弦信号发生器是电子实验室中常见的一种仪器,用于产生稳定的正弦信号。

它在各种电子设备测试和实验中起着重要的作用。

本实验旨在探究正弦信号发生器的原理和性能,并通过实际操作来验证其功能。

二、实验目的1. 理解正弦信号的特性和应用;2. 掌握正弦信号发生器的基本原理和结构;3. 学习使用正弦信号发生器进行实际测试。

三、实验原理正弦信号是一种周期性的交流信号,具有连续变化的幅度和相位。

正弦信号发生器的基本原理是通过振荡电路产生稳定的正弦波形。

振荡电路通常由放大器、反馈网络和滤波电路组成。

其中,放大器负责提供足够的增益,反馈网络则确保振荡电路的稳定性,滤波电路则用于滤除其他频率成分。

四、实验器材和材料1. 正弦信号发生器2. 示波器3. 电阻、电容等元件4. 连接线等五、实验步骤1. 将正弦信号发生器与示波器连接,使用示波器观察输出的信号波形;2. 调节正弦信号发生器的频率和幅度,观察波形的变化;3. 使用示波器测量输出信号的频率和幅度,并记录数据;4. 更换不同数值的电阻和电容,观察对信号波形的影响;5. 分析实验结果,总结正弦信号发生器的性能和特点。

六、实验结果与分析通过实验观察和测量,我们得到了一系列关于正弦信号发生器的数据。

首先,我们发现随着频率的增加,正弦信号的周期变短,波形变得更加紧凑。

而幅度的调节则使得波形的振幅增大或减小。

这表明正弦信号发生器能够根据用户的需求产生不同频率和幅度的信号。

此外,我们还发现在改变电阻和电容数值时,信号波形也会发生变化。

较大的电阻和电容会导致信号的衰减,而较小的电阻和电容则会使信号更加稳定。

因此,在实际应用中,我们需要根据具体情况选择适当的电阻和电容数值,以获得所需的信号特性。

七、实验总结本实验通过对正弦信号发生器的实际操作和观察,我们深入了解了正弦信号的特性和应用。

我们学习到了正弦信号发生器的基本原理和结构,并通过实验验证了其功能和性能。

EDA正弦波信号发生器实验报告

EDA正弦波信号发生器实验报告

湖北文理学院 EDA课程实验报告题目:正弦信号发生器的设计院部物理与电子信息工程学院专业名称电子信息科学与技术班级 1111姓名杨庆月学号 **********指导教师王培元2013年12月25日湖北文理学院一、设计目的1、掌握 LPM_ROM与FPGA资源的使用方法2、.进一步掌握用硬件描述语言的设计思想;5.了解有关数字系统的设计。

二、设计项目的指标和内容:设计一个可以产生正弦波信号系统。

信号频率可调,相位可调。

根据情况自己确定频率范围。

在QUARTUSII上完成正弦波信号发生器的设计,包括仿真和资源利用情况了解(假设利用Cyclone器件)。

最后在实验系统上实测,包括FPGA中ROM的在系统数据读写测试和利用示波器测试。

三、实验步骤:(全为本人整理,如有雷同,纯属抄袭)第一步,新建任务第二步,输入程序,完全照着书中输入,程序在书P200-201。

第三步,保存(Save As)并建立工程,注意芯片不要选错。

(输完了不要仿真,仿真也是错的)第四步,选择Tools里面的Mega...(见图)。

第五步,出现下图对话框,直接点Next。

第六步,这一步很重要,照着图片搞成一样就行了,画圈圈的地方一定要注意。

记得要一样。

搞好后点Next。

第七步,第六步完事儿后出现下图,看画圈圈的地方,bits 设置为8,words设置为128(也可以设置其他数字,只要与mif文件相符合就OK了)第八步,第七步完Next后出现下面的图片,画圈圈的地方是只沟中间那个。

第九步,选mif文件。

选完后后面的全部点Next。

Mif文件在shiyan8那个文件夹里面。

第十步,把能沟的全勾上。

然后Finish第十一步,编译,我做的有11个警告,不管它,没错误就行。

第十二步,看搞好的电路图。

(Tools-NetlistViewers-RTL Viewer)图是这样的,跟书P201那个一样。

第十三步,建立波形文件第十四步,添加波形第十五步,添加完后,记得把EN和RST挪到最上面并加高电平(高电平有效),然后CLK 添加时钟信号(尽量小点,我搞得是1.0)第十六步,别忘了这个过程,你懂得。

正弦信号发生器实验报告

正弦信号发生器实验报告

正弦信号发生器实验报告
《正弦信号发生器实验报告》
实验目的:
本实验旨在通过搭建正弦信号发生器,探究正弦波的特性以及其在电子电路中的应用。

实验材料:
1. 电压源
2. 电阻
3. 电容
4. 二极管
5. 信号发生器
6. 示波器
实验步骤:
1. 按照电路图搭建正弦信号发生器电路。

2. 调节电压源的输出电压,使其为所需的正弦波幅值。

3. 使用示波器观察输出波形,并调节电路参数,如电阻、电容的数值,以获得理想的正弦波形。

4. 测量并记录输出波形的频率、幅值等参数。

实验结果:
经过调节电路参数,成功搭建了正弦信号发生器。

通过示波器观察到了理想的正弦波形,并测量了其频率、幅值等参数。

实验结果表明,通过合理设计电路参数,可以得到稳定、准确的正弦波信号。

实验分析:
正弦信号是电子电路中常见的信号波形,具有周期性、稳定性好的特点,因此
在通信、音频处理等领域有着广泛的应用。

通过本实验,我们深入了解了正弦
波的产生原理,掌握了调节电路参数以获得理想波形的方法。

实验结论:
通过搭建正弦信号发生器,我们成功地产生了稳定的正弦波信号,并对其进行
了观察和测量。

这为我们进一步理解正弦波的特性以及其在电子电路中的应用
奠定了基础。

总结:
本实验通过实际操作,加深了对正弦信号发生器的理解,提高了实验操作能力,为今后的电子电路实验打下了良好的基础。

同时,也为我们将来在工程领域的
实际应用提供了宝贵的经验。

基于EDA技术的正弦信号发生器设计

基于EDA技术的正弦信号发生器设计

基于EDA技术的正弦信号发生器设计作者:高锐来源:《科技传播》2012年第23期摘要现代EDA技术是当今电子设计技术的最新发展方向,具有极大的灵活性和通用性、测试硬件方便快捷、系统开发快速、降低产品成本、技术维护简单、工作稳定性好等特点。

本文着重介绍了基于EDA技术的正弦信号发生器电路的设计方案、程序设计输入、编译和仿真等操作,比较完整的说明了正弦信号发生器的设计过程、功能和正弦信号发生器电路的设计过程。

关键词电子EDA技术;正弦信号发生器设计;文件编译中图分类号TN702 文献标识码A 文章编号 1674-6708(2012)80-0206-01电子EDA技术的主要特点是使用硬件描述语言进行电子电路系统设计操作,具有较高的系统级仿真能力及综合能力。

使电子EDA技术得以实现的硬件基础是超大规模可编程逻辑器件,它的设计操作过程具有很大的灵活性和可移植性。

进行EDA技术开发的QuartusII软件是用于开发可编程逻辑器件的常用工具软件,此软件功能强大、操作方便,主要用于实现电路系统的设计输入、电路综合、电路布局布线、时序分析和仿真操作、系统配置操作、时序逼近、系统调试和项目管理等功能。

本文中的正弦信号发生器电路就是基于QuartusII软件平台设计的。

1 设计方案信号发生器是数字设备运行过程中不可缺少的一部分,以前的信号发生器,几乎都使用的是分立元件,产品体积庞大且不方便携带。

而现在专用的数字电路信号发生器,硬件成本高、操作复杂。

由于上述原因,小型、成本低且易用的信号发生器比较实用。

基于以上原因,选择使用Quartus II软件创建项目工程xhfs,使用自底向上的混合编辑方法并结合ROM宏功能模块设计一个简易正弦信号发生器。

选择Cyclone II系列的EP2C8Q208C8器件并进行引脚分配、项目编译、仿真、生成目标文件,使用EDA实验箱对目标器件进行编程与配置。

正弦信号发生器设计共由四部分组成,其系统设计框图如图1所示,包括ROM地址发生器(六位计数器)、正弦数据只读存储器ROM和一个八位数模转换电路。

EDA函数信号发生器设计说明书

EDA函数信号发生器设计说明书

目录第一章设计意义 (2)第二章设计说明 (3)2.1设计思路 (3)2.2模块介绍 (3)2.2.1模块一 (3)2.2.2模块二 (3)2.2.3模块三 (3)2.2.4模块四 (4)第三章原理图 (5)第四章仿真波形 (6)4.1分频模块 (6)4.2正弦波仿真波形 (6)4.3三角波仿真波形 (7)4.4方波仿真波形 (8)4.5波形选择模块仿真波形 (8)4.6频率选择模块仿真波形 (9)第五章总结 (10)参考文献 (11)附录 (12)本次课设要求设计一个函数信号发生器。

它能产生三种波形:正弦波、三角波和方波。

同时能在不同的频率下显示。

这次设计主要是练习了分频电路的设计,ROM的设计,计数器的设计、选择电路的设计和数码显示的设计。

加强了对when语句,if语句等语句的理解。

拓展了对VHDL语言的应用。

平时练习与考试都是设计一个简单的电路,本次课设综合了好几个电路的设计。

同时我也增强了对分模块设计电路的应用。

对我以后的电路设计生涯都是有所帮助的!函数信号发生器是应用了VHDL语言,通过数模转换来显示波形,实现了数模转换的应用。

在工作中,我们常常会用到信号发生器,它是使用频度很高的电子仪器。

信号发生器是指产生所需参数的电测试信号的仪器。

按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

各种波形曲线均可以用三角函数方程式来表示。

能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。

信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

凡是产生测试信号的仪器,统称为信号源,也称为信号发生器,它用于产生被测电路所需特定参数的电测试信号。

信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。

可见信号源在电子实验和测试处理中,并不测量任何参数,而是根据使用者的要求,仿真各种测试信号,提供给被测电路,以达到测试的需要。

EDA技术-VHDL-5.12正弦信号发生器

EDA技术-VHDL-5.12正弦信号发生器

2095.12. 正弦信号发生器程序设计与仿真实验1实验目的熟悉QuartusII 及其LPM_ROM 与FPGA 硬件资源的使用方法。

2实验原理正弦信号发生器的结构由3部分组成,数据计数器或地址发生器、数据ROM 和D/A 。

性能良好的正弦信号发生器的设计,要求此3部分具有高速性能,且数据ROM 在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。

图5.12.1所示是此信号发生器结构图,顶层文件SINGT.VHD 在FPGA 中实现,包含2个部分:ROM 的地址信号发生器由5位计数器担任,和正弦数据ROM ,其原理图如图5.12.2所示。

拒此,ROM 由LPM_ROM 模块构成能达到最优设计,LPM_ROM 底层是FPGA 中的EAB 或ESB 等。

地址发生器的时钟CLK 的输入频率f 0与每周期的波形数据点数(在此选择64点)以及D/A 输出的频率f 的关系是:640f f图5.12.1 正弦信号发生器结构图图5.12.2 正弦信号发生器原理图3 实验内容在Quartus II 上完成正弦信号发生器设计,包括仿真和资源利用情况了解(假设利用Cyclone 器件)。

最后在实验系统上实测,包括SignalTap II 测试、FPGA 中ROM 的在系统数据读写测试和利用示波器测试。

最后完成EPCS1配置器件的编程。

4 实验预习与思考如果CLK 的输入频率是50MHz ,ROM 中一个周期的正弦波数据是128个,要求输出的正弦波频率不低于150KHz,DAC0832是否能适应此项工作?为什么?5 原理图的建立与仿真(1) 为此工程建立文件夹,文件夹名为zxb(2) 建立原理图文件, 单击New→Device Dising→Block Diagram/Schematic file→OK,弹出原理图窗口如图5.12.3所示,图5.12.3 原理图建立窗口(3) 双击原理图窗口的任意处弹出如图5.12.4窗口,在窗口的Name处输入input(输入节点),点击ok,然后保存,文件名为cnt.210图5.12.4 原理图输入窗口(4) 创建工程与第2章2.1节的方法相同。

正弦函数信号发生器的设计EDA课程设计报告

正弦函数信号发生器的设计EDA课程设计报告

华东交通大学理工学院课程设计报告书所属课程: EDA技术及应用设计题目:正弦函数信号发生器的设计分院:电信分院班级:通信工程 2008级 2班姓名:骆玉春学号: 20080210420224 指导教师:王涛实验地点:实验楼五楼(EDA实验室506)2010 年 6 月 19 日华东交通大学理工学院课程设计任务书专业:08通信工程班级: 2班姓名:骆玉春一、课程设计题目正弦函数信号发生器的设计二、课程设计工作:自 2011 年 6月 16 日起至 2011 年 6 月20 日止。

三、课程设计的内容要求:1、识别各种Quartus II软件中各元件及其图形表示和文字符号。

2、学会如何使用Quartus II。

3、掌握VHDL语言的编程思想和VHDL语言的基本使用规则。

4、熟练掌握正弦函数信号发生器的工作原理,并读懂源程序。

5、按照编译、调试、仿真的正确步骤,并正确进行调试和仿真。

6、学会分析仿真图。

学生签名:2011年 6月 19日课程设计评阅意见评阅人职称2011 年月日目录课程设计评阅意见 (1)目录 (2)第一章设计目的 (3)第二章设计要求 (3)第三章设计内容 (3)第四章设计原理 (3)第五章设计步骤 (4)5.1建立.mif格式文件 (4)5.2建立.hex格式文件 (5)5.3定制LPM_ROM (5)5.4完成顶层设计 (11)第六章课程设计总结 (13)参考文献 (14)第一章设计目的进一步熟悉QuartusII 6.0及其LPM_ROM与FPGA硬件资源的使用方法。

培养动手能力以及谐作能力。

第二章设计要求1、CLK为12MHz。

2、通过DAC0832输出正弦波电压信号,电压范围0~-5V。

3、通过仿真观察波形。

第三章设计内容在Quartus II上完成正弦波信号发生器的设计,包括仿真和资源利用情况了解(假设利用Cyclone器件)。

最后在实验系统上实测,包括FPGA中ROM的在系统数据读写测试和仿真测试。

正弦信号发生器实验报告

正弦信号发生器实验报告

正弦信号发生器实验报告引言本实验旨在设计并构建一个正弦信号发生器,用于产生具有特定频率和振幅的正弦波信号。

正弦信号在电子工程中具有广泛的应用,如通信系统、音频设备和信号处理等。

本实验将介绍设计思路、所需材料和步骤,以及实验结果和讨论。

设计思路为了设计一个正弦信号发生器,我们需要以下主要组件:1.振荡电路:产生正弦波信号的核心部分。

2.振幅调节电路:用于控制输出信号的振幅。

3.频率调节电路:用于控制输出信号的频率。

我们将使用基本的集成电路和电子元件来实现这些功能。

接下来,我们将逐步说明每个组件的设计和实现。

所需材料在开始实验之前,我们需要准备以下材料和工具:1.集成电路:例如操作放大器(Op-amp)。

2.电容器和电阻器:用于构建振荡电路和调节电路。

3.面包板:用于连接电子元件。

4.电源:为电路提供所需的电能。

5.示波器:用于测量信号的振幅和频率。

实验步骤1.第一步:振荡电路设计和构建–选择一个合适的振荡电路拓扑,如RC振荡电路。

–计算并选择所需的电容器和电阻器数值。

–使用面包板将电容器、电阻器和集成电路连接起来。

2.第二步:振幅调节电路设计和构建–选择一个合适的振幅调节电路拓扑,如非反相放大器。

–根据需要的振幅范围计算并选择所需的电阻器数值。

–使用面包板将电阻器和集成电路连接起来。

3.第三步:频率调节电路设计和构建–选择一个合适的频率调节电路拓扑,如电阻-电容调谐电路。

–根据需要的频率范围计算并选择所需的电容器和电阻器数值。

–使用面包板将电容器、电阻器和集成电路连接起来。

4.第四步:电源和示波器连接–将电源连接到电路以提供所需的电能。

–将示波器连接到电路以测量输出信号的振幅和频率。

5.第五步:实验验证和调试–打开电源,并使用示波器观察输出信号。

–调节振幅和频率调节电路,验证是否可以在所需范围内调节信号的振幅和频率。

实验结果和讨论经过实验验证和调试,我们成功设计和构建了一个正弦信号发生器。

该信号发生器能够在所需的频率范围内产生具有可调节振幅的正弦波信号。

EDA课程设计——基于DDS的正弦信号发生器设计(模版)

EDA课程设计——基于DDS的正弦信号发生器设计(模版)

EDA课程设计——基于DDS的正弦信号发生器设计(模版)第一篇:EDA课程设计——基于DDS的正弦信号发生器设计(模版)顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DDS ISPORT(K:IN STD_LOGIC_VECTOR(9 DOWNTO 0);EN:IN STD_LOGIC;RESET:IN STD_LOGIC;CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));END ENTITY DDS;ARCHITECTURE BEHAVE OF DDS ISCOMPONENT SUM99 ISPORT(K:IN STD_LOGIC_VECTOR(9 DOWNTO 0);EN:IN STD_LOGIC;RESET:IN STD_LOGIC;CLK:IN STD_LOGIC;OUT1:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT SUM99;COMPONENT REG1 ISPORT(D:IN STD_LOGIC_VECTOR(9 DOWNTO 0);CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END COMPONENT REG1;COMPONENT ROM ISPORT(CLK:IN STD_LOGIC;ADDR:IN STD_LOGIC_VECTOR(9 DOWNTO 0);OUTP:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));END COMPONENT ROM;COMPONENT REG2 ISPORT(D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));END COMPONENT REG2;SIGNAL S1:STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL S2:STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL S3:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINU0:SUM99PORTMAP(K=>K,EN=>EN,RESET=>RESET,CLK=>CLK,OUT1=>S1);U1:REG1 PORT MAP(D=>S1,CLK=>CLK,Q=>S1);U2:ROM PORT MAP(ADDR=>S2,CLK=>CLK,OUTP=>S3);U3:REG2 PORT MAP(D=>S3,CLK=>CLK,Q=>Q);END ARCHITECTURE BEHAVE;正弦查找表 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM IS PORT(ADDR:IN STD_LOGIC_VECTOR(6 DOWNTO 0);CLK:IN STD_LOGIC;OUTP:OUT SIGNED(7 DOWNTO 0));END ENTITY ROM;ARCHITECTURE ART OF ROM IS BEGIN PROCESS(CLK)IS BEGIN IF(CLK'EVENT AND CLK='1')THEN CASE ADDR IS WHEN “0000000”=>OUTP<=“00000000”;WHEN“0000001”=>OUTP<=“00000010”;WHEN“0000010”=>OUTP<=“00000011”;WHEN“0000011”=>OUTP<=“00000101”;WHEN“0000100”=>OUTP<=“00000110”;WHEN “0000101”=>OUTP<=“00001000”;WHEN “0000110”=>OUTP<=“00001001”;WHEN“0000111”=>OUTP<=“00001011”;WHEN“0001000”=>OUTP<=”00001101“;WHEN ”0001001“=>O UTP<=”00001110“;WHEN ”0001010“=>OUTP<=”0001000 0“;WHEN ”0001011“=>OUTP<=”00010001“;WHEN ”000 1100“=>OUTP<=”00010011“;WHEN ”0001101“=>OUTP< =”00010100“;WHEN ”0001110“=>OUTP<=”00010110“; WHEN ”0001111“=>OUTP<=”00010111“;WHEN ”0010000“=>OUTP<=”00011001“;WHEN ”0010001“=>OUTP<=”0 0011011“;WHEN ”0010010“=>OUTP<=”00011100“;WHEN ”001 0011“=>OUTP<=”00011110“;WHEN ”0010100“=>OUTP< =”00011111“;WHEN ”0010101“=>OUTP<=”00100001“; WHEN ”0010110“=>OUTP<=”00100010“;WHEN ”0010111“=>OUTP<=”00100100“;WHEN ”0011000“=>OUTP<=”0 0100101“;WHEN ”0011001“=>OUTP<=”00100111“;WHEN ”0011010“=>OUTP<=”00101001“;WHEN ”001 1011“=>OUTP<=”00101010“;WHEN ”0011100“=>OUTP< =”00101100“;WHEN ”0011101“=>OUTP<=”00101101“; WHEN ”0011110“=>OUTP<=”00101111“;WHEN ”0011111“=>OUTP<=”00110000“;WHEN ”0100000“=>OUTP<=”0 0110010“;WHEN ”0100001“=>OUTP<=”00110011“;WHEN ”0100010“=>OUTP<=”00110101“;WHEN ”0100011“=>O UTP<=”00110110“;WHEN ”0100100“=>OUTP<=”0011100 0“;WHEN ”0100101“=>OUTP<=”00111001“;WHEN ”010 0110“=>OUTP<=”00111011“;WHEN ”0100111“=>OUTP< =”00111100“;WHEN ”0101000“=>OUTP<=”00111110“; WHEN ”0101001“=>OUTP<=”00111111“;WHEN ”0101010“=>OUTP<=”01000001“;WHEN ”0101011“=>OUTP<=”0 1000011“;WHEN ”0101100“=>OUTP<=”01000100“;WHEN ”0101101“=>OUTP<=”01000110“;WHEN ”0101110“=>O UTP<=”01000111“;WHEN ”0101111“=>OUTP<=”01001001“;WHEN ”0110000“=>OUTP<=”01001010“;WHEN ”011 0001“=>OUTP<=”01001100“;WHEN ”0110010“=>OUTP< =”01001101“;WHEN ”0110011“=>OUTP<=”01001111“; WHEN ”0110100“=>OUTP<=”01010000“;WHEN ”0110101“=>OUTP<=”01010001“;WHEN ”0110110“=>OUTP<=”0 1010011“;WHEN ”0110111“=>OUTP<=”01010100“;WHEN ”0111000“=>OUTP<=”01010110“;WHEN ”0111001“=>O UTP<=”01010111“;WHEN ”0111010“=>OUTP<=”0101100 1“;WHEN ”0111011“=>OUTP<=”01011010“;WHEN ”011 1100“=>OUTP<=”01011100“;WHEN ”0111101“=>OUTP< =”01011101“;WHEN ”0111110“=>OUTP<=”01011111“; WHEN ”0111111“=>OUTP<=”01100000“;WHEN ”1000000“=>OUTP<=”01100010“;WHEN ”1000001“=>OUTP<=”0 1100011“;WHEN ”1000010“=>OUTP<=”01100100“;WHEN ”1000011“=>OUTP<=”01100110“;WHEN ”1000100“=>O UTP<=”01100111“;WHEN ”1000101“=>OUTP<=”0110100 1“;WHEN ”1000110“=>OUTP<=”01101010“;WHEN ”100 0111“=>OUTP<=”01101100“;WHEN ”1001000“=>OUTP< =”01101101“;WHEN ”1001001“=>OUTP<=”01101110“; WHEN ”1001010“=>OUTP<=”01110000“;WHEN ”1001011“=>OUTP<=”01110001“;WHEN ”1001100“=>OUTP<=”0 1110011“;WHEN ”1001101“=>OUTP<=”01110100“;WHEN ”1001110“=>OUTP<=”01110101“;WHEN ”1001111“=>O UTP<=”01110111“;WHEN ”1010000“=>OUTP<=”0111100 0“;WHEN ”1010001“=>OUTP<=”01111010“;WHEN ”101 0010“=>OUTP<=”01111011“;WHEN ”1010011“=>OUTP< =”01111100“;WHEN ”1010100“=>OUTP<=”01111110“; WHEN ”1010101“=>OUTP<=”01111111“;WHEN ”1010110“=>OUTP<=”10000000”;WHEN“1010111”=>OUTP<=“10000010”;WHEN“1011000”=>OUTP<=“10000011”;WHEN“1011001”=>OUTP<=“10000100”;WHEN“1011010”=>OUTP<=“10000110”;WHEN“1011011”=>OUTP<=“10000111”;WHEN “1011100”=>OUTP<=“10001000”;WHEN “1011101”=>OUTP<=“10001010”;WHEN“1011110”=>OUTP<=“10001011”;WHEN“1011111”=>OUTP<=“10001100”;WHEN“1100000”=>OUTP<=“10001110”;WHEN“1100001”=>OUTP<=“10001111”;WHEN“1100010”=>OUTP<=“10010000”;WHEN“1100011”=>OUTP<=“10010010”;WHEN“1100100”=>OUTP<=“10010011”;WHEN“1100101”=>OUTP<=“10010100”;WHEN “00001100110”=>OUTP<=“10010101”;WHEN “1100111”=>OUTP<=“10010111”;WHEN“1101000”=>OUTP<=“10011000”;WHEN“1101001”=>OUTP<=“10011001”;WHEN“1101010”=>OUTP<=“10011010”;WHEN“1101011”=>OUTP<=“10011100”;WHEN“1101100”=>OUTP<=“10011101”;WHEN“1101101”=>OUTP<=“10011110”;WHEN“1101110”=>OUTP<=“10011111”;WHEN“1101111”=>OUTP<=“10100001”;WHEN“1110000”=>OUTP<=“10100010” WHEN “1110001”=>OUTP<=“10100011”;WHEN “1110010”=>OUTP<=“10100100”;WHEN “1110011”=>OUTP<=“10100101”;WHEN“1110100”=>OUTP<=“10100111”;WHEN“1110101”=>OUTP<=“10101000”;WHEN“1110110”=>OUTP<=“10101001”;WHEN“1110111”=>OUTP<=“10101010”;WHEN“1111000”=>OUTP<=“10101011”;WHEN“1111001”=>OUTP<=“10101100”;WHEN“1111010”=>OUTP<=“10101110”;WHEN“1111011”=>OUTP<=“10101111”;WHEN“1111100”=>OUTP<=“10110000”;WHEN“1111101”=>OUTP<=“10110001”;WHEN“1111110”=>OUTP<=“10110010”;WHEN“1111111”=>OUTP<=“10110011”;WHENOTHERS=>OUTP<=“ 00000000”;END CASE;END IF;END PROCESS;END ARCHITECTURE ART;DAC 0832的VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITY DAC0832 IS PORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;ILE:OUT STD_LOGIC;CONT:OUT STD_LOGIC;DATA_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY;ARCHITECTURE BEHAVE OF DAC0832 IS SIGNAL Q:INTEGER RANGE 0 TO 63;SIGNAL DATA:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(CLK)BEGINIF RST='1'THEN Q<=0;ELSIF CLK'EVENT AND CLK='1'THEN IF DATA=“11111111”THEN DATA<=“00000000”;ELSE DATA<=DATA+1;END IF;ELSE Q<=Q+1;END IF;END PROCESS;ILE<='1';CONT<='0';DATA_OUT<=DATA;END ARCHITECTURE BEHAVE;频率控制字 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY REG0 ISPORT(CLK:IN STD_LOGIC;LOCK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END ENTITY REG0;ARCHITECTURE ART OF REG0 IS BEGINPROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF LOCK='1'THENQ<=“0000011111”;END IF;END IF;END PROCESS;END ARCHITECTURE ART;相位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG1 ISPORT(D:IN STD_LOGIC_VECTOR(9 DOWNTO 0);CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END ENTITY REG1;ARCHITECTURE BEHAVE OF REG1 IS BEGINPROCESS(CLK)ISBEGINIF(CLK'EVENT AND CLK='1')THENQ<=D;END IF;END PROCESS;END ARCHITECTURE BEHAVE;输出数据寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG2 IS PORT(D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));END ENTITY REG2;ARCHITECTURE BEHAVE OF REG2 IS BEGINPROCESS(CLK)ISBEGINIF(CLK'EVENT AND CLK='1')THENQ<=D;END IF;END PROCESS;END ARCHITECTURE BEHAVE;相位累加器 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SUM99 ISPORT(K:IN STD_LOGIC_VECTOR(9 DOWNTO 0);CLK:IN STD_LOGIC;EN:IN STD_LOGIC;RESET:IN STD_LOGIC:OUT1:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END ENTITY SUM99;ARCHITECTURE BEHAVE OF SUM99 ISSIGNAL TEMP:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(CLK,EN,RESET)ISBEGINIF RESET='1'THENTEMP<=“0000000000”;ELSEIF CLK'EVENT AND CLK='1'THENIF EN='1'THENTEMP<=TEMP+K;END IF;END IF;END IF;OUT1<=TEMP;END PROCESS;END ARCHITECTURE BEHAVE;图1.顶层电路原理图图2.dds波形仿真图图3.rom波形仿真图图4.相位寄存器reg1仿真波形图图5.寄存器reg2的波形仿真图6.相位累加器仿真波形图图7.优化过程及对比波形(A——H)图A图B图C图D图E 23图F图G图H第二篇:DDS函数信号发生器的设计DDS函数信号发生器的设计、仿真及下载一、实验设计① 利用DDS(Direct DIgital Frequency Synthesis,即直接数字频率合成)技术产生稳定的正弦波,三角波和方波输出,输出频率为10~1000kHz且频率可调,步进为10Hz,1kHz,10kHz,100kHz。

EDA课程设计正弦信号发生器的设计

EDA课程设计正弦信号发生器的设计

《EDA技术》设计报告设计题目正弦信号发生器的设计院系:信息工程学院专业:通信工程学姓号:名:RST7 根地址线CLK计 数器8 位R O M并转串输出TLV5620 D/A 转换一.设计任务及要求1. 设计任务 :利用实验箱上的 D/A 转换器和示波器设计正弦波发生器,可以在示波器上观察到正弦波2. 设计要求 :(1) 用 VHDL 编写正弦波扫描驱动电路 (2) 设计可以产生正弦波信号的电路(3) 连接实验箱上的 D/A 转换器和示波器,观察正弦波波形二.设计方案(1)设计能存储数据的 ROM 模块,将正弦波的正弦信号数据存储在在 ROM 中,通过地址发生器读取,将正弦波信号输入八位 D/A 转化器,在示波器上观察波形(2)用 VHDL 编写正弦波信号数据, 将正弦波信号输入八位 D/A 转化器, 在示波器上观察波形三.设计框图图 1 设计框图信号发生器主要由以下几个部分构成:计数器用于对数据进行采样,ROM用于存储待采样的波形幅度数值, TLV5620 用于将采集的到正弦波数字量变为模拟量,最后通过示波器进行测量获得的波形。

其中,ROM 设置为 7 根地址线, 8个数据位,8 位并行输出。

TLV5260 为串行输入的 D/A 转换芯片,因此要把 ROM 中并行输出的数据进行并转串。

四.实现步骤1. 定制 ROMROM 的数据位选择为8 位,数据数选择128 个。

利用megawizard plug-in manager定制正弦信号数据ROM 宏功能块,并将上面的波形数据加载于此ROM 中。

如图 3 所示。

图2 ROM 存储的数据图3 调入ROM 初始化数据文件并选择在系统读写功能2. 设计顶层.顶层设计主要是通过编写VHDL 语言或设计原理图用于产生计数信号和调用room 存储的数据并输出。

在此步骤里要建立EDA 工程文件,工程文件结构如图4 所示,SIN_CNT 中的VHDL 代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SIN_GNT ISPORT ( RST, CLK, EN : IN STD_LOGIC;ADDR : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END SIN_GNT;ARCHITECTURE BEHA VIOR OF SIN_GNT ISCOMPONENT ROM ISPORT ( address : IN STD_LOGIC_VECTOR(6 DOWNTO 0);inclock : IN STD_LOGIC;q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END COMPONENT;SIGNAL Q : STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINU : ROM PORT MAP ( address => Q,inclock => CLK,q => DOUT);PROCESS(CLK, RST, EN)BEGINIF RST = '0' THENQ <= "0000000";ELSIF CLK'EVENT AND CLK = '1' THENIF EN = '1' THENQ <= Q + 1;END IF;END IF;END PROCESS;ADDR <= Q;END BEHA VIOR;工程文件的建立步骤简述如下:1、新建一个文件夹。

实验五 正弦信号发生器设计

实验五  正弦信号发生器设计

实验五正弦信号发生器设计一、实验目的1.熟悉利用QuartusII及其LPM_ROM与FPGA硬件资源的使用方法;2.掌握LPM模块的重要功能;3.熟悉MegaWizard Plug-In Manager的使用方法。

二、实验设备计算机,QuartusII 6.0 版软件,JTAG下载线,EDA实验挂箱(EP1C6Q240C8)。

三、实验原理设计一8位宽、1024点的正弦信号发生器。

正弦信号发生器的结构由四个部分组成:1.计数器或地址发生器(10位地址线);2.正弦信号数据ROM(存放正弦波的采样数据,采样频率20MHz:8位数据线、10位地址线);3.VHDL顶层设计;4.D/A转换器(8位)。

四、实验步骤和内容1.在QuartusII上利用MegaWizard Plug-In Manager功能,调用LPM_ROM函数定制8位宽、1024点ROM,并进行初始化。

然后对设计实体进行编辑、编译、综合、适配、仿真。

2. 利用QuartusII文本编辑器设计10位二进制计数器,做为地址发生器,对设计实体进行编辑、编译、综合、适配、仿真。

3. 利用层次化设计方法设计一8位宽、1024点的正弦信号发生器。

4. D/A转换器采用试验箱配备的DAC0832。

5. 引脚锁定和硬件下载测试。

引脚锁定后进行编译、下载和硬件测试实验。

将实验过程和实验结果写进实验报告。

6. 使用SignalTap II对设计的正弦信号发生器进行实测。

采样时钟使用系统时钟20MHz。

7. 使用在系统存储器数据读写编辑器对设计的正弦信号发生器进行实测,观测结果;8.实验报告。

将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。

五、思考题如何实现对输出正弦信号的频率和相位可调?。

实验十-正弦信号发生器实验

实验十-正弦信号发生器实验

实验10正弦信号发生器实验
1、实验目的:
1)学习分频器,计数器和LPM_ROM的使用方法
2)学习DDS的基本原理。

2、实验原理:
图1 正弦信号发生器的原理图
图2 DDS信号源的原理图
3、实验内容
选择模式NO.5,打开试验箱左上侧的+/-12V开关(D/A输出需要),将示波器探头接于主系统左下角的两个挂钩处,最右侧的时钟选择,用短路帽接插clock0为65536Hz 或750KHz处,这时可以从示波器上看到波形输出
1)用VHDL语言描述一个16进制计数器,然后再描述一个正弦表译码器,使用
元件例化语句描述图1所示原理图(FPGA内部),在QuartusⅡ上进行编译、综
合、适配。

引脚锁定以及硬件下载测试。

时钟输入锁clcok0(750KHZ),正弦
表输出锁DAC0832输入,复位和时钟使能锁按键,进行编译、下载和硬件测
试。

2)用VHDL语言描述一个1024进制计数器,然后使用lpm_ROM再描述一个10
位地址的正弦表译码器,使用元件例化语句描述图1所示原理图(FPGA内部),
在QuartusⅡ上进行编译、综合、适配。

引脚锁定以及硬件下载测试。

3)如图2所示,把上述计数器改为+M计数器,M为3位,采用按键输入。

记录
4、思考
怎样提高输出频率的范围
参考程序见文件。

EDA实训函数信号发生器

EDA实训函数信号发生器

《EDA技术与应用》实训报告学号姓名指导教师:实训题目:1.系统设计1.1 设计要求1.1.1 设计任务设计一个多功能信号发生器1.1.2 技术要求①能够产生两种或以上种输出波形(正弦波、三角波、锯齿波等)。

②输出的波形的频率允许有多种选择。

③输出波形的幅度在1V~5V范围内。

④输出的波形能够用示波器测量。

1.2 方案比较运用了我们所学的Vverilog VHDL 语言及Quartus II 7.0软件,来完成并实现这一次实训。

1.3 方案论证1.3.1 总体思路多功能信号发生器的原理框图如图所示。

其中,fpq是分频器,用于对EDA实训仪主板上提供的20MHz的主频率进行分频,以得到满足多功能信号发生器设计需要的时钟频率,clk 是20MHz的主频率输入端,step是步长控制端,当step为0或1时,分别控制分频器的分频比,并由clk_out端输出到Lpm_counter0中,Lpm_counter0是参数可设置的计数器,用于产生lpm_rom4 ,lpm_rom2和lpm_rom3的8位位置,并从q[7..0]端输出到数据选择器abcd 中,并通过s1和s2的组合进行选择。

lpm_rom4, lpm_rom2和lpm_rom3是参数可设置的只读存储器,用于存放多功能信号发生器的波形数据信号,其中lpm_rom3存放的是正弦波,lpm_rom2中存放的是锯齿波,lpm_rom4中存放的是方波。

而波形的产生还需要一份Mif文件。

Mif是将波形分成N个点并将各点输入只读存储器中,这样只读存储器就可以输出相应的波形数据。

只读存储器的位置输出端接于s数据选择器的输入端abcd,而数据选择器便可通过改变从存储器中接受的数据进行区分选择,逐步地取出波形数据,经D/A转换后产生模拟波形输出。

1.3.2 设计方案2.各个模块程序的设计1分频器:module fpq(clk, newclk,step);input clk,step;output newclk;reg newclk;reg[24:0] cnter,sc;reg[1:0] stepcnt;always @(posedge step)beginstepcnt=stepcnt+1;beginif (stepcnt == 0) sc = 2000;else if (stepcnt == 1) sc = 200;else if (stepcnt == 2) sc = 20;else if (stepcnt == 3) sc = 2;else sc = 2000;endendalways @(posedge clk)beginif (cnter < sc) cnter = cnter+1;else cnter = 0;if (cnter < sc/2) newclk = 'b1;else newclk = 'b0;endendmodule2 数据选择器:module jsq(q,a,b,c,d,k1,k2);input k1,k2;input [7:0]a,b,c,d;output reg [7:0]q;always @(k1 or k2)begincase ({k1,k2})'b00: q=a;'b01: q=b;'b10: q=c;'b11: q=d;endcaseendendmodule3.整理与调试过程将示波器的探头与试验箱上DAOUT及GND进行连接,将试验箱接通电源,此时便产生了20MHz的时钟信号,由拨码开关s14和s15分别控制正弦波,方波,锯齿波与三角波的输出,可以在示波器上看到波形成,但是还需要在示波器上调整波的幅度等参数使之形成清晰稳定的波形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生实验报告
系别电子信息学院课程名称《EDA综合实验》
班级12通信实验名称正弦信号发生器的设计
实验时间 2014年5 月日
学号2012 指导教师王红航
成绩批改时间2014年月日
报告容
一、实验目的和任务
进一步熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。

二、实验原理介绍
EDA是电子设计自动化,对象是数字电路设计,而证选择、新号发生器的设计却是一个模拟电路设计,因此需要用到D/A转换器。

根据正弦信号发生器的波形,得知该试验的输入为时间,而输出为振幅。

如果将正弦波的振幅放在存储单元为64的ROM中,根据ROM的功能得知,ROM中的数据与地址是一一对应的关系,因此设计由时间和振幅的对应关系转换为时间和地址的对应关系。

据此,要得到正弦信号,需要设计一个6位二进制计数器。

下图为总体设计框图:
在许多实用情况下,必须使用宏功能模块才能使用一些Altera特定期间的硬件功能,例如各类片上存储器、DSP模块等等。

这些可以以图形或硬件描述语言模块形式方便调用的宏功能块,使得基于EDA技术的电子设计的效率和可靠性有了很大的提
高。

LPM是参数可设置模块库(Library of Parameterized Modules)的英语缩写。

根据实际电路的设计需要,选择LPM库中的适当模块,并为其设定适当的参数,就能满足自己的设计需要,从而在自己的项目中十分方便的调用优秀的电子工程技术人员的硬件设计成果。

LPM功能模块容丰富,每一模块的功能、参数含义、使用方法、硬件描述语言模块参数设置及调用方法都可以在QuartusII中的help中查阅到,方法是选择help→Megafunction/LPM命令。

定制LPM_ROM模块流程:
1、定制初始化数据文件,建立.hex格式文件
(1)打开QuartusII软件,选择“NEW”菜单,在“others”卡片下选择“Hexadecimail(Inter-Format)File”或者“Memory Initialization File”,
如下图所示。

(2)点击图中的OK后,弹出如图所示的图片,改写“Number of words”为64.
(3)点击图中OK后,弹出如图所示的图片,按照图的数据讲空白的表格填上
数字,这些数字即为ROM中存储的数字。

填完数字后,将该违建保存,
保存的名字遵循标识符的取名规律,在此取名字为rom.hex。

注意:该文件存储在工作库中。

2、定制LPM_ROM原件
(1)打开Tools菜单,选择“Mega WiZard Plug-In Manager”,如下图5所示。

(2)点击打开Mega WiZard Plug-In Manager初始对话框,选择创建新的宏功能模块,如图6所示
(3)点击“Next”,选择宏功能模块(Rom:1-PORT)、使用器件(ACEX1K)、输出文件信息(文件类型:VerilogHDL;文件地址:D:\\11student\syjy\;
文件名称:ROM1),如图7所示。

(4)点击“Next”,选择ROM模块存储数据位数和地址线宽(既存储容量),如图8所示。

(5)点击“Next”,选择地址锁存信号inclock,如图9所示。

(6)点击“Next”,导入定制的.hex文件
(7)默认仿真库,如图11所示,不做任何选择。

(8)选择产生文件类型,默认产生ROM1.v,可以自由选择让系统产生更多的文件。

3、对生成的文件建工程,编译,仿真,生成ROM1原件。

(1)首先在文件夹D:\\11student\syjy\中找到生成的文件ROM1.v;
(2)将ROM1.v设为当前工程,并对其编译;
(3)对ROM1.v进行仿真,仿真波形如图13所示。

(4)生成ROM1元件,如图14所示。

根据上面讲述的定制LPM_ROM模块流程,完成以下实验任务。

实验任务一:
根据上述QuartusII宏功能模块使用方法,设计6位计数器,对生成的counter6.v文件建工程、编译、仿真,并生成counter1元件。

注意:计数器宏功能模块选择:
实验任务二:
完成正弦信号发生器的完整设计,并给出其时序波形及其分析。

实验任务三:
硬件验证设计正弦信号发生器的功能。

1.可选实验电路5;
2.DAC0832的8位数据口D[7..0]分别和FPGA的PI031、30....24相连;时钟信号接系统的clock0。

四、实验结论与心得
更好的掌握了LPM_ROM与FPGA硬件资源的使用方法,了解了其用途。

将课堂所学到的知识在实验中实践,加深了同学们对知识的理解,让我们对它有了更加浓厚的兴趣。

相关文档
最新文档