HCL系统内存外设实现和流水初步设计.doc

上传人:滴答 文档编号:4012691 上传时间:2019-09-10 格式:DOC 页数:37 大小:2.66MB
下载 相关 举报
HCL系统内存外设实现和流水初步设计.doc_第1页
第1页 / 共37页
HCL系统内存外设实现和流水初步设计.doc_第2页
第2页 / 共37页
HCL系统内存外设实现和流水初步设计.doc_第3页
第3页 / 共37页
HCL系统内存外设实现和流水初步设计.doc_第4页
第4页 / 共37页
HCL系统内存外设实现和流水初步设计.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、1学 士 学 位 论 文论文题目: HCL 系统内存外设实现和流水初步设计 专 业: 计算机科学与技术 I目 录摘要 .IAbstract.II第一章 绪论 .1第二章 相关情况 .1第三章 内存外设在整个 HCL 系统中的位置 .2第四章 开发环境介绍 .24.1 VHDL 语言简单介绍 .24.2 VHDL 设计的整体结构 .34.3 VHDL 的核心语法 .5第五章 内存及总线控制器的实现 .65.1 内存的设计与实现 .65.2 内存 IO 总线控制器的实现 .8第六章 外设及外设控制器设计与实现 .106.1 外设设计方案 .106.2 串口的设计与实现综述 .106.2.1 接收端

2、逻辑 .106.2.2 发送端逻辑 .106.2.3 串口特殊寄存器维护 .106.3 串口的整体结构 .116.4 分频器的实现 .126.5 接收端的实现 .126.6 发送端的实现 .146.7 串口控制器的实现 .15第七章 LCD 的设计与实现 .177.1 四位数据接口 .187.2 使用 LCD 进行数据显示 .197.3 LCD 初始化流程以及相关参数的设置 .21第八章 串行 Flash 的控制以及从 Flash 载入监控程序 .22II8.1 整体逻辑 .248.2 从串口接收数据并写入 Flash 的缓冲算法 .248.3 对 Flash 的指令操作 .258.4 Fla

3、sh 向内存下载的逻辑 .26第九章 流水线的支持模块设计 .27第十章 有待改进之处 .30第十一章 结论 .30致 谢 .31参考文献 .31I HCL 系统内存外设实现和流水初步设计摘要:本文主要描述了对 HCL 系统的内存和外设的具体实现方案和流水线的初步设计。在整个系统当中,内存外设主要担负着两方面的用处,首先,他们是整个计算机系统的重要组成部分。他们沟通了系统与 PC 端。另一方面,这一部分的工作也是相对独立的,可以为简单的嵌入式的开发提供一些参考。流水线的设计和一些相关的器件对于系统效率上的提高外,主要是使人可以更清楚的了解到 CPU 内部的结构。论文中,具体描述了使用 VHDL

4、 完成上述设计的方法。讨论了设计之中遇到的困难以及相应的解决方案。最后在硬件上实验验证了外设与内存的工作,讨论了目前尚未解决的问题和需要改进的地方。关键词:VHDL 内存 外设 FPGA 流水线II The Implementation of Memory and Peripheral Devices and Preliminary Design of Pipeline in HCL SystemAbstract: This paper presents the methods of designing and implementation of the memory and the peri

5、pheral devices in HCL System. The memory and the peripheral devices play two roles in the system. First, they are important parts of the system. They connect the system to PC. Secondly, this part of work is relatively independent. It can provide some references for the simple Embedded System Develop

6、ment. The design of pipeline and the implementation of some entities which support the pipeline can not only improve the performance of the system, but also draw a clear picture of the CPU inside structure.In this paper, we describe the methods of designing and implementation using VHDL and discuss

7、about the difficulties and the solutions for them. Finally, we verify our designed memory and peripheral devices on the FPGA board and discuss where can be improved in the future.Key Words: VHDL, Memory, Peripheral Devices, FPGA, Pipeline第 1 页 共 31 页第一章 绪论本工程主要完成了对我们的 HCL 系统的内存外设实现和流水线的初步设计。在整个系统当中,

8、内存外设主要担负着两方面的用处,首先,他们是整个计算机系统的重要组成部分。虽然不像 CPU 那样处于中心的控制地位,但自从冯诺依曼提出现代计算机模型以来,在现代计算机中储存器便不可或缺。在外设的方面,串口提供了开发板上的计算机和 PC 端的通信,使得汇编完成的程序程序可以从串口输入计算机运行,也使得开发板上的计算机有机会将其状态和运算的结果输出到 PC 端。另一方面,这一部分的工作也是相对独立的,现今嵌入式开发已经越来越受到大家的重视,而外设方面的的设计,可以为简单的嵌入式的开发提供一些参考(它主要是编写硬件用来控制硬件) 。关于流水线,目前我们的系统还没有实现,但是其主要思路和相关的一些重要

9、部件已经完成。对于流水线的设计,除了效率上的提高之外(这并非我们所最关心的话题) ,还有带来的是对计算机组成原理课程的教学带来的帮助。也使得我们可以更清楚的了解到 CPU 内部的结构。第二章 相关情况国内国外在计算机组成原理实验的设计情况和我们系统意义已经在1中叙述,在此我们不再赘述。第 2 页 共 31 页第三章 内存外设在整个 HCL 系统中的位置图 3.1 HCL 整体系统结构如上图所示,内存外设的内容包括内存总线控制器(MEM-I/O Bus Controller),内存接口(Memory Interface) ,内存(Memory) ,通用异步串行设备收发器(UART) ,串口数据通

10、信设备(RS232-DCE) ,LCD 控制器(LCD Controller) ,LCD,和监控程序加载器(OSLoader)和串行 Flash(SPI Flash) 。其中 SPI Flash,Memory,RS232-DCE,LCD 是物理设备(Memory 实际上是 IP 核) 。别的是在 FPGA 中,使用 VHDL 语言实现的。第四章 开发环境介绍4.1 VHDL 语言简单介绍这次毕设的硬件部分,我们所选用的语言是 VHDL(VHSIC Hardware Description Language)超高速集成电路硬件描述语言。它是现在在 EDA 领域包括可编程逻辑器件上编程最为常用的两

11、种语言之一(另一种是 Verilog),同时它们两者也是 IEEE 的国际标准。下面简单的介绍一下 VHDL 语言的特点和本第 3 页 共 31 页次毕设中所使用到的一些重点的 VHDL 的语法和结构。关于 VHDL 语言,在这次毕设当中,我们的主要参考来自于41011。VHDL 语言最大的优势一个是来源于思路上,一个是来源于效率上。在思路上,VHDL 语言为我们打破了软件硬件的界限,事实上,作为一种语言它为像我们这样的从来没有做过电路设计硬件制作的人提供了一个很好的从逻辑上对硬件进行描述的平台。VHDL 是硬件设计者和 EDA 工具之间的接口。而 EDA 工具很好的隐藏了如细节逻辑实现和布线

12、等非常困难的细节,使得电子系统现在向集成化、大规模和高速度等方向发展。在效率上,VHDL 相比于传统的电原理图描述具有更强的抽象描述能力,可进行系统行为级别的描述。描述更简洁,效率更高。同时 VHDL 描述与实现工艺无关。而如果使用原理图进行描述必须给出完整的具体的电路结构图,与实现的工艺有关。VHDL 语言的优点还有许多:(1)VHDL 具有强大的语言结构,系统硬件描述能力强、设计效率高;具有较高的抽象描述能力。 (2)VHDL 语言可读性强,易于修改和发现错误(这一点在我们多次的互相修改代码之中体现最多,读 VHDL 程序的人常常能够帮助写程序的人发现其中的错误,而这一点如果换做电路的设计

13、,是不容易做到的) (3)可对 VHDL 源代码进行功能仿真(我们使用QuartusII 或者 ISE 提供的模拟工具,可以在软件层就看到某些信号的逻辑是否存在问题) (4)VHDL 设计不依赖于器件(除了在我们本次所使用的 Xilinx Spartan 3e starter 板子上提供的 FPGA 上能够正常的实现外,我们还在Altera 公司的芯片上做过 FPGA 的设计)4.2 VHDL 设计的整体结构在设计一个实体时,我们需要用到的是实体声明。VHDL 既支持自底向上的设计即从一个一个小的实体开始,拼接成一个顶层的实体,又支持与此相反的自顶向下的设计方法。但不管设计的方法如何,实体在

14、VHDL 语言中是处于比较核心的地位的。实体语法为:entity 实体名 isgeneric (参数名表:类型;);port (端口表:方式类型;);声明begin被动并行语句第 4 页 共 31 页end entity 实体名;其中,比较重要的部分是端口表,端口表的语法为:Port (端口名称,端口名称:端口方式端口类型;端口名称,端口名称:端口方式端口类型) ;实体的声明定义了一个实体的外形,它定义了系统的输入与输出端口。端口的类型有两种,分别是 in 和 out,用来区别这个接口数据的流向,in 端口的数据对于实体来说只能作为读取用,而 out 端口的数据对于实体来说只能写出。对应于每一

15、个实体的,应该是它工作的一个模型,即这个实体到底要按照一个什么要的逻辑来执行或者它是一个什么样的实体,这就需要使用结构体(architecture)来描述。结构体的语法如下:architecture 结构体名称 of 实体名称 is定义语句内部信号、常数、数据类型、进程、子程序(函数、过程) 、组件等的声明;begin并行处理语句;end 结构体名称;结构体中的声明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL) 、数据类型(TYPE) 、常数(CONSTANT) 、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。对于结构体的描述可以分为三种:结构体的描述方式

16、:1)行为描述:描述该设计单元的功能,即该硬件能做什么。2)数据流(寄存器传输 RTL)描述:数据流描述又称为寄存器传输描述,以此描述数据的传输和变换。3)结构化描述:描述该设计单元的硬件结构,即该硬件是如何构成的。本次毕设中,我们主要使用的是第一和第三两种描述的方式。第一种描述用的最多,它用来表述一个实体实现哪些功能,下文所提到的几乎所有的器件逻辑都是通过找一种方法来进行描述的。第三种描述方式主要用在顶层的实体,我第 5 页 共 31 页们通过结构化的描述(里面通过 component 和 port map)将小的功能实体拼装。4.3 VHDL 的核心语法因为 VHDL 语言的细节事实上还是

17、比较繁杂的,而且其中的很多内容,我们通过类比 C 语言,并不特别的难于理解。所以在这一个小节中,我们将简单介绍一下儿和普通的软件设计语言明显不同的,也是我们的开发过程中比较重要的VHDL 的相关语法,主要是两个部分,第一个部分我们将介绍信号与变量的区别,第二个部分我们将介绍 VHDL 语言的核心特色 process。在 VHDL 中,既有我们在软件编程语言中所熟悉的变量(variable)的概念,又有赋予明显的硬件电路设计特点的信号(signal)概念,通过下面的表格,我们可以很清楚的看到两者之间的联系与不同。表 4.1 信号与变量的区别与联系名称 意义 值 信号 Signal 控制模块或进程

18、间通信的机制 定义两个模块或进程间的数据通路 时间序列 (波形) 延迟赋值 (延时) 变量 Variable 程序中临时使用的对象。 可变的单值 即时赋值(无延时)变量与信号的最重要的一个区别在于赋值的延迟性,像所有的软件设计语言一样,变量的赋值是即时的,但是信号的赋值则不然(我们在 QuartusII 中的模拟显示它通常会有 9ns 左右的延迟) 。一个信号更像是在电路中定义了一个寄存器,它会负责维护这个信号的值(事实上,这也是在一个实体中定义寄存器的方法) 。进程(process)与软件编程语言中的完成某一特定功能的函数(其返回值是void 类型)相类似,但是又有一些非常本质的不同。那就是,软件编程语言当

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 经济合同

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。