计算机组成原理项目讲义(第一版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机组成原理项目》课程讲义
【教学目标】
1.在深入理解《计算机组成原理》课程中“运算器”的原理上,掌握使用VHDL
语言设计运多功能算器的方法;
2.在深入理解《计算机组成原理》课程中“运算器”的原理上,掌握使用VHDL
语言设计RAM、ROM的方法,并能够按需进行存储系统的扩展设计;
3.根据指令系统的功能,设计相应的数据通路,用方框图语言设计指令周期流
程图;
4.理解微程序设计的基本思想,应用VHDL语言设计CPU中的控制器——基于
微程序思想实现;
5.理解硬布线设计的基本思想,应用VHDL语言设计CPU的控制器——基于课
本上的硬布线思想实现
6.理解硬布线设计的基本思想,应用VHDL语言设计CPU的控制器——基于硬
布线思想和有限状态机实现。
【教学内容】
1.设计8位输入的多功能运算器(9种运算功能):
●8位补码的定点整数并行加法、减法——输出:运算结果、溢出标志OF、
零标志ZF;
●8位无符号二进制数并行加法、减法——输出:运算结果、进位标志、
零标志ZF、溢出标志OF;
●8位二进制数的逻辑运算——与、或、异或,输出:运算结果、零标志
ZF;
●4位*4位无符号二进制数的乘法运算——输出:乘积结果、零标志ZF
●A端口的直通——输出:直通结果
2.设计随机访问存储器RAM:容量为16*8位;设计只读存储器ROM:容量为
16*8位;
3.设计微程序控制器:根据数据通路总图,画出指令周期流程图,(1)列出所
有器件所需的时钟信号、控制信号、数据信号等,(2)画出微程序流程图,(3)设计好微指令格式,(4)设计控制存储器和微地址转移逻辑,合成一个功能完整的控制器CU;
4.设计硬布线控制器(一):(1)根据前面设计好的数据通路和微程序流程图,
确定所需的主状态数M(或W),(2)设计时序信号发生器,确定实现跨越主状态的逻辑方法及其所需的控制信号,补充完善微程序流程图中的微命令,(3)使用列表方法详细列出每个主状态M(W)期间,所需产生的各指令的微命令信号,最后汇总得出产生所有微命令的逻辑表达式,(4)设计出硬布线控制器——输入:节拍脉冲信号T和主状态信号M(或W)、操作码OP、进位标志CF、零标志ZF、中断请求信号INTR等,输出为各种微命令等。
5.设计硬布线控制器(二):根据数据通路和微程序流程图,(1)画出状态转
移图,(2)给出状态之间的逻辑转换关系(3)设计有限状态机,为各个状态设计输出控制信号的逻辑电路,完成硬布线控制器的设计——输入:时钟输入信号clk、操作码OP、进位标志CF、零标志ZF、中断请求信号INTR等,输出为各种微命令及状态编码等。
6.模型机的功能仿真:把设计好的控制器、运算器、存储器和相关寄存器、触
发器、多路开关等集成为一个模型机,进行功能仿真、时序仿真,分析功能是否正确。
【知识结构】
1.指令系统:8位长度,OP编码4位,参考《计算机组成原理实验讲义》,需
要完成的指令——ADD,SUB,ADDU,SUBU,MULU,AND,OR,XOR,STA,LDA,JMP,JC,JNZ,IRTE,INTS,INTC。
2.数据通路总图:
DBUS
3.各个器件的功能分析及设计:
(1)算术运算单元
●无符号二进制数并行加法:1位二进制数的全加器FA设计,超前进位发
生器的推导与设计,4位无符号二进制数并行加法器的设计,使用VHDL
完成器件设计及功能仿真,仿真数据要求:反映结果无CF,有ZF,有
CF的情况;
●无符号二进制数并行减法:1位二进制数全减器的设计,推导出4位并
行无符号二进制数减法器的逻辑关系,在前面4位无符号二进制数并行
加法器的基础上,完成4位无符号二进制数并行减法器的设计,使用VHDL
完成器件设计及功能仿真,仿真数据要求:反映结果无CF,有ZF,有
CF的情况;
●把无符号4位二进制数的减法器、加法器整合为一个完整、独立的运算
单元,推导16位二进制数并行加法/减法的逻辑关系,设计先行进位电
路74LS182,完成一个完整的8位无符号二进制数并行加法、减法运算
单元,生成器件的符号图,进行功能仿真,仿真数据要求:反映结果无
CF,有ZF,有CF的情况;
●定点整数补码的并行加法/减法运算单元:推导补码格式下的减法实现,
推导溢出的判断逻辑OF,在前面的8位无符号二进制并行加法/减法运
算单元基础上,完成8位补码定点整数的并行加法/减法运算单元的器件
设计,进行功能仿真,仿真数据设定:OF=0时(正正、正负、负正、负
负数据的加法及减法),OF=1时(正正、负负数据的加法及正负、负正
数据的减法)。
无符号二进制加法、减法运算——OF=CF=C8
有符号定点数减法、加法运算——OF=C8 ⊕ C7,CF=C8(没有意义)(2)逻辑运算单元——逻辑与、逻辑或、逻辑异或,输出结果考虑ZF,完成设计并进行功能仿真;
(3)4位无符号二进制数乘法运算单元——推导无符号阵列乘法(并行乘法)的逻辑关系,根据实现乘法的FA阵列结果,应用元件例化方法设计并行乘法阵列。
输出结果考虑ZF,完成器件设计并进行功能仿真
(4)把前面的各个运算单元合成为一个多功能运算器ALU:增加MUX,根据完成的9种运算功能,定义ALU功能码ALU_OP,完成器件设计并进行功能仿真,仿真数据的设定:体现每种运算中的特征位。
(5)RAM——应用自定义数据的方法,设计RAM,画出RAM完成写/读操作的逻辑流程图。
输入:地址输入Address_in、数据输入Data_in、片选CS、输出使能OE、读写信号W/R,输出:数据输出Data_out
(6)ROM——设计方法同上。
输入:地址输入Address_in、数据输入Data_in、片选CS、读信号,输出:数据输出Data_out
(7)寄存器堆RF——设计方法同上,本质上等同于一个RAM。
输入:B端口输出的地址输入RS1、RS0,A端口的输出的地址输入RD1、RD0,写访问的地址输入WR1、WR0,数据输入data_in,输出:B端口输出,A端口输出(8)数据缓冲寄存器DR、指令寄存器IR、数据暂存器ER、地址缓冲寄存器AR——输入:输入数据data_in、写输入控制信号LD、时钟输入信号clk,输出:数据输出
(9)地址加法器——一个简单的8位补码加法器:在控制信号的作用下完成补码地址的相加,否则保持直通功能。
(10)程序计数器PC——在时钟沿到达后,PC_inc有效则实现递增,LDPC 有效,则实现置数,否则保持不变。
输入:data_in,PC_inc,LDPC,clk,(11)时序信号发生器设计——输入:外部时钟clk,使能信号EN,状态跳跃信号skip等,输出:4个分频信号T1~T4。
4.指令周期流程图:
5.微程序流程图:
6.微指令格式:
7.控制存储器的设计:
8.微地址转移逻辑的设计:
9.微程序思想控制器的集成:。