最新EDA-课程设计-智能函数发生器.docx

上传人:1595****071 文档编号:34722172 上传时间:2022-08-18 格式:DOCX 页数:37 大小:765.46KB
返回 下载 相关 举报
最新EDA-课程设计-智能函数发生器.docx_第1页
第1页 / 共37页
最新EDA-课程设计-智能函数发生器.docx_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《最新EDA-课程设计-智能函数发生器.docx》由会员分享,可在线阅读,更多相关《最新EDA-课程设计-智能函数发生器.docx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateEDA-课程设计-智能函数发生器EDA-课程设计-智能函数发生器EDA课程设计题目:智能函数发生器专业:通信工程班级:通信082姓名:谢振峰学号:0810920213一、 设计题目:智能函数发生器设计一个智能函数发生器,能够产生递增、递减、方波、三角波、正弦波及及阶梯波波形,并可通过开关选择输出的波形。二、 设计目标:1) 设计一个智能函数发生器,能够以稳定的频率发生

2、递增斜波、递减斜波、三角波、梯形波,正弦波和方波。2) 设置一个波形选择输入信号,通过此改变该信号可以选择以上各种不同种类的输出函数波形,系统具有复位功能。三、 设计原理:1. 原理图框图如下:递增模块递减模块三角波模块阶梯波模块正弦波模块方波模块选 择 模 块输出信号图1、原理图框图2. 原理图说明本设计采用VHDL语言和原理图设计结合的方法,首先用文本输入法设计了六个波形模块,分别为递增、递减、三角波、梯形、正弦波、方波模块,和一个选择模块。然后进行原理图设计,将各波形模块与选择模块相应的引脚连接,从而完成智能函数发生器的设计。四、 设计内容: 1) 递增模块递增模块是用VHDL语言描述的

3、递增函数,实体部分部分说明三个端口,两个输入端口时钟信号clk、复位信号rst和一个输出端口q。设计思路为:通过设计一个中间变量从0x00到0xFF的递增赋值给输出信号q,从而实现递增数字信号的输出。递增模块仿真图如下:图2、递增模块仿真图2) 递减模块递减模块的实体包含时钟信号输入端口clk和复位信号端口rst,输出信号端口q。设计思路为:通过设计一个中间变量从0xFF到0x00的递减赋值给输出信号q,从而实现递减数字信号的输出。递减模块仿真图如下:图3、递减模块仿真图3) 三角波模块三角波模块的实体包含时钟信号输入端口clk和复位信号端口rst,输出信号端口q。设计思路为:通过设计一个中间

4、变量先从0x00递增到0x7F,然后从0x7F递减到0x00,将中间变量赋值给输出信号q,从而实现一个周期三角波形的输出。三角波模块仿真图如下:图4、三角波模块仿真图4) 阶梯波模块阶梯波模块的实体包含时钟信号输入端口clk和复位信号端口rst,输出信号端口q。设计思路为:通过变量控制使中间变量从00H到FFH之间加10H递增,递增到FFH后复位为00H,从而实现阶梯波形。阶梯波仿真图如下:图5、阶梯波模块仿真图5) 正弦波模块正弦波模块的包含时钟信号输入端口clk和复位信号端口rst,输出信号端口q。设计思路为:取一个正弦波周期64个采样值,设置一个64进制的计数器,每次计数将每个采样值输出

5、到端口q,从而实现正弦波数字波形输出。正弦波仿真图如下:图6、正弦波模块仿真图6) 方波模块方波模块的包含时钟信号输入端口clk和复位信号端口rst,输出信号端口q。设计思路为:设置一个中间变量,将其从0x00递增到0x7F,输出信号端口q输出0x00;中间变量从0x7F递增到0xFF,端口q输出0xFF,再将中间变量复位为0x00,以此循环,从而实现方波输出。方波模块仿真图如下:图7、方波模块仿真图7) 原理图设计如下图8、原理图设计五、 仿真结果图9、仿真结果(一)图10、仿真结果(二)六、 总结本设计完整地实现了课程设计要求,通过输入选择信号,输出指定的波形,并能实现复位功能。通过这次这

6、次智能函数发生器的课程设计,我更加熟悉了学会了使用EDA编程工具软件Quartus II的操作,加深了对VHDL语言的理解,熟练了利用原理图设计电路的方面,体会到了将所学的数字电路知识付诸实践的乐趣。七、 附录1.递增模块源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity increase isport(clk,rst:in std_logic;q:out std_logic_vector(7 downto 0);end increase;architecture behave o

7、f increase isbeginprocess(clk,rst)variable temp:std_logic_vector(7 downto 0);beginif rst=0then temp:=00000000;elsif clkevent and clk=1 thenif temp=11111111thentemp:=00000000;elsetemp:=temp+1;end if;end if;q=temp;end process;end behave;2.递减模块源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_lo

8、gic_unsigned.all;entity decrease isport( clk,rst:in std_logic; q:out std_logic_vector(7 downto 0);end decrease;architecture behave of decrease isbeginprocess(clk,rst)variable temp:std_logic_vector(7 downto 0);beginif rst=0then temp:=11111111; elsif clkevent and clk=1 then if temp=00000000 then temp:

9、=11111111; else temp:=temp-1; end if;end if; q=temp;end process;end architecture;3.三角波模块源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity triangle isport( clk,rst: in std_logic; q:out std_logic_vector(7 downto 0);end triangle;architecture behav of triangle isbeginpro

10、cess(clk,rst) variable temp:std_logic_vector(7 downto 0); beginif rst=0 then temp:=00000000; elsif clkevent and clk=1 then temp:=temp+1; if temp=01111111 then q=temp; else q=255-temp; if temp=11111111 then temp:=00000000 ; end if; end if; end if; end process; end architecture;4.阶梯波模块源程序library ieee;

11、use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity stair isport( clk,rst:in std_logic; q:out std_logic_vector(7 downto 0);end stair; architecture behav of stair isbeginprocess(clk,rst)variable tmp:std_logic_vector(7 downto 0);Begin if rst=0then tmp:=00000000; elsif clkevent and clk=1

12、 then if tmp=11111111 then tmp:=00000000; else tmp:=tmp+16; end if;end if;q=tmp;end process;end behav; 5.正弦波模块源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sinwave isport (clk,rst:in std_logic;d:out std_logic_vector(7 downto 0);end sinwave;architecture behav of s

13、inwave isbeginprocess(clk,rst)variable num:integer range 0 to 63;beginif rst=0 then dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull;end case;end if;end process;end behav;6.方波模块源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rectangle isport( c

14、lk,rst:in std_logic; q:out std_logic_vector(7 downto 0);end rectangle;architecture behav of rectangle isbeginprocess(clk,rst) variable temp:std_logic_vector(7 downto 0);beginif rst=0then temp:=00000000;elsif clkevent and clk=1 then temp:=temp+1;if temp=01111111 then q=00000000 ; else q=11111111 ;if temp=11111111 then temp:=00000000; end if;end if;end if;end process;end behav; -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁