实验一简化的RISC_CPU设计

合集下载

risc-v cpu设计总结报告

risc-v cpu设计总结报告

risc-vcpu设计总结报告随着计算机科学领域的发展,RISC-V(Reduced Instruction Set Computer - V)架构在近年来逐渐受到广泛认可和关注。

在本报告中,我们将总结RISC-V CPU设计的关键要点,针对该架构的特点和设计原则进行深入探讨。

RISC-V是一种开放、可扩展的指令集架构,其设计追求简化指令集、模块化、可扩展性和定制化能力。

在设计RISC-V CPU时,以下几个关键要点需要考虑和重视。

1. 指令集架构设计:RISC-V架构采用精简指令集的设计理念,将常用指令和操作需要保留,而将复杂指令或较少使用的指令去除。

设计者需要仔细考虑指令集的功能和性能需求,确保在去除复杂性的同时仍能提供足够的功能。

2. 流水线设计:流水线技术在RISC-V CPU设计中是至关重要的,可以提高指令的执行效率。

设计者需要合理划分流水线的各个阶段,并考虑流水线冒险和数据相关性等问题,以实现高性能的指令处理能力。

3. 性能优化技术:为提高RISC-V CPU的性能,设计者可以采用多种优化技术,如分支预测、指令缓存、数据缓存等。

合理选择和配置这些技术可以显著提高CPU的运行效率和响应速度。

4. 外设接口设计:RISC-V CPU通常需要与外部设备进行通信,设计者需要考虑和实现适当的外设接口,以便与其他硬件模块或软件进行数据交互和通信。

总结一下,设计RISC-V CPU需要考虑指令集架构、流水线设计、性能优化以及外设接口设计等关键要点。

合理的设计理念和技术选择可以帮助实现高性能、可扩展的RISC-V CPU架构。

本报告的目的是总结RISC-V CPU设计的关键要点和设计原则,帮助读者了解该架构的基本思想和开发工作。

通过深入研究和探讨RISC-V CPU设计,我们可以更好地应用这种新兴的指令集架构,推动计算机科学的发展和创新。

CPU-与简单模型机设计实验

CPU-与简单模型机设计实验

评语: 课中检查完成的题号及题数:课后完成的题号与题数:成绩: 自评成绩: 85实验报告实验名称:CPU 与简单模型机设计实验日期:2015.11.17 班级: 2 学号:13 姓名:周小多一、实验目的:1. 掌握一个简单CPU 的组成原理。

2. 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。

3. 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。

二、实验内容:1.要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。

CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。

这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。

2.本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN 0010 0000 IN→R0ADD 0000 0000 R0 + R0→R0OUT 0011 0000 R0→OUTJMP addr 1100 0000 addr→ PCHLT 0101 0000 停机3. 设计一段机器程序,要求从IN 单元读入一个数据,存于R0,将R0 和自身相加,结果存于R0,再将R0 的值送OUT 单元显示。

根据要求可以得到如下程序,地址和内容均为二进制数。

地址内容助记符说明00000000 00100000 ; START: IN R0 从IN 单元读入数据送R000000001 00000000 ; ADD R0,R0R0 和自身相加,结果送R000000010 00110000 ; OUT R0R0 的值送OUT 单元显示00000011 11100000 ; JMP START跳转至00H 地址00000100 0000000000000101 01010000 ; HLT停机三、项目要求及分析:1. 试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为STA、LAD 和SUB,指令操作码分别为十六进制的60、70和80。

risc-v cpu设计总结报告

risc-v cpu设计总结报告

risc-v cpu设计总结报告RISC-V(Reduced Instruction Set Computer V)是一种开源指令集架构,其目标是通过简化指令集提高处理器性能和能效。

本文将总结RISC-V CPU设计的相关内容,包括设计原则、架构特点、实现方法以及优势。

首先,RISC-V的设计原则主要有以下几点:1. 简洁性:采用精简的指令集,并提供可选的扩展指令集,以满足不同应用的需求。

2. 可扩展性:通过定义多个标准扩展指令集,支持在基础指令集上进行功能扩展,以满足不同领域和应用的需求。

3. 易于实现:提供清晰明确的指令格式和编码规范,使得RISC-V CPU的设计和实现变得简单且高效。

4. 易于编译:提供标准的编译器前端,方便应用程序的开发和移植。

其次,RISC-V的架构特点主要体现在以下几个方面:1. 开放性:RISC-V是一种开放的指令集架构,任何人都可以访问和使用其指令集,从而促进了创新和合作。

2. 模块化:RISC-V指令集被分为基础指令集和可选扩展指令集,使其具备了较强的扩展性和灵活性。

3. 支持多核:RISC-V可以支持多核CPU的设计,通过标准的内存一致性模型来保证多核处理器的正确性和性能。

4. 虚拟化支持:RISC-V提供了对虚拟化的良好支持,使得可以在RISC-V CPU上运行虚拟化软件,提高系统资源利用率。

然后,RISC-V CPU的实现方法包括以下几个方面:1. 指令解码:根据RISC-V指令编码规范进行指令解码,将指令转换成处理器内部的控制信号。

2. 寄存器文件:RISC-V使用一组通用寄存器来存储和操作数据,因此需要设计寄存器文件用于寄存器的读写操作。

3. 流水线:RISC-V CPU通常采用流水线架构,将指令执行过程划分成多个阶段,以提高指令的吞吐量和并行性。

4. 内存访问:RISC-V支持多种内存访问方式,包括字节、半字、字等不同粒度的内存访问操作。

5. 异常处理:RISC-V提供了一套异常处理机制,用于处理指令执行过程中的异常情况,如除零错误、内存访问错误等。

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告一、实验目的本实验旨在设计一个基于MIPS指令集架构的单周期CPU,具体包括CPU的指令集设计、流水线的划分与控制信号设计等。

通过本实验,可以深入理解计算机组成原理中的CPU设计原理,加深对计算机体系结构的理解。

二、实验原理MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集(RISC)架构的处理器设计,大大简化了指令系统的复杂性,有利于提高执行效率。

MIPS指令集由R、I、J三种格式的指令组成,主要包括算术逻辑运算指令、存储器访问指令、分支跳转指令等。

在单周期CPU设计中,每个指令的执行时间相同,每个时钟周期只执行一个指令。

单周期CPU的主要部件包括指令内存(IM)、数据存储器(DM)、寄存器文件(RF)、运算单元(ALU)、控制器等。

指令执行过程主要分为取指、译码、执行、访存、写回等阶段。

三、实验步骤1.设计CPU指令集:根据MIPS指令集的格式和功能,设计符合需求的指令集,包括算术逻辑运算指令、存储器访问指令、分支跳转指令等。

2.划分CPU流水线:将CPU的执行过程划分为取指、译码、执行、访存、写回等阶段,确定每个阶段的功能和控制信号。

3.设计控制器:根据CPU的流水线划分和指令集设计,设计控制器实现各个阶段的控制信号生成和时序控制。

4.集成测试:进行集成测试,验证CPU的指令执行功能和正确性,调试并优化设计。

5.性能评估:通过性能评估指标,如CPI(平均时钟周期数)、吞吐量等,评估CPU的性能优劣,进一步优化设计。

四、实验结果在实验中,成功设计了一个基于MIPS指令集架构的单周期CPU。

通过集成测试,验证了CPU的指令执行功能和正确性,实现了取指、译码、执行、访存、写回等阶段的正常工作。

同时,通过性能评估指标的测量,得到了CPU的性能参数,如CPI、吞吐量等。

通过性能评估,发现了CPU的性能瓶颈,并进行了相应的优化,提高了CPU的性能表现。

《简化CPU设计》-

《简化CPU设计》-

电子科技大学通信学院简化CPU设计2013年9月一、课程设计要求1.设计16位精简指令集CPU指令系统;2.完成精简指令集CPU的结构设计和所有模块的代码编写,并仿真验证;3.编写能够完成加法器﹑流水灯等功能的汇编程序,并翻译成二进制机器码;4.设计CPU外围模块如分频器,存储器和IO接口,并在软件平台上仿真CPU执行程序的完整过程;5.下载工程到FPGA芯片,在硬件资源上实现。

二、设计思路1、CPU指令集系统设计本课程设计所设计的RISC_CPU指令长度为16位,能够处理16位数据,指令中需要操作符,寄存器地址和立即数等字段。

完成立即数数据载入操作需要如下指令:mil:将立即数放在低8位mih:将立即数放在高8位因为一条指令无法载入完整16比特立即数数据,设计指令格式中用于存放立即数的字段为8bits,将16bits数据传递到通用寄存器需要2条指令,“mil R1,I(低8位)”将立即数I 的低8位传递给通用寄存器R1,“mih R1,I(高8位)”将立即数I的高8位传递给通用寄存器R1。

完成存储器或I/O数据载入与存储的操作需要如下指令:lda:载入指定地址数据sta:储存数据到指定地址inp:从端口输入oup:输出到端口因为存储器中有些地址的数据可能是有工程意义的,对这些地址上的数据的处理是必不可少的。

“lda Rd Rs”将通用寄存器Rs的数据作为指定地址,将存储器中该地址上的数据载入到通用寄存器Rd中,“sta Rd Rs”将通用寄存器Rd的数据作为指定地址,将通用寄存器Rs的数据储存到存储器该地址上。

完成通用寄存器阵列内数据运算操作需要如下指令:and:寄存器数据与操作orr:寄存器数据或操作not:寄存器数据非操作shl:左移shr:右移add:寄存器数据相加sub:寄存器数据相减mul:寄存器数据相乘cmp:寄存器数据相比较这些是本CPU设计能够完成的数据处理操作,有3点需要注意:1、所有操作的数据必须储存于通用寄存器中2、乘法运算只能进行8比特数据相乘,溢出则取其低8位数据相乘3、cmp指令的结果会影响标志位,该标志位可作为分支操作的条件,但执行cmp指令之前建议先清除相关标志位。

RISC技术的设计技巧

RISC技术的设计技巧

RISC技术的设计技巧RISC的设计原则是使系统设计达到最高的有效速度,将那些能对系统性能产生净增益的功能用硬件实现.其余大部分都用软件实现.它排除了那些实现复杂功能的复杂指令,所谓。

"精简"并不是简单的减少.而是保留经验证明的能提高机器性能的指令,另外还将编译器作为机器的功能.而且RISC微处理器使编译器能够直接访问基本的硬件功能,RISC设计的基本目的在于使计算机结构更加简单、更加合理、更加有效.指令经过精简后.计算机体系结构自然趋于简单.在这个基础上,还必须克服CISC的许多缺点.使得计算机速度更快,程序运行时间缩短.这样.RISC才能以崭新的面貌出现.自从80年代中期RISC结构的计算机商品化以来,全世界几乎所有计算机系统制造厂商都竞相采用,半导体厂商也不断研制性能越来越强、集成度越来越高的RISC微处理器,甚至一向以发展CISC而著称的Motoro1a和Intel公司也同时发展RISC微处理器产品系列.RISC不是一个产品而是一种设计技术.人们可以根据不同要求选择使用这些设计技术用于各类计算机系统中,以利于改善和提高机器性能.RISC技术的主要设计技巧及其特点分述如下.1短周期时间为了指令的快速执行,就必须快速选择译码和减小寄存器存取时间,尽量采用先进工艺技术以缩短机器周期时间,也即提高机器的工作频率.2单周期执行指令由于RISC微处理器的指令经过精选,所有指令长度都相同.大多数指令都能在-个机器周期内执行完.实际上,大多数RISC微处理器在没有增加并行技术时,平均每条指令执行时间为1.25-2个机器周期时间,而CISC微处理器在相同工艺技术条件下平均执行每条指令需5-8个机器周期时间,RISC微处理器力求达到每一个机器周期时间执行一条指令.单周期执行指令是RISC微处理器性能增强的基础.必须简化指令系统和采用流水线技术.3 load(取)/Store(存)结构每当一条指令得要访问主存信息时.机器的执行速度将会降低.RISC的load/restore指令只有在访问内存时才使用,所有其它的指令都是在寄存器内对数据进行运算.一条存取数指令(load)从内存将数据取出放到寄存器中,在那里可以对数据进行快速处理,并把它暂存在寄存器里,以便将来还要使用.在适当的时候.一条存数指令(store)可将这个数据送回到它在内存中的地址中去.CISC微处理器支持那些直接从内存处理信息的指令.这些指令需要多个机器周期时间才能完成.R15c的设计技术与CISC 的设计技术相比.有大量寄存器.由于允许数据在寄存器中保留较长的时间.这样就减少了存/取指令对内存访问的需要.在寄存器中.每当再被使用时不必再次访问内存.这种Load /restore结构通过寄存器对寄存器进行操作的方式乃是获得单周期执行的关键.4简单固定格式的指令系统所有指令采用32位固定长度,寻址方式不超过三种,简化了逻辑和缩短译码时间.确保单周期执行指令,同时也有利于流水线操作的执行.这是由于指令的固定格式保证指令译码和取操作能同时进行.5不用微码技术由于RISC的设计采用简单.合理的指令系统和简化的寻址方式.所以排除微代码设计技术.也即不采用微码只读存贮器(ROM),而是直接在硬件中执行指令,这意味着省去将机器指令转换成原始微码这一中间步骤,这也就减少了执行一条指令所需要的机器周期个数,这也就节省了芯片的空间使得可以利用这些节省下来的芯片空间扩展微处理器功能.6大寄存器堆RISC微处理器中大量的计算都在ALU高速寄存器中执行.由编译器产生、分配和优化寄存器的使用.从而简化流水线结构和使指令周期降到最小,同时又不访问内存.允许调用的嵌套执行,但这也增加ALU周期中的寄存器存取时间和一些选址机构.因此在任务变换中需要较高的开销.7哈佛(Harvard)总线结构采用指令和数据高速缓存(cache),利用双总线动态访问机构.填人执行程序有利于单周期执行指令,又可双倍增加数据带宽以提高数据吞吐置.在片高速缓存容量的增加将占较大芯片空间,而脱片cache也将增加存取延迟时间.8高效的流水线操作当前不论什么结构的微处理器都毫无例外地采用流水线技术,以达到高速执行指令的能力,因为流水线的每一级都负责执行一个单个的操作段.比如、指令译码或取操作数。

CPU从指令集的特点上可以分为两类CISC和RISC我们所熟

CPU从指令集的特点上可以分为两类CISC和RISC我们所熟

RISC和CISCCPU从指令集的特点上可以分为两类:CISC和RISC。

我们所熟悉的Intel 系列CPU就是CISC 的CPU 的典型代表。

那么,RISC 又是什么呢?RISC是英文Reduced Instruction Set Computer的缩写,汉语意思为"精简指令系统计算机"。

相对应的CISC就是"复杂指令系统计算机"的意思。

随着大规模集成电路技术的发展,计算机的硬件成本不断下降,软件成本不断提高,使得指令系统增加了更多更复杂的指令,以提高操作系统的效率。

另外,同一系列的新型机对其指令系统只能扩充而不能减去旧型机的任意一条,以达到程序兼容。

这样一来,指令系统越来越复杂,有的计算机指令甚至达到数百条。

人们就称这种计算机为CISC (Complex Instruction Set Computer)。

如IBM公司的大、中型计算机,Intel公司的8086、80286、80386微处理器等。

日益庞大的指令系统不仅使计算机研制周期变长,而且还有难以调试、难以维护等一些自身无法克服的缺点。

于是,RISC的概念就应运而生,在1983年,一些中、小型公司开始推出RISC产品。

RISC并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。

RISC机优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以便布线控制逻辑为主,不用或少用微码控制等措施来达到上述目的。

目前,RISC和CISC各有优势,而且界限并不那么明显了。

现代的CPU往往采用CISC的外围,内部加入了RISC的特性。

就连Intel最新的Pentium II等CISC芯片也具有了明显的RISC特征。

另外,超长指令集CPU由于融合了RISC和CISC的优势,成为未来的CPU发展方向之一。

RISC技术相信大家在日常电脑使用或CPU的广告介绍中时常听到见到“RISC”这个词,什么Pentium Ⅱ/Pro 采用先进RISC技术……K6采用RISC86结构,从而……总之大凡稍高档点的中央处理器都称采用RISC技术。

(完整word版)32位单周期RISC处理器设计

(完整word版)32位单周期RISC处理器设计

第一章32 位单周期RISC处理器设计要设计一款处理器,首先要选择体系结构,本题选择的是RISC体系结构,因为它适合于流水线设计。

然后需要选择一个标准的指令集,本题选择的MIPS指令集并按照常规的五段流水的方式来实现流水线。

流水线的实现过程将在第二章介绍。

1.1目标处理器指令集与指令格式本题目标CPU以能实现部分MIPS指令为目标,具体指令如下表1:(slti)无条件跳跳转(jL)J转空操作空操作(nop)表1 目标CPU指令集1.2 从指令具体行为反推设计方案CPU要执行一条指令,不外乎需要完成以下几个过程:取指令,指令译码,将译码出的指令放到算术逻辑运算部件ALU上执行运算,根据ALU算得的访存地址进行访存和将访存的结果写回寄存器等。

当然,不同的指令类型(R、I、J)可能经过的过程稍有不同,即它们的数据通路有所不同,以下将具体介绍:1、R格式指令数据通路:1)从指令寄存器Instr MEM中取出指令,同时PC增值(即加1等待下个CLK到来);2.)寄存器单元rs1和rs2的内容从寄存器堆Reg File中读出;3.)ALU根据功能码Opcoder确定操作方式,对从寄存器堆读出的数据进行计算;4.)ALU运算结果被写入寄存器堆,由rd确定写入的寄存器堆存储单元地址。

图1 R指令数据通路2. I 指令(除lw、sw和分支指令)数据通路如图2:1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);2.)寄存器单元rs1的内容从寄存器堆Reg File中读出;3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加;4.)ALU的运算结果被写入寄存器堆,由rt确定写入的寄存器堆存储单元地址。

图2 I 指令(除lw、sw和分支指令)数据通路3、Lw指令数据通路如图3:1.)从指令寄存器Instr Mem中取出指令,同时PC增值(即加1等待下个CLK到来);2.)寄存器单元rs1的内容从寄存器堆Reg File中读出;3.)ALU将从寄存器堆rs1单元中读出的数据与符号扩展后的指令低16位值相加;4.)将ALU的运算结果作为数据存贮器的地址读出相应单元的内容;5)把从数据存储单元取出的数据写入寄存器堆,由rt确定写入的寄存器存储单元地址。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HLT:停机操作。该操作将空一个指令周期,即8个时 钟周期;
SKZ:若为零跳过下一条语句。该操作先判断当前累加 器中的结果是否为零,若为零就跳过下一条语句,否则继 续执行; ADD:该操作将累加器中的值与地址所指的存储器或端 口的数据相加,结果仍送回累加器中; ANDD:该操作将累加器的值与地址所指的存储器或端 口的数据相与,结果仍送回累加器中;
模块6
地址多路器
模块七 程序计数器
它用于提供指令地址,以便读取指令。指令按地址顺序存放在存储 器中; 两种指令地址的形成方式: 顺序执行的情况; 改变顺序执行程序的情况(例如执行JMP指令后,需要形成新 的指令地址)。 复位后,指令指针为零,即每次CPU重新启动将从ROM的零地址 开始读取指令并执行;
2、 CPU功能的细化
2、 CPU的基本内部结构
a.时序和控制部件
b.指令寄存器和译码器
c.累加器
d.算术逻辑运算单元 e.程序计数器
2、 什么是CPU
RISC即精简指令集计算机(Reduced Instruction Set Computer)的缩写; RISC_CPU特点: 简化的指令系统,而且还通过简化指令系统使计算机的 结构更加简单合理,从而提高运算速度;
模块四 算术运算器
HLT=3’b000,暂停指令(保持累加器值 )
SKZ=3’b001,计算为零则跳转指令(保持累加器值)
ADD=3’b010,加法指令(data+累加器值)
ANDD=3’b011,按位与指令( data &累加器值)
XORR=3’b100,按位异或指令( data ^累加器值)
LDA=3’b101,载入指令( data )
STO=3’b110,数据写入指令(保持累加器值 )
JMP=3’b111,跳转指令(保持累加器值 )
模块4
算数运算器
模块五 数据控制器
数据控制器作用是控制累加器的数据输出,由于数据总 线是各种操作时传送数据的公共通道,不同情况下传送不 同的内容,有时要传输指令,有时要传送RAM区或接口 的数据; 累加器的数据只有在需要往RAM区或端口写时才允许 输出,否则应呈现高阻态,以允许其他部件使用数据总线; 所以任何部件往总线上输出数据时,都需要一控制信号。 而此控制信号的启、停则由CPU状态控制器输出的各信 号控制决定; 数据控制器何时输出累加器的数据则由状态控制器输出 的控制信号datactl_ena决定。
模块一 时钟发生器
时钟发生器利用外来时钟信号clk生成一系列分频时钟 信号clk1、fetch、alu_clk,并送往CPU的其他部件作为时 钟信号。 a.fetch是外来时钟clk的8分频信号;
b.利用fetch的上升沿来触发CPU控制器开始执行一条指 令。
c.fetch信号还将控制地址多路器输出指令地址和数据地 址; clk1信号用作指令寄存器、累加器、状态控制器的时钟 信号; alu_clk则用于触发算术逻辑运算单元。
5、状态控制器
指令周期是由8个时钟组成,每个时钟都要完成固定的操作:
第0个时钟:CPU状态控制器的输出rd和load_ir为高电平, 其余均为低电平。指令寄存器寄存由ROM送来的高8位指 令代码;
第1个时钟:与上一时钟相比只是inc_pc从0变为1,故PC 增1,ROM送来低8位指令代码,指令寄存器寄存该8位代 码,PC值增1; 第2个时钟:空操作,即inc_pc从1变为0,rd和load_ir变 为0。此时指令读结束; 第3个时钟:inc_pc变为1,即PC增1,指向下一条指令。 另外,若操作符为HLT,则输出信号halt为高,否则除了 inc_pc为1外,其他各控制线均为0;
4、数据通道
2
6
7
4
3 1 5
数据通道
5、状态控制器
状态机控制器接受复位信号rst,当rst有效时,使能信号 ena为0,输入到状态机中以停止状态机的工作; 状态控制器是在fetch上升沿或rst上升沿判断rst是否有效, 如果为高电平,ena置0,否则置1; 状态机是CPU的控制核心,通过产生一系列的控制信号, 来启动或停止某些部件; CPU何时进行读指令来读写I/O端口及RAM区等操作, 都是由状态机来控制的; 状态机的当前状态存放在state变量中,state变量中的值就 是当前这个指令周期中已经过的时钟数(从零计起)。
复位信号高有效,指令寄存器被清为零;
每条指令为两个字节,即16位。高3位是操作码,低13 位是地址(CPU的地址总线为13位,寻址空间为8K字节)
数据总线为8位,所以每条指令需取两次,先取高8位, 后取低8位。
模块2
指令寄存器
模块三 累加器
累加器用于存放当前的结果,它也是双目运算 中的一个数据来源;
5、状态控制器
状态控制器有两部分组成:状态机、状态控制器。
3、 RISC_CPU结构
状态控制器
3、 RISC_CPU结构
数据通道
3、 RISC_CPU结构
顶层模块
6、RISC_CPU操作和时序
一个微机系统为了完成自身的功能,需要CPU执行许多操 作。以下是RISC_CPU的主要操作: 系统的复位和启动操作; 总线读操作;
6、RISC_CPU操作和时序
总线读操作:
每个指令周期的前0~3个时钟周期用于读指令;
第3.5个周期处,存储器或端口地址就输出到地址总线上; 第4~6个时钟周期,读信号rd有效,数据送到数据总线 上,以备累加器锁存,或参与算术、逻辑运算; 第7个时钟周期,读信号无效,第7.5个时钟周期,地址 总线输出PC地址,为下一指令做好准备。
5、状态控制器
指令周期是由8个时钟组成,每个时钟都要完成固定的操作:
第4个时钟:若操作符为ANDD,ADD,XORR或LDA, 读相应地址的数据,即rd变为1;若为JMP,将目的地址送 给程序计数器,即load_pc变为1;若为STO,输出累加器 数据,即datactl_ena变为1;
第5个时钟:若操作符为ANDD,ADD或XORR,算术 运算器就进行相应的运算;若为LDA,就把数据通过算术 运算器送给累加器,即load_acc变为1,rd变为1 ;若为 SKZ,先判断累加器的值是否为0,如果为0,PC就增1 (即inc_pc变为1),否则保持原值;若为JMP,锁存目的 地址,即inc_pc为1,load_pc为1;若为STO,将数据写入 地址处,即wr为1,datactl_ena为1;
5、状态控制器
指令周期是由8个时钟组成,每个时钟都要完成固定的操作:
第6个时钟:空操作。此时如果操作为STO,datactl_ena 为1;如果操作为ADD,ANDD,XORR和LDA,则rd为1, 否则个控制信号全为0;
第7个时钟:若操作符为SKZ且累加器值为0,则PC值再 增1(即inc_pc变为1),跳过一条指令,否则PC无变化。
3、 RISC_CPU结构
RISC_CPU 是一个复杂的数字逻辑电路,但是它的基本部件的逻 辑并不复杂。可以把它分成8个基本部件来考虑: (1)时钟发生器; (2)指令寄存器; (3)累加器; (4)RISC_CPU算术逻辑运算单元; (5)数据控制器; (6)地址多路器; (7)程序计数器; (8)状态控制器; a.时钟发生器利用外来时钟信号进行分频生成一系列时钟信号,送往 其他部件用作时钟信号。 b.通过状态控制器实现各部件之间的相互操作的关系。
复位后,累加器的值是零;
当累加器通过ena口收到来自CPU状态控制器 load_acc信号时,在clk1时钟正跳沿时就收到来自 于数据总线的数据。
模块3
累加器
模块四 算术运算器
算术逻辑运算单元根据输入的8种不同操作码 分别实现相应的加、与、异或、跳转等基本操作 运算;
利用这几种基本运算可以实现很多种其它运算 以及逻辑判断等操作。
模块5Leabharlann 数据控制器模块六 地址多路器
它用于选择输出的地址是PC(程序计数)地址 还是ir(指令寄存器)地址; 每个指令周期的前4个时钟周期用于从ROM中 读取指令,输出的应是PC地址; 后4个时钟周期用于对RAM或端口的读写,该 地址由指令给出;
地址的选择输出信号由时钟信号的8分频信号 fetch提供。
实验一
简化的RISC_CPU设计
1、 课题的由来和设计环境介绍
设计核心: 不但关心CPU总体设计的合理性; 构成这个 RISC_CPU 的每一个模块不仅是可仿 真的也都是可以综合成门级网表。 物理意义: 一个能真正通过具体逻辑电路结构而实现的 CPU。 这里介绍它的目的是想说明一下两点: (1)Verilog HDL仿真和综合工具的潜力; (2)本文介绍的设计方法对软硬件联合设计是 有重要意义的。
6、RISC_CPU操作和时序
总线写操作:
每个指令周期的第3.5个时钟周期处,写的地址就建立了;
第4个时钟周期输出数据; 第5个时钟周期输出写信号,至第6个时钟结束,数据无 效; 第7.5个时钟周期,地址输出为PC地址,为下一指令做 好准备。
7、RISC_CPU寻址方式和指令系统
指令系统由8条指令组成:
模块1
时钟发生器
模块二 指令寄存器
指令寄存器的触发时钟是clk1,在clk1的正沿触发下, 寄存器将数据总线送来的指令存入高8位或低8位寄存器中, 但并不是每个clk1的上升沿都寄存数据总线的数据,因为 数据总线上有时传输指令,有时传输数据;
是不是指令由CPU状态控制器的load_ir信号控制,该信 号通过ena口输入到指令寄存器,高电平表示是指令;
总线写操作。
6、RISC_CPU操作和时序
系统的复位和启动操作:
RISC_CPU的复位和启动操作是通过rst引脚的信号触发 执行的;
当rst信号一进入高电平,RISC_CPU就会结束现行操作, 并且只要rst停留在高电平状态,CPU就维持在复位状态; 在复位状态,CPU各内部寄存器都被设为初值,全部为 零。数据总线为高阻态,地址总线为0000H,所有控制信 号均为无效状态; rst回到低电平后,接着到来的第一个fetch上升沿将启动 RISC_CPU开始工作,从ROM的000处开始读取指令并执 行相应操作。
相关文档
最新文档