基于FPGA的计算器设计

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的计算器设计

摘要

本文介绍了一个简单计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于硬件描述语言VHDL在Altera公司的Quartus Ⅱ软件上实现仿真。系统由计算部分、存储部分、显示部分和输入部分四个部分组成,计算部分为加法器、减法器、乘法器和除法器,存储部分需要3个存储器来实现:内部累加器(acc)、输入寄存器(reg)以及结果暂存器(ans)。显示部分由四个七段译码管组成,分别来显示输入数字,输入部分采用外接键盘,由0—9十个数字按键,加减乘除四个运算符按键,一个等号按键和一个清零按键组成的。通过外部的按键可以完成四位数之内的‘加’、‘减’、‘乘’、‘除’四种功能运算,其结构简单,易于实现。

关键词:FPGA;VHDL;计算器

1 概述

在国外,电子计算器在集成电路发明后,只用短短几年时间就完成了技术飞跃,经过激烈的市场竞争,现在的计算器技术己经相当成熟。计算器已慢慢地脱离原来的“辅助计算工具”的功能定位,正向着多功能化、可编程化方向发展,在各个领域都得到了广泛的应用。用计算器不仅可以实现各种各样复杂的数学计算还可以用来编制、运行程序,甚至解方程组,图形计算器还可以进行图形处理。计算器内置的软件允许用户进行类似于对计算机的文件和目录管理等操作,允许用户对图形界面进行定制,同时各种新技术也被应用到计算器里使计算器功能越来越强大。可以说,计算器就是一个“微微型”的计算机。国内也有厂商利用计算器芯片开发新的产品,但对计算器技术的研究、计算器芯片的设计还处于起步阶段。计算器的主要功能还是在于“计算”,不妨称之为“低档计算器”。即便是对这种计算器,很多厂商也只从事计算器的组装、销售业务。一些IC 设计公司、芯片提供商也开始研究计算器技术。

本次设计基于现场可编程逻辑器件FPGA进行设计,应用硬件描述语言VHDL编程并在Altera公司的Quartus Ⅱ软件上实现仿真。需要进行计算器的常用运算功能的实现,通过外接键盘输入、LED数码显示来达成运算目的。

2 硬件描述语言VHDL简介

2.1 VHDL的发展

VHDL诞生于1982年。在1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA 公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。而Verilog HDL是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得Verilog HDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995。

2.2 VHDL的特点

VHDL语言主要用于描述数字系统的结构、行为、功能和接口,与其他硬件描述语言相比,VHDL语言有如下优越之处[2]:

1)VHDL语言支持自上而下(Top Down)和基于库(Library Base )的设计方法,

还支持同步电路、异步电路、FPGA以及其他随机电路的设计;

2)VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到

门级电路,其高层次的行为描述可以与低层次的RTL描述和结构描述混合使

用,还可以自定义数据类型,给编程人员带来较大的自由和方便;

3)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必关

心最终设计实现的目标器件是什么;

4)VHDL具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写

如何测试相量便可以进行源代码级的调试,而且设计者可以非常方便地比较各

种方案之间的可行性及其优劣,不需做任何实际的电路实验;

5)VHDL语言可以与工艺无关编程;

6)VHDL语言标准、规范,易于共享和复用。

2.3 VHDL语言结构

图2.1 VHDL程序结构框图[3]

图2.1中是VHDL的全部结构,但实际上并不需要全部的结构,就像在许多设计项目中,大部分工程师只用到VHDL其中的30%的语法;通常图2.2的结构才是基本和必需的。

USE定义区

ENTITY定义区

ARCHITECTURE定义区

图2.2 VHDL程序基本结构

2.3.1 实体(ENTITY)

实体作为一个设计实体的组成部分,其功能是对这个设计实体与外部电路进行接口描述,它是设计实体的表层设计单元;实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外一个通信界面。就一个设计实体面言,外界所看到的仅仅是它的界面上的各种接口。它可以拥有一个或多个结构体,用于描述此设计实体的逻辑结构和逻辑功能,对于外界来主,这一部分是不可见的。不同逻辑功能的实体可以拥有相同的实体描述,这是因为实体类似于原理图中的一个部件符号,而其的逻辑功能是由设计实体中结构体的描述确定的。实体是VHDL的基本设计单元,它可以对一个门电路、一个芯片、一块电路板乃至整个系统进行接口描述。其结构:

ENTITY 实体名IS[4]

[GENERIC(常数名:数据类型[:设定值] ;

{常数名:数据类型[:设定值] });]

[PORT(端口名:端口模式数据类型;

{端口名:端口模式数据类型});]

END ENTITY 实体名;

2.3.2 结构体(ARCHITECTURE)

结构体是实体所定义的设计实体中的一个组成部分。结构体描述设计实体的内部结构和实体端口间的逻辑关系。结构体由两大部分组成[5]:

对数据类型、常数、信号、子程序和元件等元素的说明部分;

描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句,它们包括各种形式的顺序描述语句和并行描述语句。其语句格式如下:

ARCHITECTURE 结构体名;

[说明语句]

BEGIN

[功能描述语句]

END ARCHITECTURE 结构体名;

图2.3中的五种语句结构的基本组成和功能分别是:

相关文档
最新文档