当前位置:文档之家› 第6章-CPU设计

第6章-CPU设计

第六章CPU设计

6.1 CPU的设计规范

6.2 一个非常简单CPU的设计与实现6.3 相对简单CPU的设计和实现

6.4 简单CPU的缺点

6.5 实例:8085微处理器的内部结构

CPU的设计的两种方法:

?硬布线逻辑控制(Hardwired Control)

?微序列控制器(Microsequencer)

(微序列控制或微程序控制)

6.1 CPU的设计规范

1.设计CPU的步骤

◆确定它的用途

关键:使CPU的处理能力和它所执行的任务匹配。

◆设计指令集结构及不包括在ISA中的必要的寄存器。

◆设计状态图

?列出在每个状态中执行的微操作

?从一个状态转移到另外一个状态的条件

◆RTL描述各状态下的操作

◆用组合逻辑电路实现

2.CPU执行如下的操作序列

?取指令周期:从存储器中取出一条指令,然后

转到译码周期。

?译码周期:对该指令进行译码,即确定取到的

是哪一种指令,然后转移到这种指

令对应的执行周期。

?执行周期:执行该指令,然后转移到取指令周

期去取下一条指令

3.一般CPU状态图

6.2 一个非常简单CPU的设计与实现

6.2.1 非常简单CPU的设计规范

1.64字节的存储空间,每个字节是8位。

6位宽的地址:A[5..0]

存储字的8位宽数据:D[7..0]

2.一个程序员可以访问的寄存器AC(8位累加器)3.指令集(4条指令)

指令指令码操作

ADD00AAAAAA AC←AC+M[AAAAAA] AND01AAAAAA AC←AC∧M[AAAAAA] JMP10AAAAAA GOTO AAAAAA INC11XXXXXX AC←AC+1

4.不包括在ISA中的寄存器

?一个6位的地址寄存器AR:它通过A[5..0]向存储器提供地址。

?一个6位的程序计数器PC:它包含下一条将被执

行指令的地址。

?一个8位的数据寄存器DR:它通过D[7..0]从存储

器接收指令和数据。

?一个2位的指令寄存器IR:它用来存放从存储器中

取回的指令的操作码部分。

★一个CPU就是一个复杂的有限状态机

设计CPU的途径:

?分析CPU的状态图,用RLT描述之。

?设计必要的数据通路和控制逻辑,以便实现这个

有限状态机,最终实现这个CPU。

6.2.2 从存储器中取指令

一、从存储器中取出指令的操作序列

1. 将指令地址放在地址引脚A[5..0]上,把地址送给存储器。

2. 在给存储器足够的时间处理内部译码并将

需要的指令取出来之后,向存储器发一个信号(读),使存储器将此指令(即被寻址的存储单元)输出到

它的数据引脚,这些引脚与CPU的D[7..0]相连接。CPU从这些引脚读入数据。

二、取指令周期的状态

FETCH1: AR←PC

FETCH2: DR←M,PC←PC+1

FETCH3: IR←DR[7..6],AR←DR[5..0]◆为什么CPU在取指令周期将PC加1?

三、取指令周期的状态图

6.2.3 指令译码

◆当CPU把一条指令从存储器中取出来之后,它必须判断所取的是哪种指令,从而可以调用正确的执行周期。

◆在状态图中,此过程表示为一系列的从取指令周期结束到各个执行周期之间的分支。

◆对于本CPU,有四条指令,因此有四个不同的执行周期。

取指令和译码周期的状态图

6.2.4 指令执行

6.2.4.1 ADD指令

CPU必须完成两件事情:

◆从存储器中取出一个操作数。

◆将这个操作数和累加器中的值相加,并把结果存

回到累加器中。

ADD1:DR←M

ADD2:AC←AC+DR

6.2.4.2 AND指令

AND1:DR←M

AND2: AC←AC∧DR

6.2.4.3 JMP指令

JMP1:PC←DR[5..0]另外一种选择;PC←AR

6.2.4.4 INC指令

INC1:AC←AC+1

◆本CPU的状态图

包括了取指、译码和执行周期。

6.2.5 建立所需的数据通路

考察存在哪些数据传送从而设计CPU的内部数据通路。

一、与CPU的每个状态相关联的操作

FETCH1: AR←PC

FETCH2: DR←M,PC←PC+1

FETCH3: IR←DR[7..6],AR←DR[5..0]

ADD1: DR←M

ADD2: AC←AC+DR

AND1: DR←M

AND2: AC←AC∧DR

JMP1: PC←DR[5..0]

INC1: AC←AC+1

二、设计数据通路的两种不同方案

1.在所有需要传送数据的部件之间创建一条直接通路。

使用多路选择器或者缓冲器为那些有多个数据源的

寄存器从多个可能的输入中选择一个。

随着CPU复杂度的增加,这种方案将变得不现实。2.在CPU的内部创建一条总线。在各个部件之间使用总线传递数据。常用这种方案。

三、将每个部件都连接到系统总线上

微处理器课程设计报告

桂林航天工业学院 课程设计报告 系(部):电子工程与自动化学院专业班级:xxxx班学生姓名:xxx学号:xxxxxx 课程:微处理器与接口技术课程设计 设计题目:简易波形发生器 完成日期:2016年01月04日 指导教师评语: 成绩(五级记分制): 指导教师(签字):____

摘要 本系统是基于STC89C52单片机的数字式低频信号发生器。采用STC89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和8位数码管等。通过按键控制可产生方波、三角波、正弦波等,同时用数码管指示其对应的频率。其设计简单、性能优好,可用于多种需要低频信号的场所,具有一定的实用性。 各种各样的信号是通信领域的重要组成部分,其中正弦波、三角波和方波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的信号源是十分必要的。 本文介绍的是利用STC89C52单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。文中简要介绍了DAC0832数模转换器的结构原理和使用方法,STC89C52的基础理论,以及与设计电路有关的各种芯片。文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。信号频率幅度也按要求可调。 本次关于产生不同低频信号的信号源的设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。该信号源的特点是:体积小、价格低廉、性能稳定、实现方便、功能齐全。 关键词: STC89C52 DAC0832 LM324 数码管 Abstract The Waveform The system is a digital signal generator based on single chip computer.STC89c52 is used as a control microcontroller core.The system is composed by digital/analog comversion(DAC0832), imply circuit,button and nixie tube.It can generate the square, triangle and sine wave,with nixie tube.The system can be used for a signal soure in the low-frequency signal soure.It is very practical. Various signals are an important part of correspondent area. In this area, sine wave, triangle wave and square wave are common signals. In science research and teaching experiment, we often need the occurrence equipment of these signals. In order to make the experiment and research easier, to develop a suitable, full functional and easily used signals

精简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指令 为了执行指令,必须完成两件事情

简单微处理器的设计

简单微处理器的设计 摘要:本课程设计采用EDA技术设计简单微处理器。系统设计采用自顶向下的设计方法。它由数的输入,数的比较,数的交换和结果输出四部分组成。系统实现采用硬件描述语言VHDL把系统电路按模块化方式进行设计,然后进行编程、时序仿真并分析。系统结构简单,使用方便,功能齐全,精度高,具有一定的应用价值。 关键词:处理器;输入;比较;交换

目录 1 引言 (1) 1.1课题设计的背景、目的 (1) 1.2 课程设计的内容 (1) 2 EDA、VHDL简介 (2) 2.1 EDA简介 (2) 2.2 VHDL简介 (2) VHDL语言的特点 (2) VHDL的设计流程 (3) 3 简单微处理器的设计过程 (4) 3.1设计规划 (4) 3.2 各模块设计及相应程序 (4) 4 系统仿真 (8) 1.数的输入. (8) 2 数的比较。 (8) 3 交换两个数。 (9) 4 结果输出(从小到大). (9) 结束语 (11) 致谢 (12) 参考文献 (13) 附录 (14)

1 引言 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,而处理器,作为计算机中的一个重要部分,其性能从很大程度上决定了计算机的性能。本设计介绍的简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 1.1课题设计的背景、目的 微处理器技术的发展是与微电子技术即大规模集成电路技术的发展分不开的。微电子技术以每18个月集成度提高一倍的速度迅速发展。20世纪80年代初,主要是16位微处理器8086/8088。1985年推出了80386微处理器,完成了16位体系结构向32位体系结构的转变。1989年80486出现了。80486的设计目标是提高指令执行速度和支持多处理器系统。80486在芯片内部增加一个8KB的高速缓冲存储器(cache),还增加了相当于80387的浮点部件(FPU),在基本指令的实现上,采用硬布线逻辑而不是微程序技术。1993年3月,Intel公司推出了第一代“奔腾”微处理器(Pentium),微处理器技术发展进入了一个新的阶段。到目前为止,“奔腾”已有四代产品。“奔腾”的设计思想是把如何提高微处理器内部指令执行的并行性作为主导。指令执行的并行性越好,微处理器的性能就越高。 本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用电子称的设计,巩固和综合运用所学课程,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。 1.2 课程设计的内容 本设计主要介绍的设计一台简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 ( 1 )程序开始及输入10个数据。 ( 2 )数的比较。

计算机硬件课程设计报告(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 ;

嵌入式系统课程设计---基于ARM微处理器的数码管驱动设计-任务书(1)

河南工业大学嵌入式课程设计 课程设计题目:基于ARM微处理器的数码管驱动设计学院:信息科学与工程学院 班级:电科1304 姓名: 学号:2013160304 指导老师姓名:李智慧

13级电科专业课程设计任务书

基于ARM微处理器的数码管驱动设计 一、设计要求 1.1实验内容: 1. 利用ARM微处理器实现数码管显示驱动; 2.能够显示0 1 2 3 4 5 6 7 8 9等数字,且循环显示; 3. 通过按键改变循环显示速度; 1.2实验设备: 硬件:PXA270 实验平台,PXA270 ARM 标准/增强型仿真器套件,PC 机。 软件:VMware Workstation、Ubuntu、win7。 二、设计方案 本次试验选用的芯片为 PXA270 ,使用的是 PXA270集成试验箱。基于 IntelXScale 架构的 PXA270处理器,集成了存储单元控制器、时钟和电源控制器、 DMA控制器、 LCD控制器、 AC97控制器、 I2S 控制器、快速红外线通信 (FIR) 控制器等外围控制器,可以实现丰富的外围接口功能。其低电源运行模式以及动态电源管理技术可以有效的降低电源的功耗。使用试验箱上的 4X4 的矩阵键盘作为输入,用来控制数码管显示的快慢速度,将需要输出的各个数码管状态从两个数码管中输出。 三、设计原理 1、数码管结构 七段数码管由 8 个发光二极管排列组成(包括小数点位)如下图所示: 这 8 个独立的二极管通常被命名: a.b.c.d.e.f.g.h 。 h 表示小数点。利用 7 段数码管能显示所有数字以及部分英文字母。 数码管有 2 种不同的形式:一种是 8 个发光二极管的阳极都连一起,成为共 阳极 8 段数码管如图所示: 共阳极 8 段数码管的 8 个发光二极管的正极一起接 VCC ,要控制数码管中的某一段亮,比如 A段,只须要控制数码管的 A 脚为低电平就可以了,反之熄灭 A 段就控制 A 脚为高电平。

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设计》实验报告

《计算机组成原理与接口技术实验》 实验报告 学院名称: 学生姓名: 学号: 专业(班级): 合作者: 时间: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 ;

微原课程设计

微机原理课程设计 学院机电工程学院 专业自动化 姓名颜秦鑫 学号 指导教师千博董瑞军

第一章绪论 1.1课程设计的意义: 《微机原理与接口技术》是自动化专业的专业基础课,在总课程体系种占有重要的位置。课程设计的目的是使学生更进一步掌握微机原理及应用课程的有关知识,加深对微机应用的理解,以达到巩固课堂教学内容,并进一步加强学生的应用能力和创新能力,是培养学生综合素质,提高动手能力,增强发现问题和解决问题能力的重要部分。 1.2课程设计的目的: 1.掌握8088最小系统的实现方法 2.掌握利用8088最小系统完成存储器的设计及其扩展方法 3.掌握系统设计时的地址空间分配及其译码电路设计 4.掌握利用8088最小系统完成接口设计的方法 5.掌握8255、8253、0809、0832等芯片的使用方法 1.3 课程设计的要求: 1.构成8088最小工作系统 2.分别采用两片6264和2764完成存储器电路的设计 3.采用ADC0809组成8位温度AD变换接口电路 4.采用DAC0832组成8位DA变换接口电路驱动直流电机 5.采用8255和8253组成步进电机的控制电路 第二章设计思路说明 2.1 设计任务分析: 系统要求采用8088工作于最小方式下,在这种方式中,8088CPU引脚直接产生存储器或I/O口读写的所有控制信号。首先利用8284提供时钟信号,同时也提供了复位信号和准备好信号。然后利用3片74LS373锁存器芯片形成20位地址总线,利用1片74LS245双向数据收发器芯片形成8位数据总线,至此形成

总线逻辑电路和最小系统工作电路。存储器设计分别采用2片2764和2片6264进行扩展,分别形成16KB的ROM和16KB的RAM。温度变换电路采用AD590采集温度信号送入0809的通道进行AD转换,并用8259对其产生的EOC信号产生中断控制。将系统数据送入0832进行DA转换,完成控制直流电机。系统的定时计数器8253完成对步进电机定时计数,采用8255并行接口控制步进电机。以上各模块译码电路均由74LS138产生。 2.2 系统各模块地址空间分配: 存储器模块: ROM:FC000H—FFFFFH RAM:00000H—03FFFH 温度变换模块: ADC0809:000H—007H 8259:008H—009H 直流电机驱动模块: DAC0832:00AH 步进电机控制模块: 8253:00CH—00FH 8255:010H—013H 键盘显示模块: 8255:014H—017H 第三章电路总体构成 3.1 最小系统设计: 3.1.1 8088芯片介绍 1.8088芯片简介:

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 控制器设计真值表

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 ;

16位cpu设计课程设计

石家庄经济学院 信息工程学院 计算机组成原理课程设计报告 题目16位模型计算机的设计 姓名 学号 班号 指导老师 成绩 2011年1月

目录 1. 课程设计目的 (3) 2. 开发工具选择 (3) 3. 方案选择 (3) 4.指令系统设计 (4) 5. 模型机框图设计 (4) 6. 指令流程图 (5) 7.微指令格式(微程序控制器)设计 (6) 8.微程序(微程序控制器)设计 (7) 9. VHDL程序代码 (9) 10. 调试仿真 (16) 11. 课程设计回顾总结 (18) 参考文献 (18)

1. 课程设计目的 (1)、计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。 (2)、通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。 2. 开发工具选择 使用QUARTUS 5.0软件编写并调试VHDL程序,然后做功能仿真。 3. 方案选择 本次实习的内容为16位模型计算机的设计,单总线,采用微程序控制方式,有四种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址和变址寻址。 微程序控制方式由微指令译码产生。微程序中一条机器指令往往分成几步执行,将每一步操作所需的若干为命令以代码编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。然后根据系统的需要,事先编制各段微程序,将它存入一个专用寄存器(即控制存储器)中。 微程序执行过程:如图1所示,为微程序控制基本框: (1)从控存中逐条取出“取指令操作”,执行取指令公共操作。 (2)根据指令的操作码,经过微地址形成部件,得到这条指令的入口地址,并送入微地址寄存器中。 (3)从控存中逐条的取出对应的微指令并执行。 (4)执行完一条机器指令对应的微程序后又回到取指微程序的入口地址,继续第(1)步,以完成取下一条机器指令的公共操作。 IR PSW PC 微地址 形成电路 微地址寄 存器μAR 微指令寄存器μIR 译码器 控制存储器CM 指令代码 运行状态 …… 微命令字段微地址字段 …… 微命令序列 图1 微程序控制基本框

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这两个标志位。

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