收藏 分享(赏)

简易计算器EDA技术课程设计.doc

上传人:精品资料 文档编号:10758118 上传时间:2020-01-07 格式:DOC 页数:44 大小:748KB
下载 相关 举报
简易计算器EDA技术课程设计.doc_第1页
第1页 / 共44页
简易计算器EDA技术课程设计.doc_第2页
第2页 / 共44页
简易计算器EDA技术课程设计.doc_第3页
第3页 / 共44页
简易计算器EDA技术课程设计.doc_第4页
第4页 / 共44页
简易计算器EDA技术课程设计.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、.EDA 技术 课 程 设 计 题 目 简易计算器设计 系 (部) 信息工程系 班 级 姓 名 学 号 指导教师 .2013 年 7 月 8 日至 7 月 12 日 共 1 周.EDA 技术 课程设计任务书一、设计题目、内容及要求 设计题目:简易计算器设计内容及要求:(1)基本设计内容 1:设计简易通用型计算器,完成对数据通路的架构,控制模块和运算器模块的设计,可进行加减乘除的基本运算。(2)基本设计内容 2:加入按键消除抖动的模块,并在试验箱或开发板上通过数码管显示计算器的输入数值与输出结果,实现一个完整的计算器。(3)进阶设计内容:通过矩阵键盘实现数据的输入。(4)进阶设计内容:实现有符号

2、数的计算。(5)进阶设计内容:实现浮点数的计算。设计要求:(1)根据任务要求确定电路各功能模块; (2)写出设计程序;(3)分析时序仿真结果; (4)提交设计总结。二、设计原始资料Quartus软件;EDA 实验箱;计算机一台;三、要求的设计成果(课程设计说明书、设计实物、图纸等)课程设计说明书 1 份,不少于 2000 字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。四、进程安排周 1-周 3: 查阅资料,上机编写并调试设计程序;周 4:整理、撰写说明书;周 5:课程设计答辩并提交设计说明书。五、主要参考资料1.Voknei A.Pedroni.VHDL 数字电路设计教

3、程.电子工业出版社,2008.52.潘松,黄继业.EDA 技术实用教程 (第二版).科学出版社, 2005.23.焦素敏.EDA 应用技术 .清华大学出版社,2002.4.指导教师(签名): 教研室主任(签名):课程设计成绩评定表出勤天数 出勤情况 缺勤天数出勤情况及设计过程表现(20 分)课设答辩(20 分)设计成果(60 分)成绩评定总成绩(100 分)提问(答辩)问题情况.综合评定指导教师签名:年 月 日.目 录1 绪论 12 软件介绍 22.1 Quartus II 介绍 22.2 ModelSim 介绍 33 设计原理 54 模块化设计分析 .64.1 键盘矩阵模块 .64.2 去抖

4、模块设计 .64.3 ALU 模块设计 74.4 FSM 模块设计 74.5 OP1 模块设计 .84.6 OP2 模块设计 .94.7 BIN 模块设计 94.8 BCD 模块设计 105 总结 11参考文献 12附录 13.1 绪论硬件描述语言(hardware description language,HDL)是电子系统硬件行为描述,结构描述,数据流描述的语言。目前,利用硬件描述语言可以进行数字电子系统的设计。随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计也正在探索中。国外硬件描述语言种类很多,有的从 Pascal 发展而来,也有一些从 C 语言发展而来。有些 H

5、DL 成为 IEEE 标准,但大部分是企业标准。VHDL 来源于美国军方,其他的硬件描述语言则多来源于民间公司。可谓百家争鸣,百花齐放。这些不同的语言传播到国内,同样也引起了不同的影响。在我国比较有影响的有两种硬件描述语言:VHDL 语言和 Verilog HDL 语言。这两种语言已成为 IEEE 标准语言。电子设计自动化(electronic design automation,EDA)技术的理论基础,设计工具,设计器件应是这样的关系:设计师用硬件描述语言 HDL 描绘出硬件的结构或硬件的行为,再用设计工具将这些描述综合映射成与半导体工艺有关的硬件配置文件,半导体器件 FPGA 则是这些硬件

6、配置文件的载体。当这些 FPGA 器件加载,配置上不同的文件时,这个器件便具有了相应的功能。在这一系列的设计,综合,仿真,验证,配置的过程中,现代电子设计理论和现代电子设计方法贯穿于其中。以 HDL 语言表达设计意图,以FPGA 作为硬件实现载体,以计算机为设计开发工具,以 EDA 软件为开发环境的现代电子设计方法日趋成熟。VHDL 语言的英文全名是 Very High Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言。 HDL 发展的技术源头是:在 HDL 形成发展之前,已有了许多程序设计语言,如汇编,

7、C,Pascal,Fortran,Prolog 等。这些语言运行在不同硬件平台和不同的操作环境中,它们适合于描述过程和算法,不适合作硬件描述。CAD 的出现,使人们可以利用计算机进行建筑,服装等行业的辅助设计,电子辅助设计也同步发展起来。在从 CAD 工具到 EDA 工具的进化过程中,电子设计工具的人机界面能力越来越高。在利用 EDA 工具进行电子设计时,逻辑图,分立电子原件作为整个越来越复杂的电子系统的设计已不适应。任何一种 EDA 工具,都需要一种硬件描述语言来作为 EDA 工具的工作语言。这些众多的 EDA 工具软件开发者,各自推出了自己的 HDL 语言。.2 软件介绍2.1 Quart

8、us II 介绍Quartus II 是 Alter 公司的综合性 PLD/FPGA 开发软件,支持原理图、VHDL、VerilogHDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD设计流程。Quartus II 提供了完全集成且于电路结构无关的开发环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、Verilog HDL、AHDL 和 VHDL 完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock 增量设计方

9、法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用 SignalTap II 逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的 EDIF 网表文件、VHDL 网表文件盒 Verilog 网表文件;能生成第三方 EDA 软件使用的 VHDL 网表和 Verilog 网表文件。Max+plus II 作为Altera 的上一代PLD

10、设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Max+plus II 的更新支持。Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列 CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是Quartus II 8.0版,该软件有如下几个显著的特点:1、Quartus II 的优点该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、

11、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II 可以在 XP、Linux 以及 Unix 上使用,除了可以使用 Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。2、Quartus II 对器件的支持.Quartus II 支持 Altera 公司的 MAX 3000A 系列、MAX 7000 系列、MAX 9000 系列、ACEX 1K 系列、APEX

12、 20K 系列、APEX II 系列、 FLEX 6000 系列、FLEX 10K 系列,支持 MAX7000/MAX3000 等乘积项器件。支持 MAX II CPLD 系列、Cyclone 系列、Cyclone II、Stratix II 系列、Stratix GX 系列等。支持 IP 核,包含了 LPM/MegaFunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(S

13、OPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。3、Quartus II 对第三方 EDA 工具的支持对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放 EDA 工具。Altera 的 Quartus II 可编程逻辑软件属于第四代 PLD 开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于 Internet 的协作设计。Quartus 平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys 和 Synplicity 等 EDA 供应商的开发工具相兼容。改进了软件的

14、 LogicLock 模块设计功能,增添 了 FastFit 编译选项,推进了网络编辑性能,而且提升了调试能力。2.2 ModelSim 介绍Mentor 公司的 ModelSim 是业界最优秀的 HDl 语言仿真软件,它能提供友好的仿真环境,是业界唯一的但内核支持 VHDL 和 Verilog 混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk 技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护 IP 核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是 FPGA/ASIC 设计的首选仿真软件。ModelSim 主要特点:RTL 和门级优化,本地编译

15、结构,编译仿真速度快,跨平台跨版本仿真;单内核 VHDL 和 Verilog 混合仿真;源代码末班和助手,项目管理;集成了性能分析、波形比较、代码覆盖、数据流 ChaseX、Signal Spay、虚拟对象 Virual Object、Memory 窗口、Assertion 窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C 和 Tcl/Tk 接口、 C 调试;对 SystemC 的直接支持,和 HDL 任意混合;支持SystemVerilog 的设计功能;对系统级描述语言的最全面支持,SystemVerilog、SystemC、PSL ;可以单独或同事进行行为、RTL 级、和门级的代码

16、。ModelSim 分几种不同的版本:SE、PE、LE 和 OEM,其中 SE 是最高级的版本,而集成在 Actel、Atmel 、 Altera、Xilinx 以及 Lattice 等 FPGA 厂商设计工具中的均是其.OEM 版本。SE 版和 OEM 版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以 Xilinx 公司提供的 OEM 版本 ModelSim XE 为例,对于代码少于 40000行的设计,ModelSim SE 比 ModelSim XE 要快 10 倍;对于代码超过 40000 行的设计,ModelSim SE 要比 ModelSim XE 快近 40 倍

17、。ModelSim SE 支持 PC、UNIX 和 LINUX混合平台; Mentor Graphics 公司提供业界最好的技术支持与服务。.3 设计原理本设计主要利用状态机进行整体设计,分部完成,便于大家分组进行合作,此设计要求完成对数据通路的架构,控制模块和运算器模块的设计,可进行加减乘除的基本运算。应用上周所学知识,利用状态机进行简易计算器的编写。简易计算器由键盘输入模块、键盘去抖动模块、状态机、计算模块、OP1、OP2 模块、显示模块组成,结构清晰,易于编写。简易计算器采用自顶向下的设计原则,检测按键次数时,以 scancode 从非空到空的跳变使计数器加一,第一运算数则在 press

18、_count=1 时,将 scancode 装配到 bcd 码最低位 bcd3:0,在 press_count=2 时,装配到 bcd7:4,FSM 在检测到+-/键时,将 bcd 赋予 bcd2,同时启动 alu 的操作 alu_op。FSM 根据 scancode 进度,输出对应的 outsel,选择显示不同的 bcd 数据。计算器模块化设计原理图如图 3-1 所示。检测按键次数 press_count 第1运算数 bcdFSM第2运算数bcd bcd2(+-*/) loadALUbcdbcd2alu_opresdisplayoutselopkeyscancode图3-1 简易计算器模块化

19、设计原理图.4 模块化设计分析4.1 键盘矩阵模块计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条线作为行线,四条线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。键盘模块采用4 4矩阵键盘,4位行线接上上拉电阻后接到高电平上,列线接上上拉电阻后依次给予低电平来判断哪个节点为低电平时即这个节点被按下,从而被读入到下一单元。矩阵键盘模块原理图如图 4-1 所示,矩阵键盘仿真波形如图 4-2 所示。图 4

20、-1 矩阵键盘模块原理图图 4-2 矩阵键盘仿真波形4.2 去抖模块设计作为机械开关的键盘,在开关开启或关闭的瞬间会出现电压抖动,消除抖动的方法一般有硬件和恶、软件的方法,一般进行软件处理,这样实现简单、设计灵活、节约成本。程序设计原理:按键去抖动关键在于提取稳定的电平状态,滤除抖动毛刺,对于一个按键信号,可以用一次脉冲对其进行取样,如果连续三次取样为低电平,则为低电平,.如果不满足三次取样都为低,则认为按键稳定状态结束。去抖模块原理图如图 4-3 所示,仿真波形如图 4-4 所示。图 4-3 去抖模块原理图图 4-4 去抖模块仿真波形4.3 ALU 模块设计ALU 模块主要实现数据的加减乘除

21、运算,用 VHDL 代码描述逻辑单元、算数单元、选择器单元,要求输入两组二进制数据,利用元件例化语句将设计的三个单元进行组合,建立一个包含所有元件的包集。ALU 模块原理图如图 4-5 所示,仿真波形图如图 4-6 所示。图 4-5 ALU 模块原理图图 4-6 ALU 模块仿真波形.4.4 FSM 模块设计状态机由六个状态组成,主要是判断键盘输入的是数据还是运算符,从而来进行不同的运算,首先判断第一个输入的数据是否为数字,若不是数据则等待,若是数据则进入下一个状态等键盘弹起后判断下一个数据为数字还是运算符,若是数据则将数据存入OP1,若是运算符,则将数据存入 OP1 和 OP2,并等待下一个

22、数据的到来,状态机中值得注意的是在进行数据运算时,将运算的数据要存入 OP1 和 OP2 中。FSM 模块原理图如图 4-7 所示, FSM 仿真波形图如图 4-8 所示。图 4-7 FSM 模块原理图图 4-8 FSM 模块仿真波形图4.5 OP1 模块设计OP1 模块的主要功能是实现数据的输入及存储,主要用来做被加数、被除数等,在第一次输入数据时,数据存入 OP1 等进行操作后,数据会被装载到 OP1 和 OP2 模块中,待数据被输入时更新 OP1 中的数据。OP1 模块原理图如图 4-9 所示,仿真波形图如图 4-10 所示。.图 4-9 OP1 模块原理图图 4-10 OP1 模块仿真

23、波形4.6 OP2 模块设计OP2 模块的主要功能是用来存储运算完成的数据,使计算器有连续计算的能力。当进行完一次运算后,此时 OP2_LOAD 为 1,此时将运算完的数据装载到 OP2 模块中。OP2 模块原理图如图 4-11 所示,仿真波形图如图 4-12 所示。图 4-11 OP2 模块设计原理图图 4-12 OP2 模块仿真波形图4.7 BIN 模块设计二进制模块的功能是将二进制数字转化成 BCD 码。BIN 模块原理图如图 4-13,仿真波形图如图 4-14。.图 4-13 BIN 模块原理图图 4-14 BIN 模块仿真波形4.8 BCD 模块设计BCD 模块是将 BCD 码转化成

24、二进制数字。 BCD 模块原理图如图 4-14,仿真波形图如图 4-15。图 4-14 BCD 模块原理图图 4-15 BCD 模块仿真波形.5 总结这次的设计,给我的印象很深,通过这次课程设计,我对 EDA 这门课程有了很好很深的理解。通过做计算器,我对 Quartus II 和 ModelSim 应用更加熟悉了。本次课程设计,要求做一个简易计算器,第一周首先由北京至芯科技公司的老师来为我们讲解相关的知识,讲解做计算器的方法。通过老师的讲解我对本课题有了一定的了解。但是,在对该课题有一定的了解的前提下,也发现了很多问题。认识到理论与实践之间的差距,联系实际的应用去理解只是比一大堆理论来的直接

25、与清晰明了。本简易计算器的设计,是用 Quartus II 软件进行代码编写、原理图设计,用 ModelSim 软件来实现仿真。通过对简易计算器设计,熟悉了 Quartus II 的运行环境,初步掌握了 VHDL语言基本库函数的调用和编写基本程序等应用;明白了原理图和代码之间的关系;学会了做一个工程的一般步骤,以及分模块化设计的好处。最后,我要在这里对给我这次课程设计提供帮助的魏老师和王老师,还有同学们说声诚挚的感谢。正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本次课程设计圆满完成。在这个过程中我学到了很多知识,不仅巩固了已有知识,而且强化了一些关于数学 MATLAB 软件应

26、用方面的知识,非常感谢你们的帮助。.参考文献1 乔庐峰,王志功.数字电路设计教程M . 北京电子工业出版社, 20102 潘松,黄继业.EDA 技术实用教程(第二版) M. 科学出版社,20053 焦素敏,EDA 应用技术M. 北京清华大学出版社,20024 谭会生,张昌凡.EDA 技术及应用 M. 西安西安电子科技大学出版社,20085 曾繁泰,陈美金.VHDL 程序设计M. 北京清华大学出版社,2007.附录-键盘矩阵模块程序-LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY ke

27、ys ISPORT(clk : IN STD_LOGIC;rst : IN STD_LOGIC;row : IN STD_LOGIC_VECTOR(3 downto 0);col : OUT STD_LOGIC_VECTOR(3 downto 0);scancode : OUT STD_LOGIC_VECTOR(15 downto 0);END keys;ARCHITECTURE keys_architecture OF keys ISsignal current_state,next_state:std_logic_vector(1 downto 0);signal enable:std_l

28、ogic;BEGINprocess(clk,rst,enable).beginif rst=1 then current_statecolcolcolcolcolscancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodescancodetempif temp = scancode thenscsc AUL_OUT temp1:=op1_in;temp2

29、:=op2_in;temp:=temp1+temp2;AUL_OUT t1:=conv_integer(op1_in);t2:=conv_integer(op2_in);if t2=t1 thent3:=t2-t1;AUL_OUT t1:=conv_integer(op1_in);t2:=conv_integer(op2_in);t3:=t1*t2;if t3 t1:=conv_integer(op1_in);t2:=conv_integer(op2_in);if t2=0 then AUL_OUT AUL_OUTkeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykeykey if key=1 thenif number=1 thennext_state -shuzicaozuoif number=1 then op1_add if operate=0 thenoprand temp1 temp1=“011“ ;-“X“if key=1 thenop2_load=1;op1_load=1;next_state=“010“;else

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报