文档介绍:装
订
线
EDA课程设计实验报告
学 院 信息工程学院
专 业 通信工程
学 号
姓 名
任课教师
2013年 10 月30 日
一、FPGA简介
随着基于FPGA通信工程专业的学生,我们必须不断地去了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。信号发生器在我们的日常中有很重要的应用,用VHDL语言去实现设计将会使我们对本学科知识可以更好地掌握。
本设计是一个基于VHDL的采用自顶向下设计方法实现的信号发生器,该设计方法具有外围电路简单,程序修改灵活和调试容易等特点,并通过计算机仿真证明了设计的正确性.
二、题目分析
要求设计一个函数发生器,该函数发生器能够产生递增斜波、递减斜波、方波、三角波、正弦波、及阶梯波,并且可以通过选择开关选择相应的波形输出;系统具有复位的功能;通过按键确定输出的波形及确定是否输出波形。FPGA是整个系统的核心,构成系统控制器,波形数据生成器,加法器,运算/译码等功能.
通过以上分析设计要求完成的功能,确定函数发生器可由递增斜波产生模块、递减斜波产生模块、三角波产生模块、阶梯波产生模块、正弦波产生模块、方波产生模块和输出波形选择模块组成,:
波形发生模块
时钟
clk
复位
reset
波形输出选择模块
三、方案选择
1、波形函数发生方案对比选择
波形函数发生是本设计的最重要的部分,实现函数发生的途径也有很多,因此必须选择一种易于实现且精度高的方案,以此来提高本设计的实用性。
本信号发生器利用在系统编程技术和FPGA芯片产生。用VHDL语言编写程序,调试成功后下载至实验装置的芯片上,再利用外接D/A转换电路实现以上设计功能。此种方案完全可以生成设计要求的6种波形,而且通过软件仿真可以直观的观测的输出的波形参数,方便调试和更改波形参数,外围电路简单,减少器件损耗,精度高。
2、波形函数输出控制方式选择
利用VHDL语言写出数据选择器,然后每种函数发生器的输出和数据选择器输入相连接,通过控制开关选择对应的波形输出。方案二完全可以得到方案一的设计要求,而且只需一个D/,,、节约制作元件和成本、控制简便等优点,因此作为波形函数输出控制方式。
四、系统细化框图
通过以上各个模块的分析最终确定函数信号发生器系统的最终整体的原理框图为:
波形选择模块
递增斜波模块
递减斜波模块
三角波模块
阶梯波模块
正弦波模块
方波模块
时钟
clk
复位
reset
波形选择开关
D/A转换器
系统时钟输入后,通过复位开关选择是否产生波形,当各个模块产生相应的信号波形后,通过波形选择模块波形选择开关选泽输出不同的波形,再通过D/A转换器转换,就可以把数字信号(由FPGA输出)。
五、各模块程序设计及仿真
根据自上而下的思路进行项目设计。明确每个模块的功能以后,开始编写各个模块的程序。
1、递增斜波模块
递增斜波icrs的VHDL程序如附录所示,其中clk是输入时钟端口,reset为输入复位端口,q为八位二进制输出端口.
图1 递增斜波模块仿真图
程序设计的当复位信号为0时,输出为0,无对应的波形产生.当复位信号为1时,每当检测到时钟上升沿时,计数器值加1,当增加到最大后清零。计数值增加呈现线性关系,因此输出的波形是递增的斜波。从仿真波形图也能看出这种变化规律。模块程序如下:
LIBRARY IEEE;
USE ;
USE IEEE。STD_LOGIC_UNSIGNED.ALL;
ENTITY icrs IS
PORT(clk,reset: IN STD_LOGIC;
q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END icrs;
ARCHITECTURE behave OF icrs IS
BEGIN
PROCESS(clk,reset)
VARIABLE tmp : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF reset=’0' THEN
tmp:= "00000000”;ﻩﻩ——复位信号清零
ELSIF clk'EVENT AND clk=’1’ THEN