(指导教师用表)
学 生 姓 名
指 导 教 师
论文(设计)题目
多级流水 CPU 设计
主要研究
(设计)内容
灵活运用所学到的基础知识和主要专业知识,设计、制作、调试最终
完成多级流水 CPU 的设计
装
订
线
研究方法
根据所学基础知识和主要专业知识,设计多级流水 CPU,使用 VHDL
语 言 。 开 发 平 台 是 FPGA-CPU 设 计 平 台 , 主 要 开 发 工 具 : Quartus7.0 ,
DebugController
主要任务
及目标
1. 设计出 CPU 实现多级流水
2. 完成从系统级设计到代码实现以及硬件上调试
3. 完成学年论文
主要参
考文献
[1] (美)亨尼西,(美)帕特森.计算机体系结构:量化研究方法(第 3
版).机械工业出版社,2003
[2] 汤志忠,杨春武.开放式实验 CPU 设计.北京:清华大学出版社,2007
论文(设计)各阶段名称
系统概念设计及总体设计
进度安排
代码实现阶段
系统调试、试运行阶段
论文的整理定稿
日期
第 10 周
第 11—14 周
第 15 周
第 15 周
指导教师签字:
系主任签字:
主管教学院长签字:
河北大学 2007 届本科生学年论文设计
学生姓名
专业 年级
论文(设计)题目
多级流水 CPU 设计
论文完成的主要工作包括:
(l) 综合运用了所学知识,完成多级流水 CPU 系统级设计。
(2) 通过 VHDL 语言实现逻辑设计。
(3) 设计成果在 FPGA 硬件平台的运行
论
文
(
设
计
)
内
容
提
要
指
导
教
师
评
语
成绩:
指导教师(签名):
年 月 日
摘
要
河北大学 2007 届本科生学年论文设计
本学期计算机体系课程设计题目是多级流水 CPU 设计。以计算机硬件为主,
兼顾计算机软件和计算机应用技术。在教师指导下,灵活运用所学到的基础知识
和主要专业知识,自己设计、制作、调试,完成 16 位五级流水 CPU 的实际。
本组设计并最终在 FPGA 实验平台上实现一个 CPU 芯片,具有五级流水。
采用流水处理技术解决了流水线技术中的结构相关、数据相关和控制相关。设计
了指令系统、指令格式、寻址方式、寄存器结构、数据表示方式、存储器系统,
运算器、控制器和流水线结构等。用 VHDL 硬件语言进行逻辑设计,采用先进
的工具软件进行模拟和测试,测试通过之后下载到 FPGA 芯片中,并在测试平台
上通过规定测试程序的测试。
关键字:流水线;FPGA;五级流水
河北大学 2007 届本科生学年论文设计
目 录
1. 前言 ---------------------------------------------------------------- 1
1.1 实验目的 ------------------------------------------------------------------1
1.2 实验环境 ------------------------------------------------------------------1
2. 流水线工作原理 ------------------------------------------------- 3
3. 系统设计 ---------------------------------------------------------- 5
3.1 概念设计 ------------------------------------------------------------------5
3.2 指令系统 ------------------------------------------------------------------5
3.3 时序设计 ------------------------------------------------------------------6
4. 结构设计 ---------------------------------------------------------- 9
4.1 总体逻辑结构设计 ------------------------------------------------------9
4.2 分模块结构设计 ------------------------------------------------------- 11
5. 代码实现及测试 ----------------------------------------------- 13
5.1 代码实现 ---------------------------------------------------------------- 13
5.2 程序测试 ---------------------------------------------------------------- 19
5.3 测试结果 ---------------------------------------------------------------- 21
6. 实验总结 -------------------------------------------------------- 25
河北大学 2007 届本科生学年论文设计
1. 前言
1.1 实验目的
1. 本实验需要自己设计并最终用 FPGA 实现一个 CPU 芯片。利用已有的计算
机组成原理知识,以及对计算机系统结构的初步学习,设计一个包括指令系统、
寻址方式、寄存器组、存储系统、流水线结构等的 CPU。设计的 CPU 必须具有复
位功能,以便使用 TEC-CA 实验台上的“CPU 复位”按钮对 CPU 复位,使 CPU 处
于调试前的初始状态。CPU 复位脉冲按负脉冲设计。
2. 熟练掌握 VHDL 硬件描述语言,对 CPU 的各个功能模块进行代码编写,并
学会将各个功能部分组织连接成一个完整 CPU 体系结构。
3. 学会利用先进的硬件设计工具软件 Quartus II 对程序进行仿真和调试。
并熟练掌握 FPGA-CPU 在“TEC-CA 开放式 CPU 实验教学系统”上的调试方法。
4. 在完成实验的过程中锻炼和提高实际动手能力、创新思维、团队合作精
神等方面的能力。
1.2 实验环境
1. 总体描述
FPGA-CPU 设计平台能够支持下载到 FPGA 中的 CPU 的单步调试和连续运行。
用户用 VHDL 编写的 CPU 代码通过编译之后,可以下载到设计平台上的 FPGA 芯片
中。FPGA-CPU 的运行通过执行预先写到外部存储器中的程序来实现。使用
DebugController 程序对外部存储器进行读写操作,并能监控 FPGA-CPU 的状态
和通过设置断点调试 FPGA-CPU 正在执行的程序。这套实验环境为实验者提供了
最大的自由度来写出具有自己风格的 CPU 软核,并在测试运行平台上调试和运
行。
2. 硬件环境
整个硬件平台主要有 PC 监控系统、外部程序存储器、FPGA-CPU 及其下载相
关 电 路 , 以 及 控 制 电 路 组 成 。 其 中 PC 监 控 系 统 主 要 是 由 监 控 软 件
1
河北大学 2007 届本科生学年论文设计
DebugController 及相关通信接口等构成,提供一整套的运行和调试功能。
3. 软件环境
Quartus-7.0
我们使用该软件完成编码工作,并在 active-hdl 功能模拟通过后,进行有
效的时序模拟。最终烧片等都用该软件。
调试程序 DebugController
使用该软件对外部存储器进行读写操作,并能监控 FPGA-CPU 的状态和通过
设置断点调试 FPGA-CPU 正在执行的程序。
2
河北大学 2007 届本科生学年论文设计
2. 流水线工作原理
流水线处理技术是在重叠、先行控制的基础上发展起来的,包括指令控制功
能和功能处理过程都可采用流水处理。
在先行控制方式中将一条指令的执行分为“分析”和“执行”两个子过程。
这两个子过程分别使用指令分析器和运算器两个独立的部件来完成。所以可以利
用多条指令执行时,在时间上相互错开,轮流重叠地利用这两个独立部件,来加
快程序的执行速度。若实现“分析”与“执行”中的每一个子过程都需要Δt1=T/2
时间,则 4 条指令流水执行只需 5Δt1,比起 4 条指令顺序执行所需的 8Δt1 时
间少了近一半。
如果将指令的“分析”子过程再进一步划分成“指令译码”和“取操作数”
两个子过程,分别由“译码”和“取数”两个独立的子部件执行,并使所有子部
件的经过时间都改进成Δt2=T/4,指令执行顺序如图 2-1 所示。
图表 2- 1 指令执行顺序图
图 2-2 是指令流水执行的时空图。图中横坐标为时间,纵坐标为空间(即各
个子过程),标有数字的方格说明占用该空间与时间的任务号,在本例中表示机
器处理的第 1、第 2、第 3、第 4、第 5 条指令,最多可以有 4 条指令在不同的部
件中同时进行处理。这样计算机每隔Δt2 就能输出一条指令的执行结果。
图表 2- 2 指令流水执行时空图
3
河北大学 2007 届本科生学年论文设计
按此思路,流水线的定义可以具体描述为:将一个复杂的处理过程分成 m
个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部
件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m 个独立
部件同时进行不同的操作,完成对不同子过程的处理,这种工作方式称为流水线。
在计算机流水线的实际应用过程中,为平滑缓冲各子部件之间的速度差异,在子
部件之间往往都要设置高速接口缓冲器或一定容量的高数缓冲器来保存中间结
果。也就是通常所说的 n 级流水处理中的级间寄存器。
4