1、重庆三峡学院 毕业设计(论文) 题目 基于 FPGA的智能函数发生器 院 系 应用技术学院 专 业 电子信息工程( 应用技术方向 ) 年 级 2009级 学生姓名 杨水森 学生学号 200915254141 指导教师 赵威威 职称 副教授 完成毕业设计(论文)时间 2013 年 1 月 目 录 第一章 绪论 1 (一) 引言 1 (二)选题背景及目的 1 第二章 软件平台的应用 2 (一) FPGA 简介 2 (二) VHDL-复位信号清零 ELSIF clkEVENT AND clk=1 THEN IF tmp=“11111111“ THEN tmp:=“00000000“;-递增到最大值清
2、零 ELSE tmp:=tmp+1;-递增运算 4.2 递减斜波模块 递减斜波 dcrs 的 VHDL 程序如附录所示,其中 clk 是输入时钟端口, sel0、 sel1、 sel2 为选择波形按键值, reset 为输入复位端口, q 为八位二进制输出端口。 图 4 递减斜波模块仿真图 程序设计的是复位信号为 0 时输出为 0,无对应的波形产生。当复位信号为 1 时,当每当检测到时钟上升沿时,计数值减 1,当减到 0 后赋值到最大。计数值减少呈现线性关系,因此输出的波形是递减的斜波。从仿真波形图 图 4 也能看出这种变化规律。 VHDL 描述为: IF reset=0 THEN tmp:=
3、“11111111“;-复位信号置最大值 ELSIF clkEVENT AND clk=1 THEN-检测时钟上升沿 IF tmp=“00000000“ THEN tmp:=“11111111“;-递减到 0 置最大值 ELSE 6 tmp:=tmp-1;-递减运算 4.3 三角波模块 三角波 delat 的 VHDL 程序如附录所示,其中 clk 是输入时钟端口, sel0、 sel1、 sel2 为选择波形按键值, reset 为输入复位端口, q 为八位二进制输出端口。三角波波形是对称的,每边呈线形变化,所以可以根据数据做简单运算,就可以得到三角波。 图 5 三角波模块仿真图 程序设计的
4、是 reset 复位信号为 0 时输出为 0,无对应的波形产生。当复位信号为 1 时,当每当检测到时钟上升沿时,当计数的数据不是最大值时,数值做递增运算,当增大到最大时,然后再做递减运算,因此输出的波形便呈现出三角波的形状。从仿真波形图 图 5 也能看出这种变化规律。VHDL 描述如下: IF reset=0 THEN tmp:=“00000000“;-复位信号为 0,置最小值 ELSIF clkEVENT AND clk=1 THEN-检测时钟上升沿 IF a=0 THEN IF tmp=“11111110“ THEN tmp:=“11111111“; -置最大值 a:=1; ELSE -不是最大值时递增 tmp:=tmp+1;-递增运算 END IF; ELSE IF tmp =“00000001“ THEN tmp:=“00000000“; -置最小值 a:=0; ELSE -a 为 1 时,执行递减运算 tmp:=tmp-1;-递减运算 4.4 阶梯波模块 阶梯波 ladder 的 VHDL 程序如附录所示,其中 clk 是输入时钟端口, sel0、 sel1、 sel2 为选择波形按键值, reset 为输入复位端口, q 为八位二进制输出端口。