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