当前位置:文档之家› 8位CPU设计报告

8位CPU设计报告

8位CPU设计报告
8位CPU设计报告

8位CPU的系统设计

1. 设计的任务与要求

CPU 的主要功能是执行指令,控制完成计算机的各项操作,包括运算操作、传送操作、输入/输出操作等。作为模型计算机设计,将重点放在寄存器级,采取较简单的组成模式,以尽量简洁的设计帮助读者掌握CPU 的基本原理。

此次设计CPU就是为了了解CPU运行的原理,从而完成从指令系统到CPU的设计,并且通过仿真对CPU设计进行正确性评定。

1.1设计指标

1. 能实现IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP

(无条件转移)这五种指令;

2. 整个系统能正常稳定工作。

1.2 设计要求

1. 画出电路原理图、仿真波形图;

2. 编写设计报告,写出设计的全过程,附上有关资料和图纸(也可直接写在

相关章节中),有心得体会。

2. 方案论证与选择

2.1 CPU的系统方案

CPU 主要由算术逻辑单元ALU,数据暂存寄存器DR1、DR2,数据寄存器R0~R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY,指令寄存器IR,微控制器uC,输入单元INPUT 和输出单元OUTPUT 所组成。图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片FPGA 中实现。虚线框外部分主要是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向CPU 输入数据,或CPU 向外输出数据,以及观察CPU 内部工作情况及运算结果。

1.运算部件

运算部件的任务是对操作数进行加工处理。主要由三部分组成:(1)输入逻辑。(2)算术/逻辑运算部件ALU。(3)输出逻辑

2.寄存器组

计算机工作时,CPU 需要处理大量的控制信息和数据信息。例如对指令信息进行译码,以便产生相应控制命令对操作数进行算术或逻辑运算加工,并且根据运算结果决定后续操作等。因此,在CPU 中需要设置若干寄存器,暂时存放这些信息。在模型CPU中,寄存器组由R0、R1、R2 所组成。

3.指令寄存器指令寄存器(IR)用来存放当前正在执行的指令,它的输出包括操作码信息、地址信息等,是产生微命令的主要逻辑依据。

4.程序计数器程序计数器(PC)也称指令指针,用来指示指令在存储器中的存放位置。当程序顺序执行时,每次从主存取出一条指令,PC 内容就增量计数,指向下一条指令的地址。增量值取决于现行指令所占的存储单元数。如果现行指令只占一个存储单元,则PC 内容加1;若现行指令占了两个存储单元,那么PC 内容就要加2。当程序需要转移时,将转移地址送入PC,使PC 指向新的指令地址。因此,当现行指令执行完,PC 中存放的总是后续指令的地址;将该地址送往主存的地址寄存器AR,便可从存储器读取下一条指令。

5.地址寄存器CPU 访问存储器,首先要找到需要访问的存储单元,因此设置地址寄存器(AR)来存放被访单元的地址。当需要读取指令时,CPU 先将PC 的内容送入AR,再由AR将指令地址送往存储器。当需要读取或存放数据时,也要先将该数据的有效地址送入AR,再对存储器进行读写操作。

6.标志寄存器标志寄存器F 是用来记录现行程序的运行状态和指示程序的工作方式的,标志位则用来反映当前程序的执行状态。一条指令执行后,CPU 根据执行结果设置相应特征位,作为决定程序流向的判断依据。例如,当特征位的状态与转移条件符合时,程序就进行转移;如果不符合,则顺序执行。在后面将要介绍的较复杂模型计算机设计中设置了两个标志位:进位Fc、零位Fz。

7.微指令产生部件

实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部件,根

据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同

时在数据传送至运算部件时控制完成运算处理。

微命令产生部件可由若干组合逻辑电路组成,也可以由专门的存储逻辑组成。产生微命令的方式可分为组合逻辑控制方式和微程序控制方式两种。在本章所介绍的8 位模型CPU 设计中,采用微程序控制方式通过微程序控制器和微指令存储器产生微命令,因此此CPU 属于复杂指令CISC CPU。

8.时序系统

计算机的工作常常是分步执行的,那么就需要有一种时间信号作为分步

执行的标志,如周期、节拍等。节拍是执行一个单步操作所需的时间,

一个周期可能包含几个节拍。这样,一条指令在执行过程中,根据不同

的周期、节拍信号,就能在不同的时间发出不同的微命令完成不同的微

操作。周期、节拍、脉冲等信号称为时序信号,产生时序信号的部件称

为时序发生器或时序系统,它由一组触发器组成。由石英晶体振荡器输

出频率稳定的脉冲信号,也称时钟脉冲,为CPU 提供时钟基准。时钟脉

冲经过一系列计数分频,产生所需的节拍(时钟周期)信号。时钟脉冲

与周期、节拍信号和有关控制条件相结合,可以产生所需的各种工作脉

冲。

2.2模型机指令系统

一条指令必须包含下列信息:

操作码、操作数的地址、操作结果的存储地址、下一条指令的地址。

指令的基本格式

op-code 为操作码,rs为源寄存器,rd 为目的寄存器

寄存器操作数

模型机指令系统,及其指令编码形式

设模型机指令系统中包含有五条基本指令,分为算术运算指令、存取指令和控制转移指令等三种类型。五条机器指令分别是:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)。IN 为单字长(8 位二进制),其余为双字长指令,XX H 为addr对应的十六进制地址码。

2.3 拟定指令流程和微命令序列(计算机设计中最关键步骤)

1.微程序控制概念

(1)微命令和微操作

一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本

的,不可再分解的操作。在微程序控制的计算机中,将控制部件向执行部件

发出的各种控制命令叫做微命令,它是构成控制序列的最小单位。因此,微

命令是控制计算机各部件完成某个基本微操作的命令。

微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。微命令有兼容性和互斥性之分。兼容性微命令是指那些可以同时产生,共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。兼容和互斥都是相对的,一个微命令可以和一些微命令兼容,和另一些微命令互斥。对于单独一个微命令,就无所谓兼容性或互斥性了。

(2)微指令、微地址

微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命

令的集合,存放控制字的控制存储器的单元地址就称为微地址。一条微

指令通常至少包含两大部分信息:

微操作码字段,又称操作控制字段,该字段指出微指令执行的微操作;

微地址码字段,又称顺序控制字段,指出下一条要执行的微指令的地址。

(3)微周期

所谓微周期是指从控存中读取出一条微指令并执行规定的相应操作所需的时间。(4)微程序

一系列微指令的有序集合就是微程序。若干条有序的微指令构成了微程序。微程序可以控制实现一条机器指令的功能。或者说一条机器指令可以分解为特定的微指令序列。一旦机器的指令系统确定以后,每条指令所对应的微程序被设计好并且存入控存后,控存总是处于只读的工作状态,所以控存一般采用只读存储(ROM)存放。重新设计控存内容就能增加、删除、修改机器指令系统。在FPGA 中通常采用嵌入式阵列块构成的LPM_ROM 作为控存,存放微指令。

2.微指令格式

(1)水平型微指令

一次能定义并执行多个并行操作微命令的微指令。

按照操作控制字段的编码方法不同,水平型微命令又分为三种:第一种是全水平型(不译码法)微指令,第二种是字段译码法水平型微指令,第三种是直接和字段译码相混合的水平型微指令。

(2)垂直型微指令

垂直型微指令中设置操作码字段,由微操作码规定微指令的功能。

垂直型微指令的结构类似于机器指令的结构。在一条微指令中只存一二个微命令,每条微指令的功能比较简单。因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多,它是采用较长的微程序结构去换取较短的微指令结构。

3.模型机的微指令

uA5~uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的微地址。S3、S2、Sl、S0:由微程序控制器输出的ALU 操作选择信号,以控制执行16 种算术操作或16 种逻辑操作中的某一种操作。

M:微程序控制输出的ALU 操作方式选择信号。M=0 执行算术操作;M=l执行逻辑操作。。Cn:微程序控制器输出的进位标志信号,Cn=0 表示ALU 运算时最低

位有进位;Cn=1 则表示无进位。

WE:微程序控制器输出的RAM 控制信号。当CE=0 时,如WE=0,为存储器读;如WE=1,为存储器写。A9、A8:译码后产生CS0、CS1、CS2 信号,分别作为SW_B、RAM、LED 的选通控制信号。

A 字段(15、14、13):译码后产生与总线相连接的各单元的输入选通

信号。

B 字段(12、11、10):译码后产生与总线相连接的各单元的输出选通

信号。

C 字段(9、8、7):译码后产生分支判断测试信号P(1)~P(4)和LDPC 信号。

4.微指令的执行方式

执行一条微指令的过程类似于机器指令的执行过程。首先,将微指令从控

存CM 中取出,称为取微指令。对于垂直型微指令还应包括微操作码的译码

时间。然后,执行微指令所规定的各个微操作。根据微指令的执行方式可

分为串行执行和并行执行两种。

5.时序安排

由于CPU 的工作是分步进行的,而且需要严格定时控制,因此设置时序信号,以便在不同的时间发出不同的微命令,控制完成不同的操作。组合逻辑控制方式和微程序控制方式在时序安排上有区别,前者多采用三级时序划分,而后者往往采用两级时序。

6.拟定指令流程和微命令序列

这是设计中最关键的步骤,这是由于需要根据这一步的设计结果形成最

后的控制逻辑。拟定指令流程是将指令执行过程中的每步传送操作(寄

存器之间的信息传送),用流程图的形式描述出来,拟定微命令序列是

用操作时间表列出每步操作所需的微命令及其产生条件。

7.形成控制逻辑

设计的最后一步。采用组合逻辑控制方式或采用程序控制方式,有各自不同的设计方法。在组合逻辑控制方式中,将产生微命令的条件进行综合、化简,形成逻辑式,从而构成控制器的核心逻辑电路。在微程序控制方式中,则是根据微命令来编写微指令,组成微程序,从而构成以控制存储器为核心的控制逻辑。

2.4 微程序设计

1.IN指令

为了执行输入指令,CPU 要做两件事情。首先,由INPUT 输入装置的数据开关SW

输入数据送到数据总线上;其次,通过数据总线将输入的数据写入寄存器R0 中。2.ADD指令 R0←R0+(MEM)

存储单元的地址是存放在紧跟在操作码后的字节中的,因此,首先要以该字节的内容为地址,即将该单元内容送地址寄存器AR;然后,从AR 所指向的RAM 存储单元取出操作数送给DR2。由于在取指令操作码时,PC 已经自动加1,指向下一字节,该地址就是存放操作数的存储单元的地址。

3.STA指令

向存储器RAM 写数据操作STA,以紧跟在操作码后的字节作为存放操作数

地址,将R0 中的数据存入该地址单元。首先将紧跟在操作码后的字节的

内容送给地址寄存器AR。

4. OUT指令

AR←PC,PC←PC+1;以PC的内容作为存数据的地址

BUS←RAM,AR←BUS;AR指向存放操作数的RAM单元

BUS←RAM,DR1←BUS

OUT←DR1

5.JMP指令

AR←PC,PC←PC+1 ;以PC的内容作为取数据的地址

BUS←RAM,PC←BUS ;将RAM内容送PC,实现程序转移

3. CPU设计及微代码

3.1 原理图模版

3.2取指令和指令

1.取指令阶段

取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中。具体的操作如下:

(1)将程序计数器(PC)中的内容送至存储器地址寄存器(AR),并送往地址总线(AB)。

(2)PC 的内容递增,为取下一条指令做好准备。

(3)由控制单元(CU)经控制总线(CB)向存储器发读命令。

(4)从主存中取出的指令通过数据总线(DB)送到指令寄存器(IR)中。

以上这些操作对任何一条指令来说都是必须要执行的操作,所以称为公共操作。完成取指阶段任务的时间称为取指周期。取出指令后,指令译码器ID 可识别和区分出不同的指令类型。此时计算机进入分析取数阶段,以获取操作数。由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的。(5)指令寄存器(IR)中的内容送指令译码器(ID)进行指令译码。

(6)指令译码器(ID)的内容送操作控制器。

(7)操作控制器产生执行指令的微控制。

2. 分析取数阶段

对于无操作数指令,只要识别出是哪条具体的指令,即可以直接转至执行阶段,所以不需进入分析取数阶段。而对于带操作数指令,为读取操作数首先要计算出操作数的有效地址。如果操作数在通用寄存器内,则不需要再访问主存;如果操作数在主存中,则要到主存中去取数。对于不同的寻址方式,有效地址的计算方法是不同的,有时要多次访问主存才能取出操作数(间接寻址)。对于无操作数

指令,只要识别出是哪条具体的指令,即可以直接转至执行阶段,所以不需进入分析取数阶段。而对于带操作数指令,为读取操作数首先要计算出操作数的有效地址。如果操作数在通用寄存器内,则不需要再访问主存;如果操作数在主存中,则要到主存中去取数。对于不同的寻址方式,有效地址的计算方法是不同的,有时要多次访问主存才能取出操作数(间接寻址)。另外对于单操作数指令和双操作数指令,由于需要的操作数的个数不同,分析取数阶段的操作也不同。

3. 执行阶段

执行指令阶段完成指令规定的各种操作。执行阶段完成任务的时间称为执行周期。计算机的基本操作过程就是取指令、取操作数、执行指令,然后再取下一条指令……如此周而复始,直至遇到停机指令或外来的干预为止。

3.3设计微代码表

微程序流程图是根据每条指令的微操作流程所绘制的,操作框内给出的是该微操作要执行的动作。当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试,根据P(1)的测试结果将出现多路分支。由于操作码的位数已确定为4 位,所以可直接将操作码与微地址码的部分对应。本模型机用指令寄存器(IR7~IR0)的高4 位(IR7~IR4)与微地址码的后4 位对应。

模型机的微地址码共有六位,微地址码的高三位已固定为001,低三位从000~111 共有八种状态,现设计了五条指令,需要五个分支入口,因此,将低三位中的000B~100B 这五个地址分配给这五条指令,就得到五个分支入口微地址。

这五个分支入口(以八进制表示)分别是10、11、12、13 和14,占用五个固定的微地址单元。其余的微操作单元的微地址设置,可以将还未使用的微地址按照从小到大的顺序依次分配给这些微操作单元,微地址的分配情况见图5-4。微地址标注在每个微操作框的左上角,右上角标注的是微指令码。

3.4 建立数据通路

ALU 为运算器;DR0 和DR1 为其输入端的两个暂存寄存器;R0 是数据寄存器,用来保存数据和运算结果;PC 为程序计数器;IR 和ID 分别为指令寄存器和指令译码器;AR 和MOMERY 分别为存储地址寄存器和存储数据寄存器;INPUT 为输入装置;OUTPUT 为输出装置。各基本单元模块的输出端通过三态门控制与内部数据总线相连接;微控制器按照时序发生器的节拍,对指令进行译码后产生同步的控制信号。各部件旁边的C 是由微指令译码器输出的控制信号,用于控制数据的输入和输出。与数据总线相连的信号有些是单向的,有些则是双向的。如数据寄存器、存储器、I/O 接口的数据信号是双向的,而指令信号、地址信号、控制信号是单向的。实际上在FPGA 中,双向端口元件的表述方法是:输入和输出端口采用两个不同的端口,这时各基本元件的输出端口不能直接与内部总线连接在一起,而是需要通过三态门控制以后再连接到总线上。在向总线输出数据时,不能同时有两路或两路以上数据一起输出,否则会发生数据冲突。因此在设计微程序、确定微操作时,应注意数据传输中控制信号对时序的要求。

3.5 微程序控制的基本原理

3.6 在模型CPU中的软件执行

微指令执行情况

4. 仿真结果

4.1.波形仿真结果

4.2.模型CPU使用FPGA资源报告

5.心得体会

通过此次的设计,我受益匪浅。首先,我对CPU有了基本认识,认识它的原理,结构,运行;其次,我对微指令的认识也有了进一步提高,特别是指令对应的功能以及对指令的理解;再次,我学会了看CPU功能仿真结果,我认为这是此次最大的收获,毕竟这以为着我对该部件的原理及功能运行有了一定层次的理解;最后,我必须承认,不管遇到什么问题都要从底层抓起,然后去解决问题,当我对某些东西不懂时,要从书本的最基本概念看起,再到原理,运行层次,结构等去理解才能真正懂,还有和他人的交流很重要,不懂的问题彼此交换意见可以受益匪浅。我很感谢此次机会让我有了一次锻炼。

参考文献:

[1] 潘松潘明. 现代计算机组成原理. 科学出版社.

精简8位cpu设计报告

精简8位cpu实验设计报告 实验介绍: 实验分为两个部分,第一部分为16*8 ROM 设计与仿真 第二部分为SAP-1 设计与仿真 实验流程: ①16*8 ROM 的设计与仿真 Rom16_8.VHDL LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ROM16_8 is PORT( DATAOUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --Data Output ADDR :IN STD_LOGIC_VECTOR(3 DOWNTO 0); --ADDRESS CE :IN STD_LOGIC --Chip Enable ); END ROM16_8; ARCHITECTURE a OF ROM 16_8 IS BEGIN DATA<=“00001001”WHEN ADDR=“0000”AND CE=‘0’--LDA 9H “00011010”WHEN ADDR=“0001”AND CE=‘0’ELSE --ADD AH “00011011”WHEN ADDR=“0010”AND CE=‘0’ELSE --ADD BH “00101100”WHEN ADDR=“0011”AND CE=‘0’ELSE --SUB CH “11100000”WHEN ADDR=“0100”AND CE=‘0’ELSE --OUT “11110000”WHEN ADDR=“0101”AND CE=‘0’ELSE --HLT “00010000”WHEN ADDR=“1001”AND CE=‘0’ELSE “00010100”WHEN ADDR=“1010”AND CE=‘0’ELSE “00011000”WHEN ADDR=“1011”AND CE=‘0’ELSE

计算机组成原理CPU设计

1 CPU的用途 字长:8位D[7…0] 寻址围:64byte,2的6次方=64,A[5…0] 2 确定ISA(包括程序员可访问的寄存器) 1)程序员可访问的寄存器AC—8位累加器 3 CPU设计状态图 为了确定CPU的状态图,对每条指令作以下分析 1)从存贮器中取指令(所有指令均相同) 原理:在CPU能执行指令之前,它必须从存贮器中取出,CPU通过执行如下的操作序列完成这个任务 A)选择存贮单元由A[5…0]确定 B)对工A[5…0]译码,延迟,并向存贮器发一个信号使存贮器将此指令输出到它的输出引脚。这些引脚与CPU的D[7…0]相连。CPU从这些引脚读 入数据。 具体操作:(分为三个状态) A)要取的指令的地址存放在程序计数器(PC)中。第一步就是把PC的容拷贝到AR中。 FETCH1:AR←PC B)CPU必须从存贮器中读取指令,为此CPU必须发一个READ信号到器的RD(RD-RAM,相对于OE-ROM)端上使存贮器将数据发送到D[7…0]上,存入 CPU的DR寄存器中。同时实现PC←PC+1,为取下一条指令作准备。 FETCH2:DR←M,PC←PC+1 C)作为取指令的一部分,CPU还必须完成两件事。 ①DR的高2位拷贝到IR,目的是确定指令的功能 ②DR的低6位拷贝到AR,目的: a. 对于ORT和SUB1指令这6 位包含了指令的一个操作数的存贮器 地址(一个数已经在AC) b. 对于COM和JREL,它们不需要再次访问存贮器,一旦它们返回

到FETCH1周期,FETCH1将把PC的值装到AR,覆盖无用的值。 FETCH3:IR←DR[7,6], AR←DR[5…0] 取指令周期的状态图 2)指令译码(每条指令的操作码都是唯一的) 本CPU有四条指令,因此有四个不同的执行同期,为此用IR中的值来确定即可。 3)指令执行(每条指令的执行周期都是一样的) 每条指令的执行周期的状态分析: 1.COM指令 功能是对AC的容取反,执行周期的状态是 COM1:AC←AC’ 2. JREL指令 代码为01AAAAAA,即转移的相对地址由AAAAAA确定,而AAAAAA在 DR[5…0]中,所以有 JREL1:PC←PC+ DR[5…0] 3.OR指令 为了执行指令,必须完成两件事情 OR1:DR←M;从存贮器取出一个操作数送到数据寄存器 OR2:AC←AC∨DR;与AC相或,并把结果存回AC中 4. SUB1指令 为了执行指令,必须完成两件事情

计算机硬件课程设计报告(cpu设计)

计算机硬件课程设计 设计报告 学号: 姓名:成绩: 学号: 姓名:成绩: 东南大学计算机科学与工程系 二0 10 年11 月

一、设计名称: My CPU的设计 二、本设计的主要特色: 1、熟悉挂总线的逻辑器件的特性和总线传送的逻辑实现方法。 2、掌握半导体静态存储器的存取方法。 三、设计方案: 1. 数据格式——8位二进制定点表示 2. 指令系统——CPU的指令格式尽量简单规整,这样在硬件上更加容易实现。 7条基本指令:输入/输出,数据传送,运算,程序控制。 指令格式:Array 7 6 5 4 3 2 1 0 两种寻址方式: 寄存器寻址Array 7 6 5 4 3 2 1 0 直接地址寻址,由于地址要占用一个字节,所以为双字节指令。 7条机器指令:

IN R目:从开关输入数据到指定的寄存器R目。 OUT R源:从指定的寄存器R源中读取数据送入到输出缓冲寄存器,显示灯亮。 ADD R目,R源:将两个寄存器的数据相加,结果送到R目。 JMP address : 无条件转移指令。 HALT : 停机指令。 LD R目,address : 从内存指定单元中取出数据,送到指定寄存器R 目。 ST address , R 源: 从指定的寄存器R源中取出数据,存入内存指定单元。

Address(内存地址) 3. CPU内部结构 4.数据通路设计 根据指令系统,分析出数据通路中应包括寄存器组、存储器、运算器、多路转换器等,采用单总线结构。 通用寄存器组:

运算器: 存储器: 多路转换器:

输出缓冲器: 5.控制器设计 控制通路负责整个CPU的运行控制,主要由控制单元和多路选择器MUX 完成。在每一个时钟周期的上升沿指令寄存器IR 从内存中读取指令字后,控制单元必须能够根据操作码,为每个功能单元产生相应主控制信号,以及对ALU 提供控制信号。对于不同的指令,同一个功能单元的输入不同,需要多路选择器MUX 来对数据通路中功能单元的输入进行选择。

8位CPU的设计与实现

实验题目 8位CPU的系统设计学号 1115106046 姓名魏忠淋 班级 11电子B 班 指导老师凌朝东

华侨大学电子工程系 8位CPU的系统设计 一、实验要求与任务 完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。具体内容包括:典型指令系统(包括运算类、转移类、访存类)设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。 1.1设计指标 能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令; 1.2设计要求 画出电路原理图、仿真波形图; 二、CPU的组成结构

三、元器件的选择 1.运算部件(ALU) ALU181的程序代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO,FZ: OUT STD_LOGIC ); END ALU181; ARCHITECTURE behav OF ALU181 IS SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN A9 <= '0' & A ; B9 <= '0' & B ;

CPU课程设计报告

课程设计报告 课程片上计算机系统 题目 CPU模型机设计 班级 专业 学生 学号 指导教师 2014年7 月 3 日 目录: 1.课程设计的目的及要求 (3) 2.处理器的设计思想和设计内容 (3)

3.设计处理器的结构和实现方法 (3) 4.模型机的指令系统 (4) 5.处理器的状态跳转操作过程 (4) 6. CPU的Verilog代码 (7) 7. 模型机在Quartus II环境下的应用 (19) 8. 仿真波形 (19) 9. 课程设计的总结 (21) 一.课程设计的目的及要求: (一)目的: 1.掌握RISC CPU与内存数据交换的方法。 2.学会指令格式的设计与用汇编语言编写简易程序。 3.能够使用VHDL硬件描述语言在QuartusⅡ软件环境下完成CPU模型机的 设计。

(二)要求: 1.以《计算机组成与设计》书中123页的简化模型为基础更改其指令系 统,形成设计者的CPU, 2.在Quartus II环境下与主存连接,调试程序,观察指令的执行是否达 到设计构想。 二.处理器的设计思想和设计内容: 处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括七个状态。(一)关于修改后的CPU: 一共设计25条指令,主要包括空操作指令、中断指令、加法指令、减法指令、加法指令、四种逻辑运算指令、比较、算术移位操作指令、逻辑移位操作指令、加减1指令、加减2指令、数据传输指令、转移类指令、读写指令、特权指令等等。 (二)关于RAM: 地址线设置成8bits,主存空间为4096words。 三.设计处理器的结构和实现方法: (指令格式) 格式1:寄存器寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP Rx Ry 空白 格式2:寄存器变址寻址方式 OP Ry 空白 格式3:立即数寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP I 空白 格式4:无操作数寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP 空白空白 格式5:直接寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP Addr 内存(2的12次方) 四.模型机的指令系统 CPU的指令集: 操作码OP IR(15..1 2) 指令 格式 指令的助记指令的内容

CPU设计实验报告

实验中央处理器的设计与实现 一、实验目的 1、 理解中央处理器的原理图设计方法。 2、 能够设计实现典型MIPS 的11条指令。 二、 实验要求 1、 使用Logisim 完成数据通路、控制器的设计与实现。 2、 完成整个处理器的集成与验证。 3、 撰写实验报告,并提交电路源文件。 三、 实验环境 VMware Workstatio ns Pro + Win dows XP + Logisim-wi n-2.7.1 四、 操作方法与实验步骤 1、数据通路的设计与实现 数据通路主要由NPC 、指令存储器、32位寄存器文件、立即数扩展部件、 ALU 、数据存储器构成。其中指令存储器和数据存储器可直接调用软件库中的 ROM 和RAM 元件直接完成,其余部件的设计如图所示: Cue ------- 吊孙 ----------- n -ar ch Zan [p]~ 图 1.1 NPC G —-- DO jlf* 04 4 D 04 nero & res?l ■&

幣> >曰CXI e Q

图1.3立即数扩展部件 图 1.4 ALU 2、控制器的设计与实现 控制器的主要设计思想如图所示 图2.1控制器设计思想 通过列真值表得到控制器的两部分电路,真值表如下 : 输入 000000 001101 100011 101011 000100 000010 immIC £it£ DOO -DO ooo n Q □□□non UOnflO OOC ?>:>0 DQ 000 指令 lnst :ruction[31:O] OP[5:OJ fu net [5:0] Jump ExBp Branch Mem Write ALUctr * RegWrite MemtoReg * ALUSrc 控制器 控制信号 LLLLLLLLLmM f ZERO A ()-- irnmmmiiiimiiiiifeiiim IIII93 1-] * 11114444 ".'O

8位CPU的设计与实现

计算机组成原理 实验题目8位CPU得系统设计 学号1115106046 姓名魏忠淋 班级 11电子B 班 指导老师凌朝东 华侨大学电子工程系 8位CPU得系统设计 一、实验要求与任务 完成从指令系统到CPU得设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。具体内容包括:典型指令系统(包括运算类、转移类、访存类)设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。 1。1设计指标 能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令; 1、2设计要求 画出电路原理图、仿真波形图;

二、CPU得组成结构 三、元器件得选择 1.运算部件(ALU) ALU181得程序代码: LIBRARY IEEE; USEIEEE、STD_LOGIC_1164。ALL; USEIEEE、STD_LOGIC_UNSIGNED.ALL; ENTITY ALU181 IS PORT( S: IN STD_LOGIC_VECTOR(3 DOWNTO0 ); A:IN STD_LOGIC_VECTOR(7 DOWNTO0); B: INSTD_LOGIC_VECTOR(7DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ?COUT:OUTSTD_LOGIC_VECTOR(3 DOWNTO0); M :INSTD_LOGIC; CN : IN STD_LOGIC; CO,FZ:OUT STD_LOGIC ); END ALU181; ARCHITECTURE behav OF ALU181 IS SIGNALA9 :STD_LOGIC_VECTOR(8DOWNTO 0); SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO0); SIGNALF9: STD_LOGIC_VECTOR(8 DOWNTO0); BEGIN A9<= '0'& A; B9 <= ’0’&B;

CPU设计实验报告

实验中央处理器的设计与实现 一、实验目的 1、理解中央处理器的原理图设计方法。 2、能够设计实现典型MIPS的11条指令。 二、实验要求 1、使用Logisim完成数据通路、控制器的设计与实现。 2、完成整个处理器的集成与验证。 3、撰写实验报告,并提交电路源文件。 三、实验环境 VMware Workstations Pro + Windows XP + Logisim-win-2.7.1 四、操作方法与实验步骤 1、数据通路的设计与实现 数据通路主要由NPC、指令存储器、32位寄存器文件、立即数扩展部件、ALU、数据存储器构成。其中指令存储器和数据存储器可直接调用软件库中的ROM和RAM元件直接完成,其余部件的设计如图所示: 图1.1 NPC

图1.2 32位寄存器

图1.3 立即数扩展部件 图1.4 ALU 2、控制器的设计与实现 控制器的主要设计思想如图所示 图2.1 控制器设计思想 输入 1 1 0

输出R-type ORI LW SW BEQ JUMP RegDst 1 0 0 x x x ALUSrc 0 1 1 1 0 x MemtoReg0 0 1 x x x RegWrite 1 1 1 0 0 0 MemWrite0 0 0 1 0 0 Branch 0 0 0 0 1 0 Jump 0 0 0 0 0 1 Extop x 0 1 1 1 x ALUop2 1 0 0 0 0 x ALUop1 x 1 0 0 x x ALUop0 x 0 0 0 1 x ALUop[2:0] Funct[3:0] 指令ALUctr[2:0] 111 0000 add 010 111 0010 sub 110 111 0100 and 000 111 0101 or 001 111 1010 slt 111 010 xxxx ori 001 000 xxxx Lw/sw 010 011 xxxx beq 110 表2.1 控制器设计真值表

《单周期CPU设计》实验报告

《计算机组成原理与接口技术实验》 实验报告 学院名称: 学生姓名: 学号: 专业(班级): 合作者: 时间:2016 年4 月25 日 成绩: ________ 实验二: 一. 实验目的 1.掌握单周期CPU数据通路图的构成、原理及其设计方法; 2.掌握单周期CPI的实现方法,代码实现方法; 3.认识和掌握指令与CPU勺关系; 4.掌握测试单周期CPI的方法。 二. 实验内容 设计一个单周期CPU,该CPU至少能实现以下指令功能操作。需设计的指令

与格式如下:

==>算术运算指令 功能:rd Jrs + rt 。 reserved为预留部分,即未用,一般填“0 (2)addi rt , rs , immediate 功能:rt J rs + (sign-extend) immediate ;immediate 符号扩展再参加“加”运算(3) sub rd , rs , rt 完成功能:rd J rs - rt ==>逻辑运算指令 (4)ori rt , rs , immediate 功能:rt Jrs | (zero-extend) immediate ; immediate 做“ o ”扩展再参加“或”运算(5) and rd , rs , rt 功能:rd Jrs & rt ;逻辑与运算 (6)or rd , rs , rt 功能:rd Jrs | rt ;逻辑或运算。 ==>传送指令 功能:rd Jrs + $0 ; $0=$zero=0。 ==>存储器读/写指令 (8)sw rt , immediate( rs)写存储器 功能:memory[rs+ (sign-extend) immediate ] J rt ; immediate 符号扩展再 相加。

8位CPU的设计与实现

计算机组成原理 CPU 实验题目 8位的系统设计1115106046 号学 魏忠淋姓名 B 11电子班班级凌朝东指导老师

华侨大学电子工程系 8位CPU的系统设计 一、实验要求与任务 完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。具体内容包括:典型指令系统(包括运算类、转移类、访存类)设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。 1.1设计指标 能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令; 1.2设计要求 画出电路原理图、仿真波形图; 二、CPU的组成结构 三、元器件的选择 1.运算部件(ALU) ALU181的程序代码: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO,FZ: OUT STD_LOGIC ); END ALU181; ARCHITECTURE behav OF ALU181 IS SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN B9 <= '0' & B ; A9 <= '0' & A ; PROCESS(M,CN,A9,B9) BEGIN CASE S IS WHEN ぜ?尰=> IF M='0' THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF; WHEN IF M='0' THEN F9<=(A9 or B9) + CN ; ELSE F9<=NOT(A9 OR B9); END IF; WHEN 0 => IF M='0' THEN F9<=(A9 or (NOT B9))+ CN ; ELSE F9<=(NOT A9) AND B9; END IF; WHEN 1 => IF M='0' THEN F9<= ; ELSE F9<= END IF; WHEN 0 => IF M='0' THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF; WHEN 1 => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF; WHEN 0 => IF M='0' THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF; WHEN 1 => IF M='0' THEN F9<=(A9 or (NOT B9)) - CN ; ELSE F9<=A9 and (NOT B9); END IF; WHEN @0 => IF M='0' THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9<=(NOT A9)and B9; END IF; WHEN @1 => IF M='0' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF; WHEN A0 => IF M='0' THEN F9<=(A9 or(NOT B9))+(A9 AND B9)+CN ;

8位CPU的设计与实现

计算机组成原理 实验题目 8位CPU的系统设计学号 1115106046 姓名魏忠淋 班级 11电子B 班 指导老师凌朝东 华侨大学电子工程系

8位CPU的系统设计 一、实验要求与任务 完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。具体内容包括:典型指令系统(包括运算类、转移类、访存类)设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。 1.1设计指标 能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令; 1.2设计要求 画出电路原理图、仿真波形图; 二、CPU的组成结构

三、元器件的选择 1.运算部件(ALU) ALU181的程序代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO,FZ: OUT STD_LOGIC ); END ALU181; ARCHITECTURE behav OF ALU181 IS SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN A9 <= '0' & A ; B9 <= '0' & B ;

中国32位嵌入式CPU芯片

2015-2020年中国32位嵌入式CPU芯片行业市场调研及未来发展分析报告 Special Statenent特别声明 本报告由华经视点独家撰写并出版发行,报告版权归华经视点所有。本报告是华经视点专家、分析师调研、统计、分析整理而得,具有独立自主知识产权,报告仅为有偿提供给购买报告的客户使用。未经授权,任何网站或媒体不得转载或引用本报告内容,华经视点有权依法追究其法律责任。如需订阅研究报告,请直接联系本网站客服人员(8610-56188812 56188813),以便获得全程优质完善服务。 华经视点是中国拥有研究人员数量最多,规模最大,综合实力最强的研究咨询机构(欢迎客户上门考察),公司长期跟踪各大行业最新动态、资讯,并且每日发表独家观点。 目前华经视点业务范围主要覆盖市场研究报告、投资咨询报告、行业研究报告、市场预测报告、市场调查报告、征信报告、项目可行性研究报告、商业计划书、IPO上市咨询等领域,同时也为个阶层人士提供论文、报告等指导服务,是一家多层次、多维度的综合性信息研究咨询服务机构。 Report Description报告描述 本研究报告由华经视点公司领衔撰写。报告以行业为研究对象,基于行业的现状,行业运行数据,行业供需,行业竞争格局,重点企业经营分析,行业产业链进行分析,对市场的发展状况、供需状况、竞争格局、赢利水平、发展趋势等进行了分析,预测行业的发展前景和投资价值。在周密的市场调研基础上,通过最深入的数据挖掘,从多个角度去评估企业市场地位,准确挖掘企业的成长性,为企业提供新的投资机会和可借鉴的操作模式,对欲在行业从事资本运作的经济实体等单位准确了解目前行业发展动态,把握企业定位和发展方向有重要参考价值。报告还对下游行业的发展进行了探讨,是企业、投资部门、研究机构准确了解目前中国市场发展动态,把握行业发展方向,为企业经营决策提供重要参考的依据。 Report Directory报告目录 第一章研究范围界定及市场特征分析 第一节CPU芯片分类及应用 一、CPU芯片分类 二、CPU芯片应用

CPU与简单模型机设计 实验报告汇总

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成与结构 项目名称 CPU与简单模型机设计实验 班级 学号 姓名 同组人员无 实验日期 2015-11-15

一、实验目的 1.掌握一个简单CPU的组成原理; 2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机; 3.为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。 二、实验逻辑原理图与分析 2.1 实验逻辑原理图及分析 本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(RO)、指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图下图所示。这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和贮存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。 基本CPU构成原理图 系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD芯片中。CLR连接至CON单元的纵情断CLR,按下CLR按钮,将是PC清零,LDPC和T3相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线的数据打入PC。 程序计数器(PC)原理图

2.2 逻辑原理图分析 本模型机;和前面微程序控制器实验相比,新增加一条跳转指令JMP,供有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移)、HLT(停机)、其指令格式瑞霞(高4为为操作码): 其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。 系统涉及到的微程序流程如下图所示,当拟定“取指”微指令时,该微指令的判别测试字段为P<1>测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P<1>的测试结果出现多分支。本机用指令寄存器的高6位(IR7—IR2)作为测试条件,出现5路分支,占用5个固定为地址单元,剩下的其他地方就可以一条微指令占用控制一个微地址单元随意填写,微程序流程图上的但愿地址为16进制。 当全部为程序设计完毕后,应将每条微指令代码化,下表即为将下图的微程序流程图按微指令格式转化而成的“二进制微代码表”。 简单模型机微程序流程图

哈工大CPU设计报告

计算机设计与实践CPU设计报告

指令格式设计: 注:Ri代表3位该寄存器号的二进制表示,X,sign为8位立即数,add为8为地址

一整体框图

二各模块详细说明(数据流关系、接口说明) 1 时钟管理模块 1.1结构框图: 1.2功能描述:时钟模块为一节拍发生器,以输入时钟信号作为触发,四个节拍循环往复,当“rst”为1时节拍复位。 1.3数据流关系: 1.4接口说明: port( rst: in std_logic; --复位信号 clk: in std_logic; --输入时钟信号 k: out std_logic_vector(3 downto 0) --节拍输出 ); 2 取址模块 2.1 visit_mem_flag pc_out ir_out 2.2功能描述:取指模块主要负责取指操作,当复位信号为1时,pc置零;若pc更新标志(pc_in_flag)为1,则更新当前的pc值;在第一个节拍,将当前pc给到访存控制模块,同时送访存请求信号(visit_mem_flag),取得指令;同时将取得的指令送往运算模块、回写模块,pc送往回写模块。

2.3数据流关系: Port (rst: in std_logic; --复位 k0,k1: in std_logic; --节拍控制 pc_in_flag: in std_logic; --PC回写允许 ir_in : in std_logic_vector(15 downto 0); --IR进入 pc_in : in std_logic_vector(15 downto 0); --PC回写 visit_mem_flag: out std_logic; --访存信号 pc_out : out std_logic_vector(15 downto 0); --PC输出 ir_out : out std_logic_vector(15 downto 0) --IR输出 ); 3 运算模块 3.1结构框图: 3.2功能描述:复位信号为1时,alutou、addr、Cy、Z清零;当回写信号为1时,将回写的数据回写入寄存器中;在第二节拍完成指令的译码工作,并根据译码结果置if_reg(是否更新寄存器),if_pc(是否更新PC),m_r(是否读请求),m_w(是否写请求)四个标志位,并对相关的指令置好addr、aluout和ToHX,以及对一些改变运算标志位的指令置好Cy和Z这两个标志位。

设计报告(电子版)

单片机应用设计实践报告 课程名称:单片机应用设计实践 设计题目:带温度显示的数字万年历设计 院(部):计算机与信息工程学院 学生姓名:******* 学号:************ 专业班级:************ 指导教师:******* 贵州 贵阳 年月日

课程设计任务书 设计题目万年历 学生姓名**** 所在院系***** 专业、年级、班*********** 设计要求: 1、设计制作一个用LCD1602显示的带温度显示的万年历; 2、具有年、月、日、星期、时、分、秒、温度等显示功能; 3、具备年、月、日、星期、时、分、秒校准功能; 4、具有闹钟显示、调节设定、整点鸣叫功能。 学生应完成的工作:设计万年历的工作原理,利用DXP 软件绘制电路原理图,利用Keil uVision4软件编写C语言程序并且生成HEX文件。并设计制作电路的PCB板(或万用板的元件布局和连线)。根据设计原理对电路进行安装、调试,完成课程设计工作,并提交课程设计报告。 参考文献阅读: 51单片机原理与应用案例教程(C51编程)p170的 9.1.2 LCD1602液晶应用实例 工作计划:*月*号:搜集资料;*月*号:方案论证拟定硬件方案;*月*号:讨论优化并确定硬件方案;*月*号—*号:讨论并确定程序流程并绘制流程图;*月*号:根据流程图编写程序并且进行软件的仿真与调试;*月*号—*号:硬件电路的制作并撰写课程设计报告;*月*号:烧录程序并调试;*月*号:完成课程设计报告的撰写。 任务下达日期:2017年11月30 日 任务完成日期:2017年11月01 日 指导教师(签名):学生(签名):田应焕

计算机组成原理课程设计微程序设计报告书

计算机组成原理课程设计微程序设计 报告书

课程设计指导教师评定成绩表

指导教师评定成绩: 指导教师签名: 年月日 重庆大学本科学生课程设计任务书

指导教师 (签名) 学生 (签名) 说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、。 2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。 计算机组成原理课程设计报告书 一、设计目的: 综合运用所学过的计算机原理知识,设计并实现较为完整的计算机。 掌握运用计算机原理知识解决问题和设计指令程序的能力。经过课程设计的综合训练,培养实际分析问题,编写程序指令和动手能力、团队协作精神,帮助学生系统掌握计算机组成原理课程的主要内容。二、设计要求: 设计要求: 用微程序控制器实现以下指令功能 调用:CALL addr ;指令功能与80X86相同,addr是8位二进制地址 返回:RET ; 存储器到存储器传送: MOV memi , memj ; memi (memj), i<>j,memi内存单元地址带右移的加法运算: ADD Ri , Rj , N ; Ri (Ri)+(Rj)>>N ,Rj中内容不变 N=0-7根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指

令,自拟编写包含以下指令的应用程序。 三、微程序控制器的原理: A.微程序控制的基本思想: 1. 若干微命令编制成一条微指令,控制实现一步操作; 2. 若干微指令组成一段微程序,解释执行一条机器指令; 3. 微程序事先存放在控制存储器中,执行机器指令时再取出。 B.基本组成:控制存储器,微指令寄存器,微地址寄存器,地址转移 逻辑框图: 图1 微程序控制器组成原理框图 控制存储器(CM):用来存放实现全部指令系统的微程序,位于CPU 中。它是一种只读型存储器,要求速度快,读出周 期短 微指令寄存器:存放当前由控制存储器读出的一条微指令信息,分为 微地址寄存器和微命令寄存器两个部分。其中微地址

计算机组成原理CPU设计

1C P U的用途 字长:8位 D[7…0] 寻址范围:64byte,2的6次方=64,A[5…0] 2 确定ISA(包括程序员可访问的寄存器) 1)程序员可访问的寄存器 AC—8位累加器 为了确定CPU的状态图,对每条指令作以下分析 1)从存贮器中取指令(所有指令均相同) 原理:在CPU能执行指令之前,它必须从存贮器中取出,CPU通过执行如下的操作序列完成这个任务 A)选择存贮单元由A[5…0]确定 B)对工A[5…0]译码,延迟,并向存贮器发一个信号使存贮器将此指令输出到它的输出引脚。这些引脚与CPU的D[7…0]相连。CPU从这些引脚读入数据。 具体操作:(分为三个状态) A)要取的指令的地址存放在程序计数器(PC)中。第一步就是把PC的内容拷贝到AR中。 FETCH1:AR←PC B)CPU必须从存贮器中读取指令,为此CPU必须发一个READ信号到器的RD (RD-RAM,相对于OE-ROM)端上使存贮器将数据发送到D[7…0]上,存入CPU的 DR寄存器中。同时实现PC←PC+1,为取下一条指令作准备。 FETCH2:DR←M,PC←PC+1 C)作为取指令的一部分,CPU还必须完成两件事。 ①DR的高2位拷贝到IR,目的是确定指令的功能 ②DR的低6位拷贝到AR,目的: a. 对于ORT和SUB1指令这6 位包含了指令的一个操作数的存贮器地址 (一个数已经在AC) b. 对于COM和JREL,它们不需要再次访问存贮器,一旦它们返回到 FETCH1周期,FETCH1将把PC的值装到AR,覆盖无用的值。 FETCH3:IR←DR[7,6], AR←DR[5…0] 取指令周期的状态图

计算机组成原理CPU设计

1 CPU的用途 字长:8位 D[7…0] 寻址范围:64byte,2的6次方=64,A[5…0] 2 确定ISA(包括程序员可访问的寄存器) 1)程序员可访问的寄存器 AC—8位累加器 CPU的指令集(共4条) 2)其他寄存器 3 CPU设计状态图 为了确定CPU的状态图,对每条指令作以下分析 1)从存贮器中取指令(所有指令均相同) 原理:在CPU能执行指令之前,它必须从存贮器中取出,CPU通过执行如下的操作序列完成这个任务 A)选择存贮单元由A[5…0]确定 B)对工A[5…0]译码,延迟,并向存贮器发一个信号使存贮器将此指令输出到它的输出引脚。这些引脚与CPU的D[7…0]相连。CPU从这些引脚读入 数据。 具体操作:(分为三个状态)

A)要取的指令的地址存放在程序计数器(PC)中。第一步就是把PC的内容拷贝到AR中。 FETCH1:AR←PC B)CPU必须从存贮器中读取指令,为此CPU必须发一个READ信号到器的RD (RD-RAM,相对于OE-ROM)端上使存贮器将数据发送到D[7…0]上,存入CPU的DR寄存器中。同时实现PC←PC+1,为取下一条指令作准备。 FETCH2:DR←M,PC←PC+1 C)作为取指令的一部分,CPU还必须完成两件事。 ①DR的高2位拷贝到IR,目的是确定指令的功能 ②DR的低6位拷贝到AR,目的: a. 对于ORT和SUB1指令这6 位包含了指令的一个操作数的存贮器 地址(一个数已经在AC) b. 对于COM和JREL,它们不需要再次访问存贮器,一旦它们返回到 FETCH1周期,FETCH1将把PC的值装到AR,覆盖无用的值。 FETCH3:IR←DR[7,6], AR←DR[5…0] 取指令周期的状态图 2) 本CPU有四条指令,因此有四个不同的执行同期,为此用IR中的值来确定即可。

32位MIPS处理器设计实验报告

数字逻辑与处理器基础实验 32位MIPS处理器设计实验报告 王晗 (2013011076) July26,2015 Date Performed:July15,2015 Partners:耿天毅(2012011119) 陈志杰withdrawn 1实验目的 熟悉现代处理器的基本工作原理;掌握单周期和流水线处理器的设计方法。 2设计方案 2.1总体结构 由于这次实验涉及的功能较多,我们将完整的CPU分成多个模块。指令存储器、寄存器堆、控制器、ALU控制器、ALU、数据存储器、UART等功能单元均在单独的Module中实现。其中指令存储器、寄存器堆、控制器、ALU控制器、ALU等单元在Single Cycle Core中实例化,作为单周期处理器的核心;数据存储器、UART和定时器、LED、七段数码管、开关在Peripheral中实现,作为处理器的外设。处理器核心和外设在顶层模块中实例化,互相通信。 单周期CPU模块的结构关系如Figure1所示:

Figure1:单周期处理器结构 对于流水线CPU,我们还在Pipeline Core中加入了流水线寄存器、冒险检测单元、数据转发单元: Figure2:流水线处理器结构

2.2ALU1 ALU模块的结构如图所示,输入两个操作数A、B和控制信号ALUFun、Signed,在ARITH子模块中做加减法运算,CMP子模块根据ARITH模块的输出进行比较判断,LOGIC和SHIFT模块分别进行逻辑运算和移位运算,ALUFun的最高两位用于控制多路选择器的输出。 Figure3:ALU结构 ARITH模块ARITH模块中包括减法和加法两个模块,加法模块直接通过+号运算,减法模块先对第二个操作数取补码,再调用加法模块做加法运算。Overflow和Negative信号的产生是ALU中的难点: Figure4:ADD中的Overflow和Negative 1原作者:陈志杰;修改:王晗

8位CPU设计与实现

计 算 机 组 成 原 理 论 文 姓名:某某 班级:计科一班学号:

8位CPU的设计与实现论文 CPU 的主要功能是执行指令,控制完成计算机的各项操作,包括运算操作、传送操作、输入/输出操作等。作为模型计算机设计,将重点放在寄存器组,采取较简单的组成模式,以尽量简洁的设计帮助读者掌握CPU 的基本原理。 此次设计CPU就是为了了解CPU运行的原理,从而完成从指令系统到CPU 的设计,并且通过仿真对CPU设计进行正确性评定。 关键词:CPU,设计指标,电路原理图,运算部件,寄存器组,模型 机指令系统,微命令序列,数据通路 1. 设计的任务与要求 1.1设计指标 1. 能实现IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、 JMP(无条件转移)这五种指令; 2. 整个系统能正常稳定工作。 1.2 设计要求 1. 画出电路原理图; 2.写出设计的全过程,附上有关资料和图纸(也可直接写在相关章节中), 有心得体会。 2. 方案论证与选择 2.1 CPU的系统方案

CPU 主要由算术逻辑单元ALU,数据暂存寄存器DR1、DR2,数据寄存器R0~R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY,指令寄存器IR,微控制器uC,输入单元INPUT 和输出单元OUTPUT 所组成。图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片FPGA 中实现。虚线框外部分主要是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向CPU 输入数据,或CPU 向外输出数据,以及观察CPU 内部工作情况及运算结果。 1.运算部件 运算部件的任务是对操作数进行加工处理。主要由三部分组成: (1)输入逻辑。(2)算术/逻辑运算部件ALU。(3)输出逻辑 2.寄存器组 计算机工作时,CPU 需要处理大量的控制信息和数据信息。例如对指令信息进行译码,以便产生相应控制命令对操作数进行算术或逻辑运算加工,并且根据运算结果决定后续操作等。因此,在CPU 中需要设置若干寄存器,暂时存放这些信息。在模型CPU中,寄存器组由R0、R1、R2 所组成。 3.指令寄存器指令寄存器(IR) 指令寄存器指令寄存器(IR)用来存放当前正在执行的指令,它的输出包括操作码信息、地址信息等,是产生微命令的主要逻辑依据。 4.程序计数器程序计数器(PC) 程序计数器程序计数器也称指令指针,用来指示指令在存储器中的存放位置。当程序顺序执行时,每次从主存取出一条指令,PC 内容就增量计数,指向下一条指令的地址。增量值取决于现行指令所占的存储单元数。如果现行指令只占一个存储单元,则PC 内容加1;若现行指令占了两个存储单元,那么PC 内容就要加2。当程序需要转移时,将转移地址送入PC,使PC 指向新的指令地址。因此,当现行指令执行完,PC 中存放的总是后续指令的地址;将该地址送往主存的地址寄存器AR,便可从存储器读取下一条指令。 5.地址寄存器 CPU 访问存储器,首先要找到需要访问的存储单元,因此设置地址寄存器(AR)来存放被访单元的地址。当需要读取指令时,CPU 先将PC 的内容送入AR,再由AR将指令地址送往存储器。当需要读取或存放数据时,也要先将该数据的有效地址送入AR,再对存储器进行读写操作。 6.标志寄存器 标志寄存器F是用来记录现行程序的运行状态和指示程序的工作方式的,标志位则用来反映当前程序的执行状态。一条指令执行后,CPU 根据执行结果设置相应特征位,作为决定程序流向的判断依据。例如,当特征位的状态与转移条件符合时,程序就进行转移;如果不符合,则顺序执行。在后面将要介绍的较复杂模型计算机设计中设置了两个标志位:进位Fc、零位Fz。 7.微指令产生部件 实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部 件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控 制,同时在数据传送至运算部件时控制完成运算处理。 微命令产生部件可由若干组合逻辑电路组成,也可以由专门的存储逻辑组成。产生微命令的方式可分为组合逻辑控制方式和微程序控制方式两种。在本章所介绍的8 位模型CPU 设计中,采用微程序控制方式通过微程序控制器和微指令

相关主题
文本预览
相关文档 最新文档