教学目标
建立计算机系统完整概念,深刻理解计算机系统的层次化结构。包括:理解计算机系统中各个抽象层之间的相互转换关系;了解计算机指令集体系结构的设计原则和设计原理;具备使用HDL进行计算机硬件设计的基本能力;深刻理解OS和硬件之间的分工和衔接关系;理解掌握从硬件角度出发进行编译优化的基本技术;深刻理解从硬件角度出发编制高效程序的基本原理;提高利用硬件知识进行程序调试的能力。
要求能够站在系统的高度考虑和解决问题,具有系统层面的分析、设计、验证和优化等能力。能够对软、硬件功能进行合理划分;能够对系统不同层次进行抽象和封装;能够对系统的整体性能进行分析和调优;能够对系统各层面的错误进行调试和修正;能够根据系统实现机理对用户程序进行准确的性能评估和优化;能够根据不同的应用要求合理构建系统框架并设计实现系统等。
各论域的定位
分以下三个论域进行讲解:数字逻辑电路设计、计算机系统基础和计算机组成与系统设计。围绕系统能力培养目标,根据系统各抽象层之间的相互关系,我们确立了各论域的定位如下。
(1)数字逻辑电路设计
它主要围绕组合逻辑和时序逻辑两大核心内容,在逻辑门到功能部件这两个层次展开,以后续课程中用到的功能部件(如半加器、全加器、加法器、比较器、编码器、译码器、触发器、寄存器、移位器、内存储器等)作为数字逻辑电路设计实例进行介绍,初步掌握计算机系统中最下面的三层(功能部件、门电路和器件)相关内容。使学生能够了解到目前主流计算机解决所有问题的最根本的基础是布尔代数和数字逻辑电路,并了解到利用数字逻辑电路可以构建执行程序所需的所有功能部件。
(2)计算机系统基础
主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的,从宏观上介绍计算机系统涉及到的各个层次,使学生从整体上了解计算机系统全貌和相关知识体系,初步计算机系统中的每一个抽象层及其相互转换关系。使学生能从程序员角度认识计算机系统;能够建立 高级语言程序、ISA、OS、编译器、链接器等之间的相互关联;对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解。从而 增强学生在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的"计算机组成与设计"、"操作系统"、"编译技术"、"计算机体系结构"等课程打下坚实基础。由此可见,这部分内容可以作为"程序设计基础"课程的深入内容,能起到为其解疑答惑的作用。
(3)计算机组成与系统设计
主要从寄存器传送级以上层次介绍单处理器计算机设计的基本原理和设计细节,重点在CPU设计和存储器设计方面,使学生在理解高级语言程序与机器级代码之间对应关系的基础上,进一步理解机器级代码如何在具体硬件系统中执行的过程以及如何构造计算机硬件系统,主要涉及计算机系统中的指令集体系结构和微体系结构层次,并通过实现细节介绍这两个层次与上层的操作系统以及与下层的功能部件/RTL之间的关系。要求学生能够利用硬件描述语言和FPGA开发板来设计基本的功能部件以及单周期CPU和流水线CPU,因而,在内容组织方面应该细化通用寄存器组、ALU和桶形移位器等功能部件设计的内容,细化单周期CPU和流水线CPU设计的内容,讲透流水线CPU设计中的各种冒险处理机制和基本的指令级并行处理的内容。
论域一、数字逻辑电路设计
目的要求
了解数字逻辑电路的基本概念和数字逻辑器件的电气特性,掌握数字逻辑电路分析和设计的基本原理和基本方法,熟悉常用数字逻辑器件的功能原理、设计思路和使用方法,能够使用数字逻辑电路设计软件工具,在不同抽象层次上进行数字系统组件的设计和实践。
内容简介
讲述插件板级和VLSI系统中的数字设计基本原理和实践需求。主要内容包括:数字设计简介、数制和编码、数字电路、组合逻辑设计原理和实践、时序逻辑设计原理和实践、存储器、CPLD和FPGA。
具体内容与学时安排
第1章 引言(2学时)
第2章 数制和编码(4学时)
二进制数制表示及运算、二进制编码表示及应用
第3章 数字电路 (2学时)
CMOS逻辑、CMOS电路的电气特性、CMOS稳态电气特性、CMOS动态电气特性
第4章 组合逻辑设计原理 (4学时)
开关代数、组合电路分析、组合电路的综合、定时冒险
第5章 组合逻辑设计实践 (10学时)
文档标准、电路定时、组合型PLD、译码器、编码器、三态器件、多路复用器、"异或"门和奇偶校验电路、比较器、加/减法器和ALU、组合乘法器
第6章 时序逻辑设计原理 (10学时)
双稳态元件、锁存器与触发器、时钟同步状态机分析、时钟同步状态机设计、用状态图设计状态机、用转移表综合状态机、其他状态机设计举例、状态机的分解、反馈时序电路分析、反馈时序电路设计
第7章 时序逻辑设计实践 (10学时)
时序电路文档标准、锁存器和触发器、计数器、移位寄存器
第8章 存储器.CPLD和FPGA (4学时)
只读存储器、读/写存储器、静态RAM、动态RAM、复杂可编程逻辑器件、现场可编程门阵列
第9章 数字系统设计(2学时)
实验内容一(面包板部分)
实验1 门电路逻辑功能及性能测试
实验目的:了解CMOS、TTL系列门电路的逻辑功能;熟悉门电路基本性能参数的测试方法;熟悉实验箱的使用和掌握实验测试设备的操作方法。
实验仪器与器件:数电实验箱、数字万用表、与非门若干片、反相器三片、三态门一片
实验内容:门电路功能验证、多余输入端处理、三态门逻辑功能测试、反相器的特性及其应用
实验2 组合逻辑电路实验
实验目的:掌握组合逻辑电路的功能测试;验证半加器和全加器的逻辑功能;复习二进制数的运算规律。
实验仪器与器件:数字电路实验箱、数字万用表、各种门电路若干片
实验内容:半加器功能验证、全加器功能验证、4位二进制数的素数检测电路设计、冒险检测(选做)
实验3 译码器实验
实验目的:掌握译码器的逻辑功能和使用方法;掌握用译码器级联的方法;掌握使用译码器实现逻辑函数的方法。
实验仪器及器件:数字逻辑电路实验箱、与非门电路1片、译码器1片
实验步骤内容:译码器功能测试、译码器级联、译码器应用
实验4 选择器实验
实验目的:掌握多路选择器的功能及使用方法;掌握4选1选择器74HC153的设计;学会使用两个4选1选择器组成16 -4线编码器。
实验设备与器材:数字逻辑电路实验箱、与非门和多路选择器各一片
实验内容:数据选择器功能验证、三输入多数表决电路设计、全加器电路设计
实验5 触发器实验
实验目的:熟悉并掌握各种触发器的特性和功能测试方法;学会正确使用触发器集成芯片;了解不同触发器之间的相互转换。
实验设备与器件:数字电路实验箱、万用表、与非门和双D触发器若干片
实验内容:验证基本 RS 触发器的逻辑功 能、验证 D 触发器逻辑功能、用D触发器设计异步二进制加法计数器
实验6 计数器实验
实验目的:学会用集成电路构成计数器的方法;掌握中规模集成计数器的使用及功能测试方法;运用集成计数器构成1/N分频器。
实验设备与器材:数字逻辑电路实验箱、与非门、二进制异步清零计数器和二进制同步清零计数器各1片
实验内容:二进制异步清零计数器功能验证、分别利用异步清零法和同步置数法设计七进制计数器、利用二进制异步清零计数器和二进制同步清零计数器设计六十进制加法计数器
实验7 寄存器实验
实验目的:熟悉移位寄存器的组成和工作特点;掌握集成双向移位寄存器的逻辑功能和使用方法;熟悉锁存器的功能和应用;学会数据的串并转换电路设计。
实验设备与器材:数字电路实验箱、门电路及移位寄存器芯片若干
实验内容:自循环移位寄存器的验证、设计一种能自启动的4位二进制数扭环计数器、设计一个实现串并转换的电路
实验8 综合实验1--数字时钟设计
设计要求:数字钟能够准确显示时、分、秒,显示时间有误差时可以校时。设计电路时应尽量选择常用集成电路芯片,并要考虑少用多种型号芯片。
实验9 综合实验2--交通灯控制逻辑电路设计
设计要求:设计一个十字路口的交通灯控制电路,要求东西方向车道和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都设为25秒;要求黄灯先亮5秒,才能变 换运行车道;黄灯亮时,要求每秒钟闪亮一次 ;可以手动调整和自动控制,夜间为黄灯闪耀。
实验10 综合实验3--多路智力竞赛抢答器设计
设计要求:智力竞赛抢答器是一个公正的裁判,它的任务是从参赛的选手中选出最先抢答者,并将最先抢答者显示出来。抢答器的功能要求如下。
1.可同时供8名选手参加比赛,他们的编号分别是0、1、2、3、4、5、6、7,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S0、S1、S2、S3、S4、S5、S6、S7。
2. 给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
3. 抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。
实验11 综合实验4--模拟打乒乓球游戏
设计要求:设计一个模拟的单人打乒乓球游戏电路,电路的具体要求如下。
1.用4~8 个排成一串的LED 指示灯表示乒乓球的位置,其中一个亮(或一个暗)表示当前球的位置。
2.发球后,球从左到右或从右到左运动,即指示灯按顺序从左到右或从右到左发亮(或暗)。
3.用一个开关作为"接球"的"球拍",当球运动到指定的接球位置时,接球队员按下接球开关,接球成功,计一分;若接球队员未按下接球开关,则接球失败,失一分。
4.接球成功后,自动重新发球;接球失败则停止。
5.接球位置为最后一个位置的前半拍(前半个周期)。不能过早或过迟按接球开关,否者接球失败;也不能一直按着接球开关,否者接球失败。
6.接球失败后,等待裁判按下开局开关,然后重新开始发球。
7.时钟脉冲源可用实验箱上自带的周期为1 秒左右的时钟源。
8.设计中可采用得分计数,也可采用失分计数,分数由1~2 位数码管显示。
实验内容二(FPGA部分)
实验1 Quartus II 使用入门Ⅰ
实验目的:Quartus II 设计工具支持多种设计输入模型,本次实验使用原理图输入设计法在DE2-70 开发平台上设计一个基本组合逻辑电路——2选1选择器。通过这个实验,读者可以了解使用Quartus 工具设计硬件的基本流程。
实验内容:建立Quartus 工程、设计输入、功能仿真、分配引脚、全编译文件、时序仿真、将设计下载在 FPGA 中。
在以下设计任务中选择一个,按以上步骤完成设计,并下载到FPGA上验证电路功能。
1.假定一个楼梯,楼梯的中间有一个灯,在楼梯的最下面和最上面都有一个开关来控制这个灯,要求改变任何一个开关都能开灯或者关灯。
2.设计一个三人表决器,如果有两个或者两个以上的人同意,则结果为"同意",否则为"不同意"。
3.设计一个电路,电路有两个输入端X(x1,x2)和Y(y1,y2),如果X=Y则输出为'1',否则输出为'0'。
实验2 Quartus II 使用入门 Ⅱ
实验目的:Quartus II 设计工具支持多种设计输入模型,本次实验使用Verilog语言输入设计法在DE2-70 开发平台上设计一个基本组合逻辑电路——2选1选择器。
实验内容:本次实验通过Verilog语言来描述所设计的硬件,其中有两个地方与实验1不同,其他与实验1类似。第一个地方是在设计输入阶段通过添加Verilog语言设计文件到工程文件中去的方式。第二个地方是分配引脚,在实验1中,我们采用手工分配的方式分配引脚,本实验中,我们采用另外一种导入引脚文件的方式分配引脚,两种分配引脚的方式是等效的。
要求设计一个简单的数字逻辑电路,用Verilog语言输入设计,分别用门级原语和连续赋值语句assign实现。按以上步骤完成设计,下载到FPGA上验证电路功能。
在以下设计任务中选择一个,设计要求同1,完成设计,下载到FPGA上验证电路功能。
1)假定一个楼梯,楼梯的中间有一个灯,在楼梯的最下面和最上面都有一个开关来控制这个灯,要求改变任何一个开关都能开灯或者关灯。
2)设计一个三人表决器,如果有两个或者两个以上的人同意,则结果为"同意",否则为"不同意"。
3)设计一个电路,电路有两个输入端X(x1,x2)和Y(y1,y2),如果X=Y则输出为'1',否则输出为'0'。
实验3 二进制及BCD码的转换及显示
实验目的:学习如何在DE2-70平台上,将简单的输入/输出器件与FPGA连接起来,并学习利用真值表进行初步的电路设计,完成一个完整的电路。这个实验中我们将用到输入器件:拨动开关iSW[0]-iSW[17];输出器件:红色发光二极管oLEDR[0]-oLEDR[17]、绿色发光二极管oLEDG[0]-oLEDG[7]和七段数码管oHEX[0]-oHEX[7]。
实验内容:将输入/输出器件连接到FPGA上、二进制数字的显示、将四位二进制值转换为两位十进制显示。本实验要求先设计一个子模块,完成数码管的显示代码,在顶层实体模块中调用此子模块逐个点亮数码管。
实验4 选择器、译码器和编码器的设计
实验目的:学习选择器、译码器和编码器的设计。
实验内容:选择器、译码器、编码器设计
实验5 简单加法器的设计
实验目的:学习用门级原语、算术赋值语句和利用Altera公司提供的参数化功能模块完成加法器的设计。
实验内容:四位串行加法器的设计、用算术赋值语句实现8位加法器、用LPM实现8位加法器
实验6 触发器和锁存器实验
实验目的:复习锁存器和触发器的概念,并学会设计锁存器和触发器。
实验内容:RS锁存器、D锁存器、D触发器、三种存储单元、JK触发器、T触发器设计
实验7 寄存器实验
实验目的:学会寄存器的设计。
实验内容:简单移位寄存器、并行存取的移位寄存器、算术和逻辑移位寄存器
实验8 计数器实验
实验目的:学习计数器的设计。
实验内容:同步加法计数器、异步减法计数器、用赋值语句和LPM实现计数器
实验9 时钟和计时器实验
实验目的:学习DE2-70开发板上时钟源的使用和计时器的设计。
实验内容:十进制计数器、时钟、反映时间测试电路
实验10 存储器实验
实验目的:学习存储器的设计。
实验内容:用Verilog实现RAM、用LPM实现RAM、FPGA片外SSRAM的使用
实验11 状态机实验
实验目的:学习寄存器的设计。
实验内容:设计一个区别两种特定时序的有限状态机FSM;用Verilog设计二进制编码的FSM;用Verilog设计One-hot编码的FSM;设计一个现实生活中的状态控制器。
请完成自动取款机控制器的设计,并下载至DE2-70开发板上,利用DE2-70的资源进行验证。现实生活中的许多智能控制器就是一个状态机,自动取款机(ATM)的握手和接口需求可以通过在FPGA中实现一个状态机来完成。
论域二、计算机系统基础
目的要求
使学生能从程序员角度认识计算机系统;能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联;对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解。从而增强学生在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的"计算机组成与设计"、"操作系统"、"编译技术"、"计算机体系结构"等课程打下坚实基础。
内容简介
主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的,从宏观上介绍计算机系统涉及到的各个层次。主要内容包括:数据的表示和基本运算、程序的机器级代码表示、程序和指令的底层执行机制、存储器层次结构、Cache、虚拟存储器、程序的链接、异常和中断、I/O和文件操作等。
具体内容与学时安排
第1章 引言(2学时)
第2章 数据表示与基本运算(4学时)
位的概念、整数表示与运算、浮点数表示与运算、高级语言程序中数据与机器级数据之间的对应关系、计算机系统的算术运算
第3章 程序的机器级代码表示(8学时)
Intel处理器架构及其指令系统简介、C/汇编/机器代码三者之间的对应关系、不同程序控制流和过程调用等的机器级代码表示、复杂数据类型(数组、结构、联合等)数据的存放以及底层实现
第4章 程序及指令的执行机制(4学时)
程序及指令的执行过程、CPU的基本功能和组成、数据通路基本结构和工作原理、流水线方式下指令的执行
第5章 存储器层次结构(12学时)
不同存储介质(如半导体RAM、ROM、flash存储器、磁盘存储器)的存储原理和特性、层次化存储结构、局部性原理、Cache机制及其与程序性能的关系、虚拟存储器(程序中指令和数据在虚存空间的存放以及访问过程,VM实例)
第6章 程序的编译链接(4学时)
程序转换为机器代码的过程、链接的意义与过程、重定位目标文件格式、可执行目标文件格式、静态库/动态库、可执行文件与虚拟地址空间的关系、可执行文件如何被启动执行
第7章 异常和中断(4学时)
程序执行过程中可能遇到哪些异常情况而改变执行流程、异常(故障、陷阱等)和中断的概念、系统模式、进程以及进程的上下文切换
第8章 I/O以及文件操作(6学时)
程序中的I/O函数如何在系统级实现,底层需要哪些支持(包括标准库、操作系统和硬件)、相关的I/O和文件操作的系统调用
实验内容
1. 提供一组编程验证实验,例如:数据间转换、表达式计算、整除0和浮点数除0及负数开方等非正常运算等,以验证所学内容。
2.提供一组使用GCC和GDB进行编程和指令调试的实验,例如:位操作、二进制炸弹、缓冲区溢出、浮点数运算等,以使学生深刻理解C、汇编和机器代码关系。
3.编写Cache模拟器、利用cache特性进行程序调优。
4.使用Unix系统中对目标文件处理工具进行实验。如OBJDUMP,AR,SIZE,NM,READFLF,STRING等。
5.对设置了溢出、整除0和系统调用等事件的程序进行单步跟踪。
6. 实现一个可处理系统调用的简化微操作系统,要求学生仿照例子新加入诸如键盘和鼠标等外设的处理程序。
论域三、计算机组成与系统设计
目的要求
使学生在理解高级语言程序与机器级代码之间对应关系的基础上,进一步理解机器级代码如何在具体硬件系统中的执行过程,并对指令执行过程中涉及到的各个功能部件及其功能部件之间的互连等有更加深刻的理解。因而规划为以微结构设计者角度来认识计算机系统,要求学生能够利用硬件描述语言和FPGA开发板来设计基本功能部件以及单周期CPU、多周期CPU和流水线CPU。
内容简介
主要包括指令系统设计、指令执行过程、功能部件设计、非流水线CPU设计、流水线CPU设计、中断/异常以及硬件对OS的支持、总线和I/O子系统、并行体系结构简介等内容。
具体内容与学时安排
第1章 概论(2学时)
第2章 指令系统设计(2学时)
指令集体系结构与微体系结构、指令系统设计需要考虑的各个方面、RISC与CISC的比较、MIPS指令系统、SIMD指令(数据级并行技术)
第3章 指令执行过程(2学时)
各类指令(运算类、访存类、I/O类、流控制类等)的执行过程、带异常或中断处理的指令执行过程、所有指令涉及到的CPU内部操作、总线事务类型
第4章 功能部件设计(6学时)
通用寄存器组设计、桶形移位器设计、ALU设计、乘法器设计、除法器设计、浮点部件设计、Cache设计、MMU设计
第5章 非流水线CPU设计(6学时)
单周期数据通路设计、单周期控制器设计、多周期数据通路设计、多周期控制器设计、微程序设计
第6章 流水线CPU设计(8学时)
流水线CPU设计、冒险处理(控制冒险、数据冒险、控制冒险)、带中断和Cache缺失等处理的流水线设计、超流水线、超标量、动态调度、乱序执行
第7章 I/O与总线(6学时)
常用外设(如键盘、显示器、磁盘存储器等)的基本工作原理及其外设接口(外设控制器)、总线及其互连、三种 I/O方式(查询、中断和DMA)
第8章 并行计算机体系结构简介(2学时)
多核处理器、众核处理器、多处理器系统、多计算机系统等(细节内容由其他课程介绍)
第9章 并行编程模型(2学时)
线程级并行、并发程序设计、网络编程(细节内容由其他课程介绍)
实验内容
实验采用"基于硬件描述语言和FPGA,以功能部件设计为先导,单周期CPU设计为过渡,最终实现流水线CPU"的实验教学方案。实验要求学生先使用Quartus II开发工具进行模拟设计,通过后再下载到Altera DE2的FPGA板上进行综合验证。
实验以实现MIPS指令系统的一个子集为目标,至少包括以下22条指令(基本涵盖了各种不同类型的定点指令,不需实现MMU和cache,采用大端方式):
add rd,rs,rt、addu rd,rs,rt、addi rt,rs,imm、addiu rt,rs,imm、sub rd,rs,rt
subu rd,rs,rt、nor rd,rs,rt、xori rt,rs,imm、clo、clz、slt rd,rs,rt
sltu rd,rs,rt、slti rt,rs,imm、sltiu rt,rs imm、sllv rd,rt,rs、sra rd,rt,shamt
blez rs,imm、j target、lwl rt,offset(base) 、lwr rt,offset(base) 、lw rt, imm(rs)
sw rt,imm(rs)
实验分两个阶段:功能部件设计实验阶段(不分组)和综合设计实验阶段(3-4人/组)。内容主要包括:寄存器组、ALU和ALU控制器、桶形移位器、乘法器、除法器、单周期CPU、多周期CPU和流水线CPU的设计。其中,最终的流水线设计为综合设计实验。所有学生都需要完成一个至少具有22条基本指令的单周期CPU、多周期CPU和流水线CPU。学生可以选择完成带转发和阻塞功能(包括Load-use冒险、分支冒险、Jump指令阻塞、乘法指令阻塞)、并能处理异常和中断的五段流水线CPU设计,甚至加上总线和总线接口部件、存储器和I/O接口等,对于超过要求完成任务的同学视具体情况加分。
实验1:寄存器组设计
实验目的:熟悉并掌握MIPS寄存器组的工作原理与设计方法;掌握用Verilog HDL语言或VHDL 语言设计一个由32个寄存器组成的字长为32位的寄存器组的设计方法。
实验任务:根据实验原理框图完成一个由32个寄存器组成的字长为32位的寄存器组设计,并在Quartus II上模拟实现;根据实验原理框图完成一个由16个寄存器组成的字长为4位的寄存器组设计,并在Altera DE2-70开发板实现;画出用不带使能端的D触发器构成一个时钟上升沿触发并带使能端(低电平有效)的8位寄存器的电路图(使用Logisim设计)。
实验2:ALU与ALU控制器设计
实验目的:掌握ALU的工作原理和逻辑功能、掌握ALU控制器的工作原理和作用
实验任务:实现32位ALU,使其能够支持所要求的22条基本指令;用Verilog HDL语言或VHDL 语言来编写并实现ALU及ALU的控制器。
实验3:32位桶形移位器设计
实验目的:掌握桶形移位器的工作原理;掌握双向桶形移位器的设计方法。
实验任务:用Verilog HDL语言或VHDL 语言来编写并实现32位的桶形移位器,要求在Quartus II上实现模拟仿真;用Verilog HDL语言或VHDL 语言来编写并在Altera DE2-70开发板上实现8位桶形移位器,使其能够正常工作。将桶形移位器算术左移改成循环左移,其它功能不变,要求画出8位桶形移位器的逻辑电路图。
实验4:单周期CPU设计
实验目的:理解MIPS指令系统和常用指令的功能并掌握单周期CPU的工作原理与逻辑功能实现方式;通过对单周期CPU的运行状况进行观察和分析,进一步加深理解单周期CPU的工作原理。
实验任务:用Verilog HDL语言或VHDL 语言来进行单周期CPU设计,要求能够至少完成以下16条指令:add rd,rs,rt、addu rd,rs,rt、addi rt,rs,imm、addiu rt,rs,imm、sub rd,rs,rt、subu rd,rs,rt、nor rd,rs,rt、xori rt,rs,imm、clo、clz、slt rd,rs,rt、sltu rd,rs,rt、slti rt,rs,imm、sltiu rt,rs imm、blez rs,imm、j target。
实验5:多周期CPU设计
实验目的:深入理解MIPS指令系统并掌握多周期CPU设计方法,特别是实现多周期CPU的状态机的设计;掌握多周期CPU的工作原理与逻辑功能实现方式;通过对多周期CPU的运行状况进行观察和分析,进一步加深理解多周期CPU的工作原理。
实验任务:用Verilog HDL语言或VHDL语言来进行多周期CPU设计,要求能够至少完成上述22条指令。
实验6 整数乘法器设计
实验目的:学习并掌握整数乘法器的算法;掌握用Verilog HDL语言或VHDL语言来编写整数乘法器。
实验任务:用Verilog HDL语言或VHDL语言来设计并实现一种32位整数乘法器。要求写出32位整数乘法器的算法并画出流程图。
实验7:整数除法器设计
实验目的:学习并掌握整数除法器的算法。;掌握用Verilog HDL语言或VHDL语言来编写整数除法器。
实验任务:用Verilog HDL语言或VHDL语言来设计并实现一种32位整数除法器,要求写出32位整数除法器的算法并画出流程图。
实验8 流水线CPU设计
实验目的:学习并掌握流水线CPU的工作原理和设计方法;通过对流水线CPU的运行状况进行观察和分析,进一步加深理解流水线CPU的工作原理。
实验任务:用Verilog HDL语言或VHDL语言来设计流水线CPU。,要求能够至少完成上述22条指令。