文档库 最新最全的文档下载
当前位置:文档库 › 毕业设计---基于FPGA和VHDL实现的8位通用运算部件

毕业设计---基于FPGA和VHDL实现的8位通用运算部件

毕业设计说明书

题目:基于FPGA和VHDL实现的8位通用运算部件

毕业论文(设计)任务书

论文(设计)题目:基于FPGA和VHDL实现的8位通用运算器

一、主要内容及基本要求

主要内容:

利用Quartus II 9.0编写VHDL程序,在FPGA开发板实现一个8位可进行加减算术运算和与,或,非,异或等逻辑运算的通用运算器,并开发对此运算器进行测试的按键输入模块,完成对运算器的综合测试。

基本要求:

1.设计并实现ALU。ALU能完成对数据的基本操作,包括算术和逻辑运算,并输出相应的标志信号。

2.设计相应的指令格式,用于控制数据传送,存储,算术逻辑运算,移位,输出功能。

3设计按键和显示模块,用于对8位通用运算器进行测试。

二、重点研究的问题

1.深刻体会FPGA开发流程和VHDL与一般过程语言编程的差异,实际解决在编程中遇到的问题。

2.掌握8位通用运算器的模块构建,对单元电路进行电路波形仿真测试和综合测试。

3.开发一个按键输入模块,对8位通用运算部件进行测试。

三、进度安排

序号各阶段完成的内容完成时间

1 学习VHDL和FPGA基本知识2011.12.12-2012.1.8

2 熟悉开发平台、开题报告、制订设计方案2012.1.9-2012.4.1

3 编写程序、下载调试2012.4.2-2012.4.19

4 完善数据通路设计、综合测试2012.4.20-2012.4.25

5 毕业设计说明书初稿2012.4.26-2012.5.3

6 修改,写出第二稿2012.5.4-2012.5.17

7 答辩2012.5.26

四、应收集的资料及主要参考文献

[1]潘松,黄继业. EDA技术实用教程. 北京:科学出版社,2010.11

[2]Kenneth L.Short. VHDL大学实用教程. 乔庐峰,尹延辉,李永成,牛燚坤译. 北京:电子工业出版社,2011.9

[3]Clive "Max" Maxfield. FPGA设计指南. 杜生海,刑闻译. 北京:人民邮电出版社,2007.12

[4]王诚,刘东卫,宋佳兴. 计算机组成与设计北京:清华大学出版社,2004.7

[5]吴厚航. 深入浅出玩转FPGA 北京:北京航空航天大学出版社,2009.1

[6]黄智伟,邓月明,王彦. ARM嵌入式系统设计基础教程北京:北京航空航天大学出版社,2008.8

毕业论文(设计)评阅表

毕业论文(设计)题目:基于FPGA和VHDL实现的8位通用运算部件评价项目评价内容

选题1.是否符合培养目标,体现学科、专业特点和教学计划的基本要求,达到综合训练的目的;

2.难度、份量是否适当;

3.是否与生产、科研、社会等实际相结合。

能力1.是否有查阅文献、综合归纳资料的能力;

2.是否有综合运用知识的能力;

3.是否具备研究方案的设计能力、研究方法和手段的运用能力;

4.是否具备一定的外文与计算机应用能力;

5.工科是否有经济分析能力。

论文(设计)质量1.立论是否正确,论述是否充分,结构是否严谨合理;实验是否正确,设计、计算、分析处理是否科学;技术用语是否准确,符号是否统一,图表图纸是否完备、整洁、正确,引文是否规范;

2.文字是否通顺,有无观点提炼,综合概括能力如何;

3.有无理论价值或实际应用价值,有无创新之处。

综合评价

该同学所选毕业设计课题任务是具有一定实用性要求的局部开发任务,基本符合计算机科学与技术专业本科生培养目标的要求,能够较好地训练学生计算机软硬件方面的综合素质,难度尚可。

该同学在完成毕业设计课题任务的过程中积极努力工作,表现出具有一定的综合运用知识的能力,理解、把握问题、理解问题分析与总体设计结论等方面的能力和独立完成局部开发工作的能力。

毕业设计所形成的“毕业设计说明书”结构较合理、内容较充实、文字较通顺、形式较规范,篇幅基本上达到了规定要求。

综上所述,该同学的毕业设计已基本达到了预期的目标要求,同意参

加答辩。

评阅人:

2012年月日

毕业论文(设计)鉴定意见

毕业论文(设计说明书)54 页图表27 张

论文(设计)题目:基于FPGA和VHDL实现的8位通用运算部件

内容提要:

本文的主要内容是介绍了在FPGA/CPLD开发板上开发一个8位通用运算部件的全过程,包括软硬件平台的简要介绍,通用运算部件的概要设计,详细设计及其测试等。本设计说明书分为七部分,总共54页。其中,图表27张。下面,简单介绍各部分

内容:

第一部分是绪论,介绍了现代计算机应用系统及其设计流程和本文的结构。

第二部分介绍了应用于开发这种数字系统的可编程逻辑器件FPGA/CPLD的基本特性。

第三部分介绍了开发这种数字系统的的软件工具Quartus II 9.0和本设计的硬件开发环境。

第四部分为8位通用运算器设计的内部框图和设计的模块及用于测试的按键模块的设计。

第五部分为8位通用运算器基本模块和按键基本模块的详细设计。

第六部分给出了8位通用运算器可执行的基本运算指令及其测试。

第七部分是结束语,参考文献,致谢和附录。

指导教师评语

该同学所选课题任务难度一般,基本符合计算机科学与技术专业本科生培养目标的要求。在完成毕业设计任务的过程中基本上能够较准确地把握问题,独立地完成了相应的设计任务。

所形成的“毕业设计说明书”结构较合理、内容较充实、语言较流畅、形式较规范,篇幅基本达到了规定要求,内容所含图表基本符合规范要求。

综合而论,该同学具有一定的分析问题、解决问题的能力。建议评定该同学的毕业设计成绩为“及格”。

指导教师:

年月日

答辩简要情况及评语

答辩小组组长:

年月日

答辩委员会意见

答辩委员会主任:

年月日

目录

摘要 (1)

Abstract (2)

第1章绪论 (3)

1.1 现代计算机应用系统 (3)

1.2 现代计算机应用系统开发的一般流程 (4)

1.3 本文的结构 (4)

第2章CPLD/FPGA基本特性 (6)

2.1 CPLD简介 (6)

2.1.1 可编程逻辑阵列(LAB) (7)

2.1.2 可编程I/O单元(IOC) (7)

2.1.3 可编程内部连线(PIA) (7)

2.2 FPGA简介 (8)

第3章软硬件开发环境 (10)

3.1 基本设计流程 (10)

3.2 硬件开发环境 (12)

第4章8位通用运算器设计方案 (14)

4.1 总体结构图 (14)

4.2 8位通用运算器模块 (14)

4.2.1 指令格式的设计 (14)

4.2.2 运算器对外接口 (15)

4.2.3 8位通用运算器内部结构图 (16)

4.3 按键测试模块 (17)

4.4 数码显示模块 (18)

第5章基本模块设计 (19)

5.1 ALU输入选择器的设计 (19)

5.2 ALU算术逻辑运算单元的设计 (20)

5.3 寄存器组RAM的设计 (22)

5.4 寄存器qreg的设计 (23)

5.5 输出选择器设计 (24)

5.6 键盘测试模块 (25)

5.6.1 4乘4按键 (25)

5.6.2 指令和数据生成模块 (26)

第6章测试 (29)

6.1 单元测试 (29)

6.2 基本指令和综合测试 (30)

第7章结束语 (33)

参考文献 (34)

致谢 (35)

附录 (36)

基于FPGA和VHDL实现的8位通用运算部件

摘要:本文介绍了在现代EDA技术支持下、基于CPLD/FPGA和VHDL开发的一个8位通用运算部件,系统讨论了其设计实现以及在基于CPLD/FPGA的GW48GP硬件开发–测试环境中构建与测试所涉及的系列问题、方法与技术。

在现代计算机科学技术水平下,开发计算机应用系统的途径之一就是利用现代EDA技术和超大规模的可编程器件CPLD/FPGA技术的最新成就,开发一个―片上系统‖/―片上可编程系统‖、制作定制/半定制的专用集成电路来实现其系统目标。本文所介绍的就是在这种指导思想下完成的一个简单的、局部性的、探索性的实例。

文中对现代EDA技术、CPLD/FPGA器件及其与现代计算机应用系统开发间的关联作了基础性的讨论,对通过这种方式制作一个8位通用运算部件的完整过程作了全面、系统的介绍。在制作此8位通用运算部件时,应用了广为流行的、标准化的VHDL作为硬件描述语言。

关键词:可编程逻辑器件;VHDL;片上系统;片上可编程系统

The Realization of 8-bit ALU based on FPGA & VHDL

Abstract:In this paper, the development of an 8 bit universal computing component was introduced based on CPLD/FPGA and VHDL with the support of modern EDA technology. The design and a series of concerning questions, methods and technologies based on CPLD/FPGA GW48GP hardware development to build and test was discussed systematically.

In the modern computer science and technology, one of the ways of the development of computer application systems is using the latest achievements of modern EDA technology and ultra-large-scale programmable devices CPLD/FPGA technology to develop system on a chip/system on a programmable chip and producing custom/semi-custom ASIC to achieve its system goals. Described in this paper is a simple, localized, and exploratory instance in this guiding ideology.

The paper discussed the association between modern EDA technology, the CPLD/FPGA devices, and modern computer application systems development briefly and made a comprehensive and systematic introduction of the complete process of designing an 8-bit universal computing unit in this way. Widely popular, the standardization of VHDL as a hardware description language is used in the throughout the design process. Keywords: programmable logic device; VHDL; system on a chip; system on a programmable chip

第1章绪论

1.1 现代计算机应用系统

在现代,完整的计算机技术包含三个相对独立的部分:硬件技术、软件技术和计算机应用技术。其中的“计算机应用技术”主要是指应用现代计算机硬件技术和软件技术已取得的成就去解决人们生产、生活中的各种实践问题,即人们通常所论的“计算机应用系统开发”。

所谓“计算机应用系统”,也称为“基于计算机的系统”或“以计算机为基础的系统”。它通常包含:计算机硬件、计算机软件、信号测量装置及将相应测量信号转化为计算机硬件可识别信号的装置、控制与信号执行装置(它们将计算机硬件输出转化为系统所操作的设备的有效行为)。

在现代,实现一个“计算机应用系统”的典型途径有两种:

1. 基于一个确定的计算机系统来构建。这个作为基础的计算机系统通常被称作待构建的计算机应用系统的“运行平台”。基于确定的“运行平台”,扩展其软硬件设施和必要的其它配套装置,即可得到所需的目标计算机应用系统。

2. 基于现代超大规模的可编程器件和现代EDA技术,开发一个“片上系统”/“片上可编程系统”,用一个“定制”/“半定制”的专用集成电路来实现目标计算机应用系统。

通过第一种途径(也是传统的途径)来实现计算机应用系统,其关键的工作是开发面向应用目标的扩展软件-应用软件。目前在大型数据处理系统等应用领域通常采用这种方式。在这种方式下,通常计算机应用系统的工作环境很好、人们要求系统呈现出极大的灵活性以便适应其系统环境的变化、系统需要扩展的硬件设施通常都是可通过采购来获得的、构建系统所需的其它配套装置种类较少且易于通过采购等方式获得。由此形成的系统的知识产权主要是所开发的应用软件的著作权。

通过第二种途径来实现计算机应用系统,其关键性的工作是在现代EDA技术的支持下在相应可编程器件中构建相应系统的硬件(这既包括通常意义上的计算机硬件,也包括扩展的其它数字电路)。目前在设备控制、过程控制、自动测量、数字信号处理、嵌入式系统应用等众多应用领域通常采用这种方式。在这种方式下,系统的软件部分的规模通常不大,人们通常是在配套的开发平台上与硬件开发同步地开发其软件设施并在交付前将其植入可编程芯片、完成联机测试并制作一体化的定制电路(在现代,EDA技术的发展已使得制作单个专用集成电路的费用降到了人们普遍可接受的水平)交付。由于构建的计算机应用系统是单片式的、个性化的,故形成的系统的知识产权是完整的计算机应用系统产品。

在EDA技术、可编程芯片技术高速发展的形势下,人们已开始尝试将大型信息

系统通过上述第二种途径来构建并获得了较理想的结果。由此有人预言,计算机技术今后的发展将进入一个基于可编程器件来构建计算机系统的新时代。

1.2 现代计算机应用系统开发的一般流程

当一个计算机应用系统采用上述第二种途径来实现时,相应的系统开发过程可概述为:

1. 进行目标系统的系统分析,确定对目标计算机应用系统的总体要求,确定目标系统的系统环境及其相互关联;

2. 确定满足系统目标要求的硬件、软件的总体特性以及两者间的相互关联;

3. 并行地完成系统软硬件的开发(包括独立的系统测试在内);

4. 实现系统软硬件在CPLD/FPGA中的系统集成,在相关系统设施(目前已有易得到的相应设施)的支持下完成目标系统的系统测试;

5. 将目标系统制作为―专用集成电路‖或―可编程的专用集成电路‖交付。

在这种计算机应用系统开发模式下,系统硬件部分的开发过程可概述为:

1. 进行问题的系统分析,明确系统的目标要求;

2. 确定系统的总体结构和系统开发方案;

3. 在相应EDA软件与硬件测试环境的支持下完成各相关部件的开发(这包括:形成部件的确定EDA描述、在EDA编辑工具的支持下将设计描述—原理图/用指定―硬件描述语言‖编写的设计描述程序—输入EDA系统、进行部件的时序分析与仿真处理、进行CPLD/FPGA芯片的引脚适配与重编译、下载EDA系统产生的目标文件到基于CPLD/FPGA的硬件测试环境、应用相应硬件测试环境对设计进行测试,经过这一系列的处理,即可得到相应部件的设计实现);

4. 在现代EDA技术下,由此开发的部件可如软件中的―模块‖那样简单地被引用以构成更复杂的硬件的设计资源;

5. 如开发部件那样完成硬件的设计和基于CPLD/FPGA器件的实现。

1.3 本文的结构

第2章简要地介绍了CPLD/FPGA的基本知识,目的是阐明这种可编程逻辑器件的基本结构和特点。

第3章为软件开发环境Quartus II 9.0的基本知识和康芯电子有限公司的计算机组成原理试验箱的介绍。试验箱包括Altera公司的Cyclone FPGA器件和外围按键,显示模块,可用于验证设计的正确性。

第4章为8位通用运算器和按键测试模块的总体结构设计。主要讨论了运算器的整体架构,及其用于测试的按键模块的接口设计。

第5章为基本模块的设计。该章描述了8位通用运算器各单元模块的设计和按键模块各单元模块的设计。

第6章是对8位通用运算器的测试。它综合了单元模块的测试和综合测试,并给出了该8位通用运算器能实现的指令的指令表。

第7章为结束语。该章对毕业设计过程做了总结,对设计的不足之处做了说明,并表达了对毕业设计的体会。

第2章CPLD/FPGA基本特性

可编程逻辑器件PLD(Programmable Logic Device)是20世纪70年代发展起来的一种新的集成器件。PLD是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合EDA技术可以快速方便地构建数字系统。本章主要阐述几类常用的大规模可编程逻辑器件的结构和工作原理。

2.1 CPLD简介

现在的PLD以大规模,超大规模集成电路工艺制造的CPLD,FPGA为主。前面曾提到多种PLD器件在实用中已被淘汰,大致原因如下:

(1)阵列规模较小,资源不够用于数字系统。当设计较大的数字逻辑时,需要多片器件,性能,成本及设计周期都会受到影响。

(2)片内寄存器资源不足,且寄存器的结构限制较多(如有的器件要求时钟共用),难以构成丰富的时序电路。I/O不够灵活,如三态控制等,限制了片内资源的利用率。

(3)编程不便,需要专用的编程工具,对于使用熔丝型的简单PLD更是不便。

上述原因导致了,简单PLD退出了历史舞台,取而代之的是CPLD和FPGA。CPLD由可编程逻辑的功能块围绕一个可编程互连矩阵构成。由固定长度的金属线实现逻辑单元之间的互连,并增加了I/O控制模块的数量和功能。可以把CPLD的基本结构看成由可编程逻辑阵列(LAB)、可编程I/O控制模块和可编程内部连线(PIA)等三部分组成。

图2-1 CPLD内部结构

2.1.1 可编程逻辑阵列(LAB)

可编程逻辑阵列由若干个可编程逻辑宏单元(Logic Macro Cell,LMC)组成,LMC内部主要包括与阵列、或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。

(1)乘积项共享结构

在CPLD的宏单元中,如果输出表达式的与项较多,对应的或门输入端不够用时,可以借助可编程开关将同一单元(或其他单元)中的其他或门与之联合起来使用,或者在每个宏单元中提供未使用的乘积项给其他宏单元使用。

(2)多触发器结构

早期可编程器件的每个输出宏单元(OLMC)只有一个触发器,而CPLD的宏单元内通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出不与输出端相连,但可以通过相应的缓冲电路反馈到与阵列,从而与其他触发器一起构成较复杂的时序电路。这些不与输出端相连的内部触发器就称为―隐埋‖触发器。这种结构可以不增加引脚数目,而增加其内部资源。

(3)异步时钟

早期可编程器件只能实现同步时序电路,在CPLD器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过数据选择器或时钟网络进行选择。此外,OLMC内触发器的异步清零和异步置位也可以用乘积项进行控制,因而使用更加灵活。

2.1.2 可编程I/O单元(IOC)

CPLD的I/O单元(Input/Output Cell,IOC),是内部信号到I/O引脚的接口部分。根据器件和功能的不同,各种器件的结构也不相同。由于阵列型器件通常只有少数几个专用输入端,大部分端口均为I/O端,而且系统的输入信号通常需要锁存。因此I/O 常作为一个独立单元来处理。

2.1.3 可编程内部连线(PIA)

可编程内部连线的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自输入端的信号,并将宏单元的信号送目的地。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部的设计。

2.2 FPGA简介

除CPLD外,FPGA是大规模可编程逻辑器件的另一大类PLD器件。FPGA(现场可编程门阵列)采用另一种可编程逻辑形成方式,即可编程的查找表LUT(Look Up Table)结构。LUT是可编程的最小逻辑单元。

图2.-2 FPGA查找表单元

图2-3 FPGA查找表内部结构

一个N输入查找表(LUT,Look Up Table)可以实现N个输入变量的任何逻辑功能,如N输入―与‖、N输入―异或‖等。输入多于N个的函数、方程必须分开用几个查找表(LUT)实现。

图2-4查找表“与”逻辑

N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般输入多于N 个的逻辑函数,其查找表采用多个逻辑块级连的方式。N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般输入多于N个的逻辑函数,其查找表采用多个逻辑块级连的方式。

图2-5 查找表的级联方式

查找表中的数就是SRAM阵列中所存逻辑函数的真值,查找表的输入就是SRAM 的地址输入。

用LUT实现逻辑函数的过程:

将逻辑函数的真值表事先存储在LUT的存储单元中,当逻辑函数的输入变量取不同组态时,相应组态的二进制取值构成SRAM的地址,选中相应地址对应的SRAM 单元,也就得到了输入变量组合对应的逻辑值。

第3章软硬件开发环境

在EDA工具的设计环境中,有多种途径来完成目标系统的表达和输入,如HDL 的文本输入方式,原理图输入方式,状态图输入方式,以及混合输入方式等。相比之下,HDL文本输入方式最基本,最直接。本章将讨论基于Quartus II 9.0的VHDL文本输入设计流程,包括设计输入,综合,适配,仿真测试和编程下载等重要方法。硬件平台选取的是杭州康芯电子有限公司的现代计算机组成原理实验系统。

3.1 基本设计流程

Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是Quartus II 9.0版,该软件有如下几个显著的特点:

1、Quartus II 的优点

该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、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 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的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

3、Quartus II对第三方EDA工具的支持

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉

的第三放EDA工具。

Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。

用Quartus II软件进行数字系统开发的流程如图3-1所示,包括以下步骤。

图3-1 Quartus II设计开发流程

(1)设计输入:包括原理图输入、HDL文本输入、EDIF网表输入、波形输入等几种方式。

(2)编译:先根据设计要求设定编译方式和编译策略,如器件的选择、逻辑综合方式的选择等;然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,并产生报告文件、延时信息文件及编程文件,供分析、仿真和编程使用。

(3)仿真与定时分析:仿真和定时分析均属于设计校验,其作用是测试设计的逻辑功能和延时特性。仿真包括功能仿真和时序仿真。定时分析器可通过三种不同的分析模式分别对传播延时、时序逻辑性能和建立/保持时间进行分析。

(4)编程与验证:用得到的编程文件通过编程电缆配置PLD,加入实际激励,进行在线测试。

在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重新测试。

图3-2 Qurartus II 9.0开发环境

3.2 硬件开发环境

本系统硬件开发环境选择的是杭州康芯电子有限公司的现代计算机组成原理实验系统。除按键模块和GWA1C6A型适配板外,本设计所用到的实验系统主要模块如图3-3。

图3-3 现代计算机组成原理实验系统

GWA1C6A适配板包含FPGA芯片。该芯片是Altera公司生产的Cyclone系列芯片,型号为EP1C12Q240C8,有240个引脚。

相关文档
相关文档 最新文档