陈冲EDA课程设计_任意波形信号发生器

陈冲EDA课程设计_任意波形信号发生器
陈冲EDA课程设计_任意波形信号发生器

陈冲EDA课程设计_任意波形信号发生器任

姓名: 陈冲

班级: 07通信工程

指导老师:孙惠章

1

目录

一.简述 (3)

二.设计性能要求 (3)

三.系统框图 (3)

四.系统电路图 (3)

五.基本工作原理 (4)

六. 单元电路模块源程序及功能 (5)

七.系统仿真波形 (10)

八.引脚锁定 (11)

九. 实验结果及硬件验证 (11)

十(实验心得 (13)

2

任意波形信号发生器的设计

一.简述

随着信息科技的发展~波形发生器在科技社会等多个领域发挥着越来越重要作用。采用eda技术利用quartus60软件平台~基于大规模可编程逻辑器件 fpga 设计的多功能波形发生器系统~大大简化其结构 , 降低成本 , 提高了系统的可靠性和灵活性。设计中运用计数器~数据选择器~对所需的频率进行选择和同步。使用宏功能模块存储波形。然后多波形进行幅度的选择。产生满足需要的不用频率和幅度的波形。

二(设计性能要求

1.能输出正弦波~锯齿波~阶梯波~三角波~方波~矩形脉冲等八种波形。

2.具有幅度和频率的调整。

3.单元电路模块使用VHDL语言编写。

三.系统框图

图1.任意波形信号发生器系统框图

四(系统电路图

3

图2.任意波形信号发生器系统电路图

五(基本工作原理

将要产生的波形数据存入波形存储器中, 然后在参考脉冲的作用下, 对输入的频率数据进行累加, 并将累加器输出的一部分作为读取波形存储器的地址, 将读出的波形数据经D/A 转换为相应的电压信号,D/A 转换器输出的一系列的阶梯电压信号经低通滤波器滤波后便输出了光滑的合成波形的信号。

选择八种基础波形为设计与实现的对象~而八个波形作为同一个任意波形发生器里的四个部分~是有着同一个输入与输出~因此在设计上还需要对波形进行选择与控制的部分~通过对时钟脉冲输入的选择~使得八个波形模块只有一个输入为时钟脉冲~其他三个模块则输入始终为0。在波形输出时~设计一个模块控制输出的波形是所要求输出的波形~在时钟脉冲选择与输出波形选择两模块之间。

对于频率的选择可以选择分频器~同时也可以选择计数器~本实验采用的是计数器以实现分频的效果~输出分别为二分频~四分频~八分频~十六分频用以实现不同的频率。幅度调节可以使用lpm_divide~可以实现八种不同的幅度调节。

4

六(单元电路模块源程序及功能

1. 分频模块

以下为分频模块(CT74161)的VHDL语言编程源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CT74161 IS

PORT(clk : IN STD_LOGIC; clk_div2 : OUT STD_LOGIC; clk_div4 : OUT STD_LOGIC; clk_div8 : OUT STD_LOGIC; clk_div16 : OUT STD_LOGIC); END CT74161;

ARCHITECTURE rtl OF CT74161 IS SIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS(clk)

BEGIN

IF (clk'EVENT AND clk='1') THEN IF(count="1111") THEN

Count <= (OTHERS =>'0'); ELSE

Count <= count +1;

END IF ;

END IF ;

END PROCESS;

clk_div2 <= count(0);

clk_div4 <= count(1);

clk_div8 <= count(2);

clk_div16 <= count(3);

END rtl;

在Quartus II 6.0下得到的电路模块图形和软件仿真数据:

5

2. 频率选择模块

以下为频率选择模块(tiaopin)的VHDL语言编程源程序 library ieee; use ieee.std_logic_1164.all; entity tiaopin is

port(s1,s0: in std_logic;

a,b,c,d: in std_logic;

y: out std_logic); end tiaopin;

architecture one of tiaopin is

signal s: std_logic_vector(1 downto 0);

signal y_temp: std_logic;

begin

s<=s1&s0;

process(s1,s0,a,b,c,d)

begin

case s is

when "00"=>y_temp<=a;

when "01"=>y_temp<=b;

when "10"=>y_temp<=c;

when "11"=>y_temp<=d;

when others=>y<='X';

end case;

end process;

y<=y_temp;

end one;

在Quartus II 6.0下得到的电路模块图形:

6

3. 波形选择模块

以下为波形选择模块(decoder)的VHDL语言编程源程序library ieee;

use ieee.std_logic_1164.all;

entity DECODER is

port(a0,a1,a2,s0,s1,s2:in std_logic;

y0,y1,y2,y3,y4,y5,y6,y7:out std_logic);

end DECODER;

architecture ymq of DECODER is

signal a:std_logic_vector(2 downto 0); begin a<=a2&a1&a0;

process(a,s0,s1,s2)

variable y:std_logic_vector(7 downto 0); begin

if(s2='0' and s1='0' and s0='1')then

case a is

when"000"=>y:="11111110";

when"001"=>y:="11111101";

when"010"=>y:="11111011";

when"011"=>y:="11110111";

when"100"=>y:="11101111";

when"101"=>y:="11011111";

when"110"=>y:="10111111";

when"111"=>y:="01111111";

when others=>y:="XXXXXXXX";

end case;

else

y:="11111111";

end if;

y0<=y(0);

y1<=y(1);

y2<=y(2);

7

y3<=y(3);

y4<=y(4);

y5<=y(5);

y6<=y(6);

y7<=y(7);

end process;

end ymq;

在Quartus II 6.0下得到的电路模块图形和软件仿真数据:

4.输出波形选择模块

以下为输出波形模块(lpm)的VHDL语言编程源程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity lpm is

port (s1,s2,s3:in std_logic;

a,b,c,d,e,f,g,h:in std_logic_vector(7 downto 0);

z:out std_logic_vector(7 downto 0)); end lpm;

8

architecture one of lpm is signal s:std_logic_vector(2 downto 0); begin

s<=s3&s2&s1;

process (s1,s2,s3,a,b,c,d,e,f,g,h)

begin

case s is

when "000"=>z<=a;

when "001"=>z<=b;

when "010"=>z<=c;

when "011"=>z<=d;

when "100"=>z<=e;

when "101"=>z<=f;

when "110"=>z<=g;

when "111"=>z<=h;

when others=>null ;

end case;

end process;

end one;

在Quartus II 6.0下得到的电路模块图形和软件仿真数据:

9

5.幅度控制模块

以下为幅度控制模块(tiaofu)的VHDL语言编程源程序

library ieee;

use ieee.std_logic_1164.all; entity tiaofu is

port(a,b,c: in std_logic;

sel: out std_logic_vector(2 downto 0));

end tiaofu;

architecture three of tiaofu is

begin

sel<=a&b&c;

end three;

在Quartus II 6.0下得到的电路模块图形

七(系统仿真波形

10

注:以正弦波为例

八(引脚锁定

试验中将脉冲输入选择和波形输出选择的输入端接在一起~以实现同步。接实验箱的开关~实现数字信号对模拟波形的控制。将八位输出端接数模转换模块。其引脚锁定图如下:

图3:实验引脚锁定图

九(实验结果及硬件验证

用导线连接各引脚~并将实验设计下载到试验箱。用示波器观察输出波形。。软件模拟数据和示波器显示波形相吻合~能产生八种稳定的波形~具有八种幅度调节和四种频率选择。

11

图4:实验硬件验证图

图5:实验产生正弦波波形图图6:锯齿波波形图

图7.:阶梯波波形图图8:三角波波形图12

图9:矩形脉冲波形图图10:方波

图11:自己设计任意波形,1, 图12:梯形波十(实验心得

分配到这个设计的时候~班里同学都说我幸运~这个设计相对简单~孙老师在

上课的时候把大部分的模块都已经给出。但是想做一个非常好的任意波形信号发生器~很多地方需要改进。通过上网查阅资料和自己的整理有了大致的思路后~我便开始在电脑上设计。在调试和运行中遇到的有些错误无法通过~通过向老师请教和同学之间的讨论一一克服~完成设计。

通过这次课程设计~一方面学到了不少知识~并且对以前学的有关知识有了更

深一步的理解。通过在网上查找资料~才感觉自己的专业知识积累太少~以后应该注意知识的积累。另一方面~这次实验要求独立完成~锻炼了自己的实际操作能力~懂得了实践的重要性。最后就是做事情要有耐心~仔细~要虚心请教。另外~对实现中存储波形的宏功能模块可以做些改进~同样适用VHDL语言编写。代码如下: library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity sina is

port(clk4:in std_logic;

dd4:out integer range 255 downto 0);

end;

architecture dacc of sina is

13

signal q: integer range 63 downto 0;

begin

process(clk4)

begin

if (clk4'event and clk4='1') then

q<=q+1;

end if;

end process;

process(q)

begin

case q is

when 00=>dd4<=255; when 01=>dd4<=254; when 02=>dd4<=253; when

03=>dd4<=250; when 04=>dd4<=245; when 05=>dd4<=240; when 06=>dd4<=234; when 07=>dd4<=226; when 08=>dd4<=218; when 09=>dd4<=208; when

10=>dd4<=198; when 11=>dd4<=188; when 12=>dd4<=176; when 13=>dd4<=165; when 14=>dd4<=152; when 15=>dd4<=140; when 16=>dd4<=128; when

17=>dd4<=115; when 18=>dd4<=103; when 19=>dd4<=90; when 20=>dd4<=79; when 21=>dd4<=67; when 22=>dd4<=57; when 23=>dd4<=47; when 24=>dd4<=37; when 25=>dd4<=29; when 26=>dd4<=21; when 27=>dd4<=15; when 28=>dd4<=10; when 29=>dd4<=5; when 30=>dd4<=2; when 31=>dd4<=1; when 32=>dd4<=0;

14

when 33=>dd4<=1; when 34=>dd4<=2; when 35=>dd4<=5; when 36=>dd4<=10; when 37=>dd4<=15; when 38=>dd4<=21; when 39=>dd4<=29; when 40=>dd4<=37; when 41=>dd4<=47; when 42=>dd4<=57; when 43=>dd4<=67; when 44=>dd4<=79; when 45=>dd4<=90; when 46=>dd4<=103; when 47=>dd4<=115; when

48=>dd4<=128; when 49=>dd4<=140; when 50=>dd4<=165; when 51=>dd4<=176; when 52=>dd4<=188; when 53=>dd4<=198; when 54=>dd4<=208; when

55=>dd4<=218; when 56=>dd4<=226; when 57=>dd4<=234; when 58=>dd4<=240;

when 59=>dd4<=245; when 60=>dd4<=250; when 61=>dd4<=253; when 62=>dd4<=254; when 63=>dd4<=255; when others=>null; end case;

end process;

end architecture;

在Quartus II 6.0下得到的电路模块图形

15

EDA课程设计——函数信号发生器

EDA课程设计——函数信号发生器 实验报告 学院(系) 专业、班级 学生姓名 学号 小组其他队员: 指导教师

(1)实验要求 (2)总体设计思路 (3)程序仿真 (4)实验结果 (5)心得体会 一.实验要求 (1)利用VHDL语言设计一个多功能信号发生器,可以产生正弦波,三角波,锯齿波和方波的数字信号。

(2)焊接一个D/A转换器,对输出的数字信号转换成模拟信号并在示波器上产生波形。 (3)在电路板上可以对波形进行选择输出。 (4)在电路板上可以对波形的频率与幅度进行调节。 二.总体设计思路 信号发生器主要由分频,波形数据的产生,四选一多路选择,调幅和D/A转换五个部分组成。 总体框架图如下: (1)分频 分频器是数字电路中最常用的电路之一,在FPGA的设计中也是使用效率非常高的基本设计。实现的分频电路一般有两种方法:一是使用FPGA芯片内部提供的锁相环电路,如ALTERA提供的PLL(Phase Locked Loop),Xilinx提供的DLL(Delay Locked Loop);二是使用硬件描述语言,如

VHDL、Verilog HDL等。本次我们使用VHDL进行分频器设计,将奇数分频,和偶数分频结合起来,可以实现50%占空比任意正整数的分频。 分频器原理图: 在我们本次试验中的实现即为当按下按键时,频率自动减半。如当输入为100MHZ,输出为50MHZ。 (2)信号的产生。 根据查找资料,我们最终确定了在QUARTUS中波形数据产生的方法,即利用地址信号发生器和LPM_ROM模块。ROM 的地址信号发生器,有七位计数器担任。LPM_ROM底层是FPGA 中的M4K等模块。然后在VHDL顶层程序设计中将两部分调用从而实现信号的发生。ROM中存放不同的初始化MIF文件(存放不同波形的数据)从而产生不同的波形。 信号产生模块:

函数信号发生器的设计 EDA课程设计

摘要 本说明书首先介绍了VHDL语言的特点及发展史;接着简要说明了D/A接口(函数发生器)的工作原理及设计思想和设计方案的确定;然后着重解释了使用VHDL语言设计D/A接口(函数发生器)的具体操作步骤及主要流程。为了更加详细的解释清楚主要流程在本课程设计说明书中还附加了相应的图片。最后还附加了实现设计的VHDL源程序。 关键词:VHDL D/A接口设计

绪论 EDA是电子设计自动化(Electronic Design Automation)的缩写。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言 HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使设计者的工作仅局限于利用软件的方式来完成对系统硬件功能的实现,可以说EDA技术的产生与发展是电子设计技术的一个巨大进步。EDA技术融合了众多电子设计技术和计算机辅助技术,使得它在现代电子学方面的应用越来越广泛,也成为电子、电气类大学生必须熟练掌握的一种设计工具。 硬件描述性语言HDL是EDA技术的重要组成部分,常见HDL的有VHDL、HDL、ABEL、Verilog、AHDL、SystemC等。其中VHDL、Verilog在现在的EDA 设计中使用的最多,也拥有了几乎所有主流EDA工具的支持,而相对于其他语言VHDL更加完善。VHDL是英文全名是VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,是硬件描述语言的业界标准之一。它作为一个规范语言和建模语言,具有与具体硬件电路无关及设计平台无关的特性,而且还有很强的电路行为描述和建模能力,能从多个层次的数字系统进行建模和描述,从而大大简化了硬件设计的任务,提高了设计效率和可靠性。 D/A转换器的功能是把二进制数字信号转换为与其数值成正比的模拟信号。AD558是并行8位D/A转换芯片,应用CPLD可以完成对AD558的控制。CPLD 与CPLD结合之后可以完成函数发生器的基本功能:波形输出。要实现这种结合就需要应用VHDL语言完成D/A接口的设计。通过合适的VHDL语言可以完成递增斜波、递减斜波、三角波、递增阶梯波的输出。

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 并转串输出 CLK TLV5620D/A 转换 RST

ROM的数据位选择为8位,数据数选择128个。利用megawizard plug-in manager定制正弦信号数据ROM宏功能块,并将上面的波形数据加载于此ROM中。如图3所示。 图2 ROM存储的数据 图3 调入ROM初始化数据文件并选择在系统读写功能 2.设计顶层

eda课程设计 信号发生器

目录 1. 引言 (1) 2. VHDL语言及Quartus II软件介绍 (2) 2.1 VHDL语言 (2) 2.2 Quartus II软件 (2) 3.总体设计思想及流程 (3) 4. 具体程序实现模块 (4) 4.1倍频器模块 (4) 4.2主程序模块 (4) 4.3 波形显示模块 (5) 4.4频率显示模块 (5) 5. 软件仿真 (6) 6. 硬件显示 (7) 7. 总结与体会 (8) 参考文献 (9) 附录 (10) 附录1. 整体系统原理图 (10) 附录2. 主程序 (11)

1. 引言 信号发生器是一种能够产生多种波形,如三角波、方波、锯齿波、正弦波的仪器。信号发生器在电路实验和设备检测以及通信、雷达、导航、宇航等领域有广泛的应用。正因为其在生活中应用的重要性,人们它做了大量的研究,总结出了许多实现方式。可以基于FPGA 、VHDL、单片机、DOS技能、数字电路等多种方法实现。简易信号发生器是信号发生器的一种。可以实现信号发生器的一些基本功能。本次课程设计要求设计的是一种简易信号发生器。 在本设计中要求设计的简易信号发生器是采用VHDL来实现的简易多功能信号发生器。它能产生正弦波,三角波和方波。且对各种波形的要求如下:(1)设计任意信号发生器,使之能够生成正弦波、三角波和方波; (2)电路的外部频率为40MHz,要求信号发生器可产生0-1KHz、 1KHz~10KHz、10KHz~1MHz三档频率的信号; (3)要求具有波形选择和频率选择的功能; (4)在同一频率档内,可实现频率的加减; (5)要求显示波形的同时能够进行频率的调节; (6)要求能够显示波形:A——正弦波;B——三角波;C——方波; (7)要求能够显示频率值; (8)可用示波器进行波形的观测。

EDA--调频信号发生器

湖南人文科技学院 课程设计报告 课程名称:VHDL语言与EDA课程设计 设计题目:调频信号发生器 系别:信息学院 专业:电子信息工程 班级:一班 学生姓名: 姚靖瑜何渡余建佳 学号: 13409112 13409115 13409120 起止日期: 2016年6月16日 指导教师:姚毅 教研室主任:

指导教师评语: 指导教师签名:年月日 成绩评定 项目权重 成绩 1、设计过程中出勤、学习态度等方面 2、课程设计质量与答辩 3、设计报告书写及图纸规范程度 总成绩 教研室审核意见: 教研室主任签字:年月日教学系审核意见: 主任签字:年月日

摘要 本文介绍一种利用EDA技术和VHDL语言,在QuartusⅡ环境下,设计的一种调频信号发生器。EDA 技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关开发软件,自动完成用软件的方式设计的电子系统到硬件系统实现,最终形成集成电子系统或专用集成芯片的一门新技术。介绍一种基于DDS 原理,并采用FPGA 芯片和VHDL 开发语言设计的任意函数调频的任意波形信号发生器,给出了设计方案和在GW48 CK型EDA 集成电路开发系统上实现的实验结果。 关键词:调频;信号发生器;DDS;FPGA;VHDL;QuartusⅡ

目录 设计要求 (1) 1、方案论证与对比 (1) 1.1方案对比 (1) 1.2方案选择 (2) 2、工作原理及过程 (2) 2.1DDS的基本原理 (2) 2.2基本流程图 (3) 3、模块设计 (3) 3.1MATLAB设计 (3) 3.1.1 顶层原理图设计 (3) 3.1.2 Smulink模型仿真 (4) 3.1.3 Signalcompiler的使用 (4) 3.2Q UARTUS II设计 (6) 3.2.1 顶层原理图模块 (6) 3.2.2 高速A/D转换器TLC5510 (6) 3.2.3 调试与操作说明 (7) 3.2.4 顶层文件设计 (8) 4、问题分析 (9) 5、心得体会 (9) 6、元件清单 (10) 7、致谢 (10) 参考文献 .................................................................................................. 错误!未定义书签。附录一AD5510控制程序 .. (11) 附录二顶层文件程序 (12)

EDA课程设计_多功能波形信号发生器

目录 摘要 (1) 一、设计要求 (3) 三、系统设计思路 (4) 3.1 波形函数发生装置的选择 (4) 3.2 波形输入输出控制方式的选择 (5) 四、各模块设计及仿真 (6) 4.1函数发生模块 (6) 4.1.1 正弦波模块 (6) 4.1.2 方波模块 (7) 4.1.3 递增锯齿波模块 (9) 4.1.4 递减锯齿波模块 (10) 4.1.5 阶梯波模块 (12) 4.1.6 三角波模块 (13) 4.2调控模块 (15) 4.2.1波形输出控制单元 (15) 4.2.2波形输入控制单元 (16) 4.2.3频率控制单元 (18) 4.2.4幅度控制单元 (20) 4.3 D/A转换器 (21) 4.4 总电路 (24) 五、硬件测试 (25)

5.1编译 (25) 5.2 引脚的锁定 (26) 5.3编程下载 (27) 5.4 硬件验证 (28) 六、课程设计心得体会 (31) 参考文献 (32) 附录 (33) 摘要 本次设计课题为应用VHDL语言及MAX+PLUSII软件提供的原理图输入设计功能,组合电子线路的设计加以完成一个任意波形信号发生器。它具有结构紧凑,性能稳定,设计结构灵活,方便进行多功能组成的特点,经济实用,成本低廉的特点。可产生正弦波、方波、三角波、递增锯齿波、递减锯齿波以及阶梯波,并可使用示波器观察波形。实现了系统信号实时快速测量,也为其广泛应用于实际领域创造了条件。 在实现过程中,将整体功能模块化,分为函数发生模块和调控模块。在调控模块中实现了调频调幅以及对于波形的输入输出控制。对于D/A转化器,本实验选择的是TLC7528,利用简单的8进制计数控制CS和WR端口的同步输出, 实现数模转换的同时,保持相应位的同步实现。 在课程设计中遇到了诸多困难,在用示波器显示波形时,却总是得不到稳定的波形,后来发现在输入控制中,仅需要3位二进制数即能完成简单的8进制计数,自己却习惯性的用了8位,这使得分频现象严重,更改后即得到了了稳定的

EDA实验 函数信号发生器

EDA设计实验 题目:函数信号发生器 作者: 所在学院:信息科学与工程学院 专业年级: 指导教师: 职称: 2011 年 12 月 11 日

函数信号发生器 摘要:函数信号发生器在生产实践和科技领域有着广泛的应用。本设计是采用了EDA技术设计的函数信号发生器。此函数信号发生器的实现是基于VHDL语言描述各个波形产生模块,然后在QuartusⅡ软件上实现波形的编译,仿真和下载到Cyclone芯片上。整个系统由波形产生模块和波形选择模块两个部分组成。最后经过QuartusⅡ软件仿真,证明此次设计可以输出正弦波、方波、三角波,锯齿波,阶梯波等规定波形,并能根据波形选择模块的设定来选择波形输出。 关键字:函数信号发生器;Cyclone;VHDL;QuartusⅡ 引言: 函数信号发生器即通常所说的信号发生器是一种常用的信号源,广泛应用于通信,雷达,测控,电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格要求的电信号设备是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对函数信号信号发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波性,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度、及分辨率高等。本文基于

EDA设计函数信号发生器,并产生稳定的正弦波、方波、锯齿波、三角波、阶梯波。 正文: 1、Quartus II软件简介 1)Quartus II软件介绍 Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。 Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第

简易信号发生器的设计实现

EDA课程设计简易信号发生器的设计实现 小组成员:XXXXXX XXXXX 专业:XXXXX 学院:机电与信息工程学院指导老师:XXXXXX 完成日期:XX年XX月XX日

目录 引言 (3) 一、课程设计内容及要求 (3) 1、设计内容 (3) 2、设计要求 (3) 二、设计方案及原理 (3) 1、设计原理 (3) 2、设计方案 (4) (1)设计思想 (4) (2)设计方案 (4) 3、系统设计 (5) (1)正弦波产生模块 (5) (2)三角波产生模块 (6) (3)锯齿波产生模块 (6) (4)方波产生模块 (6) (5)波形选择模块 (6) (6)频率控制模块 (6) (7)幅度控制模块 (6) (8)顶层设计模块 (7) 三、仿真结果分析 (7) 波形仿真结果 (7) 1、正弦波仿真结果 (7) 2、三角波仿真结果 (8) 3、锯齿波仿真结果 (8) 4、方波仿真结果 (8) 5、波形选择仿真结果 (9) 6、频率控制仿真结果 (9) 四、总结与体会 (10) 五、参考文献 (10) 六、附录 (11)

简易信号发生器 引言 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广范的应用。它能够产生多种波形,如正弦波、三角波、方波、锯齿波等,在电路实验和设备检验中有着十分广范的应用。 本次课程设计采用FPGA来设计多功能信号发生器。 一、课程设计内容及要求 1、设计内容 设计一个多功能简易信号发生器 2、设计要求 (1)完成电路板上DAC的匹配电阻选择、焊接与调试,确保其能够正常工作。 (2)根据直接数字频率合成(DDFS)原理设计正弦信号发生器,频率步进1Hz,最高输出频率不限,在波形不产生失真(从输出1KHz正弦转换为输出最高频率正弦时,幅度衰减不得大于10%)的情况下越高越好。频率字可以由串口设定,也可以由按键控制,数码管上显示频率傎。 (3)可以控制改变输出波形类型,在正弦波、三角波、锯齿波、方波之间切换。 (4)输出波形幅度可调,最小幅度步进为100mV。 二、设计方案及原理 1、设计原理 (1)简易信号发生器原理图如下

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

学生实验报告 系别电子信息学院课程名称《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后,弹出如图所示的图片,按照图的数据讲空白的表格填上

EDA交通灯控制器+函数信号发生器+乐曲演奏电路

EDA课程设计 题目一:交通灯控制器VHDL的设计 题目二:智能函数发生器 题目三:乐曲硬件演奏电路的VHDL设计 专业:通信工程 班级:通信084班

一、设计题目:交通灯控制器VHDL的设计 二、设计目标 1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 2、红、绿、黄发光二极管作信号灯,。 3、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 三、设计原理 主系统由三个模块组成,jtd.vhd为顶层文件,其内部包含三个功能模块模块:信号灯主控模块(moore.vhd)、减法计数器模块(jishu.vhd)、译码器模块(led7s.vhd)。 1、选择1HZ时钟脉冲作为系统时钟。 2、45秒、25秒、5秒定时信号用倒计时,计时起始信号由主控电路给出,每当计满所需时间,即向主控电路输出“时间到”信号,转换信号灯状态,由主控电路启、闭三色信号灯 显示结果:十字路口的交通灯控制信号由主控电路给出,能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用两组红、黄、绿三种颜色的灯分别作为东西、南北两个方向的红、黄、绿灯,变化规律为:东西绿灯亮,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮、南北绿灯亮→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮….,这样依次循环。 东西方向是主干道车道,南北方向是支干道车道,要求两条交叉道路上的车辆交替运行,主干道每次通行时间都设为45秒,支干道每次通行时间都设为25秒。 在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。要求交通灯控制器有复位功能,在复位信号使能的情况下能够实现交通灯的自动复位,并且要求所有交通灯的状态变化,包括复位信号引起的均发生时钟脉冲的上升沿处。

湖南工业大学EDA实验报告之PWM信号发生器的设计

实验三:PWM信号发生器的设计 1.实验目的 (1)熟悉Quartus Ⅱ/ISE Suite/ispLEVER软件的基本使用方法。 (2)熟悉GW48-CK或其他EDA实验开发系统的基本使用方法。 (3)学习VHDL程序中数据对象、数据类型、顺序语句和并行语句的综合使用。 2.实验内容 设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高/低电平脉宽可分别由两组8位预置数进行控制。 用GW48-CK或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。 3.实验要求 (1)画出系统的原理图,说明系统中各主要组成部分的功能。 (2)编写各个VHDL源程序。 (3)根据系统的功能,选好测试用例,画出测试输入信号波形或编号测试程序。 (4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。 (5)记录系统仿真、逻辑综合及硬件验证结果。 (6)记录实验过程中出现的问题及解决办法。 4.实验条件 (1)开发条件:Quartus Ⅱ 8.0。 (2)实验设备:GW48-CK实验开发系统。 (3)拟用芯片:EP3C55F484C8N。 5.实验设计 1)系统原理图 本信号发生器电路PWM的设计分为两个层次,其中底层电路包括两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高/低电平脉宽可分别由两组8位预置数进行控制。 加法计数器LCNT8,再由这两个模块按照图3.1所示的原理图构成顶层电路PWM。 LCNT8 图3.1 LCNT8电路原理图

图 3.1 PWM电路原理图 2)VHDL程序 信号发生器PWM的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。LCNT8的VHDL源程序: --LCNT8.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ---USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY LCNT8 IS PORT(CLK,LD:IN STD_LOGIC; D:IN INTEGER RANGE 0 TO 255; CAO:OUT STD_LOGIC); END ENTITY LCNT8; ARCHITECTURE ART OF LCNT8 IS SIGNAL COUNT:INTEGER RANGE 0 TO 255; BEGIN PROCESS(CLK) IS BEGIN IF CLK'EVENT AND CLK='1'THEN IF LD='1' THEN COUNT<=D; ELSE COUNT<=COUNT +1; END IF; END IF; END PROCESS; PROCESS(COUNT) IS BEGIN IF COUNT=255 THEN CAO<='1'; ELSE CAO<='0'; END IF; END PROCESS;

eda 信号发生器三角波正弦波方波

1 引言 简易多功能信号发生器是信号发生器的一种,在生产实践和科研领域中有着广泛的应用。信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在电子实验和测试处理中,并不测量任何参数,而是根据使用者的要求,仿真各种测试信号,提供给被测电路,以达到测试的需要。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波和方波等,因而广泛用于通信、雷达、导航、宇航等领域。 在本设计中它能够产生多种波形,如正弦波,三角波和方波等,并能实现对各种波频率和幅度的改变。正因为其在生活中应用的重要性,人们它做了大量的研究,总结出了许多实现方式。可以基于FPGA 、VHDL、单片机、DOS技能、数字电路等多种方法实现。 本设计是采用VHDL来实现的简易多功能信号发生器。它能产生正弦波,三角波和方波。且对各种波形的要求如下: (1)设计任意信号发生器,使之能够生成正弦波、三角波和方波; (2)电路的外部频率为40MHz,要求信号发生器可产生0-1KHz、1KHz~10KHz、10KHz~1MHz三档频率的信号; (3)要求具有波形选择和频率选择的功能; (4)在同一频率档内,可实现频率的加减; (5)要求显示波形的同时能够进行频率的调节; (6)要求能够显示波形:A——正弦波;B——三角波;C——方波; (7)要求能够显示频率值; (8)可用示波器进行波形的观测。

2 设计流程 2.1设计思想及流程图 本次课程设计按模块式实现,据任务书要求,设计总共分三大步骤完成: (1)产生波形(三种波形:方波、三角波、正弦波)信号; (2)频率控制; (3)显示频率值。 利用VHDL编程,依据基本数字电路模块原理进行整合。系统各部分所需工作时钟信号由输入系统时钟信号经分频得到,系统时钟输入端应满足输入脉冲信号的要求。频率控制模块有多个可选频率,最终送至脉冲发生模块输出脉冲信号,同时将信号的频率输出至数码管显示当前信号的频率值,达到设计课题所要求的输出波形频率可调功能。如图2-1所示:

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):数据传送控制信号,低电平有效。

eda设计的信号发生器

EDA 设计报告 设计题目函数信号发生器 姓名叶建军 班级06电子科学与技术1班学号20065713 任课教师吴小所 日期2009年6月2 3日

一、引言 随着基于CPLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机等领域的重要性日益突出。作为一个学电子信息专业的学生,我们必须不断地去了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。信号发生器在我们的日常中有很重要的应用,用VHDL语言去实现设计将会使我们对本学科知识可以更好地掌握。 本设计是一个基于VHDL的采用自顶向下设计方法实现的信号发生器,该设计方法具有外围电路简单,程序修改灵活和调试容易等特点,并通过计算机仿真和实验证明了设计的正确性。 二、题目分析 要求设计一个函数发生器,该函数发生器能够产生递增斜波、递减斜波、方波、三角波、正弦波、及阶梯波,并且可以通过选择开关选择相应的波形输出;系统具有复位的功能;通过按键确定输出的波形及确定是否输出波形。FPGA是整个系统的核心,构成系统控制器,波形数据生成器,加法器,运算/译码等功能。 通过以上分析设计要求完成的功能,确定函数发生器可由递增斜波产生模块、递减斜波产生模块、三角波产生模块、阶梯波产生模块、正弦波产生模块、方波产生模块和输出波形选择模块组成,以及按键复位控制和时钟输入。由此可确定系统的总体原理框图为: 三、方案选择 1、波形函数发生方案对比选择 波形函数发生是本设计的最重要的部分,实现函数发生的途径也有很多,因此必须选择一种易于实现且精度高的方案,以此来提高本设计的实用性。 方案一:通过单片机控制D/A,输出三种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节,而且达不到题目要求的六种波形。 方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积

eda信号发生器设计

目录 摘要 (2) 一、实验目的 (2) 二、主要功能 (2) 三、实验原理 (3) 四、软件设计 (3) 4.1、程序 (3) 4.2、波形图 (4) 五、引脚锁定后下载程序 (5) 六、实验结果 (5) 七、实训心得 (5) 八、参考文献 (9) 九、附录 (9)

摘要 信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时,以及测量元器件的特性与参数时,用作测试的信号源或激励源。 信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器 关键词:信号发生器;FPGA;Verilog HDL语言 一、实验目的 进一步巩固理论知识培养所学理论知识在实际中的应用能力:掌握EDA设计的一般方法;熟悉一种EDA软件,掌握一般EDA系统的调试方法:利用EDA软件设计一个电子技术综合问题,培养Verilog HDL编程;书写技术报告的能力,为以后进行工程实际问题的研究打下设计基础。 二、主要功能 信号发生器,它用于产生被测电路所需特定参数的电测试信号。在测试、研究或调整电子电路及设备时,为测定电路的一些电参量,如测量频率响应、噪声系数,为电压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的激励信号。当要求进行系统的稳态特性测量时,需使用振幅、频率已知的正弦信号源。当测试系统的瞬态特性时,又需使用前沿时间、脉冲宽度和重复周期已知的矩形脉冲源。并且要求信号源输出信号的参数,如频率、波形、输出电压或功率等,能在一定范围内进行精确调整,有很好的稳定性,有输出指示。信号源可以根据输出波形的不同,划分为正弦波信号发生器、矩形脉冲信号发生器、函数信号发生器和随机信号发生器等四大类。正弦信号是使用最广泛的测试信号。这是因为产生正弦信号的方法比较简单,而且用正弦信号测量比较方便。正弦信号源又可以根据工作频率范围的不同划分为若干种。

EDA基于DDS信号发生器

信息工程学院 题目:基于FPGA的DDS基本信号发生器的设计姓名:杨天绘 学号:201000800442 班级:10级通信1班 小组成员:杨天绘吴中一 指导老师:郑亚民、董晓舟

目录 1设计要求 (3) 2DDS的基本原理 (3) 3基于FPGA的DDS设计 (3) 4各模块的设计 (4) 4.1累加器控制模块 (4) 4.2波形选择及存储 (4) 4.3幅度控制模块 (5) 4.4DAC及LPF (5) 4.5整个设计的顶层结构 (6) 5结果及仿真 (6) 6结语 (8)

摘要:本设计基于DDS原理和FPGA技术按照顺序存储方式,将对正弦波、方波、三角波、三种波形的取样数据存储在三片ROM波形表里,通过键盘控制所需波形信号的频率,幅值,最终将波形频率通过数码管显示。 1设计要求 设计一个信号发生器,实现: 1)幅度可调; 2)频率可调; 3)输出波形(正弦波、方波、三角波等)可变。 利用Quartus II完成方案软件设计工作,并在EDA实验板上进行硬件测试。 2DDS的基本原理 DDS信号发生器是由:频率控制字、相位累加器、ROM表、D/A转换器以及模拟低通滤波器LPF组成.原理框图如图1所示。首先对波形的一个周期进行连续采样,通过计算得到每一点对应的幅度值,然后以二进制格式存放在数据文件中。在时钟脉冲fclk驱动下,每个时钟周期内频率控制字与相位累加器累加一次,产生ROM查找表的地址值,随后通过查表变换,地址值被转化为信号波形的数字幅度序列,即可得到幅度上离散的波形,再由数模变换器(D/A)将表示波形幅度的数字序列转化为模拟量。最后经由LPF将D/A输出的阶梯 状波形平滑为所需的连续波形。理论上,采样点数越多,生成波形精确度越高。 3基于FPGA的DDS设计 本设计在Altera的EP1C3T100C8芯片的基础上,在QuartusⅡ开发环境下,。开发语言用VHDL。设计框图(RTL仿真图)如图3所示 本设计中: 1)输出频率fout=(2^N/2^M)*fclk,(M为相位累加器的位数,N为频率控制字的位数)本设计中,fclk是对clk12分频后的的信号。 2)频率的分辨率△f=fclk/2^M

基于FPGA方波信号发生器的设计

基于FPGA方波信号发生器设计 一.实验目的: 1.进一步熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。 2.加深对电路理论概念的理解 3.进一步熟悉常用仪器的使用及调试 4.加深计算机辅助分析及设计的概念 5.了解及初步掌握对电路进行计算机辅助分析的过程 6.培养学生发现问题、分析问题的创新能力 7.锻炼学生搜集资料、分析综合资料的能力 二.实验原理: 方波波信号发生器由四部分组成: 计数器或地址发生器(这里选择6位)。 方波信号数据ROM(6位地址线、8位数据线),含有64个8位数据(一个周期)。VHDL顶层设计。 8位D/A(实验中用DAC0832代替)。 图1所示的信号发生器结构框图中,顶层文件singt.vhd在FPGA中实现,包含两个部分:ROM的地址信号发生器,由6位计数器担任;一个方波数据ROM,由LPM_ROM模块构成。LPM_ROM底层是FPGA中的EAB、ESB或M4K等模块。地址发生器的时钟CLK的输入频率f0与每周期的波形数据点数(在此选择64点),以及D/A输出的频率f的关系是:f = f0/64。 图1 方波信号发生器结构框图 三.实验内容: 1.新建一个文件夹。利用资源管理器,新建一个文件夹,如:e : \SIN_GNT 。注意,文件夹 名不能用中文。 2.输入源程序。打开QuartusII,选择菜单“File” “New”,在New 窗中的“Device Design Files” 中选择编译文件的语言类型,这里选“VHDL Files”。然后在VHDL 文本编译窗中键入VHDL 程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity square is

vhdl eda 序列信号发生器与检测器设计

实验三序列信号发生器与检测器设计 一、实验目的 1.学习一般有限状态机的设计; 2.利用状态机实现串行序列的输出与序列的检测。 3.继续学习优化设计。 二、内容与要求 利用状态机设计实现实现串行序列的输出与序列的检测,具体要求: 1.先设计序列发生器产生序列0111010011011010; 2.再设计一个序列信号检测器,若系统检测到串行序列11010则输出为“1”,否则输出为“0”,并将检测到的11010数目显示出来; 3.对所设计的电路进行波形仿真和硬件测试; 4.整个工程采用顶层文件+底层模块的原理图或文本的设计思路。 三、设计思路/原理图 根据实验要求,先设计序列发生器产生序列:0111010011011010;再设计检测器,检测串行信号:11010,若检测到11010信号,则输出“1”,没有检测到则输出“0”,并且将检测到的信号的显示出来。为简化设计,整个工程采用顶层文件+底层模块的设计方法。 1.序列信号发生器 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号。利用状态机设计,首先定义一个数据类型FSM_ST它的取值为st0到st15的16个状态。 REG s0 s1 s2 s3 s4 s5 s6 s7 Q 0 1 1 1 0 1 0 0 REG s8 s9 s10 s11 s12 s13 s14 s15 Q 1 1 0 1 1 0 1 0 2、序列检测器 序列检测器设计的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及序列,直到在连续的检测中收到的每一位码都与预置码相同。在此,必须利用状态转移图。 定义预置信号D=“11010”,电路需要分别不间断记忆:初始状态、1、11、110、1101、11010共六种状态,状态转移图: 3、计数模块 利用序列检测器产生的信号(1和0)作为计数器模块的时钟信号,产生的信号0、

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

顶层文件 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DDS IS PORT(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 BEHA VE OF DDS IS COMPONENT SUM99 IS PORT(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 IS PORT(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 IS PORT(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 IS PORT(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); BEGIN U0:SUM99 PORT MAP(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 BEHA VE;

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 #include #include using namespace std; int main() { int i; float s; VHDL 顶层设计sin.vhd 8位计数器 (地址发生器) 正弦波数据 存储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<<" "< sin.mif; 将生成的sin.mif 文件。 sin.mif文件: WIDTH=8; DEPTH=256; ADDRESS_RADIX=HEX; DA TA_RADIX=HEX; CONTENT BEGIN 0 : 7f; 1 : 82; 2 : 85; 3 : 88; 4 : 8b; 5 : 8f; 6 : 92; 7 : 95; 8 : 98; 9 : 9b; a : 9e; b : a1; c : a4;

相关文档
最新文档