如何写cpu报告
篇一:CPU报告
Computer Organization and Architecture
Course Design
CPU REPORT
04006628邓睿 04006618 肖游龙 Time:201*.04.08
Purpose
The purpose of this project is to design a simple CPU (Central Processing Unit). This CPU has basic instruction set, and we will utilize its instruction set to generate a very simple program to verify its performance. For simplicity, we will only consider the relationship among the CPU, registers, memory and instruction set. That is to say we only need consider the following items: Read/Write Registers, Read/Write Memory and Execute the instructions.
At least four parts constitute a simple CPU: the control unit, the internal registers, the ALU and instruction set, which are the main aspects of our project design and will be studied.
Instruction Set
Single-address instruction format is used in our simple CPU design. The instruction word contains two sections: the operation code (opcode), which defines the function of instructions (addition, subtraction, logic operations, etc.); the address part, in most instructions, the address part contains the memory location of the datum to be operated, we called it direct addressing. In some instructions, the address part is the operand, which is called immediate addressing.
For simplicity, the size of memory is 25616 in the computer. The instruction word has 16 bits. The opcode part has 8 bits and address part has 8 bits. The instruction word format can be expressed in Figure 1
Figure 1 the instruction format
Internal Registers and Memory
MAR (Memory Address Register)
MAR contains the memory location of the word to be read from the memory or written into the memory. Here, READ operation is denoted as the CPU reads from memory, and WRITE operation is denoted as the CPU writes to memory. In our design, MAR has 8 bits to access one of 256 addresses of the memory.
MBR (Memory Buffer Register)
MBR contains the value to be stored in memory or the last value read from memory. MBR is connected to the address lines of the system bus. In our design, MBR has 16
bits.
PC (Program Counter)
PC keeps track of the instructions to be used in the program. In our design, PC has 8 bits.
IR (Instruction Register)
IR contains the opcode part of an instruction. In our design, IR has 8 bits.
BR (Buffer Register)
BR is used as an input of ALU, it holds other operand for ALU. In our design, BR has 16 bits.
ACC (Accumulator)
ACC holds one operand for ALU, and generally ACC holds the calculation result of ALU. In our design, ACC has 16 bits.
MR (Multiplier Register)
MR is used for implementing the MPY instruction, holding the multiplier at the beginning of the instruction. When the instruction is executed, it holds part of the product.
DR (Division Register)
DR is used for implementing the DIV instruction, you can define it according to your division algorithm.
LPM_RAM_DQ
LPM_RAM_DQ is a RAM with separate input and output ports, it works as memory, and its size is 25616. Although it’s not an internal register of CPU, we need it to simulate and test the performance of CPU.
All the registers are positive-edge-triggered.
All the reset signals for the registers are synchronized to the clock signal.
ALU
ALU (Arithmetic Logic Unit) is a calculation unit which accomplishes basic arithmetic and logic operations. In our design, some operations must be supported which are listed as follows
Microprogrammed Control Unit
We have learnt the knowledge of Microprogrammed control unit. Here, we only review some terms and basic structures.
In the Microprogrammed control, the microprogram consists of some microinstructions and the microprogram is stored in control memory that generates all the control signals required to execute the instruction set correctly. The microinstruction contains some micro-operations which are executed at the same time.
Figure 2 Control Unit Micro-architecture
Figure 2 shows the key elements of such an implementation. The set of microinstructions is stored in the control memory. The control address register contains the address of the next microinstructions to be read. When a microinstruction is read from the control memory, it is transferred to a control buffer register. The register connects to the control lines emanating from the control unit. Thus, reading a microinstruction from the control memory is the same as executing that microinstruction. The third element shown in the figure is a sequencing unit that loads the control address register and issues a read command.
CPU Design
Figure 3 CPU data path and control signals
Figure 3 indicates a simple CPU architecture and its use of a variety of internal data paths and control signals. Our CPU design should be based on this architecture.
Example: LOAD instruction
Figure 4 Control Flowchart of the LOAD instruction
篇二:cpu报告
目录
1.引言
集成电路(Integrated Circuit,IC)是电子电路,但它又不同于一般意义上的电子电路,它把成千上万的电子元件包括晶体管、电阻、电容甚至电感集成在微小的芯片上。正是这种奇妙的设计和制造方式使得集成电路为人类社会的进步创造了空前的奇迹,它不仅给人类的生产建设和科学研究带来了巨大便利,而且也彻底改变了人类文明和人们日常生活的面目,可以毫不夸张地说,现今每个人生活的方方面面或多或少都和集成电路有关。
CPU 作为集成电路的高端产品,随着半导体工艺水平的发展,遵守摩尔定律发展规律,CPU 性能每过18 个月就会翻一番。CPU 从最初发展至今已经有几十年的历史了,这期间,按照其处理信息的字长,CPU 可以分为:四位微处理器、八位微处理器、十六位微处理器、三十二位微处理器以及六十四位微处理器。
CPU 是Central Processing Unit--中央处理器的缩写,它是计算机中最重要的一个部分,由运算器和控制器组成,其内部结构归纳起来可以分为控制单元、逻辑单元和存储单元三大部分,这三个部分相互协调,便可以进行分析,判断、运算并控制计算机各部分协调工作。
计算机体系结构中的一个根本性的变革是RISC 处理器的出现。RISC 即精简指令集计算机(Reduced Instruction Set Computer)的缩写。RISC-CPU 与一般的CPU 相比不仅只是简化了指令系统,而且是通过简化指令系统使计算机的结构更加简单合理,从而提高了运算速度。从实现的途径看,RISC-CPU 与一般的CPU 的不同处在于:它的时序控制信号形成部件是用硬布线逻辑实现的而不是采用微程序控制的方式。所谓硬布线逻辑也就是用触发器和逻辑门直接连线所构成的状态机和组合逻辑,故产生控制序列的速度比用微程序控制方式快得多,因为这样做省去了读取微指令的时间。
RISC 有一套优化过的指令架构,它是根据著名的80/20 法则所订立。早在上个世纪60 年代,计算机科学家们发现,计算机中80%的任务只是动用了大约20%的指令,而剩下20%的任务才有机会使用到其他80%的指令。如果对指令系统作相应的优化,就可以从根本上快速提高处理器的执行效率。IBM 公司在
1975 年成功开发出第一款RISC 处理器,从此RISC 架构开始走进超级计算机中。由于指令高度简约,RISC 处理器的晶体管规模普遍都很小而性能强大,深受超级计算机厂商所青睐。很快,许多厂商都开发出了自己的RISC 指令系统,除了IBM 的Power 和PowerPC 外,还有DEC 的Alpha、SUN 的SPARC、HP 的PA-RISC、MIPS 技术公司的MIPS、ARM公司的ARM 等。它的应用范围也远比X86 来得广泛,大到各种超级计算机、工作站、高阶服务器,小到各类嵌入式设备、家用游戏机、消费电子产品、工业控制计算机,都可以看到RISC 的身影。
RISC 处理器可以说既简单又复杂:简单之处在于,相比于复杂指令集CISC(Complex Instruction Set Computer,复杂指令系统计算机),这种处理器的指令和变量非常少,正如它的英文字母缩写RSIC 所代表的“精简指令集”的含义一样;说RSIC 复杂,是因为它们容易实现更高的并行性,而这个特点只有与设计得很好的编译器结合起来,才能显现出其优越性。
RISC 与CISC(复杂指令,一般指普通的X86CPU)比较,有以下优势 :
(1)指令简单而且少。
(2) 指令系统选用那些使用频度高的简单指令和一些实用的但不十分复杂的 指令,一般指令不超过100条。
(3)指令字长固定,寻址方式一般不超过四种,指令格式也不超过四种。
(5)指令系统中只允许存(STORE)和取(LOAD)指令访问主存,其它指令均在 寄存器之间进行。
(6)CPU中设置大量的寄存器,称作寄存器堆。
(7)指令的运行采用高效的流水线方式。
(8)以硬布线控制逻辑为主,不用或少用微码。
(9)优化的编译程序,简单有效地支持高级语言。
(10)超低功耗。
这里,本文就在学习FPGA的基础上,运用仿真设计软件ISE来实现一个简单的教学用的RISC_CPU。这里,并不关心CPU总体设计的合理性,这里涉及的每个RISC_CPU的模块,都可以仿真,并综合,也就是说,这是一个能真正通过具体电路结构而实现的CPU。
希望可以通过这次设计,达到下面几个基本目的:
(1) 熟悉和了解RISC_CPU的基本原理和结构。
(2) 了解Verilog HDL仿真和综合工具。
(3) 展示Verilog 设计方法对软/硬件联合设计和验证的意义。
(4) 学习掌握一些常用的Verilog语法和验证方法。
2.RISC-CPU 的架构设计
2.1 什么是CPU
CPU 即中央处理单元的英文缩写,它是计算机的核心部件。计算机进行信息处理可分为两个步骤:
(2)从第一条指令的地址起开始执行该程序,得到所需结果,结束运行。CPU的作用是协调并控制计算机的各个部件执行程序的指令序列,使其有条不紊地进行。因此它必须具有以下基本功能:
a)取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。
b)分析指令:即指令译码。是对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。
c)执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器,存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。
将其功能进一步细化,可概括如下:
1) 能对指令进行译码并执行规定的动作;
2) 可以进行算术和逻辑运算;
3) 能与存储器,外设交换数据;
4) 提供整个系统所需要的控制;
2.2 RISC-CPU 的架构设计
尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同。一个基本的CPU 要包括三部分功能:数据的存储、数据的运算和控制部分。与之相对应的硬件结构也分为三部分:存储器、数据通路和控制器。存储器存放指令和数据;数据通路包括ALU、程序计数器等,主要功能是对操作数进行运算,得到结果,并产生程序计数器的值,作为要执行的下一条指令的地址;控制器内有指令寄存器,它对指令进行译码,产生相应的控制信号,完成对存储器和数据通路部分的控制。存储器、数据通路和控制器这三部分的基本关系如图1 所示。
图1 CPU基本结构
(1)存储器中存放了要执行的指令和相应数据。存储器的读写信号由控制器给出。存储器的地址来源有两个:程序计数器和指令寄存器。在取新指令时,用程序计数器的值作为存储器地址;在执行指令时,用指令中的地址部分作为存储器地址。
(2)数据通路主要包括累加器、程序计数器和算术逻辑单元。
累加器用于保存参加运算的数据以及运算的中间结果。实际上,累加器也是寄存器,不过,它有特殊性,即许多指令执行过程以累加器为中心。往往在运算指令前,累加器中存放一个操作数,指令执行后,由累加器保存运算结果。另外输入输出指令一般也通过累加器来完成。程序计数器指向下一条要执行的指令。由于程序一般存放在内存的一个连续区域,所以,顺序执行程序时,每取一个指令字节,程序计数器便加一。算术逻辑单元是专门用来处理各种运算的"数据信息
篇三:cpu报告
计算机设计与实践
CPU设计报告
班级:1203103 学号:1120310312 姓名:孙艳铎
一.实验目的
1、掌握Xilinx ISE集成开发环境和ModelSim仿真工具的使用方法。
2、掌握VHDL语言。
3、掌握FPGA编程方法及硬件调试手段。
4、深刻理解处理器结构和计算机系统的整体工作原理。
二.实验环境
1、Xilinx ISE 9.1i集成开发环境
2、MOdelSim XE II v5.6a仿真工具
3、COP2000系统实验平台
三.实验内容及要求
根据计算机组成原理课程所学的知识和本课程所讲的设计思想,设计并实现一个给定指令系统的处理器,包括VHDL语言的实现和FPGA芯片的编程实现,为以后应用和设计处理器系统打下基础。
本实验的任务是设计一个简单的RISC处理器,该处理器是在给定的指令集下构建的,支持十条指令。假定主存可以在一个时钟周期内完成一次存取操作,而且可以和CPU同步工作。系统使用一个主存单元:指令读取和数据访问都使用同一组存储器。
处理器的指令字长和指令寄存器IR长度自定,CPU包含8个8位通用寄存器R0~R7,和1个16位的程序计数器PC。取指令时,可以直接从主存中提取16位的指令信息,而进行数据访问时,与主存进行8位的数据交换。处理器的地址总线宽度是16位,数据总线宽度也是16位,无论是取指还是数据访问,都使用同一组数据总线,只是数据信息的宽度不同。
处理器所支持的指令包括LDA,STA,MOV,MVI,ADD,SUB,JZ,JMP,IN,OUT。其中仅有LDA和STA是访存指令,所有的存储器访问都通过这两条指令完成;ADD和SUB是运算指令,MOV和MVI是传数指令,他们都在处理器内部完成;JZ是跳转指令,根据寄存器的内容进行绝对跳转;JMP是无条件转移指令;IN和OUT是输入输出指令,所有I/O端口与CPU之间的通信都由IN和OUT指令完成。
要求根据给定的指令系统设计处理器,包括指令格式设计、微操作的定义、节拍的划分、VHDL语言的实现及FPGA编程实现。
四.设计过程
1.cpu整体结构设计
指令格式
2. Cpu接口定义
3. 各模块详细设计
① 时钟模块
功能说明:时钟模块是一个4节拍的计数器,能产生稳定的节拍。当clk产生一个时序脉冲时,T会循环的改变T(i)的值,从而达到产生节拍的效果。 接口信号定义:
② 取指模块
功能说明:负责从存储器中取出指令并送到alu模块进行执行指令。第一节拍进行取指令,pc给出地址,第二节拍pc自动加1,第四节拍回写pc给出新的pc值,前提是pcupdate有效。