微处理器系统设计.
微机原理与接口课程设计基于8086微处理器和8255A芯片的汽车信号灯微机控制系统的设计与实现

课程设计题目汽车信号灯目录一、设计目的 (2)二、系统硬件设计 (3)三、系统软件设计 (9)四、系统调试及结果 (15)五、总结和体会 (16)六、参考文献 (16)一、设计目的通过所学知识和现代计算机技术来模拟模拟汽车信号灯控制系统,把所学的理论的知识用到现实实践中去,加强了对理论知识的理解和记忆。
展示了计算机技术在汽车行业的应用。
设计出汽车信号灯微机控制系统。
汽车信号灯的作用是大家所熟知的,汽车通过显示不同的信号灯来告诉前后左右的行车者本汽车正在进行的操作,本控制系统采用8086微处理器作为处理器和可编程的8255A芯片来模拟汽车信号灯控制系统。
通过在实验箱上分别按K1,K2,K3和K4键来显示汽车左转、右转,前进和后退等状态。
左/右转弯开关K1,K2闭合时,对应的仪表板左/右转弯指示灯、左/右转弯头灯和左/右转弯尾灯闪烁;紧急开关闭合时,所有仪表板左右转弯灯、左右转弯头灯和左右转弯尾灯闪烁;当用户按K3时,也即踩刹车时,刹车开关闭合,刹车灯(左右红色尾灯)亮;停靠时(合上停靠开关),即按K4键时,所有的灯闪烁。
所需执行的操作由相应的开关状态反映,所需控制的信号灯有仪表板左/右转弯灯、暂停灯、照明远灯和照明近灯共五类类灯.二、系统硬件设计1.硬件连接图:利用8088驱动8255 8253来连接外部电路。
2.器件选择:CPU(8088) 1个发光二极管 5个74ALS373 2个电阻 5个74ALS245 1个 74LS00 5个8255 1个控制开关 5个8253 1个3、8088,8255,8253功能及说明8088的引脚包括20根地址线,16根数据线及控制线,状态线,时钟,电源和地线等,大致可分五大类.第一类只传送一种信息,第二类每个引脚电平的高低代表不同信息,第三类代表不同的工作方式,第四类每个引脚可以传送两种信息,第五类引脚在输入和输出时分别传送不同的信息.同时还要地址锁存器及数据总线收发器来构成最小系统.因本电路用到各种比较重要的芯片,因此有必要对芯片进行简要介绍。
单片机原理及应用系统设计

单片机原理及应用系统设计单片机原理及应用系统设计单片机(Microcontroller,简称MCU)是集成了微处理器、存储器、输入/输出接口及其他功能模块的一种集成电路芯片,其内部包含了CPU、RAM、ROM、定时器/计数器、串口、ADC/DAC、中断控制器等多个功能模块,可用于控制系统、数据采集、嵌入式系统、家用电器、汽车电子等许多领域中。
单片机的组成结构主要包括中央处理器(CPU)、存储器(ROM、RAM、EEPROM)、输入/输出接口(I/O)、时钟/定时器、中断/外部中断、串口通信、模拟输入/输出等模块。
其中,中央处理器是单片机的“心脏”,它执行单片机内部各种指令,进行逻辑运算、算术运算等操作;存储器用来存储程序和数据,ROM主要存储程序代码,RAM用来存储程序运行时所需的数据和临时变量;输入/输出接口是单片机和外部设备(如LED、LCD、继电器等)的链接带,通过输入输出接口可以实现单片机对外部设备的控制和监测;时钟/定时器用来产生精确定时信号,对于实时控制、时间测量、定时定量控制等应用非常重要;中断/外部中断是单片机的一种高效机制,在单片机运行过程中,如碰到紧急事件需要优先处理,可以启用中断机制,优先处理中断程序;串口通信用来实现单片机与另一台设备之间的通信功能,是单片机进行通信应用中较常用的接口;模拟输入/输出可实现单片机对外部采集信号的转换。
单片机的应用系统设计是单片机在应用领域中所体现出来的具体项目,包括了硬件和软件两个方面的内容。
硬件设计主要包括单片机的选型、外设的选择、电源设计、信号输入/输出设计等;软件设计则主要是对单片机进行编程,构造出相应的应用程序,实现对硬件系统的控制。
单片机在嵌入式系统中应用非常广泛,包括家用电器、工业自动化、汽车电子、医疗器械、安防监控等多个领域。
在家用电器中,单片机能够实现家电的自动控制、显示、调节等多种功能,如洗衣机控制、空调控制、电磁灶控制、电子钟表控制等;在工业自动化中,单片机的功能应用更为广泛,应用于生产线的控制、物流系统的管理、环保系统的监测、电子银行等多个领域;在汽车电子中,单片机的功能主要体现在行车电子控制系统、车载音响、泊车雷达系统等方面,具有多种控制、监测、显示、操作等功能;在医疗器械领域中,单片机主要应用于病人监测、给药控制、设备控制等多个方面,通过单片机系统的运行,实现对病情的掌控;在安防监控领域中,单片机系统具备事件监测、报警输出、视频监视等多种功能,使得安防系统可以实现更加精确、高效、智能的控制。
嵌入PowerPC405微处理器的FPGA设计流程课件

1. 深埋式应用
n 深埋式应用如图1.3.5所示, PowerPC405 仅使用FPGA 内部的BlockRAM,不与 FPGA外部资源发生直接联系,不需要实 时操作系统和外界接口。 PowerPC405的 深埋式应用比较适合于FPGA 内部复杂逻 辑控制、数据包处理等场合。
BlockRAM PowerPC405 BlockRAM
ChipScope工具…
⑤软件仿真与验证
n 目前,针对 Virtex -ⅡPro系列器件中 PowerPC405的软件开发, Xilinx公司推出了两 种软件开发工具: GNU和WindRiver XE。其中, WindRiver XE是 Xilinx公司与 WindRiver公司 合作开发的嵌入式软件设计工具,它包括 Diab Compiler和 Single Step Debugger 。GNU是 XilillX公司自主开发的嵌入式软件设计工具。基 于GNU 的嵌入式软件设计主要包括编辑、编译、 链接和调试等步骤。
③硬件系统仿真和验证
n 在硬件系统仿真和验证的设计阶段,将 确定整个硬件系统的仿真和验证方案, 并通过微处理器验证规范( MVS, Microprocessor Verification Specification ) 文件描述。在EDK集成开发环境中,调 用 simgen可以将MVS文件转换成相应的 仿 真和验证文件。
1.3.5嵌入PowerPC405微处理 器的FPGA设计流程
1.PowerPC405 的使用方式
n Xilinx公司的Virtex -ⅡPro系列器件内嵌 高性能的 32位RISC 内核PowerPC405。
在Virtex -ⅡPro系列器件中, PowerPC405
主要有两种使用方式: 1. 深埋式应用 2. 复杂嵌入式应用
8086微机原理实验报告

8086微机原理实验报告实验名称:8086微机原理实验实验目的:1.深入了解8086微处理器的内部结构和指令系统。
2.掌握汇编语言的编程方法和技巧。
3.熟悉微机系统的输入输出操作原理。
4.掌握8086微机系统的调试方法和程序调试技巧。
实验器材:1.8086微处理器芯片2.Intel 8086学习板3.编程器4.示波器5.实验箱实验步骤:1.熟悉8086微处理器的内部结构和指令系统在开始实验前,首先需要熟悉8086微处理器的内部结构和指令系统。
通过阅读教材和讲义,了解到8086微处理器采用16位结构,具有4个寄存器组,支持16种不同寻址方式的指令。
熟练掌握常用的指令系统和汇编语言的编程方法。
2.设计并编制简单的汇编程序在熟悉8086微处理器的内部结构和指令系统后,我们开始设计并编制简单的汇编程序。
本实验中,我们编写了一个简单的汇编程序,用于实现两个数的加法操作,并将结果存储在内存中。
程序中使用了mov指令将操作数送入寄存器,add指令将它们相加,再用mov指令将结果存储到内存中。
程序流程图如下所示:a. 将第一个数送入累加器A中。
b. 将第二个数送入寄存器B中。
c. 执行add指令,将A和B相加,结果保存在A中。
d. 将结果存储到内存中。
e. 程序结束。
3.调试程序并进行测试在完成汇编程序的编写后,我们需要使用调试器对程序进行调试,并进行测试。
首先,将程序加载到学习板上进行调试。
在调试过程中,我们使用示波器观察各个信号的波形,以确定程序的正确性。
通过逐步单步执行程序并观察寄存器和标志位的变化,我们验证了程序的正确性。
接下来,我们使用输入设备输入两个数,并观察输出结果是否正确。
测试结果表明程序正确实现了两个数的加法操作。
4.总结体会和改进建议通过本次实验,我们深入了解了8086微处理器的内部结构和指令系统,掌握了汇编语言的编程方法和技巧,熟悉了微机系统的输入输出操作原理,以及掌握了8086微机系统的调试方法和程序调试技巧。
8086微处理器-指令系统思维导图,脑图

8086微处理器指令系统数据传送数据传送指令可完成寄存器与寄存器之间、寄存器与存储器之间以及寄存器与I/O 端口之间的字节或字传送,它们共同的特点是不影响标志寄存器的内容通用数据传送指令MOV 传送指令格式: MOV 目标,源指令功能:将源操作数(一个字节或一个字)传送到目标操作数。
源操作数可以是8/16位通用寄存器、段寄存器、存储器中的某个字节/字或者是8/16 位的立即数。
堆栈操作指令后进先出的规则存取信息堆栈指针信息存入堆栈时,堆栈指针将自动减量,并将信息存入堆栈指针所指出的存储单元当需要从堆栈中取出信息时,也将从堆栈指针所指出的存储单元读出信息,并自动将堆栈指针增量堆栈指针始终指向堆栈中最后存入信息的那个单元栈顶不断移动、动端堆栈区的另一端则是固定不变的栈底PUSH 入栈指令格式: PUSH 源指令功能:将源操作数压入堆栈。
源操作数可以是16 位通用寄存器、段寄存器或者是存储器中的数据字。
P38 例 2.12POP 出栈指令格式: POP 目标指令功能:将堆栈中当前栈顶和次栈顶中的数据字弹出送到目标操作数。
目标操作数可以是16 位通用寄存器、段寄存器或者是存储单元。
P39 例 2.13XCHG 交换指令1格式: XCHG 目标,源指令功能:将源操作数与目标操作数(一个字节或一个字)相互交换位置。
源操作数可以是通用寄存器或存储单元。
目标操作数只允许是通用寄存器。
P39 例 2. 14XLAT 换码指令2目标地址传送指令这是一类专用于传送地址码的指令,可用来传送操作数的段地址或偏移地址LEA 有效地址送寄存器指令格式: LEA 目标,源指令功能:将源操作数的有效地址EA 传送到目标操作数。
源操作数必须是存储器操作数。
目标操作数必须是16位通用寄存器。
LDS 指针送寄存器和DS指令格式: LDS 目标,源指令功能:从源操作数所指定的存储单元中取出某变扯的地址指针(共4 个字节),将其前两个字节(即变量的偏移地址)传送到目标操作数,后两个字节(即变量的段地址)传送到DS 段寄存器中。
基于SEP3203微处理器的嵌入式系统实验平台设计

第2 9卷
第2 期
电 子 器 件
C i s o r h e eJu mt n Fet n D v  ̄ A c o el r  ̄
V0 . 9 No 2 12 .
20 0 6年 6月
J n 2 0 u .0 6
De in o sg fEmb d e y tm p rme t g Pl to m s d o EP 2 3 e d d S s e Ex e i n i a f r Ba e n S 3 0 n
EEA OC: 2 5 16F
基 于 S P 2 3微 处 理 器 的嵌 入 式 系统 实验 平 台设 计 E 30
徐金 波 , 章 杰, 钟 锐
( 东南大学国家专用集成电路系统工程技术研究中心, 南京 209) 106
摘 要 : A M7 A M9 对 R 和 R 在嵌入式实验系统中的应用做了比较。 阐明了嵌入式实验系统采用基于 A M7 R 微处理器的优
Ab ta t I mb d e y tm x e i n i g p af r ,c mp r d t e a p iain o sr c :n e e d d s se e p rme t lto m n o a e h p l t fARM 7 wih t a f c o t h to ARM9.t evr u ft e s se b s d o h it eo h y tm a e n ARM 7 mir p o e s ra ei u tae .Th e in o mb d e c o r c s o r l sr t d l e d sg fe e d d
越重要的作用。随着嵌入式技术不断渗透到人们 日 常生活的各个方面 , 嵌人式人才 的需求量不断加大 。
基才S3C2410型微处理器和UDA1341型立体声音频编解码器的嵌入式音频系统设计
维普资讯
基 于 ¥C 40型微 处理 器和 U A14 型 立体 声音频 编 解码 器的嵌入 式 音频 系统 设计 一5 32 1 D 31 3一
●应 用 与 设 计
基才 ¥ C 40 3 2 1 型微处 理器和 U A 31 D 14 型立体声音 频编解码 器 的嵌入 式音 频 系统设计
ห้องสมุดไป่ตู้
tek y fau e ftediesfra dod vc su d rL n xae po i e . h e trso r r o u i e ie n e iu rvd d e h v r
Ke r s 3 2 1 ; a d o s se y wo d :¥ C 4 0 u i y tm; L n x d i e ; mi r p c s o ; UDA1 4 iu ; r r v c r esr o o 3 1
本 文 利 用 S m u g公 司 的 ¥ C 4 0型 微 处 理 a sn 321
2 AI 9 0 2 T及 S C 4 0简 介 3 21
A M9 0 R 2 T是 A M 公 司 系列 微 处 理 器 核 的一 R
种 , 采 用 5阶段 管道 化 技 术 , 时 配备 了 T u 它 同 h m b
理 器 的 目标 系统 中网 。
3 基 于 Is总 线 的硬 件 框 架 实现 I
I 0 t —CSud总 线 是 P ip 司 提 出 的 I ne I on) S r hl s公 i
微处理器
微处理器已经无处不在,无论是录像机、智能洗衣机、移动**等家电产品,还是汽车引擎控制,以及数控机 床、导弹精确制导等都要嵌入各类不同的微处理器。微处理器不仅是微型计算机的核心部件,也是各种数字化智 能设备的关键部件。国际上的超高速巨型计算机、大型计算机等高端计算系统也都采用大量的通用高性能微处理 器建造。
微处理器
计算机的运算核心和控制核心
01 综述
03 的分类
目录
02 内部结构 04 发展历程
05 组成
07 其他发展
目录
06 AMDCPU 08 中国研发
微处理器是由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的 功能。
微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控 制部分。它可与存储器和外围电路芯片组成微型计算机。
第三阶段(1978—1984年)即16位微处理器。1978年,Intel公司率先推出16位微处理器8086,同时,为了 方便原来的8位机用户,Intel公司又提出了一种准16位微处理器8088。
8086微处理器最高主频速度为8MHz,具有16位数据通道,内存寻址能力为1MB。同时英特尔还生产出与之相 配合的数学协处理器i8087,这两种芯片使用相互兼容的指令集,但i8087指令集中增加了一些专门用于对数、指 数和三角函数等数学计算的指令。人们将这些指令集统一称之为 x86指令集。虽然以后英特尔又陆续生产出第二 代、பைடு நூலகம்三代等更先进和更快的新型CPU,但都仍然兼容原来的x86指令,而且英特尔在后续CPU的命名上沿用了原 先的x86序列,直到后来因商标注册问题,才放弃了继续用阿拉伯数字命名。
8086-8088CPU系统结构
1.2 8086/8088寄存器结构及用途
1.1.3 指针寄存器和变址寄存器
▲指针寄存器:
♣ SP:堆栈指针寄存器 ♣ BP:基址指针寄存器
▲变址寄存器:
♣ SI:源变址寄存器 ♣ DI:目的变址寄存器
汇编语言程序设计
8086/8088CPU系统结构
• 1.1 Intel8086/8088微处理器的结构 • 1.2 8086/8088寄存器结构及其用途 • 1.3 8086的存储器组织
• 1.4 堆栈
1.1 Intel8086/8088微处理器的结构
• 1.1.1 8086微处理器的结构
8086微处理器由两大部分组成: ♣ 执行部件EU ♣ 总线接口部件BIU 其内部结构如图(P20 图1.1)
1.3 8086的存储器组织
• 1.3.2 存储器的分段结构
◆8086CPU的寻址能力为:220=1MB; ◆8086CPU的内部寄存器为16位,直接 寻址:216=64KB; ◆在8086系统中引入逻辑段的概念:把 的地址空间划分为任意个逻辑段,长度 为64KB。
1.3 8086的存储器组织
• 1.3.3 物理地址和逻辑地址
▲是CPU与外部存储器、I/O设备的接口;
▲BIU由以下几部分组成: ♣16位指令指针寄存器IP; ♣指令队列; ♣4个16位段寄存器CS、DS、ES、
SS; ♣20位地址加法器; ♣总线控制部件。
1.1.1 8086微处理器的结构
• 3. BIU和EU的管理
▲二者处于并行的工作状态和重叠的工 作方式; ▲相互配合,协调工作; ▲充分利用总线实现最大限度的信息传 输,提高了程序的执行速度。
计算机硬件逻辑设计概述
计算机硬件逻辑设计概述计算机硬件逻辑设计是计算机科学中一个重要的领域,它涉及计算机硬件组件之间相互连接的设计和实现过程。
本文将概述计算机硬件逻辑设计的基本概念、方法和应用,并提供相应的答案和解析。
一、基本概念计算机硬件逻辑设计是指在计算机系统中,对各个硬件组件进行逻辑电路的设计与实现的过程。
其主要涉及的硬件组件包括中央处理器(CPU)、存储器、输入输出设备等。
1. 中央处理器(CPU)中央处理器是计算机系统的核心,它负责执行计算机指令。
在逻辑设计中,CPU的设计需要考虑指令的解码、执行和控制等方面。
2. 存储器存储器是用于存储数据和指令的设备,逻辑设计需要考虑存储器的容量、读写速度以及数据的排列方式等。
3. 输入输出设备输入输出设备包括键盘、鼠标、显示器、打印机等,逻辑设计需要考虑这些设备的接口和数据交互方式。
二、方法和技术计算机硬件逻辑设计涉及复杂的电路设计和布局,需要运用一系列的方法和技术来实现。
1. 逻辑门电路逻辑门电路是计算机硬件逻辑设计的基础。
逻辑门包括与门、或门、非门等,通过它们的组合和连接可以实现各类逻辑功能。
2. 状态机设计状态机设计是指利用有限状态机模型来设计和实现控制逻辑。
通过定义不同的状态和状态转移条件,可以实现复杂的计算机控制功能。
3. 时序设计时序设计是指考虑电路中信号的时间和顺序关系,以确保电路的正确工作。
时序设计中的关键是确定时钟信号的频率和各个时钟边沿的定义。
4. 中断处理中断处理是计算机系统中常用的异常处理机制,它能够在某些特定的事件发生时中断当前程序的执行,转而处理相应的事件。
三、应用领域计算机硬件逻辑设计在各个领域都有广泛的应用。
1. 微处理器设计微处理器是计算机的核心部件之一,硬件逻辑设计在微处理器的设计中起着关键作用。
通过逻辑设计,可以提高微处理器的运算速度和功能。
2. 嵌入式系统设计嵌入式系统是指嵌入到其他设备或系统中的计算机系统,硬件逻辑设计在嵌入式系统的设计和实现中起到至关重要的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能描述: 设计一个带简单I/O接口电路的多周期RISC处理器设计方案,并在FPGA上进行验证。验证题目为设计流水灯的样式为:
00000000->00000001->00000011->00000111->00001111->0011111->01111111->11111111->00000000,切换间隔为1秒。
RISC处理器简介 中央处理器(CPU,Central Processing Unit)是计算机的核心部件。计算机进行信息处理可分为两个步骤: (1)将数据和程序(即指令序列)输入到计算机的存储器中; (2)从第一条指令的地址起开始执行该程序,得到所需结果,结束运行。CPU的作用是协调并控制计算机的各个部件并执行程序的指令序列,使其有条不紊地进行。因此它必须具有以下基本功能: ◆ 取指令——当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址和控制信号。 ◆ 分析指令——即指令译码,这是对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 ◆ 执行指令——根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理及下条指令地址的形成。 将CPU的功能进一步细化,可概括如下: (1)能对指令进行译码并执行规定的动作; (2)可以进行算术和逻辑运算; (3)能与存储器和外设交换数据; (4)提供整个系统所需要的控制。 尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同。由功能分析可知,任何一种CPU内部结构至少应包含下面这些部件: (1)算术逻辑运算部件(ALU); (2)累加器或寄存器; (3)程序计数器; (4)指令寄存器和译码器; (5)时序和控制部件。 从实现的途径看,RISC处理器与一般的CPU的不同之处在于:它的时序控制信号形成部件是用硬布线逻辑实现的而不是采用微程序控制的方式。所谓硬布线逻辑也就是用触发器和逻辑门直接连线所构成的状态机和相应的组合逻辑,故产生控制序列的速度比用微程序控制方式快得多,因为这样做省去了读取微程序指令的时间。 RISC处理器结构介绍
一、处理器结构
RISC处理器内核结构 从图中可以看出, RISC处理器内核包括以下功能单元:控制器、程序计数器、通用寄存器、算术逻辑单元(ALU)和总线接口单元(BIU)。以下的内容将依次讨论这些模块。
二、处理器内部子模块 1、控制器 控制器用于进行指令译码、产生ALU运算控制信号、产生通用寄存器读写控制信号以及协调处理器工作时序工作。 2、程序计数器 程序计数器用于指向下一条将要执行的指令的地址,它可以自动增值或是通过分支指令来设置其内容。 3、寄存器堆 处理器内部有32个32 位寄存器,ALU运算的源操作数、目的操作数大都来自这个寄存器堆。 4、算术逻辑单元 算术逻辑单元用于进行算术运算、移位操作、比较设置操作以及逻辑运算。对于其他未能实现的运算,例如乘法、浮点运算等,可以使用软件来实现。 5、总线接口单元 总线接口单元用于SimpleRISC处理器与外部存储器和I/O口的连接,为了简单起见,SimpleRISC系统的存储器和I/O采用统一编址的方式进行组织,并且采用程序存储器和数据存储器分开的哈佛结构。
多周期CPU设计原理 在单周期CPU中,每条指令的运行周期都是相同的。然而,不同的指令,其实际的运行时间各不相同,有的甚至相差很大。单周期处理器时钟周期远远大于许多指令实际所需执行时间,例如,R-型指令和立即数运算指令都不需要读内存;Store指令不需要写寄存器;分支指令不需要访问内存和写寄存器;Jump指令不需要ALU运算,不需要读内存,也不需要读写寄存器。受时钟周期宽度的影响,单周期处理器的效率地下、性能极差,这样就造成了运行时间的浪费,降低了运行的速度。 为了解决这个问题,引入多时钟周期CPU的设计方式。如下图所示,在多时钟周期CPU中,每条CPU指令并不是在一个时钟周期内运行,而是需要占用多个时钟周期,每一个执行步骤占用一个时钟周期。不同的指令,占用的时钟周期的个数也不相同。指令可以根据自身特点来决定使用几个时钟周期。这样,既保证了指令的正确运行,又使得指令根据自身的特点来占用运行时间,避免了运行时间的浪费。 多周期处理器的基本思想为:把每条指令的执行分为多个大致相等的阶段,每个阶段在一个时钟周期内完成;各个阶段最多完成一次访存或一次寄存器读/写或一次ALU操作;各个阶段的执行结果在下个时钟到来时保存到相应的存储单元或稳定的保持在组合电路中;时钟周期的宽度以最复杂的阶段所花的时间为准,通常取一次存储器读或写的时间。第一步自然是分析指令执行的状态。 在多周期处理器中,每条指令分多个阶段执行,每个阶段占一个时钟周期,称为一个状态。指令在被取出、译码之前,每条指令的操作是一样的,指令译码之后不同的指令有不同的执行过程。
子模块设计 控制器模块方案设计 控制器需要根据不同的指令,产生不同的控制信号,以控制数据通路中的部件能同步工作,并且使得数据通路中相应的数据选择器作出正确的选择。 这里的控制器比较复杂,使用一个有限状态机来实现,下图给出了控制器的状态转移图。 控制器状态转移图 从图中可以看出, RISC处理器的控制器具有5个状态。起始状态是取指状态Fetch, Fetch状态使得指令存储器的读控制信号有效,从而取到要执行的指令。取到指令之后,要对其进行译码,所以进入了第二个指令译码状态Decode,Decode根据前一状态取到的指令进行译码操作,产生相应的数据选择器选择信号等控制信号。指令译码之后,进入指令执行状态Execute,这一步大多数指令使用ALU进行运算,然后根据指令类型选择是进行存储器操作还是直接将运算结果写回寄存器堆。对于存储器访问指令,执行状态之后计算出进行存储器访问的地址,之后进入存储器访问状态Memory进行相应的存储器操作。对于其他不需要进行存储器访问的指令,直接进入寄存器回写状态Write,将计算结果写回寄存器。 接口定义 信号名称 方向 含义 op IN 操作码
regdst OUT 写寄存器地址
regwr OUT 写寄存器控制信号
alusrc OUT 立即数和寄存器数据读选择信号
extop OUT 立即数扩展信号
memwr OUT 存储器写信号
memtoreg OUT 存储器写寄存器信号
寄存器堆模块设计 模块方案设计 MIPS指令格式中的寄存器号是5bits,指令可以访问25=32个32位的寄存器。这样的一堆寄存器“堆在一起”构成一个寄存器堆。每一个寄存器都是32位,寄存器用来存放指令执行所需的数据。根据指令执行需要,该寄存器堆需要一个写数据端口和两个读数据端口,即同时要求有两个读地址和一个写地址。每次当写信号有效和时钟上升沿来临时,会将要写入的数据写入到寄存器给定的地址中,寄存器读端口会在持续的读出寄存器中相应地址中的数据。 电路结构 寄存器clkrst_nwaddrwdata
raddr1raddr2
We(有效时将wada写入)rdata1rdata2
接口定义及时序图 寄存器共有9个端口,具体见下表 序号 接口信号名称 方向 说明 1. clk I 处理器工作时钟,频率为
2. rst_n I 复位信号,低有效
3. raddr1 I 读寄存器堆时的第1个寄存器地址
4. raddr2 I 读寄存器堆时的第2个寄存器地址
5. waddr I 写寄存器堆时的寄存器地址
6. we I 寄存器堆写使能
7. wdata I 待写入寄存器堆的数据
8. rdata1 O 读寄存器堆时第1个寄存器的输出
9. rdata2 O 读寄存器堆时第2个寄存器的输出
Validaddr1clkwe
waddrValid
ValidwdataValid
rst_n
addr2 rdata1 rdata2
ValidValidValidValid
ALU模块方案设计 算术逻辑运算器(ALU)是数字计算机中执行加、减等算术运算,执行与、或等逻辑运算,以及执行比较、移位、传送等操作的功能部件,本模块实现32位的ALU。本文描述MIPS单周期处理器的ALU模块的功能、接口、时序及其实现。 aluclt 运算类型 SUBctr SIGctr OPctr OP含义
0000 Addu 0 0 00 加法器
0001 Add 0 1 00 加法器
0011 Or 0 1 01 与或器
0010 And 0 0 01 与或器
0100 Subu 1 0 00 加法器
0101 Sub 1 1 00 加法器
0110 Situ 1 0 11 置位器
0111 Sit 1 1 11 置位器
1000 Sll 0 0 10 移位器
1001 Srl 0 1 10 移位器
1100 sra 1 0 10 移位器
SUBctr = ALUctr[2](作为加减控制信号) ANDctr = ALUctr[0] (作为与或控制信号) OVctr = ~ALUctr[1]&ALUctr[0](溢出控制信号) SIGctr = ALUctr[0] (置位控制信号) Opctr[1] = Aluctr[2]&ALUctr[1]| ALUctr[3] OPctr[0] = ALUctr[1](输出选择信号) 电路结构
异或门阵列
加法器
或门阵列
Alucltaluda位扩展01移位器aludbalu_shift
alu_zeroalu_overflow
alu_dc0100
011110
SUBctrzOPctrOVctrSIGctrSctr
接口定义及时序图 信号名称 方向 含义 alu_da[31:0] IN ALU第一个输入数据端口,32位宽度
alu_db[31:0] IN ALU第二个输入数据端口,32位宽度