资源描述
方波发生器设计
摘要:随着EDA技术以及大规模集成电路技术的迅猛发展,波形发生器的各方面性能指标都达到了一个新的水平。采用CPLD/FPGA器件在QuartuesII设计环境中用VHDL语言完成的波形发生器具有频率稳定性高,可靠性高,输出波形稳定等特点。本文介绍了基于EDA技术的波形发生器的研究与设计。
一、设计任务与要求
设计一方波发生器并且输出信号的频率范围为100Hz~200KHz,输出频率可以调节;可以存储任意波形特征数据并能重现该波形,还可完成各种波形的线形叠加输出,具有显示输出波形、频率的功能。
通过运用VHDL语言编程,通过运用软件Quartus II 6.0,逐渐掌握EDA的用法,熟练步骤,为以后的学习与工作做很好的铺垫。
二、总体框图
(1)方案论证
方案一:
本系统由FPGA(可编程门阵列),数模转换,时钟(提供clk信号)等组成。全部为FPGA试验箱所有,不需要增加任何器件。用FPGA产生的255—0的计数值输入到DAC0832中,将产生对应的模拟信号。本系统采用的是软硬件结合的方法。由于一个周期内的任意波形的离散样点数对硬件实现的复杂性直接产生影响,因此,为了简化硬件存储器件的规模,取64个样点进行讨论。
具体做法是先对一个周期进行64点采样,然后依次存于ROM中,再以fs频率给出地址码,控制存储器周期的读出数据,并经D、A转换和模拟放大,便能得到一定的频率的周期信号。因此周期信号的频率为fo=fs/M.其中M为采样点个数,本设计中取为64;fs为存储器读出频率。显然,通过改变读出频率fs,便可获得不同频率的周期信号fo.。
原理说明:
完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据ROM和D/A。在FPGA的顶层文件中,计数器通过外来控制信号和高速时钟信号向波形数据ROM发出地址信号,输出波形的批评你率由发出的地址信号的速度决定;当以固定的频率扫描输出地址时,输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则输出波形为扫频信号。波形数据ROM中存有发生器的波形数据,如正弦波或者三角波数据等。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM或者由FPGA中的EAB模块相当,即利用LPM-ROM来实现。
D/A转换器负责将ROM输出的数据转换成模拟信号,经过滤波电路后输出。输出波形的频率上限与D/A转换器件的转换速度有重要关系,我们的试验箱上用的是DAC0832。
DAC0832是8位并行、中速(其转换时间1us)、电流型D/A转换芯片。DAC0832内部由三部分组成,“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由加以控制。“8位DAC寄存器”用于存放待转换的数字量,由控制。“8位D/A转换电路”由8位T型网路和电子开关组成,电子开关受“8位DAC寄存器”输出控制,T型电阻网路能输出与数字量成正比的模拟电流。因此,DAC0832通常需要外接运放才能得到模拟输出电压。
DAC0832共有20条引脚,双列直插式封装。
⑴ 数字输入线DI7~DI0(8条) DI7~DI0常和CPU数据总线相连,用于输入CPU送来的待转换数字里,DI7为最高位。
⑵ 控制线(5条) 为片选线。当为低电平时,本片被选中工作;当为高电平时,本片不被选中工作。
⑶ 输出线3条 为运算放大器的反馈线,常接到运放的输出端。和为两条模拟电流输出线。+为一常数。
⑷ 电源线(4条) VCC为电源输入线,可在+5~+15V范围捏;为参考电压,一般在-10~+10V范围内,由稳压电源提供;DGND为数字地线;AGND为模拟量地线。通常接在一起。
波形发生器电路系统结构图:
图一
缺点:此方案虽思路简洁 、明朗。但设计繁琐,程序复杂。
方案二:
VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
方波发生器是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。将使整个系统大大简化。提高整体的性能和可靠性。
优点:采用VHDL可以使整个系统大大简化,不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。
综上所述:优先选择方案二。
(2)原理框图:
时钟信号
方波发生器
示波器
图二
三、选择器件
1.主芯片: EPF10K10LC84-4
2.EDA实验箱一台
3.含有QuartusⅡ软件的计算机一台
4.示波器一台
5.导线若干
四、功能模块
1.方波发生器模块
图三
2.仿真波形如下:
图四
3.程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY xwhappy IS
PORT( CLK ,RESET :IN STD_LOGIC;
Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END xwhappy;
ARCHITECTURE RTL OF xwhappy IS
SIGNAL A : STD_LOGIC;
BEGIN
PROCESS(CLK,RESET)
VARIABLE TMP : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF RESET ='0' THEN
A <='0';
ELSIF RISING_EDGE(CLK) THEN
IF TMP ="11111111" THEN
TMP := "00000000";
ELSE
TMP :=TMP +1;
END IF;
IF TMP < "10000000" THEN
A <= '1';
ELSE
A <= '0';
END IF;
END IF;
END PROCESS;
PROCESS(CLK ,A)
BEGIN
IF RISING_EDGE(CLK) THEN
IF A = '1' THEN
Q <="11111111";
ELSE
Q <="00000000";
END IF;
END IF;
END PROCESS;
END RTL;
五、总体设计电路图
1.总体电路原理图
总体电路图(图五)
2.管脚分配图
总体管脚分配图(图六)
3.总体仿真波形如下:
图七
4.示波器显示波形
图八
图九
六、心得体会
通过运用VHDL语言编程,通过运用软件Quartus II 6.0,逐渐掌握EDA的用法,熟练步骤,对以后的学习与工作做了很好的铺垫;剖析整个系统运行的步骤与工作原理,从而完成对整个设计的理论分析任务,以次来指导其它设计过程;硬件电路设计主要是设计相关模块的设计思想的可视化,是相关模块的电路图的汇总和其相关仿真波形的集锦,该部分条理清晰,思路明确,从中我们可以清晰地看到该设计方案的具体模块和整个设计的原理结构实图;程序设计这一部分主要阐述该设计的设计方法与设计思想,进一步从软件设计上揭示设计构思,主要包含了整个设计所用到的模块的硬件描述语言的设计,通过这一部分的学习,对《VHDL语言》的设计方法有了进一步的学习,对其相关语言设计规范有了更深层次的掌握,能够更加熟练的做一些编程设计。
最后通过设计了解到基于PLD的EDA技术的发展和应用领域不断的扩大与深入EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。随着技术市场与人才市场对EDA技术的需求不断提高,产品的市场效率和技术要求也将会影响到教学与科研领域,因此这一次课程设计的开展很好的把握住了教学的改革方向,更好的锻炼了学生理论联系实践的能力。
经过这次EDA课程设计,我从中学到了很多很多东西,同时不仅可以巩固以
前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,
EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在李斌老师指导与细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
展开阅读全文