模块组成原理实验讲义2012101.doc
《模块组成原理实验讲义2012101.doc》由会员分享,可在线阅读,更多相关《模块组成原理实验讲义2012101.doc(81页珍藏版)》请在文库网上搜索。
1、 KX_DN 系列系列 现代计算机组成原理实验讲义现代计算机组成原理实验讲义 C1C1 杭州康芯电子有限公司www.kx-201210- -2目 录前言.4第 1 章 实验所用模块说明5第 2 章 实验说明6第 3 章 计算机功能模块的原理与设计64.1 CPU 基本功能与结构.64.2 计算机中的基本部件.74.2.1 算术逻辑单元.7 4.2.2 数据缓冲寄存器.9 4.2.3 移位运算器.9 4.2.4 程序存储器与数据存储器.10 4.2.5 程序计数器与地址寄存器.10 4.2.6 指令寄存器.12 4.2.7 微程序控制器.12 4.2.8 微程序控制器电路结构.14 4.2.9
2、时序发生器.164.3 数据通路设计.17 4.3.1 模型计算机的数据通路.15 4.3.2 模型机的电路结构.18 实验 4-1 算术逻辑运算单元 ALU 设计实验.19 实验 4-2 带进位算术逻辑运算单元 ALU 设计实验21 实验 4-3 移位运算器设计实验.22 实验 4-4 LPM_ROM 实验.23 实验 4-5 LPM_RAM 实验.24 实验 4-6 微控制器实验 1:节拍脉冲发生器时序电路实验25 实验 4-7 微控制器实验 2:程序计数器 PC 与地址寄存器 AR 实验.26 实验 4-8 微控制器实验 3:微控制器组成实验27第 5 章 8 位模型计算机原理与设计.2
3、9- -3实验 5-1 基本模型计算机设计与实现.29 实验 5-2 带移位运算的模型机设计与实现.30 实验 5-3 含 16 条指令的 CPU 设计与实现.31 实验 5-4 较复杂 CPU 应用程序设计实验.32第 6 章 16 位实用 CPU 原理与创新实验与设计.36实验 6-1 16 位计算机基本部件实验.36实验 6-2 16 位 CPU 验证性设计综合实验.37实验 6-3 新指令设计及程序测试实验.37实验 6-4 16 位 CPU 的优化设计与创新38实验 6-5 KX9016v1 系统硬件升级 CPU 设计竞赛项目.38第 7 章 流水线 CPU 原理实验与设计.39 实
4、验 7-1 高速硬件乘法器设计实验.39 实验 7-2 高速硬件除法器设计实验.40 实验 7-3 CACHE 实验.41第 8 章 流水线 CPU 设计实验与设计43 实验 8-1Stage1 取指令段设计实验43 1PC 选择模块 pcselector 实验.44 2程序计数器加 1 模块实验.443IF/ID 流水线寄存器实验444程序存储器 LPM_ROM 实验.445Stage1 综合实验44实验 8-2 Stage2 指令译码段设计实验.44 1符号扩展模块实验.44 2寄存器文件模块实验.44 3分支控制模块实验.45 4ID/EX 段的流水线寄存器实验.45 5Stage 2
5、指令译码段综合实验.45实验 8-3 Stage3 指令译码段设计实- -4验.46 1运算器 ALU 实验.47 2移位运算器实验.47 3数据输入模块实验.47 4EX/MEM 段流水线寄存器实验.47 5Stage3 综合实验.47实验 8-4 Stage4/5 存储与写回段设计实验.481数据存储器实验.482MEM/WB 流水线寄存器实验.483输出端口寄存器实验.484多路数据选择/输出实验48实验 8-5 数据相关性控制实验.48实验 8-6 数据通路设计实验.49实验 8-7 流水线 CPU 综合设计.50第 10 章 基于经典处理器 IP 的 SOC 实现.52 10.1 基
6、于 8051 单片机核的 SOC 系统实现.53 10.1.1 K8051 单片机软核基本功能和结构.53 10.2 基 8088 IP 核的 SOC 系统实现.57 10.2.1 8088 IP 核 SOC 系统.57 10.2.2 基于 8088 CPU IP 软核的最小系统构建.58 10.2.3 可编程并行接口 8255 IP核60 10.2.4 8255 IP 核基本功能测试61 10.2.5 8255 IP 在 8088 IP 核系统中的应用示例.63 10.2.6 8254/8253 IP 核可编程定时器/计数器.65 10.2.7 8254 IP 核基本功能测试66 10.2.
7、8 8254 IP 核在 8088 系统中的应用示例.67 10.2.9 8259 IP 中断控制器的功能和用法68 10.2.10 8259 IP 在 8086/8088 系统中的应用70 10.2.11 8237 DMA 控制器71 10.2.12 16550 IP 核可编程串行通信模块72 10.3 基于 8086 IP 软核的 SOC 微机系统设计.73 10.3.1 8086Z CPU 性能特点.74 10.3.2 KX86Z 微机系统的结构与功能74 10.3.3 KX86Z_FULL 系统上 MS-DOS 的使- -5用75 10.3.4 在 KX86Z_FULL 系统进行 C
8、程序或 BASIC 程序编程.7710.3.5 在 KX86Z_FULL 上启动 Windows 3.0.77 实验与设计77前前 言言 讲义说明:讲义说明:此此讲义讲义根据科学出版社出版的第二版根据科学出版社出版的第二版 现现代代计计算机算机组组成原理成原理 节选实验节选实验部分。具体部分。具体可参考此教程。可参考此教程。此此讲义对设备讲义对设备功能介功能介绍请绍请参照参照 EDA 实验讲义实验讲义 内容,内容,这这里不在里不在赘赘述。述。实验设备实验设备的配置及光的配置及光盘说盘说明明请请参照参照 EDA 实验讲义实验讲义 前言部分。前言部分。此此实验讲义仅对计实验讲义仅对计算机算机组组成
9、原理的成原理的实验实验内容内容进进行介行介绍绍,关于理,关于理论论和原理和原理请请参照科参照科学出版社出版,潘松等学出版社出版,潘松等编编著的著的 现现代代计计算机算机组组成原理成原理 第二版。第二版。 声声 明明凡本公司提供的凡本公司提供的实验实验源程序及源程序及资资料料仅仅用作教学研究之用,不得用于商用作教学研究之用,不得用于商业业开开发发, ,否否则则将追究法律将追究法律责责任。任。 版本版本历历史史- -6版本版本修改日期修改日期修改内容修改内容C12012-10第一版本第一版本第 1 章、实验所用的模块说明1、实验基本输入和输出模块:、实验基本输入和输出模块:1.1 32 位输出显示
10、位输出显示 HEX 模块(图模块(图 1-1)此模块由一单片机控制和相关驱动电路。其功能和用法如下:(1)8 位 HEX16 进制码显示,可向外输出二进制共 32 位。 (2)无抖动单脉冲输出。在数字系统设计中,手动按键式无抖动脉冲的发生经常会被用到。标注“1”共 4 个座,每个座提供 2 组 4 位二进制的输出端口:每 A、B、C、D 为从高到低一组,上面对应数码管显示 16 进制码,通过 10 芯线连接向外部提供信号。标注“2”复位键,输出显示归“0”如 CPU 的图图 1-1 32 位输出显示位输出显示 HEX 模块模块 单步运行、计数器对单脉冲的记录等。标注“3”输入键,每个键输入 4
11、 位二进制,从底到高渐进输入,进译码电路输出 16 进制码在数码上显示,并通过标注“1”端口输出对应二进制信号。在数字系统设计中,手动按键式无抖动脉冲的发生经常会被用到。如 CPU 的输入信号,加法器,减法器等输入信号。原理图请参考文件夹“原理图 KX_OTP.pdf“。1.2 32 位输入显示位输入显示 HEX 模块(图模块(图 12)此模块为外部输入 32 位二进制信号进此模块的译码电路显示 16 进制。标注“1”32 位共提供 4 个座,每个座提供 2组 4 位二进制的输入端,每 A、B、C、D 为一组。在数字系统设计中,手动按键式无抖动脉冲的发生经常会被用到。如 CPU 的单步运行、计
12、数器对单脉冲的记录等。原理图请参考文件夹“原理图 KX_INPT.pdf“。图 1-2 32 位输入显示模块1.3 提供高低电平开关(图提供高低电平开关(图 13)此模块节选主系统右下方,共8 个乒乓开关,拨上输出“1” ,拨下“0” ,右边为输出的端口,其边- -7上每个开关标识和开关上端的 图图 13标识对应起来即可。此模块适合做控制信号,如 CLR ,进位,使能等。1.4 提供高低电平开关(图提供高低电平开关(图 14)此模块节选主系统下方,共 8 个 LED 放光管,输入“1”点亮,上方是输入端口,其边上的标识和 LED 边上的标识对应起来即可,适合作为进位显示、移位显示灯实验图 14
13、第 2 章、实验讲义说明以下实验节选自科学出版社出版、潘松编著的现代计算机组成原理第二版的有关章节,为了用户能和此教程相对应,以下章节和教材的章节相同,详细理论及原理请参考此教程。第 4 章 计算机功能模块的原理与设计微型计算机的硬件主要由控制器、运算器、存储器、输入设备和输出设备 5 部分组成。作为计算机的核心部件,即中央处理器(CPU)集成了运算器,控制器及部分接口电路。现在,随着集成电路集成度的不断提高,将微机中越来越多的部件集成于同一片集成电路上,即所谓片上系统。本章主要讨论传统计算机组成原理中涉及的 CPU 中的主要模块及相关的计算机功能模块的工作原理和设计方法,为使用这些模块构建一
14、片完整的CPU,乃至一台基于片上系统的模型计算机作必要的准备工作。为了使尚不具备 HDL 知识的读者集中精力面对电路模块的基本原理和设计方法,除极个别的情况外,在本章及第 5 章中,对于功能模块及相关电路的表述形式尽可能限于 Quartus II 原理图的宏模块和原理图。至于极个别的 HDL 表述,只需关注其具体功能。4.1 CPU 基本功能与结构CPU 由基本的功能模块和与之相连接的数据通路所组成。对于 CPU 的设计,必须首先了解其结构细节及其基本模块的功能。然后对各模块电路进行编辑设计、逻辑综合、时序仿真和硬件测试,直至硬件实现。最后组装成一个完整的硬件系统,这个过程当然还包括指令系统的
15、设计和软件程序调试等步骤。1CPU 的功能为使计算机系统完成既定任务,就要使其各部件能协调工作。CPU 的功能是通过软件指令的执行,进而控制各部件协调工作来体现的,CPU 的功能主要包括:(1)指令控制。为了使计算机解决某些问题,计算机程序员需要针对计算机编制程序,而这些程序就是指令的有序集合。按照“存储程序控制”的概念,程序被装入计算机的程序存储器,即主存后,启动的计算机即能按预先设定的要求有条不紊地执行指令,进而完成既定的任务。因此,严格控制程序的执行顺序,是- -8CPU 的首要任务。(2)操作控制。一条具体指令的执行,需要涉及计算机中若干个部件或功能模块。控制这些部件协同工作,则需要靠
16、一系列操作信号的默契配合。而 CPU 正是通过执行每一条指令来产生这些操作信号的,CPU 将操作信号传送给被控部件,并能检测各个部件发送的信号,从而协调各个工作部件,按指令要求完成规定的任务。(3)时序控制。为使计算机按照程序员的要求有条不紊地工作,对各种操作信号的产生时间、稳定时间、撤销时间及相互间的关系都应有严格的要求。CPU 对操作信号施加时间上的控制,称为时序控制。只有严格的时序控制,才能保证各功能部件的合理配合,构成协调工作的计算机系统。严格合理的时序控制也是 CPU的重要工作。(4)数据处理。对涉及数值数据的算术运算,逻辑变量的逻辑运算以及其他非数值数据(如字符、字符串)的处理,可
17、统称为数据加工或数据处理。数据处理是完成程序功能的基础,因此它也是 CPU 的基本任务。2CPU 结构CPU 由运算器、控制器和数据通道三大部分有机组成。这三个部分功能各异,但工作配合密切,缺一不可。图 4-1 是 8 位 CPU 主要组成部件的功能模块图。运算器主要由算术逻辑单元 ALU、数据寄存器、暂存寄存器和状态条件寄存器等部件组成。它们属于数据加工处理部件,负责执行算术运算和逻辑运算操作。其中,运算器进行的全部操作都由控制器发出的控制信号来完成的。从图 4-1 可以看到,控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器 5 部分组成。控制器是协调和指挥整个计算机系统工
18、作的“决策机构” 。控制器的主要任务是: 取指令。即从主存中取出一条指令,存放到指令寄存器中。指令的操作码部分送给指令译码器,并修改程序计数器,指出下一条指令在主存中的存放地址。 指令译码。对译码器中指令操作码进行识别和解释,产生相应的操作控制信号,启动相应的部件,完成指令规定的动作。 数据流控制。指挥和控制 CPU、主存及输入输出部件之间的数据流动方向。运算器和控制器间的协调工作涉及大量的控制信息和数据信息的流通,这就需要一套高效的数据信息通道。控制信号和被处理的数据都将在这一通道中流动,这从图 4-1 也可大致看到,图中各功能模块的信息通道最终都汇集到一条总的通信线路上,来自各模块的信息,
19、包括控制信息和数据信息将分时借用这条通道流向预定的方向及相应模块,这就是计算机的总线系统。4.2 计算机中的基本部件为了聚焦核心问题,这里所谓的计算机主要包括 CPU、程序存储器/数据存储器两个大的部分。本节主要讨论这两大部件中的基本组成模块的结构、功能及其实现方法,或者说设计与功能测试方法。4.2.14.2.1算术逻辑单元算术逻辑单元前面已经谈到,CPU 中的一个重要部件是运算器,这是数据加工处理的部件。运算器由算术逻辑单元(ALU) 、数据缓冲寄存器、寄存器组和状态寄存器组成。运算器接受控制器的命令,完成具体的数据加工任务。运算器对累加器和数据缓冲寄存器的内容进行算术运算或逻辑运算,运算的
20、结果保存到累加器中,同时建立相应的状态标志,并将它们存放到状态寄存器中。图 4-1 CPU 组成部件的功能模块图- -9CPU 中的算术逻辑单元是计算机的核心部件之一,它能执行加法和减法等算术运算,也能执行“与” 、“或” 、 “非”等逻辑运算。对于 8 位算术逻辑单元的基本功能可以根据由标准逻辑器件 74LS181(4 位)组合的电路结构的功能用硬件描述语言来表述。例 4-1 就是算术逻辑单元 ALU 的 Verilog HDL 程序,这是根据表4-1 的 ALU 逻辑功能及 8 位处理部件的要求写出的。表 4-1 是 ALU 的基本算术与逻辑功能表。表 4-1 ALU 的运算功能M=H 逻
21、辑操作M=L 算术操作选择端S3 S2 S1 S0逻辑功能Cn=L(无进位)Cn=H(有进位)0 0 0 0AF AF 1加AF 0 0 0 1BAFBAF加 1)(BAF0 0 1 0BAF BAF+1BAF0 0 1 10F减 1(2 的补码)F0F0 1 0 0ABF BAAF加加 1BAAF加0 1 0 1BF 加)(BAFBA加+1)(BAFBA0 1 1 0BAFBAF减1减减BAF 0 1 1 1BAF BAF1)(减BAF1 0 0 0BAFABAF加加 1ABAF加1 0 0 1BAFBAF加加 1BAF加1 0 1 0BF ABBAF)加(加 1ABBAF加)(1 0 1
22、1ABF ABF 1减ABF 1 1 0 01F*AAF加1加加AAF 1 1 0 1BAFABAF)加(加 1ABAF)加(1 1 1 0BAFABAF)加(加 1ABAF)加(1 1 1 1AF AF 1减AF 注 1、* 表示每一位都移至下一更高有效位, “+”是逻辑或, “加”是算术加。注 2、在借位减法表达上,表 4-1 与 TTL 器件 74LS181 的真值表略有不同。如表 4-1 所示,M 信号端是算术运算/逻辑运算的方式选择位。当 M=H(高电平)时,ALU 进行逻辑运算;当 M=L(低电平)时,ALU 进行算术运算。Cn 是低位的进位,当 Cn 为低电平时,作无进位运算,而
23、当 Cn为高电平时,作有进位运算。S3、S2、S1、S0 分别是 4 位运算操作方式的选择控制端,从 00001111 共有 16种不同的选择。在算术运算方式下,或逻辑运算方式下都分别具有各自不同的 16 种运算操作。在例 4-1 中,各端口信号的作用分别是:S3:0是 ALU 的操作选择信号;A 和 B 分别是参加算术运算或逻辑运算的两个 8 位输入操作数;F 是 ALU 运算后的 8 位数据输出结果;CN 是进入 ALU 进行算术运算的低位进位位,或进行逻辑运算的进位标志; CO 是运算结果产生进位/借位的输出标志位;FZ 是运算结果为零的输出标志位;F 是运算输出结果。图 4-2 是例
24、4-1 的逻辑模块图,是利用第 2 章图 2-27 所示的选择项将例 4-1 变换成的元件符号,这个元件可以在今后的 CPU 设计的顶层原理图中直接调用。读者可以暂时只关注此模块的外部功能,即其时序特性。例 4-1 描述的算术逻辑单元 ALU181A.v 的仿真测试波形如图 4-3 所示。读者可以将此波形图给出的计算结果逐项对照表 4-1,进行验证。例如根据表 4-1,当 M=0、S=1001(9)、Cn=1 时作含进位的普通算术加法,图 4-3 显示,在此数据对应下,输出结果 F=A+B+Cn=34H+ACH+1=E1H,且 CO=0。【例4-1】module ALU181A (S, A,
25、B, F, M, CN, CO, FZ);input3:0 S; input7:0 A,B; input M, CN; output7:0 F; output CO, FZ; wire7:0 F; wire CO;wire8:0 A9, B9; reg FZ; reg8:0 F9; assign A9=1b0,A ; assign B9=1b0,B; always (M or CN or A9 or B9 or S) begin case (S)图 4-2 ALU 逻辑图- -10 4b0000 : if (M=0) F9=A9+CN ; else F9=A9; 4b0001 : if (M=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块 组成 原理 实验 讲义 2012101