免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 EDA 技技术术及及应应用用课课程程设设计计(实实习习 )报报告告 题题 目目 智能函数智能函数发发生器的生器的设计设计 2010 年年 1 月月 课程设计课程设计(实习实习)评审表评审表 题 目智能函数发生器的设计智能函数发生器的设计 2 评 审 意 见 评审成绩 指导教师签名职称评审时间 年 月 日 课程设计课程设计(实习实习)作品验收表作品验收表 题目智能函数发生器的设计 姓 名 班 级电信 0702参与人员 学 号070910054 3 设计任务与要求: 设计任务: 设计一个智能函数发生器,通过开关选择可以相应输出递增、递减、三角波、阶梯波、正弦 波和方波六个波形。 设计要求: (1)根据设计方案,能完成软件仿真结果。其中软件仿真包括各个模块的仿真和整体电路 的仿真。 (2)进行引脚锁定,在 EDA 实验箱进行硬件验证。硬件验证要实现选择一个开关信号后, 每按一个时钟信号,显示管的输出变化与软件仿真相对应。 作品完成情况: 所设计的智能函数发生器,软件仿真显示和硬件测试数码管的显示完全达到了设计要求。 验收情况: 验收教师签名:_ 年 月 日 注:1. 除“验收情况”栏外,其余各栏均由学生在作品验收前填写。 2. “验收情况”栏由验收小组按实际验收的情况如实填写。 目 录 前言.1 1 设计任务与要求.1 1.1 设计任务.1 1.2 设计要求.1 2 系统功能描述.2 3 系统总体设计.2 3.1 总体设计描述.2 4 3.2 总体设计原理框图.2 4 系统详细设计.3 4.1 文本设计各个模块.3 4.1.1 递增模块 .3 4.1.2 递减模块 .5 4.1.3 三角波模块 .5 4.1.4 阶梯波模块 .7 4.1.5 正弦波模块 .8 4.1.6 方波模块 .9 4.1.7 选择模块 .11 4.2 原理图设计.11 5 系统实现与测试.12 5.1 系统软件仿真实现.12 5.2 系统硬件实现.12 6 课程设计总结.13 6.1 实验中遇到的问题.13 6.1.1 程序设计中遇到的问题 .13 6.1.2 硬件测试中遇到的问题 .14 6.2 心得体会.14 参考文献.15 附录.15 1 智能函数发生器的设计智能函数发生器的设计 内容摘要:这篇报告首先详细说明了采用文本输入法用 VHDL 描述了六个波形模块即 递增、递减、方波、三角波、正弦波及及阶梯波模块,及其元件符号的创建,相关的仿真 波形和一个选择模块,然后用原理图输入法描述了各模块的组建,完成可以通过开关选择 输出不同的波形,最后设计成一个智能函数发生器的设计过程。 关键字:VHDL;模块;仿真波形;原理图;智能函数发生器 前言前言 课程设计一直是电子信息工程专业非常重视的一门特色教育课程,他对相关的专业知 识能力要求较高,主要是要学会学以致用,极大地考察了大学生的应用能力和动手能力。 本次设计是关于 EDA 技术及应用,它要求学生熟悉,了解本学期所学的 EDA 课程的基础 知识,熟练掌握 EDA 编程工具软件 MAX+PLUS II 的各种功能及其使用,掌握硬件实验箱 GW48 的使用。从这次课程过程中,可以进一步丰富自己的专业知识,加强对其的应用学 会如何整理资料,划分模块,提高自己的编程技巧。 1 设计任务与要求设计任务与要求 1.1 设计任务设计任务 设计一个智能函数发生器,能够产生递增、递减、方波、三角波、正弦波及及阶梯波 波形,并可通过开关选择输出的波形。 1.2 设计要求设计要求 (1)根据设计方案,能完成软件仿真结果。其中软件仿真包括各个模块的仿真和整体 电路的仿真。 (2)进行引脚锁定,在 EDA 实验箱进行硬件验证。硬件验证要实现选择一个开关信 号后,每按一个时钟信号,显示管的输出变化与软件仿真相对应。 2 系统功能描述系统功能描述 智能函数发生器,简而言之,就是通过简单的按键选择,就可以输出各种想要的波形。 具体到本设计中,就是通过选择不同的 sel 值,可以实现不同的波形输出。本设计采用顶 层原理图设计方法,首先用文本输入法设计了六个波形模块(可以根据需要增添模块) ,分 别为递增、递减、三角波、梯形、正弦波、方波模块,和一个选择模块。然后进行原理图 2 设计,将各波形模块与选择模块相应的引脚连接,完成智能函数发生器的设计。 3 系统总体设计系统总体设计 3.1 总体设计描述总体设计描述 整体设计包括 7 个模块,采用文本设计法,用 VHDL 语言分别描述出六个波形模块和 一个选择模块,然后用顶层原理图设计法讲七个模块相应连结,使其在不同的选择下输出 相应的波形。 3.2 总体设计原理框图总体设计原理框图 总体设计原理图框图如下: 递增模块 递减模块 三角波模块 阶梯波模块 正弦波模块 方波模块 选 择 模 块 输出信号 图 1 总体设计原理框图 4 系统详细设计系统详细设计 系统详细设计主要介绍每个模块的 VHDL 的具体描述程序,详细说明每个模块的描述 语句的功能以及最终创建元件符号的过程,以及顶层原理图的分析和具体原理图。 4.1 文本设计各个模块文本设计各个模块 4.1.1 递增模块递增模块 递增模块是用 VHDL 程序描述的递增函数,它的实体部分部分说明三个端口,其中两 个输入端口时钟信号 clk、复位信号 rst 和一个输出端口 q。结构体部分定义一个 8 位二进 制变量,然后使用进程语句,设定敏感信号 clk 和 rst,通过设计一个中间变量从 00000000 3 到 11111111 的递增赋值给输出信号 q,编译无误后,即额可以创建递增元件符号。 程序分析如下: (1)每个程序开头部分是库及库函数使用说明,具体如下: library ieee;-库使用说明 use ieee.std_logic_1164.all;-库函数使用说明 use ieee.std_logic_unsigned.all;-无符号库函数,包含重载操作符的使用 程序的开头部分都基本相同,后面的程序就不再一一解释。 (2)实体部分,是每个程序必不可少的,主要是说明元件的端口部分,具体如下: entity icrs is port(clk,rst:in std_logic;-时钟信号输入端口和复位信号输入端口 q:out std_logic_vector(7 downto 0);-8 位二进制输出端口 end icrs; 实体部分定义主要是根据所设计元件符号的端口不同而定。 (3)结构体部分,也是程序必不可少的一部分,主要描述元件所完成的功能,递增程 序主要是完成复位功能和在时钟沿到来的时候递增即加 1,一般程序含时钟信号则采用进 程语句,具体程序如下: architecture behave of icrs is begin process(clk,rst)-以时钟信号和复位信号为敏感信号的进程语句 variable tmp:std_logic_vector(7 downto 0);-在进程中定义中间变量 begin if rst=0then异步复位 tmp:=00000000; elsif clkevent and clk=1 then -时钟上升沿到来时 if tmp=11111111then -在 00ff 间递增 tmp:=00000000; else tmp:=tmp+1; end if; 4 end if; q=tmp; -变量赋值给输出 end process; -结束进程 end behave; -结束结构体 其完整的递增源程序见附录。 递增模块仿真图如下: 图 2 递增模块仿真图 4.1.2 递减模块递减模块 递减模块的 VHDL 描述同递增的相似,创建递减元件符号,包含时钟信号输入端口 clk 和复位信号端口 rst,输出信号端口 q。输出信号从 FF-00 递减变化。主要分析结构体完 成功能部分。 部分程序如下: begin if rst=0then tmp:=11111111; -完成异步复位,复位为 FFH elsif clkevent and clk=1 then -时钟下降沿的到来 if tmp=00000000 then tmp:=11111111; -从 FF 到 00H 之间 else tmp:=tmp-1; -减 1 递减 end if; end if; 5 递减模块的仿真图如下: 图 3 递减模块仿真图 4.1.3 三角波模块三角波模块 三角波模块程序设计完成功能异步复位和三角波的形成,程序定义两个中间变量,一 个中间变量即为输出赋值,另一个完成三角波分段,当 in1 为 0 是完成三角波的前段从 00H 到 FFH 递增,当 in1 为 1 时,完成后段的从 FFH 到 00H 的递减,形成一个完整的三 角波。 三角波模块的部分源程序及注释如下: process(clk,rst) -结构体中的进程语句 variable tmp:std_logic_vector(7 downto 0); -定义中间变量,赋值输出 variable in1:std_logic; -定义中间变量分段 begin if rst=0 then tmp:=00000000; elsif clkevent and clk=1 then -异步复位 if in1=0 then -当 in1 为 0 时 if tmp=11111110 then -并且计数到 FEH 时 tmp:=11111111; -则赋值 tmp 为 FFH in1:=1; -且 in1 为 1 else tmp:=tmp+1; -若计数没有递增到 FEH,则继续递增 end if; 6 else if tmp=00000001 then -当 in1 为 1 时,并且计数到 01H tmp:=00000000; -则赋值 tmp 为 00H in1:=0; -且 in1 为 0 else tmp:=tmp-1; -计数没有递减到 01H,则继续递减 end if; end if; end if; q=tmp; -输出赋值 end process; -结束进程 具体完整源程序见附录。 三角波模块仿真图如下: 图 4 三角波模块仿真图 4.1.4 阶梯波模块阶梯波模块 阶梯波模块主要完成阶梯波的形成和添加异步复位功能,阶梯波的程序描述与三角波 类似,也是通过变量控制使中间变量从 00H 到 FFH 之间加 10H 递增,递增到 FFH 后复位 为 00H。创建的元件符号包括三个端口,即时钟信号 clk 端口和复位信号端口 rst,以及输 出端口 q。 阶梯波部分源程序和注释如下: Begin -进程开始 7 if rst=0then tmp:=00000000; -异步复位 elsif clkevent and clk=1 then -时钟上升沿 if data=0 then -当 data 为 0 时 if tmp=11111111 then -且 tmp 计数到 FFH 时 tmp:=00000000; -则将 tmp 复位为 00H data:=1; -且令 data 为 1 else tmp:=tmp+16; -若 tmp 未计数到 FFH 时,则继续加 10H 递增 data:=1; -并令 data 为 1 end if; else data:=0; -否则 data 继续为 0 end if; end if; 阶梯波模块仿真图如下: 图 5 阶梯波模块仿真图 4.1.5 正弦波模块正弦波模块 正弦波模块完成输出一个正弦波的设计以及异步复位功能,定义的中间变量为 tmp 整 数类型,变化范围为 063,调用 case 语句,取一个周期类 64 个点分别对应的正弦值,每 个点对应的正弦值可由网上对应的表格查得,即可以创建有时钟信号 clk 和复位信号 clr 输 入和输出端口 d 的元件符号。 8 正弦波模块部分源程序及注释如下: variable tmp:integer range 0 to 63; -定义中间变量为整数类型,变化范围为 063 begin if clr=0 then dddddddd=255; end case; -结束 case 语句 具体源程序见附录。 正弦波模块仿真图如下: 图 6 正弦波模块仿真图 4.1.6 方波模块方波模块 方波模块即是完成方波输出地设计,以及有异步复位的功能,该程序采用了两个进程 9 语句,第一个进程是完成在时钟上升沿的时候,cnt 从 0 计数到 63 时,data 去反,在第二 个进程中,完成在时钟上升沿同步时,data=1 时输出 q=FFH,data=0 时输出 q=00H,创建 的元件符号同样是三个端口,即时钟信号 clk 和复位信号 clr,以及一个 8 位二进制的输出 端口 q。 源程序如下: signal data:bit; -在结构体中定义信号,数据类型为位数据类型 begin process(clk,clr) -结构体中的进程 variable cnt:integer ; -在进程中定义变量,数据类型为整型 begin if clr=0 then data=0; -异步清零 elsif clkevent and clk=1 then -时钟上升沿 if cnt63 then -若 cnt=63,则 cnt 复位为 0 data=not(data); -并将 data 取反 end if; end if; end process; process(clk,data) -以 clk、data 为敏感信号的进程 begin if clkevent and clk=1 then -时钟上升沿 if data=1 then -当 data 为 1 时 q=255; -输出为 255 else qqqqqqqnull; -排除其他条件 end case; end process; 11 4.2 原理图设计原理图设计 原理图设计就是调用所创建的元件符号,形成智能函数发生器。要注意总线和单线的 使用,以及总线的命名。 原理图如下: 图 8 顶层原理图 5 系统实现与测试系统实现与测试 5.1 系统软件仿真实现系统软件仿真实现 每个模块经过编译后形成了相应的元件符号,经过顶层原理图设计后,输入 sel 的值, 则输出对应的波形,仿真波形在每个模块的详细设计中已经说明,实现了设计所要求的仿 真结果。 5.2 系统硬件实现系统硬件实现 系统的硬件测试时在顶层原理图设计完成后,对其进行引脚锁定,其对应的引脚锁定 如下表所示: 12 对应的引脚锁定 (选择模式 1) 信号实验板位置通用目标器件引脚号EP10K10PLCC84 引脚号 Rst键 8PIO 4981 Clk键 7PIO 4880 S2PIO 07 S1PIO 16 S0 键 1 PIO 25 Q7PIO 3153 Q6PIO 3052 Q5PIO 2951 Q4 显示管 8 PIO 2850 Q3PIO 2749 Q2PIO 2648 Q1PIO 2547 Q0 显示管 7 PIO 2439 表 1 引脚锁定一览表 引脚锁定完成后,连接后硬件实验箱,对其进行功能测试,键八先置于低电平,实现 复位功能;然后置于高电平,选择键选择几号波形输出,然后按时钟信号键七,每一个时 钟下降沿的到来,与选择的波形仿真实现的结果完全一致,即完成所要求达到的功能。 6 课程设计总结课程设计总结 6.1 实验中遇到的问题实验中遇到的问题 6.1.1 程序设计中遇到的问题程序设计中遇到的问题 (1)注意存储时的后缀名。编辑完一个程序之后,注意将程序名改为与实体名相同, 存储后就编译,发现出现错误,检查后知道是要将源文件的后缀改为.vhd。 (2)注意程序的数据类型的选择。在 VHDL 描述中,数据类型有很多种,例如位数 据类型、整数数据类型、位矢量每种数据类型都有其用法,bit 数据类型只有两种取值, 13 即 0 和 1,还有标准逻辑向量数据类型使用时,若没有说完所有情况,要说明其余情况取 空值。 (3)顶层原理图中遇到的问题。主要是总线和单线的使用,当输出的信号时多个节点 是,必须使用总线,总线命名是,必须要在后面加上m.n。 6.1.2 硬件测试中遇到的问题硬件测试中遇到的问题 主要是下载模式的选择,不知道要选择的模式,以及对应的引脚不清楚,后来经过老 师的讲解,和翻阅相关的资料,终于完成了引脚锁定。其次是实验室的实验箱的接触并不 太好,需要你耐心的去试验,最后在老师的帮助下,通过自己的努力,终于测试出了结果。 6.2 心得体会心得体会 通过一个多星期的课程设计,从选题到查资料,从完善原理图到写报告文档,让我明 白了课程设计是名副其实的综合性训练,不仅要运用到EDA 技术及运用这门课程,还 牵涉到数字电路等知识,还要学会查阅各种图书资料和工具书,并将新知识和所学的结合 起来为自己所用。学会了使用 EDA 编程工具软件 MAX+PLUS II,和硬件实验箱 GW48 的 使用,提高了动手能力。在设计中遇到一些困难和问题,在向老师请教和与同学的讨论中, 解决了问题,并收获了许许多多。 我觉得这次课程设计对于我来说是最好的、最成功的一次,通过软件,时刻专研,学 生互动,老师指导学生,形成了良好的学习环境。在这次课程设计过程中,我积极的参与, 主动提问。但我也发现了不足之处,一开始我没有认真的听老师讲解有关硬件测试的相关 内容。导致我的硬件测试无从下手,不知道怎么去选择下载模式,怎么选择所需要的对应 的引脚。在以后的日子里,我想我会更加认真的听老师的讲解和指导,脚踏实地地完成每 一次实践任务。 参考文献参考文献 1 朱正伟.EDA 技术及应用.北京:清华大学出版社,2005.10 2 潘松.VHDL 使用教程.西安:西安电子科技大学出版社,2000 3 谭会生等主编.EDA 技术及应用.西安:西安电子科技大学出版社,2001 4 王振红.VHDL 电路设计与应用实践教程.北京:机械工业出版社,2003 5 付家才.EDA 原理与应用.北京:化工工业出版社,2001 14 6 路而红.电子设计自动化应用技术.北京:希望电子出版社,2000 附录附录 递增模块源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity icrs is port(clk,rst:in std_logic; q:out std_logic_vector(7 downto 0); end icrs; architecture behave of icrs is begin process(clk,rst) variable tmp:std_logic_vector(7 downto 0); begin if rst=0then tmp:=00000000; elsif clkevent and clk=1 then if tmp=11111111then tmp:=00000000; else tmp:=tmp+1; end if; end if; q=tmp; end process; end behave; 15 递减模块源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dcrs is port(clk,rst:in std_logic; q:out std_logic_vector(7 downto 0); end dcrs; architecture behave of dcrs is begin process(clk,rst) variable tmp:std_logic_vector(7 downto 0); begin if rst=0then tmp:=11111111; elsif clkevent and clk=1 then if tmp=00000000 then tmp:=11111111; else tmp:=tmp-1; end if; end if; q=tmp; end process; end behave; 三角波模块源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; 16 entity delta is port(clk,rst:in std_logic; q:out std_logic_vector(7 downto 0); end delta; architecture behave of delta is begin process(clk,rst) variable tmp:std_logic_vector(7 downto 0); variable in1:std_logic; begin if rst=0 then tmp:=00000000; elsif clkevent and clk=1 then if in1=0 then if tmp=11111110 then tmp:=11111111; in1:=1; else tmp:=tmp+1; end if; else if tmp=00000001 then tmp:=00000000; in1:=0; else tmp:=tmp-1; end if; end if; end if; 17 q=tmp; end process; end behave; 阶梯模块源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ladder is port(clk,rst:in std_logic; q:out std_logic_vector(7 downto 0); end ladder; architecture behave of ladder is begin process(clk,rst) variable tmp:std_logic_vector(7 downto 0); variable data:std_logic; begin if rst=0then tmp:=00000000; elsif clkevent and clk=1 then if data=0 then if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2010年西藏中考英语真题及解析
- 2026年扬州艺术考试题目及答案
- 深度解析(2026)《GBT 30128-2013纺织品 负离子发生量的检测和评价》
- 2026年美国地理考试题及答案
- 《研学旅游服务提供管理规范》
- 深度解析(2026)《GBT 29852-2013光伏电池用硅材料中P、As、Sb施主杂质含量的二次离子质谱测量方法》
- 冲刺阶段要换思路!高三高考备考推进会校长直言:锚定命题新方向精准施策备高考
- 《DLT 1290-2013直接空冷机组真空严密性试验方法》(2026年)合规红线与避坑实操手册
- 2026年生鲜冷链运输服务协议
- 广东省云浮市罗定市2024-2025学年六年级下学期英语期中测试试卷(4月)(含答案)
- 2026浙江杭州萧山水务有限公司春季招聘10人笔试备考试题及答案详解
- 2026浙江省担保集团社会招聘3人笔试备考试题及答案解析
- 2026年及未来5年市场数据中国酒精行业发展运行现状及发展趋势预测报告
- 2025旅游景区质量等级评分细则
- (广东二模)广东省2026年4月高三高考模拟测试(二)地理试卷(含答案)
- 2026年智慧树答案【人工智能原理与技术】智慧树网课章节考前冲刺练习题附参考答案详解(夺分金卷)
- 高考物理押计算大题《力学三大观点的综合应用计算题》含答案
- 茂名石油行业分析报告
- 10.2《在马克思墓前的讲话》教学课件2025-2026学年统编版高中语文必修下册
- 2025年河北联考音乐真题及答案
- 高技术企业技术创新的组织模式与激励机制
评论
0/150
提交评论