毕业论文基于fpga的16位寄存器设计说明书_第1页
毕业论文基于fpga的16位寄存器设计说明书_第2页
毕业论文基于fpga的16位寄存器设计说明书_第3页
毕业论文基于fpga的16位寄存器设计说明书_第4页
毕业论文基于fpga的16位寄存器设计说明书_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计计算机科学系算机科学系 2013 届本科届本科毕业设计毕业设计( (论论文)文) 基于基于 FPGAFPGA 的的 1616 位寄存器的设计位寄存器的设计 专 业 计算机科学与技术计算机科学与技术 姓 名 XXX 学 号 xxxxxxxx 指 导 教 师 XXX 完 成 时 间 2013 年年 6 月月 6 日日 陕西 商洛 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包括其他人已经发表或撰写过的研究成果,也不包 含为获得商洛学院或其他教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示了谢意。 学位论文作者签名:_日期:_ 关于论文使用授权的说明 本人完全了解商洛学院有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手 段保存论文。 公开 保密(_年_月) (保密的学位论文在解密 后应遵守此协议) 签名: 导师签名: 日期: 商洛学院学位论文 I 基于基于 FPGAFPGA 的的 1616 位寄存器的设计位寄存器的设计 摘要:随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日 新月异,寄存器作为计算机的一个重要部件,移位寄存器更是如此,从先前的只能做 简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行-并 行转换、数据运算和数据处理功能的移位寄存器。移位寄存器正在向着功能强,体积 小,重量轻等方向不断发展。 系统使用 EDA 技术设计了具有移位功能的寄存器,采用硬件描述语言 VHDL 进 行设计,然后进行编程和调试,再进行时序仿真等,在 Quartus工具软件环境下,采 用自顶向下的设计方法。本设计根据移位寄存器的功能设计了三种不同的寄存器:双 向移位寄存器、串入串出(SISO)移位寄存器、串入并出(SIPO)移位寄存器。整个设计过 程简单,使用方便。功能齐全,精度高,具有一定的开发价值。 关键词:EDA;VHDL;移位寄存器 摘 要 II Design of 16 bit register based on FPGA Abstrsct: With the social development, science and technology are constantly progress. Particularly the computer industry, it can be said is changing, the register as an important component of a computer, especially a shift register, can only be done from the previous simple function registers the left or right to a register is now widely applied code, data serial - parallel conversion, data computing and data processing functions of the shift register. Shift register is toward strong function, small size, light weight and direction of continuous development. System uses EDA technology designed with shift register function, using hardware description language VHDL design, and programming and debugging, re-timing simulation, etc., in Quartus software tool environment, using the top-down design approach. The design of the functional design of the shift register three different registers: bidirectional shift register, the string into the string out (SISO) shift register, the string into and out (SIPO) shift register. Throughout the design process is simple, easy to use. Full-featured, high precision, has a certain value for development. Key words:EDA; VHDL; shift register 商洛学院学位论文 III 目目 录录 第一章第一章 绪论绪论 1 1.1 课题目的 1 1.2 课题的内容 1 1.3 课题的意义 2 1.4 论文结构 2 第二章第二章 技术背景技术背景 .4 2.1 EDA 简介.4 2.2 FPGA 概述5 2.2.1 FPGA 开发编程原理 6 2.2.2 FPGA 基本结构.6 2.2.3 FPGA 系统设计流程 7 2.3 VHDL 语言与 QUARTUS .8 2.3.1 VHDL 语言简介 8 2.3.2 Quartus简介.10 2.3.3 VHDL 的设计流程 .12 2.4 系统方案分析 13 第三章第三章 移位寄存器设计移位寄存器设计 .15 3.1 设计规划15 3.2 各模块工作原理及设计 .15 3.2.1 移位寄存器的工作原理 .15 3.2.2 双向移位寄存器的设计 .15 3.2.3 串入串出(SISO)移位寄存器的设计.16 3.2.4 串入并出(SIPO)移位寄存器的设计.16 3.2.5 移位寄存器的设计总结 .16 第四章第四章 系统仿真系统仿真 18 4.1 双向移位寄存器仿真图分析18 4.2 串入串出(SISO)移位寄存器仿真图分析 .19 4.3 串入并出(SIPO)移位寄存器仿真图分析 .19 4.4 分析仿真结果20 参考文献参考文献 .21 摘 要 IV 附附 录录 .22 谢谢 辞辞 .25 商洛学院学位论文 1 第一章第一章 绪论绪论 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说 是日新月异,寄存器作为计算机的一个重要部件,移位寄存器更是如此,从先 前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、 实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。移位寄 存器正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是 一个基于超高速硬件描述语言VHDL对移位寄存器进行编程实现6。 近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈 入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向 于为EDA服务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技 术将归结为更加标准、规范的EDA工具和硬件描述语言HDL的运用;(4)数字 系统的芯片化实现手段已成主流。因此利用计算机和大规模复杂可编程逻辑器 件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。 1.11.1 课题目的课题目的 在计算机中常要求寄存器有移位功能。如在进行乘法时,要求将部分积右 移;在将并行传送的数转换成串行数时也需要移位。因此,移位寄存器的设计 是必要的。 本次设计的目的就是利用计算机组成原理中移位寄存器的相关知识,通过 课程设计更加深入的了解移位寄存器的功能。了解EDA技术,并掌握VHDL硬 件描述语言的设计方法和思想,通过学习的VHDL语言结合计算机组成原理中 的相关知识理论联系实际,掌握所学的课程知识。通过对移位寄存器的设计, 巩固和综合运用所学知识,提高对计算机组成原理的理解。 1.21.2 课题的内容课题的内容 本毕业设计主要是关于移位寄存器的设计,它不仅描述了设计所需要多种 技术的介绍,例如EDA、FPGA、VHDL语言、Quartus II软件环境等,并且对移 位寄存器的三种设计进行了时序仿真,包括左移、右移、串行输入及仿真等功 能。本设计根据移位寄存器功能的不同,设计了三种移位寄存器。 (1) 双向移位寄存器; (2) 串入串出(SISO)移位寄存器; 第一章 绪论 2 (3) 串入并出(SIPO)移位寄存器。 1.3 课题课题的意义的意义 移位寄存器一个最普遍的应用,是数据传输过程中,串行接口和并行接口 的转换。这在许多并行传输一组比特数据的电路中很有用,因为它们常常也使 用了在结构上更为简单的串行接口。移位寄存器可以被用作一个简单的延迟电 路。许多双向移位寄存器可以在并行传输中作为堆栈的硬件实现方式5。 串入并出形式的移位寄存器经常与微处理器连接,这样做的原因主要是需 要的引脚数多于微处理器能够提供的数量。通过使用移位寄存器,可以只依靠 两三个引脚,而被控制设备的控制位分别连接在移位寄存器的并行输出端。由 此,微处理器可以以串行的方式一次写入这些设备的各个控制位。类似的,并 入串出接法的移位寄存器在多个外部设备向微处理器传输数据时较为常用,外 部设备以并行的方式将数据输入到移位寄存器里,然后移位寄存器以串行的方 式将数据一位一位地输出给微处理器,这样,外部设备的大量信息可以通过少 数几条线到达微处理器。 在早期的计算机中,移位寄存器被用来进行数据处理:两个相加的数被存 储在两个移位寄存器里,然后它们按照时间脉冲被输出到算术逻辑单元,结果 中多出的一位以反馈的形式重新被输入到其中一个移位寄存器(累加器)。注 意两个一位二进制数相加的结果只可能是一位(如0+0=0,0+1=1)或者两位 (1+1=10)。 一些计算机语言内置了移位指令,这类指令可以让二进制数据在寄存器中 进行左移或右移操作。左移或右移一位,相当于乘以2或除以2。 一些1970年代早期的设备曾以类似延迟线存储器的方式用过非常大规模的 串入串出移位寄存器,其规模达到上千位。这类存储器有时被称为循环存储器 (circulating memory)。例如,DataPoint 3300将其25列、72行的字符显示数据 存储在54个200位的移位寄存器里,以6个堆栈、每个堆栈9个包的形式排列,提 供了1800个6位字符的存储能力。 1.4 论文结构论文结构 本书第一章:绪论 第一章主要介绍了目前寄存器的发展及概况,指明了本设计的目的、内容 以及研究思路,根据本设计详细地阐述了移位寄存器的应用。 本书第二章:技术背景 第二章主要介绍了进行移位寄存器时序仿真所需要用到的多种技术背景。 商洛学院学位论文 3 包括EDA、FPGA原理和基本结构、VHDL基础语言和Quartus II 6.0开发软件环 境。 本书第三章:移位寄存器的设计 第三章主要介绍了基于VHDL语言设计的移位寄存器,并展示了三个模块 的工作原理框图。 本书第四章:系统仿真 第四章主要说明了根据前面的设计进行时序仿真,对比时序仿真图进行详 解。并进行了仿真结果的分析。 第二章 技术背景 4 第二章第二章 技术背景技术背景 2.12.1 EDAEDA 简介简介 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪 90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助 测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以 计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件, 然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和 仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA 技术的出现,极大地提高了电路设计的效率和可行性,减轻了设计者的劳动强 度。根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段3。 1.CAD阶段 CAD阶段是从20世纪60年代中期到20世纪80年代初期,该阶段的特点是一 些单独、的工具软件,主要有pcb布线设计、电路模拟、逻辑模拟及版图的绘制 等,通过计算机的使用,从而将设计人员从大量繁琐重复的计算和绘图工作中 解脱出来。这个时期的EDA一般称为CAD(计算机辅助设计)。 2.CAE阶段 这个阶段在击集成电路与电子设计方法学及设计工具集成化方面取得了许 多成果。各种设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、 版图自动布局以及各种单元库已齐全。由于采用了统一数据管理技术,因而能 够将各个工具集成为一个CAE(计算机辅助工程)。 3.EDA阶段 电子技术发展到EDA阶段,期中微电子技术以惊人的速度发展,其工艺水 平达到深亚微米级,在一个芯片上可集成数百万乃至上千万个晶体管,工作速 度可达到吉兆赫,这为制造出规模更大、速度更快和信息容量很大的芯片系统 提供了条件,但同时也对EDA系统提出了更高的要求,并促使了EDA的发展。 下面简单介绍这个阶段EDA技术的主要特征: (1)高层综合的理论与方法取得较大进展,将EDA设计层次有RTL级提高 到了系统级,分为逻辑综合和测试综合。 (2)采用硬件描述语言来描述10万门以上的设计,并形成了VHDL和 Verilog HDL两种标准硬件描述语言。它们均主持不同层次的描述,使得复杂IC 的描述规范化,便于传递、交流、保存于修改,也便于重复使用。随着VHDL 和Verilog HDL语言的完善,设计工程师已经习惯用语言而不是电路来描述电路。 商洛学院学位论文 5 原因其实很简单,随着半导体工艺的快速发展,设计规模变得非常庞大,功能 非常复杂,传统的电路图的方法已经不可能适应当前的设计要求。 (3)采用平面规划技术对逻辑综合和物理版图设计进行联合管理,做到在 逻辑综合早期设计阶段就考虑到物理设计信息的影响。通过这些信息,设计者 能更进一步进行综合与优化,并保证所做的修改只会提高性能而不会对版图设 计带来负面影响。 (4) 可测性综合设计。随着ASIC的规模与复杂性的增加,测试难度与费用 急剧上升。由此产生了将可测试性电路结构制作在ASIC芯片上的想法,于是开 发了扫描插入、BLST(内建自测试)、边界扫描等可测性设计(DFT)工具,并 已集成到EDA系统中。其典型产品有Compass公司的Test Assistant和Mentor Graphics公司的LBLST Architect、BSD Architect、DFT Advisor等。 (5)为带有嵌入IP(知识产权)模块的ASIC设计提供软硬件协同系统设 计工具。协同验证弥补了硬件设计和软件设计流程之间的空隙,保证了软硬件 之间的同步协调工作。协同验证是当今系统集成的核心,它以高层系统设计为 主导,以性能优化为目标,融合逻辑综合、性能仿真、形式验证和可测性设计, 产品如Mentor Graphics公司的Seamless CAV。 (6)建立并行设计工程CE框架结构的集成化设计环境,以适应当今ASIC 的如下一些特点:数字与模拟店里并存,硬件与软件设计并存,产品上市速度 要快。这种集成化设计环境中,使用统一的数据管理系统与完善的通讯管理系 统,由若干相关的设计小组共享数据库和知识库,并行地进行设计,而且在各 种平台之间可以平滑过渡。 总之,EDA开发工具经历了这么多年的发展和变化,已经成为硬件设计工 程师不可少的设计手段。随着知识的不断更新和需求的不断牵引,EDA工具在 未来将会有更大的发展。 2.22.2 FPGAFPGA 概述概述 FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之 相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的 简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两 者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任 何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或 是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一 个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利 用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用 第二章 技术背景 6 CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统 的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展, 同时也大大推动了EDA软件和硬件描述语言HDL的进步4。 2.2.1 FPGA 开发编程原理 硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实 现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。 CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要 有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx 的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三 方工具(如FPGA Express、Modelsim、Synposys SVS等)。具体的设计输入方 式有以下几种: 1.VHDL语言方式。VHDL既可以描述底层设计,也可以描述顶层的设计, 但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所 能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。 2.图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。 有的软件3种输入方法都支持,如Active-HDL。MAX+plusII 图形输入方式只支 持电路原理图描述和波形描述两种。电路原理图方式描述比较直观和高效,对 综合软件的要求不高。一般大都使用成熟的IP核和中小规模集成电路所搭成的 现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片 利用率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主 要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态, 然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述, 送去综合软件综合到可编程逻辑器件的内部。由于状态机到VHDL语言有一种 标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用 率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直 接描述输入与输出的波形关系。这种输入方式最后所能达到的工作速度和芯片 利用率也是主要取决于综合软件。 2.2.2 FPGA 基本结构 FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由 可编程的互连资源连接这些逻辑功能块来实现不同的设计。 FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组 成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、 商洛学院学位论文 7 输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)。 可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个 阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑 与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长 度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以 及IOB之间连接起来,构成特定功能的电路。 2.2.3 FPGA 系统设计流程 一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几 个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实 现,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法 已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺, 因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针 对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的 工作流程如图2-2所示。 系统划分 编译器 代码级功能仿真 综合器 适配前时序仿真 适配器 CPLD/FPGA实现 适配后仿真模型 适配后时序仿真 适配报告 ASIC 实现 VHDL 代码或图形方式输入 仿真综合库 器件编程文件 图图2.1 CPLD/FPGA系统设计流程系统设计流程 第二章 技术背景 8 流程说明: 1.工程师按照“自顶向下”的设计方法进行系统划分。 2.输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用 图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。 3.将以上的设计输入编译成标准的VHDL文件。 4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤 适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大 大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。 5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表 文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯 片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支 持下才能完成。 6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器 件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。 7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映 射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。 8.在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源 利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件 编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到 器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯 片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同 速度和品质的器件,直至满足设计要求。 最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片 CPLD/FPGA中。 2.32.3 VHDLVHDL 语言与语言与 QuartusQuartus 2.3.1 VHDL 语言简介 VHDL 的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部 确认为标准硬件描述语言2。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多 具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般 商洛学院学位论文 9 的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体 (可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端 口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对 一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以 直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的 基本点。 VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然 具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以 下优点: (1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可 以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现, 这是 其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶 向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持 层次化设计方法。 (2)VHDL语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也 可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构 描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和 传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力 还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也 支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在:对于同一个硬件电路的 VHDL 语 言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一 个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设 计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不 需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用 多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL语言采用基于库 (library) 的设计方法。在设计过程中,设计人员可 第二章 技术背景 10 以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路 开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用 以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复 用。 由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语 言, 因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬 件电路设计的工作量, 缩短开发周期。 2.3.2 Quartus简介 Altera公司的CPLD/FPGA设计工具软件Quartus是适合单芯片可编程系统 (SOPC)的最全面的设计环境3。 Altera公司(http:/ )的逻辑方案涉及的工业应用非常广泛, 包括:有线通信、无线网络、数据通信、计算机、高容量处理器、医疗设备、 外围设备等。从网络交换设备到接入网、宽带无线通信、IP电话网关、Internet 服务器、视频服务器、路由器、图像处理、工业控制等,皆有其产品的应用。 Quartus开发工具支持的Altera公司主流FPGA全部系列,器件支持如表所 示。 表表2.1 器件说明器件说明 器 件 说 明 Stratix 最高的性能,最高的密度,大量的存储资源,特性丰富的平台 StratixGX 最高的性能结构,高速串行收发器 Cyclone 低成本,替代ASIC,适用于价格敏感的应用 APEX 高密度,高性能,支持高速差分I/O标准 Mercury 高性能,高带宽,中密度,包括时钟数据恢复(CDR)支持 Excalibur 高性能,处理器硬核解决方案 APEX20K/KE/KE 高性能,中到高密度 FLEXl0K/KE 低成本,低到中密度 ACEX 1K 低成本,低到中密度 HardCopy 高密度,大批量ASIC替换器件 Quartus系统特点总览 1.第一款从FPGA至掩膜器件的完整设计工具。 Quartus新版软件可以在FPGA开发的初期就提供HardCopy掩膜器件的设 计性能参数。 2.基于模块的设计方法提高工作效率 商洛学院学位论文 11 Quartus软件为用户提供了LogicLock基于模块的设计方法,便于用户独立 设计和实施各种设计模块,并且在将模块集成到顶层工程时仍可以维持各个模 块的性能。由于每一个模块都只要进行一次优化,因此LogicLock流程可以显著 缩短设计和验证的周期。 3.更快集成IP Quartus软件包括SOPC Builder工具,SOPC Builder针对可编程片上系统 (SOPC)的各种应用自动完成IP核(包括嵌入式处理器、协处理器、外设、存储 器和用户设定的逻辑)的添加、参数设置和连接等操作。 4.前期I/O分配和验证 设计软件可以在设计文件完成之前进行I/O分配和验证。 芯片编辑器(ChipEdit) 新的芯片编辑器允许设计者在完成布局布线之后查看Altera器件的内部详细 结构,增量编辑逻辑单元(LE)和FO单元的配置和锁相环参数。 5.存储器编译器 用户可以使用Quartus软件中提供的存储器编译器功能对Altera FPGA中的 嵌入式存储器进行轻松管理。增加了针对FIFO和RAM读写操作的基于现有设置 的波形动态生成功能。 6.增量编译 少量修改VHDL或VerilogHDL源文件,用Quartus软件或第三方综合软件 进行逻辑综合之后,新的增量布线特性可以在布局布线过程中把逻辑布局限制 在新的或改变的逻辑中。 7.支持CPLD、FPGA和基于HardCopy的ASIC 设计流程可独立执行 Quartus软件是全新的体系,设计流程的主要阶段都可独立执行,这些阶 段包括综合、映射、装配、设计规则检查、时间分析和器件编程。 使用全新的命令行和脚本功能自动化设计流程 用户可以使用命令行或Quarras软件中的图形用户界面(GUl)独立运行 Quartus软件中的综合、布局布线、时序分析以及编程等模块。除了提供 Synopsys设计约束(SDC)的脚本支持以外,Quartus软件中还包括了易用的工 具命令语言(Tcl)界面,允许用户使用该语言来创建和定制设计流程并满足用户 的需求。 8.高级教程帮助深入了解Quartus的功能特性 Quartus软件提供详细的教程,覆盖从工程创建、普通设计、综合、布局 布线到验证等在内的各种设计任务。 第二章 技术背景 12 9.其他改变 同时发布Modelsim-Altera5.7c仿真软件,仿真时间可缩短20;License采 用Flexlm 8.0进行管理,用户需要升级老版本License;操作系统支持Windows XP/2000/NT,Solaris 7.8,Red Hat Linux7.1,HP-UX 11.0,不再支持官方 Windows98。 (1)Quartus4.0的主要改进如下: 1增强CGI功能,更友善的人机界面。 2将编译模式、仿真模式、软件模式统一到了一起。 3新的Assignment菜单,可以在一个Setting窗口中完成所有项目设置。 4新的Assignment Editor菜单,可以在友好的表格界面中,进行所有资源分 配和所有约束设置。 5新的Remove Assignment窗口,可以方便删除各种不同的设置。 6提供一个新的Memory Compiler,可以在MegaWizard Plug-In Manager的 界面中更方便地生成各种类型的Memory。 (2)布局布线 利用布线后的延时信息,实现对网表的二次优化,提高布线效果。用户能 够手工控制逻辑复制(对部分器件)Timing Closure Floorplan Improvements。 增强MAX3000、7000器件布线算法,提高Fmax,同时减少资源占用率,能够自 动在底层显示关键路径。 (3)校验 增强的LogicLock功能; 增强的SignTap功能; 支持HardCopy功耗估计。 (4)其他 支持一批StartixGX,Cyclone等新器件。 (5)扩大Altera软件的技术领导地位 Quartus软件版本4.0包括简化和加速大容量FPGA设计的新技术,包括: 存储器、编译器、波形发生器(产生存储器结构操作的波形显示),基于存储器 参数化和配置选择。此特性使不同存储器配置设置效果更易于理解。 一个完整的FPGA/CPLD开发设计流程应当包括电路设计与输入、功能仿真、 综合、综合后仿真、实现、布线后仿真、下载调试等主要步骤。 Quartus开发工具分为综合工具、仿真工具、实现工具、辅助设计工具和 其他工具等5类。 商洛学院学位论文 13 2.3.3 VHDL 的设计流程 1.设计规范的定义 明确设计的目的,进行设计的总体规划。分析设计要求,以及自己要达到 的设计目的和目标。 2.采用VHDL进行设计描述 这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及 是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计。 3.VHDL程序仿真 对于某些人而言,仿真这一步似乎是可有可无的。但是对于一个可靠的设 计而言,任何设计最好都进行仿真,以保证设计的可靠性。另外,对于作为一 个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。 4.综合、优化和布局布线 综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或 者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的 利用;布局布线,指的是将逻辑关系转化成电路连接的方式。 5.仿真 这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的 设计要求。 2.42.4 系统方案分析系统方案分析 基于FPGA的片上可编程系统以高速的FPGA为数字平台,基于直接数字频 率合成和数字调制技术原理,虽然专用DDS芯片的功能也比较多,但控制方式 确实固定的,因此不一定是我们所需要的。利用FPGA则可以根据需要方便地实 现比较复杂的功能,并能简化控制及接口,有利于提高精度、可靠性和灵活性, 这也是现代电子技术发展的重要方向,如图2-3所示。 第二章 技术背景 14 图图 2.2基于基于FPGA的片上可编程系统的片上可编程系统 基于FPGA的片上可编程系统为我们此次设计的方案。利用新技术、新的解 决方案来实现题目的各项功能,缩短设计时间,以便剩下更多的时间来进行严 格的测试以及发挥更多的扩展功能。 FPGA具有丰富的门电路和逻辑功能,它运用IP核,将处理器、存储器、 I/O接口等系统设计需要的功能模块到一块芯片上,构建成一个可编程的偏上系 统,具有灵活的设计方式,可裁剪、可扩充、可升级,并具备软硬件在系统中 可编程的功能。在可编程期间内,还具有小容量高速RAM资源和足够的可编程 逻辑资源,用于实现其他的附加逻辑。 根据题目要求,并综合考虑FPGA的优越性,制定了整体的设计方案:相位 累加器核心,将微处理器、总线、外设、数字频率合成器、存储器和I/O接口等 器件集成在一片FPGA上,外部电路采用D/A转换、低通滤波和功率放大及幅度 调节等环节。FPGA完成以下四大方面的功能: (1)控制键盘和显示器; (2)根据输入的频率值,通过数据计算得到频率控制字; (3)实现数字频率合成器; (4)实现对D/A转换的控制; 这种设计方式充分利用了FPGA的资源,减少了CPU与外设的接口,很大程 度上提升了系统的速度、可靠性以及系统的成本。 商洛学院学位论文 15 第三章第三章 移位寄存器设计移位寄存器设计 3.13.1 设计规划设计规划 本设计是基于VHDL语言设计的移位寄存器,由于移位寄存器是计算机中 非常重要的部件,所以本设计采用了不同的方法来实现寄存器的移位功能,具 体设计的移位寄存器有:双向移位寄存器、串入串出(SISO)移位寄存器、串 入并出(SIPO)移位寄存器。由于涉及内容比较基础,所以设计比较简单1。 3.23.2 各模块工作原理及各模块工作原理及设计设计 3.2.1 移位寄存器的工作原理 用VHDL语言描述任意分频数的分频器,并实现占空比任意设置。每当系统时 钟上升沿到来时,计数器就加计数一位(可任意设置为N位),当计数值到达预 定值时就对分频时钟翻转,这样就会得到一个连续的时钟脉冲。 当移位信号到来时,移位寄存器就对存储的二进制进行移位操作。移位寄存 方式可自行设置(可左移,右移,一位移,多位移位寄存)。 3.2.2 双向移位寄存器的设计 电路符号:双向移位寄存器工作原理框图。如图3.1所示。 TDIRREG CLK OPL DIN OPR DIR 图图3.1 双向移位寄存器原理框图双向移位寄存器原理框图 双向移位寄存器由VHDL程序实现,源代码参附录一。 第三章 移位寄存器设计 16 3.2.3 串入串出(SISO)移位寄存器的设计 电路符号:串入串出(SISO)移位寄存器工作原理框图。如图3.2所示。 SISO DATA_IN DATA_OUT CLK 图图3.2 串入串出(串入串出(SISO)移位寄存器图元符号)移位寄存器图元符号 串入串出(SISO)移位寄存器由VHDL程序实现,源代码参附录二。 3.2.4 串入并出(SIPO)移位寄存器的设计 电路符号:串入并出(SIPO)移位寄存器工作原理框图。如图3.3所示。 SIPO D_IN D_OUT30 CLK 图图3.33.3 串入并出(串入并出(SIPO)移位寄存器工作框图)移位寄存器工作框图 串入并出(SIPO)移位寄存器由VHDL程序实现,源代码参附录三。 3.2.5 移位寄存器的设计总结 根据上述设计,移位寄存器可以被用作一个简单的延迟电路。许多双向移 位寄存器可以在并行传输中作为堆栈的硬件实现方式。串入并出形式的移位寄 商洛学院学位论文 17 存器经常与微处理器连接,因为它需要的引脚数多于微处理器能够提供的数量。 通过使用移位寄存器,只要两三个引脚,而被控制设备的控制位分别连接在移 位寄存器的并行输出端。由此,微处理器可以根据串行的方式一次写入这些设 备的各个控制位。 通过上述设计的原理框图,我们将在下一章内容中对其进行时序仿真,并 进行仿真结果分析。 第四章 系统仿真 18 第四章第四章 系统仿真系统仿真 仿真功能为设计者提供验证设计逻辑和时序正确性的环境。一般地,若设 计者已经得到了硬件电路板或开发板,那么建议设计者跳过整个工程的仿真过 程而直接在调试阶段进行验证。这样做的原因是用户的计算机大都不能满足要 求,而比较大的工程的仿真需要很大的计算量,从而会耗费很多的时间。但是, 一些运算量小的底层模块的功能验证可以借助仿真来实现;如果用户具备硬件 电路板或开发板,仿真最好只用于一些小的模块的功能和时序的验证。 Quartus II允许用户使用EDA仿真工具或Quartus II Simulator对设计进行功能 验证与时序仿真。期中,Quartus II Simulator可以对工程中的任何设计进行仿真。 根据所需的信息类型,可以进行功能仿真以测试设计的逻辑功能,也可以进行 时序仿真,在目标器件中测试设计的逻辑功能和最坏情况下的时序,或者采用 Fast Timing模型进行时序仿真,在最坏的器件速率等级上仿真可能快的时序条 件。Quartus II软件可以仿真整个设计,也可以仿真设计的任何部分。用户可以 指定工程中的任何设计实体为顶层设计实体,并仿真顶层实体及其所有附属设 计实体。 Quartus II 软件仿真包括一下四个步骤: (1)建立波形输入文件; (2)设置节点的验证时序; (3)设置仿真参数; (4)运行时序仿真。 4.14.1 双向移位寄存器仿真图分析双向移位寄存器仿真图分析 双向移位寄存器的仿真图,如图 4.1 所示。 图图 4.1 双向移位寄存器仿真图双向移位寄存器仿真图 对其仿真图进行仿真分析:dir为一个控制信号,clk为时钟控制信号,din为 商洛学院学位论文 19 输入信号,表示要存入的数据,op_r表示右移(从高位到低位)后得到的结果, op_l表示左移(从低位到高位)后得到的结果。如图所示:当dir为0时,op_r输 出的是右移的结果,遇到一个clk的下降沿时,输入数据右移一位。op_l输出的 是左移的结果,遇到一个clk的下降沿时,输入数据左移一位。当dir为1时, op_r与op_l与上述相反。 4.24.2 串入串出(串入串出(SISOSISO)移位寄存器仿真图分析)移位寄存器仿真图分析 串入串出(SISO)移位寄存器的仿真图,如图 4.2 所示。 图图 4.2 串入串出(串入串出(SISO)移位寄存器的仿真图)移位寄存器的仿真图 对其仿真图进行仿真分析:clk为时钟控制信号,data_in为输入信号,表示 要存入的数据。 data_out为输出信号,表示输出的数据。如图所示:当data_in串行输入数据 时,遇到一个时钟信号clk,输入数据向右移位,并串行输出数据。 4.34.3 串入并出(串入并出(SIPOSIPO)移位寄存器仿真图分析)移位寄存器仿真图分析 串入并出(SIPO)移位寄存器的仿真图,如图 4.3 所示。 图图 4.3 串入并出(串入并出(SIPO)移位寄存器仿真图)移位寄存器仿真图 对其仿真图进行仿真分析:clk为时钟控制信号,d_in为串行输入信号, d_out为四位并行输出信号,串行输入信号四位为一组,该信号一位一位的按顺 第四章 系统仿真 20 序存入寄存器。如图所示:当串行输入四位数据时,输出一次性并行输出。 4.44.4 分析仿真结果分析仿真结果 仿真结束后,会弹出仿真的Report文件,在文件中会包括仿真的概述、参 数设置、资源使用率以及得到的输出结果。用户可以根据观察仿真输出的波形 以及时序是否满足设计需要,逻辑是否正确,工程所要求的功能是否达到等。 如果存在问题,则根据波形所反映出的问题对设计进行修改,然后再次进行仿 真,直至达到满意的结果5。 仿真是一个复杂的过程,这里所说的复杂并不是操作,而是大部分情况下, 我们所做的设计不一定成功,都会出现这样或那样的问题。对各种问题的解决 还需要读者的经验积累。只有通过不断的实践,不断的学习,才能提高解决问 题的能力和设计的正确性。另外,仿真只适合于一些小系统或某个功能模块的 功能验证,而不适合庞大系统的功能验证。因为复杂系统的仿真时间一般都是 比较长的而且仿真的数据量也很有限,所以,作者建议对某些功能模块进行验 证时可以使用仿真,而对整个系统进行验证时最好使用SignalTap II逻辑分析仪、 SignalProbe以及外部逻辑分析仪示波器等工具进行电路板级的调试,这将会节 省设计者大量的调试时间。 商洛学院学位论文 21 参考文献参考文献 1潘松,潘明。现代计算机组成原理。科学出版,2007 2侯伯亨,顾新。VHDL 硬件描述语言及数字逻辑电路设计。西安:西安电子科

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论