8位CPU的设计与实现
8位单片机结构

8位单片机结构8位单片机是一种常见的嵌入式微控制器,它具有8位宽的数据总线和地址总线,适用于各种控制和嵌入式系统。
本文将介绍8位单片机的结构,包括其组成部分和功能。
一、概述8位单片机由中央处理器(CPU)、存储器、输入输出(I/O)接口、定时器和串行通信接口等组成。
它可以执行各种指令,控制外围设备的操作,并处理数据。
二、中央处理器8位单片机的中央处理器通常采用精简指令集计算机(RISC)架构,具有较小的指令集和较短的指令周期。
它包括指令寄存器、程序计数器、算术逻辑单元(ALU)和状态寄存器等组件。
三、存储器8位单片机的存储器包括程序存储器和数据存储器。
程序存储器用于存储程序代码,数据存储器用于存储数据。
它们可以是闪存、EPROM、RAM等不同类型的存储器。
四、输入输出接口8位单片机的输入输出接口可以连接各种外围设备,如按键、LED、LCD、温度传感器等。
它们通过引脚与外围设备进行通信,并提供数据输入和输出的功能。
五、定时器8位单片机的定时器用于生成精确的时间延迟和定时事件。
它可以用于计时、脉冲宽度调制(PWM)、频率测量等应用。
定时器通常包括计数器和控制寄存器。
六、串行通信接口8位单片机的串行通信接口用于与其他设备进行通信,如串口通信、SPI(串行外围接口)通信、I2C(两线制串行通信)通信等。
它可以实现数据的发送和接收。
七、应用领域8位单片机广泛应用于各种控制和嵌入式系统,如家电控制、工业自动化、电子仪器、车载电子等。
它具有体积小、功耗低、成本低等优点,适合于资源受限的应用场景。
八、发展趋势随着技术的不断发展,8位单片机的性能不断提升,功能越来越强大。
同时,它也面临着来自32位单片机和ARM处理器等竞争对手的挑战。
总结:8位单片机是一种常见的嵌入式微控制器,具有8位宽的数据总线和地址总线。
它由中央处理器、存储器、输入输出接口、定时器和串行通信接口等组成。
它广泛应用于各种控制和嵌入式系统,并具有体积小、功耗低、成本低等优点。
sram bit 8个晶体管电路

sram bit 8个晶体管电路SRAM (Static Random Access Memory) 是一种基于晶体管的半导体存储器。
它不需要刷新电路,可以随时读写,速度快,应用广泛。
本文将介绍一个 SRAM 的 8 位单元电路,包含 8 个晶体管。
下面将详细介绍电路工作原理和实现方法。
一、SRAM 原理SRAM 是在 MOS (Metal-Oxide-Semiconductor) 可控电阻基础上发展起来的存储器,它的基本单元是一个双稳态电路。
这种电路可以在两种稳定状态之间切换,代表 1 或 0的存储状态。
具体来说,SRAM 的每个存储单元包括一个反相器(Inverter)和一个传输门(Transmission Gate)。
当传输门的开关控制引脚为高电平时,反相器的输出会被保存在传输门的存储电容器上;当传输门的开关控制引脚为低电平时,反相器的输出不会被保存在传输门上。
二、电路图及分析接下来介绍的是一个包含 8 个 SRAM 单元的电路图,如下所示:图中矩形框内部分为一个 SRAM 单元。
T1 和 T2 形成一个反相器,输出为 Q1;T3和 T4 形成另一个反相器,输出为 !Q1。
T5 和 T6 形成传输门,用来控制 Q1 的保存和释放。
T7 和 T8 形成传输门,用来控制 !Q1 的保存和释放。
在电路图中同时连接了 8 个 SRAM 单元,所以分别存在 Q1~Q8 和 !Q1~!Q8 两路电路。
Q1~Q8 构成一个 8 位字节的存储单元,用来保存数据,!Q1~!Q8 则是其补码。
当Q1~Q8 中的传输门为开状态(控制引脚为高电位),则存储的数据被保存在它们的电容器中。
当传输门为关状态(控制引脚为低电位),则数据可能会被改变或者保持不变。
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 ISPORT (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 ISSIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINB9 <= '0' & B ; A9 <= '0' & A ;PROCESS(M,CN,A9,B9)BEGINCASE S ISWHEN ぜ?尰=> IF M='0' THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF;WHEN IF M='0' THEN F9<=(A9 or B9) + CN ; ELSEF9<=NOT(A9 OR B9); END IF;WHEN 0 => IF M='0' THEN F9<=(A9 or (NOT B9))+ CN ; ELSEF9<=(NOT A9) AND B9; END IF;WHEN 1 => IF M='0' THEN F9<= ; ELSEF9<= 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 ;ELSE F9<=B9; END IF;WHEN A1 => IF M='0' THEN F9<=(A9 AND B9)- CN ;ELSE F9<=A9 AND B9; END IF;WHEN H0 => IF M='0' THEN F9<=(A9 + A9) + CN ; ELSEF9<= END IF;WHEN H1 => IF M='0' THEN F9<=(A9 or B9) + A9 + CN ; ELSEF9<=A9 OR (NOT B9); END IF;WHEN I0 => IF M='0' THEN F9<=((A9 or (NOT B9)) +A9) + CN ; ELSEF9<=A9 OR B9; END IF;WHEN I1 => IF M='0' THEN F9<=A9 - CN ; ELSEF9<=A9 ; END IF;WHEN OTHERS => F9<=END CASE;IF(A9=B9) THEN FZ<='0';END IF;END PROCESS;F<= F9(7 DOWNTO 0) ; CO <= F9(8) ;COUT<=END behav;ALU的原理图:2.微控制器实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传送至运算部件时控制完成运算处理。
8位ALU设计

8位算术逻辑单元设计电子12-112060401248位算术逻辑单元设计1.概述算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。
算术逻辑单元(Arithmetic&logical Unit)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate"(与门)和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。
基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。
通常而言,ALU具有对处理器控制器、内存及输入输出设备的直接读入读出权限。
输入输出是通过总线进行的。
输入指令包含一个指令字,有时被称为机器指令字,其中包括操作码,单个或多个操作数,有时还会有格式码;操作码指示ALU机要执行什么操作,在此操作中要执行多少个操作数。
比如,两个操作数可以进行比较,也可以进行加法操作。
格式码可与操作码结合,告知这是一个定点还是浮点指令;输出包括存放在存储寄存器中的结果及显示操作是否成功的设置。
如操作失败,则在机器状态字中会有相应的状态显示。
大部分ALU都可以完成以下运算∶整数算术运算(加、减,有时还包括乘和除),位逻辑运算(与、或、非、异或),移位运算。
2.ALU设计2.1设计目标设计要求该处理器的数据宽度是8bit,可以实现算术加法、算术减法、逻辑与、逻辑或、逻辑非、逻辑与非、逻辑或非和逻辑异或等8种运算。
2.2逻辑分析依照ALU的原理与逻辑结构原理图,用超前进位的方法能实现下面八种功能操作的4位ALU,并对电路进行封装。
设定:输入信号:A4-A1、B4-B1、F3-F1、低位进位端C0、(级联控制端G);输出信号:S4-S1、进位C4 4位ALU的八种功能如下:把低位的进位连接到高一位的本位上,而当F3F2F1的值为001、011、101 时,C0的值为1,其余为0,于是C0应满足:C0=GF1/F1F2F3+C0/G。
8位ALU设计.doc

8位算术逻辑单元设计电子12-18位算术逻辑单元设计1.概述算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。
算术逻辑单元(Arithmetic&logical Unit)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate"(与门)和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。
基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。
通常而言,ALU具有对处理器控制器、内存及输入输出设备的直接读入读出权限。
输入输出是通过总线进行的。
输入指令包含一个指令字,有时被称为机器指令字,其中包括操作码,单个或多个操作数,有时还会有格式码;操作码指示ALU机要执行什么操作,在此操作中要执行多少个操作数。
比如,两个操作数可以进行比较,也可以进行加法操作。
格式码可与操作码结合,告知这是一个定点还是浮点指令;输出包括存放在存储寄存器中的结果及显示操作是否成功的设置。
如操作失败,则在机器状态字中会有相应的状态显示。
大部分ALU都可以完成以下运算∶整数算术运算(加、减,有时还包括乘和除),位逻辑运算(与、或、非、异或),移位运算。
2.ALU设计2.1设计目标设计要求该处理器的数据宽度是8bit,可以实现算术加法、算术减法、逻辑与、逻辑或、逻辑非、逻辑与非、逻辑或非和逻辑异或等8种运算。
2.2逻辑分析依照ALU的原理与逻辑结构原理图,用超前进位的方法能实现下面八种功能操作的4位ALU,并对电路进行封装。
设定:输入信号:A4-A1、B4-B1、F3-F1、低位进位端C0、(级联控制端G);输出信号:S4-S1、进位C4 4位ALU的八种功能如下:把低位的进位连接到高一位的本位上,而当F3F2F1的值为001、011、101 时,C0的值为1,其余为0,于是C0应满足:C0=GF1/F1F2F3+C0/G。
8位CPU总线采样记录仪的设计

4 2・
《 测控技 术 ̄0 2年 第 3 21 1卷 第 2期
8位 C U总 线 采 样 记 录仪 的 设 计 P
程 耀 林 ,魏 华 兵 ,伍 时促 ,王 锐 ,陈 锟
( 中南 民族大学 电子信息工程学 院 , 湖北 武汉 4 07 ) 3 0 4
摘要 : 计 了一种 8位 C U 总线 采样 记 录仪 , 5 设 P 对 l单 片机 总 线进 行 采样 , 中提 取 如 下 4种信 息并 存 从
The De in fBu t a pl n S o i n t um e o sg o sDa a S m i a d t rng I sr ng ntf r
CPU t 8 bi S wih . t BU
C HENG o l , EI Hu - i g W U S iC , ANG i C Ya —i W a b n , n h— U W Ru , HE Ku N n ( c ol f l t nca d If m t n E gn eig S uhC nrl n es yfr a o a t s Wu a 3 0 4 C i ) S h o o e r i n n r ai n i r , o t— e t i ri t n li , h n4 0 7 , hn E co o o e n a U v t o N i ie a
储 : 外程 序代 码 和地 址 、 片 片外 数据 存储 器的数据 和地 址 。 它基 于 A t a 司提 供 的 D 0开发 板 , lr 公 e E 外接
A 8 S2单 片机 最 小 系统 , T95 带触摸 L D和 s C D卡 , F G 内实现 总线采 集模 块 , 同构 建 了一 个 S P 在 PA 共 OC 系统 , 过 在 No 通 i I s I中运 行 的软件 对数据进 行 存储 、 处理 。测试 结 果表 明 , 采集 的数 据 可使 用 T T文件 X
高速8位微处理器设计

高速8位微处理器设计陈明敏;易清明;石敏【摘要】针对当前MCS51指令集的微处理器指令执行效率低问题,设计一款高速微处理器.其特点是:首先,采用快速乘除器和基4快速除法器,其计算速度是传统乘法器和除法器计算速度的48倍;其次,采用32位指令总线,能一次从ROM读取4个字节,覆盖所有指令长度,减少取指周期数;此外,使用五级流水线,能在单周期完成大多数指令;在Altera EP3C16 FPGA芯片上进行物理验证,根据Dhrystone 2.1性能测试,在相同的时钟频率下其综合性能是传统MCS51微处理器的12倍.实验结果表明,通过上面3种改进方法,微处理器指令执行效率得到极大提高.【期刊名称】《计算机应用与软件》【年(卷),期】2016(033)001【总页数】4页(P240-243)【关键词】微处理器;快速除法器;快速乘法器;流水线【作者】陈明敏;易清明;石敏【作者单位】暨南大学信息科学技术学院广东广州510632;暨南大学信息科学技术学院广东广州510632;暨南大学信息科学技术学院广东广州510632【正文语种】中文【中图分类】TP331FPGA中嵌入式CPU有硬核和软核,目前嵌入硬核有高性能cortexA9双核。
嵌入式软核有Altera公司的NIOS,Xilinx公司的Micro Blaze,以及改进后的MCS51 IP核。
前两个都是免费的IP核,可灵活配置,但是需要用各自的编译器,且编译时间漫长,不便于修改,应用非常少。
嵌入式硬核只有高端器件上面才有,不适用于大多数要求,且价格昂贵。
随着SOC(System On Chip)技术发展,基于IP核的SOC设计有利于增加新功能和缩短上市时间的特点,越来越得到广泛地应用。
在单片机家族中MCS51是一种经典的单片机,历经30多年至今应用依然很广。
由于其占用逻辑资源少,在FPGA应用越来越广。
传统的MCS51引入了机器周期,每个机器周期需要12个时钟,每条指令需要不同的机器周期来完成。
教学型CPU的设计与实现

指令类 型按 照功能 可以分 为访 存指令 ( 即数 寻 立
址、 寄存器 寻址 、 寄存器 间接 寻址 ) 算术运 算 ( 、 只设计
了加 法 ) 指令 、 位指 令 、 辑运算 指 令 ( 移 逻 包括 与 、 、 或 非) 、转 移指令 ( 括条 件转移 指令和非 条件转 移指 包 令) 。根据上述 指令设计 , 出指令操作码 编码表 : 给
— — — — — — 一
暂存 器
控 制器
T _ _r . 广 r .
●访 存 指令 ( 3条 , 立 即 数 寻 址 方 式 外 ) 加 法 除 、 指令 ( 条 )逻辑与/ 指令 ( 1 、 或 2条 )
图 1 P 构 图 C U结
2 GP U指 令 及 状 态
0 l 00
Mv D [1 R] 肿
,
源 寄存器 间接寻址 自加 l 逻辑或 长跳转 0 l 0l
脯v a R-R] [0 L
3 编 写 调 试 程 序
程序 功 能 : 利用 循环 和分 支 . 现 向内存 指定 的 实
1 CP 的 结构 U
实验模 拟典 型的 C U结 构 .有 4个 通用 寄存 器 P
R ~ 3 8位 ) 程 序 计 数 器 P 8位 )指 令 寄 存 器 I 0R ( 、 C( 、 R ( 8位 )A U 数 据 暂 存 器 ( 、L 8位 ) 精 简 的 标 志 位 Z ( 、 F1
21 指 令 的 执 行 过 程 .
实验的 c u的指令执 行过程 如下 : P
短跳转指令 ( 条 ) 1
●双字节指令 ( 2条 )
●取 指令 : 据 程序 寄 存器 ( C) 依 P 的值 从 内存 中 读取 指令 , 指令存入 指令 寄存 器 (R) 将 I : ●指令译码 : 指令寄存器 (R) 将 I 的值 送入译 码器 进行译码 :
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理实验题目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 ISPORT(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 ISSIGNALA9 :STD_LOGIC_VECTOR(8DOWNTO 0);SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO0);SIGNALF9: STD_LOGIC_VECTOR(8 DOWNTO0);BEGINA9<= '0'& A; B9 <= ’0’&B;PROCESS(M,CN,A9,B9)BEGINCASE S ISWHEN "0000" =〉IF M='0’THEN F9<=A9 + CN ; ELSE F9<=NOT A9; E NDIF;WHEN "0001" =>IF M='0’THEN F9<=(A9 orB9)+ CN ;ELSE F9〈=NOT(A9OR B9);END IF;WHEN ”0010"=> IF M=’0’THEN F9〈=(A9 or(NOT B9))+C N; ELSE F9<=(NOT A9) ANDB9; ENDIF;WHEN "0011"=> IF M='0’THEN F9<= ”000000000"—CN ;ELSEF9<="000000000”;END IF;WHEN"0100”=> IFM='0'THENF9<=A9+(A9 ANDNOT B9)+ CN; ELSE F9〈=NOT(A9 ANDB9);END IF;WHEN ”0101”=>IFM='0' THENF9<=(A9orB9)+(A9 AND NOTB9)+CN ;ELSEF9<=NOT B9; END IF;WHEN"0110" =>IFM=’0’THEN F9〈=(A9- B9) -CN ;ELSE F9〈=A9XOR B9; ENDIF;WHEN”0111"=>IF M='0' THEN F9〈=(A9 or(NOT B9)) -CN ;ELSE F9<=A9 and (NOT B9); END IF;WHEN"1000" =>IFM='0'THEN F9<=A9+ (A9AND B9)+CN ; ELSE F9〈=(NOTA9)and B9; END IF;WHEN "1001”=> IF M=’0’THEN F9〈=A9+ B9 + CN ; ELSE F9<=NOT(A9 XOR B9); ENDIF;WHEN ”1010"=>IF M=’0'THEN F9〈=(A9or(NOTB9))+(A 9AND B9)+CN ; ELSEF9<=B9;END IF;WHEN "1011”=〉IF M='0'THENF9<=(A9 AND B9)- C N; ELSE F9<=A9 ANDB9; ENDIF;WHEN ”1100”=〉IF M='0'THENF9<=(A9 +A9) + CN; ELSEF9〈="000000001"; END IF;WHEN "1101”=〉IF M='0' THEN F9〈=(A9or B9)+ A9 + CN;ELSEF9〈=A9 OR (NOTB9); END IF;WHEN "1110"=>IF M='0'THENF9<=((A9 or (NOTB9)) +A9) + CN; ELSE F9〈=A9OR B9;END IF;WHEN”1111”=〉IFM=’0'THENF9<=A9 —CN ;ELSE F9<=A9 ; END IF;WHEN OTHERS=> F9<= ”000000000" ;ENDCASE;IF(A9=B9) THENFZ<=’0';END IF;ﻩEND PROCESS;F<=F9(7DOWNTO0) ;CO<= F9(8) ;COUT<="0000"WHEN F9(8)=’0'ELSE"0001";END behav;ALU得原理图:2、微控制器实现信息传送要靠微命令得控制,因此在CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求得数据传送进行控制,同时在数据传送至运算部件时控制完成运算处理。
微命令产生部件可由若干组合逻辑电路组成,也可以由专门得存储逻辑组成、产生微命令得方式可分为组合逻辑控制方式与微程序控制方式两种。
在本章所介绍得8 位模型CPU 设计中,采用微程序控制方式通过微程序控制器与微指令存储器产生微命令,因此此CPU 属于复杂指令CISC CPU、微控制器得原理图:3、寄存器组计算机工作时,CPU 需要处理大量得控制信息与数据信息。
例如对指令信息进行译码,以便产生相应控制命令对操作数进行算术或逻辑运算加工,并且根据运算结果决定后续操作等。
因此,在CPU 中需要设置若干寄存器,暂时存放这些信息。
在模型CPU中,寄存器组由R0、R1、R2所组成、寄存器组得原理图:3、地址寄存器CPU 访问存储器,首先要找到需要访问得存储单元,因此设置地址寄存器(AR)来存放被访单元得地址。
当需要读取指令时,CPU 先将PC得内容送入AR,再由AR将指令地址送往存储器、当需要读取或存放数据时,也要先将该数据得有效地址送入AR,再对存储器进行读写操作。
地址寄存器得原理图:4。
指令寄存器指令寄存器(IR)用来存放当前正在执行得指令,它得输出包括操作码信息、地址信息等,就是产生微命令得主要逻辑依据。
指令寄存器得原理图:5、程序计数器程序计数器(PC)也称指令指针,用来指示指令在存储器中得存放位置。
当程序顺序执行时,每次从主存取出一条指令,PC 内容就增量计数,指向下一条指令得地址。
增量值取决于现行指令所占得存储单元数。
如果现行指令只占一个存储单元,则PC 内容加1;若现行指令占了两个存储单元,那么PC 内容就要加2。
当程序需要转移时,将转移地址送入PC,使PC指向新得指令地址、因此,当现行指令执行完,PC中存放得总就是后续指令得地址;将该地址送往主存得地址寄存器AR,便可从存储器读取下一条指令、程序计数器得原理图:四、系统总电路图及原理系统原理:该CPU 主要由算术逻辑单元ALU,数据暂存寄存器DR1、DR2,数据寄存器R0~R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY,指令寄存器IR,微控制器uC,输入单元INPUT 与输出单元OUTPUT 所组成。
图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器与微程序存储器等,实测时,它们都可以在单片FPGA中实现。
虚线框外部分主要就是输入/输出装置,包括键盘、数码管、LCD 显示器等,用于向CPU 输入数据,或CPU 向外输出数据,以及观察CPU 内部工作情况及运算结果。
五、波形仿真仿真波形图:分析:(1)M输出微指令01800,控制台执行P(4),进行“读、写、运行”功能判断、检测到SWA、SWB=11后,进入程序运行RP(11)方式。
(2)执行微地址为23得微指令,M输出微指令为018001,后续微地址uA为01.然后进入程序运行得流程。
(3)执行微地址为01得M微指令008001,执行得操作为PC→AR=00H,PC+1=01H,AR指向RAM存储器地址00H,后续地址uA为02、(4)执行微地址为02得M微指令01ED82,执行取指令操作,取出第一条指令得操作码,经过分支判断P(1),这就是一条输入指令IN、(5)执行微地址为10得M微指令00C048,将RAM中得指令00通过内部总线BUS,送指令寄存器IR:RAM(00H)=00→BUS→IR=00H。
(6)执行微地址为01得M微指令001001,SW_B为高电平,允许SW得数据送往数据总线BUS,由此接收数据56H。
所以R0=56H。
(7)执行微地址为02得M微指令01ED82,执行取指令操作:PC→AR=01H,PC+1=02H,AR指向RAM存储器地址01H,后续微地址uA为02、(8)执行微地址09得M微指令00C048,取指令,并经过分支判断P(1),读出地址为01H单元得内容10H,经过BUS送到指令寄存器IR:RAM(01H)=10H→B US→IR=10H。
(9)执行微地址为03得M微指令01ED83,进入加法运算微程序、通过间接寻址获得另一个操作数,地址寄存器AR指向取数得间接地址:PC→AR=02H,PC+1=03H,AR指向RAM得02单元。
(10)执行微地址为04得M微指令00E004,RAM_B为高电平,RAM得(02)单元得内容通过BUS送AR,取数地址(AR)=0AH,RAM(02)=0AH→BUS→AR=0AH。
(11)执行微地址为05得M微指令00B005,RAM_B为高电平,RAM得(0A H)单元得内容34H送到BUS,此时LDDR2为高电平,BUS上得数据就送给了DR2,执行结果:RAM(0AH)=34H→BUS→DR2=34H。