数字电路课程设计实验报告1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序言
在测试、研究或调整电子电路及设备时,为测定电路的一些点参量,如测量频率响应、噪声系数,为电压表定度等,都要求提供符合所需技术要求的电信号,以模拟在实际工作中使用的待测设备的激励信号。信号发生器即由此而来,作为电子设计中常用仪器仪表,信号发生器又称信号源,可以用来产生被测电路所需特定参数的电测试信号。根据输出波形的不同,信号源可以分为正弦波信号发生器、矩形脉冲信号发生器、函数信号发生器和随机信号发生器等四大类。例如当要求进行系统的稳定性测量时,需使用振幅、波形、幅值等能在一定范围内进行精确调整,有很好的稳定性,有输出指示。基于信号发生器的广泛使用,对信号发生器设计的研究就显得非常有意义。
本课题是利用VHDL语言来实现计费功能的,VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力,因此选用VHDL语言进行编程。
本次课程设计巩固和运用了所学课程,通过理论联系实际,提高了分析、解决计算机技术实际问题的独立工作能力,通过对一个函数信号发生器的设计,进一步加深了对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉了数字电路系统设计、制作与调试的方法和步骤。进一步了解了计算机组成原理与系统结构,使自己对EDA技术的学习更深入,学会用VHDL语言去控制将会使我们对本专业知识可以更好地掌握。
现在的信号发生器设计有以下几种方法:
(1) 模拟直接合成法。这种方法充分利用了乘法器、除法器、混频器、滤波器和快速开关构成合成信号发生器,但是它的缺点是带宽不够高,性能差,构成信号发生器的电路体积比较庞大,而且功耗较高。
(2) 间接数字合成法。它采用数字电路代替模拟合成法的锁相环,减小了多次倍乘和滤波所需的设置时间,使频率设置时间降低到几。间接数字合成法还可获得非整数N的分频,即分数N的频率合成(N<1)。
(3) 更先进的数字合成法是直接数字合成(DDS)。它完全摆脱间接数字合成的乘法/除法电路,直接在基准时钟的准确相位控制下获得合成频率输出,频率控制的相位累加器由寄存器和加法器组成,如果相位累加器的宽度是30位,则相当于数字230或109,频率控制输入等于1时,将获得360 /109的相位信息,存储在波形存储器内,再经数模转换后输出最低合成频率,随着频率控制输入的增长,输出合成频率亦增加。相位累加器的宽度增加时,输出合成频率的准确度相应增加。由它构成的低频信号发生器虽然低频信号较好,但体积较大,价格较贵。
(4) 用FPGA或CPLD来实现。它的优点是可以进行功能仿真,而且FPGA和CPLD的片内资源丰富,设计的流程简单,缺点是开发成本高。
(5) 用DSP来实现。这主要是采用软件和硬件结合的设计方法,相对于以上提到的几种硬件设计方法,采用DSP容易进行仿真,而且适用的范围广,同时开发的成本也比较低,而且开发的周期短。
以上几种设计方法各有自己的优缺点,可以根据对信号发生器功能不同的要求,采用不同的设计方法。本课题采用的是基于DSP的设计,这种设计主要靠编程来实现,可以产生各种复杂的波形,完全可以满足产生正弦波、方波、三角波三种基本波形的设计要求。
第一章多功能信号发生器的设计实现
1、课题要求
1. 能显示三角波、方波、正弦波三种波形。
2. 附加功能:实现锯齿波、频率调节、幅度调节。
5. 用VHDL语言设计符合上述功能要求的函数信号发生器,并用层次化设计方法设计该电路。
6.各模块状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。
2、设计要求方案
用FPGA设计一个多功能信号发生器,通过选择输入信号,可以输出锯齿波、三角波、方波和正弦波四种信号。波形的频率可以通过256进制和16选1来控制。信号发生器的控制模块可以用数据选择器实现,波形的选择可以用8选1数据选择器实现。
3、本人任务
在本次课程设计中,我主要负责软件部分。负责通过VHDL 语言设计频率调节模块、产生各波形模块、波形选择模块,以及仿真、调试、优化各模块。最后将最好的软件下载到FPGA 芯片中。
第二章 信号发生器的结构框图
1、结构框图
其中用信号产生模块将产生所需要的各种信号,信号发生器的控制模块可以用数据选择器实现,用8选1数据选择器实现对几种信号的选择。最后将波形数据送入D/A 转换器,将数字信号转换为模拟信号输出。用示波器测试D/A 转换器的输出,可以观测到几种波形的输出。 2、以下为软件结构简图:
用两个256进制计数器将50MHz 的晶振进行分频通过16选1数据选择器选择频
256进制 计数器
16选1数据选择器
三角波
方波
8选1数据 选择器
正弦波
锯齿波
时钟信号 信号控制 D/A 转换 输出信号
选择信号
率从而实现频率调节。通过波形产生模块产生各个波形,再通过8选1数据选择器选择输出的波形。
第三章软件电路设计与仿真图
1、四个波形的各个程序
(1)三角波的编译:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity sanjiao is
port(CLK:in std_logic;
reset:in std_logic;
a:out std_logic_vector(7 downto 0));
end sanjiao;
architecture one of sanjiao is
begin
process(CLK,reset)
variable Q:std_logic_vector(7 downto 0);
variable sign:std_logic;
begin
if reset='1' then
Q:="00000000";
sign:='0';
elsif CLK'event and CLK='1' then
if sign='0' then
if Q="11111110"then
Q:="11111111";
sign:='1';
else
Q:=Q+'1';
end if;
else
if Q="00000001" then
Q:="00000000";
sign:='0';
else
Q:=Q-'1';
end if;
end if;
end if;
a<=Q;
end process;