精简8位cpu设计报告

合集下载

多累加器_体系结构实验报告

多累加器_体系结构实验报告

复旦大学计算机科学技术学院计算机体系结构实验课程代码:INF0130058.01考试形式:实验报告2010 年6月专业计算机科学与技术学号姓名成绩实验内容、完成情况及成绩(由教师填写)实验一、8位微程序控制结构的CPU设计。

1.实验内容:8位微程序控制结构的CPU设计,其中包括:(1)8位算术逻辑运算单元(必须实现算术运算、逻辑运算、移位操作、转移控制、进退栈等)。

(2)多个累加器。

(4)指令寄存器。

(5)直接寻址寄存器。

(6)程序计数器。

(7)堆栈指针。

2.实验要求:每个学生设计的8位微程序控制结构的CPU必须可执行实验前随机分配的一组19条CPU指令,并以19条指令为基础,编制程序实现一组输入数据(2位)的运算打印功能。

对完成中断部件设计的同学,成绩给予高分。

3.完成情况:1)实验态度。

认真()、较认真()、一般()、较差()、差()2)8位CPU设计报告成绩()3)8位CPU实验完成时间()4)8位CPU实验完成质量及对实验的理解情况()5)8位CPU实验完成后提交的实验报告(电子版)质量。

()4.本次实验成绩:()实验二、16位RISC结构CPU设计(DLX)。

1.实验内容:16位RISC结构的CPU设计,其中包括:(1)16位算术逻辑运算单元ALU。

(2)8个16位通用寄存器组。

(3)程序计数器。

(4)节拍发生器。

(5)五级流水线部件,无任何硬件控制及无暂停(选做)。

(6)五级流水线部件,有相关暂停(选做)。

(7)流水线及重定向控制部件(选做)。

2.实验要求:完成的的16位RISC结构的CPU必须可执行16条以上指令,并以这些指令为基础,编制程序实现两组输入数据的累加和打印功能。

若有流水线及相关部件,则完成流水线及相关部件的验证测试。

3.完成情况:1)实验态度。

认真()、较认真()、一般()、较差()、差()2)16位RISC结构CPU完成功能(1)有否流水线:()(2)有否相关控制:()(3)有否定向:()3)16位RISC结构CPU完成时间。

CAD 课程设计报告——51单片机最小系统的电路设计

CAD 课程设计报告——51单片机最小系统的电路设计

CAD 课程设计报告摘要Introduction1.课题名称2. 单片机最小系统的组成原理及作用3. CAD的发展前途4. 设计要求5. 原理图6. CAD原理图7. PCB图8.总结参考文献摘要A VR单片机是1997年由A TMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。

A VR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。

A VR单片机主要特性:高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。

A VR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆和单体高速输入/输出的方案,提高了指令执行速度(1Mips/MHz),增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。

故A VR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。

本设计采用分层叠式结构,底层为单片机外围硬件功能扩展层,顶层为ATmega16单片机集中系统层。

这样有利于兼用A VR跟51系列单片机的开发设计。

关键词: A VR单片机;开发板;单片机实验板;A Tmega16单片机;IntroductionA VR Microcontroller ATMEL Corporation in 1997 developed by the enhanced built-in Flash of the RISC (Reduced Instruction Set CPU) high-speed 8-bit RISC microcontroller. AVR microcontr oller can be widely used in computer peripherals, industrial real-time control, instrumentation, co mmunications equipment, household appliances and other fields.A VR microcontroller main features: high reliability, strong function, high speed, low power consu mption and low cost, has been an important indicator to measure performance of SCM, SCM also dominate the market, a necessary condition for survival.A VR microcontroller hardware structure to take the 16-bit 8-bit machine and the machine's compr omise strategy, that is kept by the local register stack and single high-speed input / output options, improved instruction execution speed (1Mips/MHz), enhanced functionality; while reduce the cost of peripheral administration, the relative simplifies the hardware structure and reduce costs. There fore, A VR microcontroller in software / hardware cost, speed, performance and cost optimization h as made a lot of balance, which is cost-effective microcontroller.The design uses a sub-stack structure, the underlying hardware extensions for the microcontroll er peripheral layer, the top layer of centralized systems for the ATmega16 microcontroller. It is a g ood used along with the 51 series A VR microcontroller development and design.Keywords: AVR microcontroller; development board;MCU Board; ATmega16 microcontroller;一.课题名称:51单片机最小系统的电路设计二.单片机最小系统的组成原理及作用:普遍来说,单片机又称单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM(数据存储器)、ROM(程序存储器)、定时器/ 计数器和多种功能的I/O(输入/ 输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。

单片机 课程设计报告(完成版)

单片机  课程设计报告(完成版)

单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 20100606019
组员 1 :刘静静学号: 20100606017
组员 2 :张琳娜学号: 20100606018
组员 3 :李元学号: 20100606020
组员 4 :黄智鑫学号: 20100606049
组员 5 :学号:
组员 6 :学号:
指导教师:李宁
2011年01月06日
电气信息工程系课程设计总结报告
PCB原理图
电气信息工程系
单片机课程设计元器件清单指导教师:李宁课题名称:音乐门铃
参考文献:
[1]徐爱钧.单片机原理实用教程[M].北京:电子工业出版社,2009:267-285.
[2]刘焕平.单片机原理及应用[M].北京:北京邮电大学出版社,2008:246-260.
[3]刘南平.单片机实训与开发教程[M].北京:科学出版社,2008:199-209.
[4]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002:242-253.
[5]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:273-281.
[6]杨振江.单片机应用于实践指导[M].西安:西安电子科技大学出版社,2010:378-380.。

8位ALU设计

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。

一个简单的CPU设计(黄欢)

一个简单的CPU设计(黄欢)

一个简单的CPU设计(黄欢)课题:简单的CPU模型专业:计算机科学与技术班级:01学号:20222225姓名:黄欢指导教师:姚家宁设计日期:2022年12月12日成绩:重庆大学城市科技学院电气信息学院重庆大学城市科技学院电气信息学院课程设计报告计算机组成原理课程设计报告一、设计目的计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。

综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。

通过一个简单的CPU设计,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。

二、设计要求(1).振荡器,时间脉冲→时间(节拍)(2).时间指令→微命令(3).指令操作码→指令(信号)三、实现过程1、系统概述控制单元的主要功能是需要发出各种不同的微操作控制信号,从存储器取出的指令或有效地址都先送至MDR再送至IR,省去IR送至MAR的数据通路,凡是需从IR送至MAR的操作均有MDR送至MAR代替。

计算机中有一运行标志触发器G,当G=1时,表示机器运行;当G=0时,表示停机。

此CPU指令系统中包含CLA、COM、INC、SHR、CSL、STP、ADD、SUB、AND、LDA、STA、JMP、JZ、JN、JC重庆大学城市科技学院电气信息学院课程设计报告主存MDRPCCPUACIRALUCU标志控制信号+1MAR控制信号时钟G2、设计方案(1).组合逻辑设计组合逻辑设计控制单元时,首先根据上述微操作的节拍安排,列出微操作命令的操作时间表,然后写出没一个微操作命令(控制信号)的逻辑表达式,最后根据逻辑表达式画出相应的组合逻辑电路图。

1>列出微操作命令的操作时间表上述条机器指令的微操作命令的操作l对间表。

计算机组成原理CPU设计实验报告

计算机组成原理CPU设计实验报告

计算机组成原理CPU设计实验报告课程设计题目:16位CPU设计学院: 信息学院班级:电子A班学号:1115102015姓名:方茹1目录1 实验方法 ..................................................................... . (4)2 总体说明 ..................................................................... ................................................. 5 2.1指令系统: .................................................................... .......................... 5 2.1.1指令格式分类(按指令字长和操作数不同): ...................................................... 5 2.1.2具体指令汇总表: .................................................................... .......................... 6 2.1.3相关指令流程图: .................................................................... .......................... 6 2.1.4指令数据通路的构建: .................................................................... ................... 8 2.1.5指令的分组及节拍: .................................................................... ..................... 12 2.1.6指令执行状态图:(见下页)..................................................................... ........... 13 2.1.7具体微指令: .................................................................... ............................... 13 2.2 系统整体介绍 ..................................................................... .................. 16 2.2.1系统基本模块划分 ..................................................................... ....................... 16 2.2.2总体结构图:(见下页)..................................................................... (17)3 CPU的控制逻辑与具体数据通道设计 ..................................................................... ......18 3.1取指令逻辑的设计 ..................................................................... .. (19)3.1.1指令地址的保存 ..................................................................... (19)3.1.2指令存储器 ..................................................................... .................................. 20 3.1.3下一条指令地址的计算 ..................................................................... ................ 20 3.2指令译码逻辑的设计...................................................................... ...................... 21 3.3指令执行逻辑的设计...................................................................... ...................... 22 3.4存储器访问逻辑的设计 ..................................................................... ................... 23 3.5结果写回逻辑的设计...................................................................... ...................... 24 3.6单周期CPU的总成...................................................................... (25)4各部分说明 ..................................................................... .............................................26 4.1ALU .................................................................................................................... 26 4.2数据选择器BUS_MUX ................................................................ ........................ 28 4.3器件T1 ..................................................................... .......................................... 30 4.4标志寄存器FLAG_REG ............................................................... ........................ 31 4.5T2: .................................................................... ................................................ 33 4.6程序计数器PC ..................................................................... ............................... 33 4.7地址寄存器AR和指令寄存器IR: .................................................................... .. 34 4.8寄存器、寄存器组和寄存器的选择.......................................................................36 4.9一位控制信号/WR .................................................................... ........................... 37 4.10 节拍发生器 ..................................................................... .................................. 37 4.11控制逻辑 ..................................................................... ...................................... 39 4.12T3...................................................................... ................................................ 42 4.13REG_OUT ......................................................................................................... 43 4.14存储器 ..................................................................... .......................................... 44 4.15总线选择器 ..................................................................... .. (45)24.16REG_TEST ............................................................... .. (46)5附录: .................................................................... .. (47)附录A:组员分工: .................................................................... .. (47)附录B:组员设计总结: .................................................................... . (47)31 实验方法实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。

《简化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指令之前建议先清除相关标志位。

8位CISC微处理器的设计与实现

8位CISC微处理器的设计与实现

田红丽,闫会强,耿恒山,等:8 位 CISC 微处理器的设计与实现
2010,46(20) 61
8 根数据/地址总线
运算器
寄存器
存储器
外部端口
控制器
控制总线
图 1 系统结构图
控制器:由指令寄存器、指令译码器、程序计数器、启停电
路、脉冲产生器、时序信号形成部件等组成。
运算器:8 位二进制运算器。
存储器:因为地址总线有 8 根,所以它的容量为 256 个字
1111
串联而成。其原理图如图 7 所示。
RR
PC161
GW~ VVVVA VVVVB DATA1 DATA2 DATA3 DATA4 GR~ RRA RRB DATA5 DATA6 DATA7 DATA8
DOUT1 DOUT2 DOUT3 DOUT4 DOUT5 DOUT7 DOUT8
PCTOBUS DIN1 DIN2 DIN3 DIN4 PCINC1 CRN CK DIN5 DIN6 DIN7 DIN8 INPUTGN OUTPUTGN
节,可进行读、写操作。
寄存器:4 个 8 位寄存器。
3 系统的 FPGA 实现
本机采用的是单总线结构,地址数据信息都是通过同一 组数据开关经过三态传输门挂上总线,传送到总线上别的器 件,如何合理地传送这些信息,完全由控制器通过相应的控制 操作时序来实现[3]。
3.1 运算器
由于微处理器实现的是 8 位二进制数之间的运算,可以利 用 QUARTUSII 中现成的库中芯片 74LS181 实现。因为 181 只 能实现 4 位二进制之间的运算,所以采取的方案是将两片 74LS181 进行串联。SA、SB 为存放两个现行操作数的缓冲寄 存器,用库中的 74LS273 来实现。其中 SA 兼作存放中间结果 的累加器,结果可以通过外部设置的 LED 灯给予显示。这两 个缓冲器接收来自总线的数据信息,送入 ALU 进行算逻运 算 。 ALU 输 出 经 过 三 态 门 接 入 总 线 ,三 态 门 可 以 采 用 74LS244。运算器结构如图 2 所示,实现的原理图如图 3 所示。

简单的CPU设计

简单的CPU设计

CPU 设计10 计算机科学与技术姓名:谢xx学号:201040200xx一.非常简单的CPU设计规范:1.确定CPU的用途:该CPU的字长为8位,寻址范围为64个字节,并且要求能实现4条简单的指令。

2.确定ISA:要实现的指令集如下:要实现该CPU的功能,还需要一些寄存器完成取指,译码和执行的步骤:AR(地址寄存器)—6位,由A[7..0]向存贮器提供地址PC (程序计数器) —6位,指出下一条指令的地址DR (数据寄存器) —8位,通过D[7..0]从存贮器接收指令和数据IR (指令寄存器) —2位,存放从存贮器中取回的指令的操作码部分3.为CPU设计状态图:为了确定CPU的状态图,需对每条指令作如下分析:①从存贮器中取指令②指令译码③指令执行二.从存贮器中取指令:⑴原理:根据冯•诺依曼型的原理(指令在存贮器中顺序存放••••••),在CPU能执行指令之前,它必须将这条指令从存贮器中取出,CPU通过执行如下的操作序列完成这个任务:①选择存贮单元由A[5..0]确定②对A[5..0]译码、延迟并向存贮器中发一个信号,使存贮器将此指令输出到它的输出引脚。

这些引脚与CPU的D[7..0]相连接。

CPU从这些引脚读入数据。

⑵具体的操作①要取的指令的地址存放在程序计数器(PC)中。

由于A[5..0]从地址寄存器AR中。

这样,取指令周期的第一个状态就是:FETCH1:AR←PC这一状态的意义是当FETCH为真时,把PC的值送到AR,执行微操作AR←PC,以下同理。

②CPU必须存贮器中读取指令。

为此CPU必须发一个READ信号到存贮器的RD端使存贮器将数据送到D[7..0]上。

同时,CPU读进该数据并放到DR 中,因为DR是用来访问存贮器的唯一寄存器。

同时还实现微操作PC←PC+1,为取下一条指令作准备。

FETCH2:DR←M,PC←PC+1③作为取指令的一部分,CPU还必须完成两件事。

•DR的高2位拷贝到IR,母的是确定指令的功能(即将指令的操作码读入IR)·DR的第六位拷贝到AR。

计算机组成原理实验报告_八位补码加减法器的设计与实现

计算机组成原理实验报告_八位补码加减法器的设计与实现

计算机科学与技术学院计算机组成原理实验报告书实验名称八位补码加/减法器的设计与实现班级学号姓名指导教师日期成绩实验1八位补码加/减法器的设计与实现一、实验目的1.掌握算术逻辑运算单元(ALU)的工作原理。

2.熟悉简单运算器的数据传送通路。

3.掌握8位补码加/减法运算器的设计方法。

4.掌握运算器电路的仿真测试方法二、实验任务1.设计一个8位补码加/减法运算器(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。

(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。

(3)测试通过后,封装成一个芯片。

2.设计8位运算器通路电路参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。

3.利用仿真波形,测试数据通路的正确性。

设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。

(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。

(2)给DR1存入55H,检查数据是否存入,请说明检查方法。

(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。

(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。

(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。

(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。

三、实验要求(1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。

(2)实验完毕,写出实验报告,内容如下:①实验目的。

②实验电路图。

③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。

表中的序号表示各控制信号之间的时序关系。

要求一个控制任务填一张表,并可用文字对有关内容进行说明。

⑤实验体会与小结。

四、实验预习内容1.实验电路设计原理及思路说明本实验利用基本逻辑门电路设计一位全加器(FA),如表1:表1-一位全加器(FA)电路的输入输出信号说明然后以此基础上实现八位补码加/减法器的设计,考虑到实现所需既可以实现加法又可以实现减法,所以使用了一个M输入来进行方式控制加减。

ASIC实验报告(8位CPU的设计)

ASIC实验报告(8位CPU的设计)

ASIC设计实验报告学院:电子工程学院学号:2014*******姓名:***指导老师:***2014年11月13日一、实验目的:通过对ASIC实验课的学习,应当学会以下几点:1.熟悉Linux操作系统的应用环境,基本命令行的应用,以及对vi编辑器熟练应用。

2.熟练掌握Verilog编程语言,包括基本组合逻辑电路的实现方法,基本时序逻辑电路的实现方法,怎样使用预定义的库文件,利用always块实现组合逻辑电路的方法已经着重了解assign与always 两种组合逻辑电路实现方法之间的区别,深入了解阻塞赋值与非阻塞赋值的概念以及应用的差别,有限状态机(FSM)实现复杂时序逻辑的方法,以及学会在Linux 系统环境当中应用Synopsys工具VCS进行仿真。

3.熟悉电路设计当中的层次化、结构化的设计方法。

4.熟悉CPU当中有哪些模块组成,模块之间的关系,以及其基本的工作原理。

5.学会利用汇编语言设计程序,注意代码规范性要求。

二、实验要求:按照实验指导书上的要求即:CPU各个模块的Verilog语言代码的编写、编译及仿真正确,并在规定的时间内完成。

要求对CPU进行语言级系统仿真结果正确之后,利用该实验当中采用的八个汇编关键字,编写一个能够实现某种功能的小程序。

然后对其中的控制器电路进行综合,并检查Timing 和Power,进行门级仿真。

三、实验内容:设计一个8位RISC_CPU 系统。

(RISC: Reduced Instruction Set Computer),它是一种八十年代才出现的CPU,与一般的CPU相比,不仅只是简化了指令系统,而且通过简化指令系统使计算机的结构更加简单合理,从而提高了运算速度。

从实现的方法上,它的时序控制信号部件使用了硬布线逻辑,而不是采用微程序控制方式,故产生控制序列的速度要快的多,因为省去了读取微指令的时间。

此CPU所具有的功能有:(1)取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。

基于VHDL语言的8位CPU的设计(quartus仿真)

基于VHDL语言的8位CPU的设计(quartus仿真)

假设指令地址为0、1、2、3…,为便于显示,设置地址指令和程序计数器输出为数制十进制, 仿真波形如下图:
图2.14 程序计数电路仿真波形
第二部分:RISC-CPU各模块设计与仿真
8. 状态控制器
是CPU的控制核心, 用于产生一系列的控 制信号,启动或停止 某些部件,由状态机 和状态机控制器组成, 如图。
图2.9 数据输出控制器
假设累加器输出值由00000000递增,验证当data_ena为1时,data输出alu_out的值,当 data_ena为0时,data输出"ZZZZZZZZ"。波形如下:
图2.10 数据输出控制器仿真波形
第二部分:RISC-CPU各模块设计与仿真
6. 地址多路器
用于选择输出的地址是PC地址还是数据/ 端口地址,如图2.11所示。每个指令周期的 前4个时钟周期用于从ROM中读取指令,输 出PC地址。后4个时钟周期用于对RAM或 端口的读写,输出数据或端口地址。
图2.7算术逻辑单元
在仿真过程中,假设操作码依次为上述8种操作码。数据值为5,累加器值为由3变0,以此来 验证zero作用。仿真波形下图所示:
图2.8 算术逻辑运算单元仿真波形
第二部分:RISC-CPU各模块设计与仿真
5.数据输出控制器
控制累加器数据输出,如图2.9由于数据总 线是各种操作时传送数据的公共通道,不同 的情况下传送不同的内容。有时要传输指令, 有时要传送RAM区或接口的数据。
图3.2 RISC-CPU各模块连接图
谢谢!!
WPS Office
Make Presentation much more fun
@WPS官方微博 @kingsoftwps
基于VHDL语言的8位 RISC-CPU的设计

一个非常简单的CPU的设计

一个非常简单的CPU的设计
首先考虑如何的对译码输出状态进行赋值才 能达到最佳状态。我们按照以下规则:
1〉给Fetch1赋计数器的0值,并用计数器的清零 端来达到这个状态。由这个CPU的状态图可以看 出,除了Fetch1状态外的其他状态都只能由一 个状态转化而来,Fetch1需要从4个分支而来, 这4个分支就可以发出清零信号(CLR)来转移 到Fetch1。如图
• 下面我们用这些译码信号来产生数据路径控 制所必需的AR、PC、DR、IR、M和ALU的 控制信号。首先考虑寄存器AR,他在Fetch1 状态取PC的值,并在Fetch3状态取DR[5:0] 的值,所以我们得到
• ARLOAD=Fetch1 or Fetch3。 以此类推我们可以得到如下结果:
2〉把连续的状态赋连续的计数器值,这样 就可以用计数器的INC输入来达到状态的转 移。
3〉给每个例程的开始状态赋值时,要基于 指令的操作码和这个例程的最大状态数。 这样就可以用操作码来生成计数器的LD信 号达到正确的状态转移。首先,在Fetch3 状态发出LD信号,然后要把正确的例程地 址放到计数器的输入端。对这个CPU来说, 我们考虑以地址1 [IR] 0作为计数器的预置 输入。则得到状态编码如下:
• PCLOAD=JMP1
• PCINC=Fetch2
• DRLOAD=Fetch1 or ADD1 or AND1
• ACLOAD=ADD2 or AND2
对于ALU的控制信号ALUSEL是 用来控制ALU做逻辑或者算数运算的, 所以有:
ALUSEL=AND2
对于片内总线的控制较为复杂, 我们先来看DR,对于DR他只在Fetch3、 AND2 、ADD2和JMP1状态占用总线进 行相信的数据传输,所以有:
由于地址端口数据A[5:0]是从地址寄存器中 读出的,所以取指第一个执行的状态是

8位CPU的设计

8位CPU的设计

8位CPU的设计一、设计的任务与要求计算机的核心部件cpu通常包含运算器和控制器两大部分。

组成cpu的基本部件有运算部件,寄存器组,微命令产生部件和时序系统等。

这些部件通过cpu内部的总线连接起来,实现它们之间的信息交换。

1.设计目的(1).深入细致认知基本模型计算机的功能、共同组成科学知识;(2).深入细致自学计算机各类典型指令的继续执行流程;(3).自学微程序控制器的设计过程和有关技术,掌控lpm_rom的布局方法。

(4).在掌控部件单元电路实验的基础上,进一步将单元电路共同组成系统,结构一台基本模型计算机。

(5).定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。

掌握微程序的设计方法,学会编写二进制微指令代码表。

(6).通过熟识较完整的计算机的设计,全面介绍并掌控微程序控制方式计算机的设计方法。

2.设计原理在部件实验过程中,各部件单元的掌控信号就是人为演示产生的,而本实验将能够在微过程控制下自动产生各部件单元掌控信号,同时实现特定的功能。

实验中,计算机数据通路的掌控将由微过程控制器去顺利完成,cpu从内存中抽出一条机器指令至指令继续执行完结的一个指令周期,全部由微指令共同组成的序列去顺利完成,即为一条机器指令对应一个微程序。

11该cpu主要由算术逻辑单元alu,数据存贮寄存器dr1、dr2,数据寄存器r0~r2,程序计数器pc,地址寄存器ar,程序/数据存储器memoray,指令寄存器ir,微控制器uc,输出单元input和输入单元output所共同组成。

图中虚线框内部分包含运算器、控制器、程序存储器、数据存储器和微程序存储器等,量测时,它们都可以在单片fpga中同时实现。

虚线框外部分主要就是输出/输入装置,包含键盘、数码管、lcd显示器等,用作向cpu输出数据,或cpu向外输入数据,以及观测cpu内部工作情况及运算结果。

二、单元电路设计1、运算部件运算部件的任务就是对操作数展开加工处置。

8只数码管滚动显示单个数字设计报告

8只数码管滚动显示单个数字设计报告

机电工程学院课程设计报告书题目: 8只数码管滚动显示单个数字专业:电气自动化技术班级: DQ 09302学号:学生姓名:杨超指导教师:朱晓玲2010 年12月30日摘要功能简介:1内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、82目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。

(2)用PROTEUS进行电路设计和实时仿真3知识点链接(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

(2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如图------所示。

①选择总线按钮②绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。

如果终点在空白处,左键双击结束连线。

画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。

此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。

在画斜线时,需要关闭线路自动路径功能才好绘制。

Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。

WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。

③给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00—P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。

单击绘图工具栏中的导线标签按钮,使之处于选中状态。

将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图---所示。

如何写cpu报告

如何写cpu报告

如何写cpu报告Computer Organization and ArchitectureCourse DesignCPU REPORT04006628邓睿 04006618 肖游龙 Time:201*.04.08PurposeThe 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: thecontrol unit, the internal registers, the ALU and instruction set, which are the main aspects of our project design and will be studied.Instruction SetSingle-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 beoperated, 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 puter. 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 1Figure 1 the instruction formatInternal Registers and MemoryMAR (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 aess 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 (Aumulator)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 aording to your division algorithm.LPMRAMDQLPMRAMDQ 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.ALUALU (Arithmetic Logic Unit) is a calculation unit which aomplishes basic arithmetic and logic operations. In our design, some operations must be supported which are listed as followsMicroprogrammed Control UnitWe 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-architectureFigure 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. Thethird element shown in the figure is a sequencing unit that loads the control address register and issues a read mand.CPU DesignFigure 3 CPU data path and control signalsFigure 3 indicates a simple CPU architecture and itsuse of a variety of internal data paths and control signals. Our CPU design should be based on this architecture.Example: LOAD instructionFigure 4 Control Flowchart of the LOAD instruction目录1.引言集成电路(Integrated Circuit,IC)是电子电路,但它又不同于一般意义上的电子电路,它把成千上万的电子元件包括晶体管、电阻、电容甚至电感集成在微小的芯片上。

CPU处理器实验设计实验报告

CPU处理器实验设计实验报告

“计算机设计与实践”处理器实验设计报告目录一:实验目的 (2)二:实验环境 (2)三:设计思想 (2)1、CPU接口信号定义 (2)2、CPU设计方案 (3)四:实验设计及测试 (15)1、各模块设计及测试 (15)波形仿真 (15)2、整体的设计及测试 (19)波形仿真 (19)五:下载 (21)六:遇到的问题及解决方法 (25)七:实验体会 (25)一:实验目的1.掌握Xilinx ISE集成开发环境使用方法2.掌握VHDL语言3.掌握FPGA编程方法及硬件调试手段4.深刻理解处理器结构和计算机系统的整体工作原理二:实验环境Xilinx ISE集成开发环境,ModelSim或ISim仿真工具、COP2000实验平台或SD2100数字逻辑设计实验平台或Diligent Nexys3开发板。

三:设计思想1、C PU接口信号定义2、 C PU 设计方案① 指令格式设计1.2. 其他指令15 11 10 28 7 031511 10 8 7 0②微操作定义③节拍划分④各模块设计a)时钟模块模块示意图:模块功能:产生4个节拍,其中,当rst=1时,节拍跳转到T3,并将pc置0.接口说明:信号名位数方向来源/去向备注Clk1I处理器板系统时钟Rst1I处理器板高电平复位T4O取址,运算,4个节拍存储,回写模块b)取指模块模块示意图:模块功能:从内存取出指令。

Rst=1时,pc置0.取出的IR传送给运算,存储,回写模块提供数据,当IRreq=1时,开始从内存取出指令。

当pcupdate=1时,pc接收pcnew的数据,更新pc。

信号名位数方向来源/去向备注T01I时钟模块第一节拍T11I时钟模块第二节拍Rst1I处理器板高有效复位信号PCupdate1I回写模块PC更新信号PCnew16I回写模块PC更新值IRnew16I存储控制模块IR更新值IRreq1O取址模块IR允许信号IR16O存储控制模块导出IR到其他模块PC16O取址模块PC到运算模块c)运算模块模块示意图:模块功能:进行各种运算,并产生进位信号cy和零信号z。

河南工业大学EDA技术 实验报告实验五 用LPM设计8位数控分频器和4位乘法器

河南工业大学EDA技术 实验报告实验五  用LPM设计8位数控分频器和4位乘法器

河南工业大学EDA技术实验报告专业电科班级姓名学号 2 实验地点6526+ 6215 实验日期-11-4 成绩评定一、实验项目实验五用LPM设计8位数控分频器和4位乘法器二、实验目的掌握LPM模块的参数设置方法以及设计和应用方法。

三、实验原理对于高速测控系统,影响测控速度最大的因素可能是,在测得必要的数据并经过复杂的运算后,才能发出控制指令。

因此数据的运算速度决定了此系统的工作速度。

为了提高运算速度,可以用多种方法来解决,如高速计算机、纯硬件电路、ROM查表式运算器等。

用高速计算机属于软件解决方案,用纯硬件运算器属于硬件解决方案,而ROM属于查表式运算解决方案。

数控分频器的功能要求为:若在其输入端给定不同的数据,其输出脉冲具有相应的对输入时钟的分频比。

设计流程是首先按照原理图输入的设计步骤,通过元件输入窗在原理图编辑窗中调入兆功能块,并按图连接起来,其中计数器LPM-COUNTER模块的参数设置可按照以下介绍的方法进行。

硬件乘法器有多种实现方法,相比之下,由高速RAM构成乘法表方式的乘法表方式的乘法器的运算速度最快。

8位数控分频器电路原理图用LPM_ROM设计的4位乘法器原理图DFF的VHDL代码:(1)8位数控分频器数控分频器的功能要求为:若在其输入端给定不同的数据,其输出脉冲具有相应的对输入时钟的分频比。

(2)4位乘法器硬件乘法器有多种实现方法,相比之下,由高速RAM构成乘法表方式的乘法表方式的乘法器的运算速度最快。

一个4×4bit查表式乘法器乘法表文件如下图所示;四、仿真结果及分析下图即为8位数控分频器的仿真结果,仿真参数设置时具体设置界面如下图所示,波形图如图;下图即为乘法器的仿真结果,仿真参数设置时具体设置界面如下图所示;五、硬件验证过程及结果分析数控分频器的硬件验证时通过数码管来观察分频器的数据变化情况。

4位乘法器的硬件测试引脚并连接至插槽,通过数码管来观察数据相乘后的结果。

8位嵌入式CPU核的正向设计

8位嵌入式CPU核的正向设计

8位嵌入式CPU核的正向设计
陈建伟;羊性滋
【期刊名称】《微电子学》
【年(卷),期】2000(30)2
【摘要】介绍了一个与 Motorola68HC0 5指令兼容的 8位 CPU核的设计 ,分析了系统结构和工作原理以及设计构思 ,最后简要介绍了一个用 VHDL语言实现的通用仿真验证软件。

【总页数】3页(P124-126)
【关键词】嵌入式核;CPU核;正向设计;微处理器
【作者】陈建伟;羊性滋
【作者单位】清华大学微电子学研究所
【正文语种】中文
【中图分类】TP332
【相关文献】
1.一种基于FPGA和软核CPU的嵌入式系统设计方法 [J], 王赋攀;毕国堂
2.一种基于FPGA和软核CPU的嵌入式系统设计方法 [J], 王赋攀;毕国堂
3.嵌入式五级流水线CPU核的设计与实现 [J], 赖兆磬;潘明;许勇;张辉
4.80C31嵌入式核正向设计 [J], 刘连松;郝兵;马哲
5.一种基于国产嵌入式CPU核的BP神经网络SoC设计 [J], 徐文亮
因版权原因,仅展示原文概要,查看原文内容请购买。

TEC-2000A八位机的研究与实现

TEC-2000A八位机的研究与实现

. .. .. .. ..实验报告TEC-2000A八位机的研究与实现第57组组长:庞一学号:011675组员:柏青学号:011596王晓丽学号:011693. .. .. .. ..目录1实验任务1.1分工1.2完成情况2实验原理2.1硬件系统2.1.1总线2.1.2 控制器部件2.1.2.1 微程序控制器原理2.1.2.2 组合逻辑控制器原理2.1.3 运算器部件2.1.4 IO接口2.1.5 中断线路2.2软件系统2.2.1监控程序2.2.2仿真终端程序PCEC2.2.3交叉汇编程序ASEC2.2.3.1 交叉汇编程序使用说明2.2.3.2 交叉汇编程序设计要求3 运算器设计与实现3.1 设计要求3.2 设计过程3.3 8位机运算器逻辑图3.4 设计心得4指令系统设计与实现4.1 指令系统4.2 控制信号功能说明4.3 微程序控制器设计与实现. .. .. .. .4.3.3 控制信号在控制存储器中的实现4.3.4 maprom的实现原理与方法4.3.5 其它器件的设计与实现4.3.6微程序控制器逻辑图4.3.7 实验心得4.4 组合逻辑控制器设计与实现4.4.1 控制信号设计4.4.2节拍发生器设计4.4.3 mach设计4.4.4组合逻辑控制器逻辑图4.4.5 实验心得5 扩展任务5.1 修改监控5.1.1 指令分类5.1.2 数据集1(data.src data.equ)5.1.3 数据集2(data2.src data2.equ)5.1.4 汇编子程序模块(asm.src asm.equ)5.1.5 反汇编子程序模块(uasm.src uasm.equ)5.1.6 汇编命令处理模块(command3.src)5.1.7 反汇编命令处理模块(command4.src command4.equ)5.1.8 用户程序运行命令模块(command2.src)5.1.9 入口地址修改5.1.10 监控程序连接5.2 中断实验5.2.1 实验原理. .. .. .. .5.3 书中错误5.4 存储器的扩展5.4 其它成果6 测试与实验结果6.1 基本指令测试6.2 扩展指令测试6.3 中断程序7 收获与总结8 课程建议9 提交文件清单实验报告TEC-2000A八位机的研究与实现1.实验任务TEC2000是新型的供教学使用的计算机,硬件组成相对完备,并且已经实现了16位的组合逻辑和微程序两套系统。

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

精简8位cpu实验设计报告实验介绍:实验分为两个部分,第一部分为16*8 ROM 设计与仿真第二部分为SAP-1 设计与仿真实验流程:①16*8 ROM 的设计与仿真Rom16_8.VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM16_8 isPORT(DATAOUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --Data OutputADDR :IN STD_LOGIC_VECTOR(3 DOWNTO 0); --ADDRESSCE :IN STD_LOGIC --Chip Enable);END ROM16_8;ARCHITECTURE a OF ROM 16_8 ISBEGINDATA<=“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“00100000”WHEN ADDR=“1100”AND CE=‘0’ELSE“00000000”;END a;程序说明:rom的使能CE,只有为0时,才接受读数据的命令。

②SAP-1 CPU设计与仿真工作任务:1.取指令周期(Fetch Cycle)(1)状态S0:(寻址状态, Address State)这个状态下,“程序计数器”负责将所要执行的指令地址值传递至MAR 存放。

(2)状态S2:(增加状态,Increment State)这个状态下,“程序计数器”的值加1,代表计数器将指针指向下一个要执行的指令地址值。

(3)状态S2:(记忆状态,Memory State)这个状态下,将把记录在“MAR”里的指令地址值,送入“RAM”里后,由“RAM”读出该地址的指令码,再将该指令放入“指令寄存器”。

指令执行周期:(1)LDA指令状态S3:这个状态下,上述的09H数据传入MAR,以便下个状态能取出该数值所代表的地址里的值,比如20H。

状态S4:这个状态是将存放在“MAR”里的09数据,通过RAM读出09H地址的数据,比如是数值20H数值至“累加器”。

状态S5:这个状态下的LDA指令并没有作用。

(2)ADD指令状态S3:这个状态下,上述的AH数据将传入MAR,以便下个状态取出该数值所代表地址里的内容值,比如是数值14H。

状态S4:这个状态是将存放“MAR”里的AH数据,通过RAM读出AH地址内的数据,放到B寄存器中。

状态S5:这个状态是将存在“累加器”和“B 寄存器”的数值内容存放入“加减法器”相加后,再将相加结果放回“累加器”。

(3)SUB指令状态S3:这个状态下,上述的BH数据传入MAR,以便下个状态能取出该数值所代表地址里的值。

状态S4:这个状态是将存放在“MAR”的BH数据,通过RAM读出BH地址内的数据,并放到B寄存器中。

状态S5:这个状态是将存放在“累加器”和“B寄存器”的数值放入“加减法器”相减后,再将相减后结果放回“累加器”。

(4)OUT指令状态S3:这个状态下,累加器的内容将经Wbus传至“输出寄存器”,然后显示在二进制显示装置。

状态S4:这个状态OUT指令没有作用。

状态S5:这个状态OUT指令没有作用。

(5)HLT指令状态S3:这个状态下“控制器/序列发生器”将停止送出脉冲信号CLK,这时SAP-1 CPU会停止执行工作。

状态S4:这个状态HLT指令没有作用。

状态S5:这个状态HLT指令没有作用。

③SAP-1 CPU 设计1.使用Process与Case When命令架构出6个脉冲的指令周期。

ARCHITECTURE a OF SAP1 IS……TYPE STATE IS (S0,S1,S2,S3,S4,S5); --state type declareSIGNAL PState :STATE; --present stateSIGNAL NState :STATE; --next state……BEGINChangeStateMode:PROCESS(CR,RST) --state s0~s5BEGINIF RST=‘1’THEN --reset cpuPC <=“0000”; --pogram counter=0HACC<=”0000000”; --accumulator=0HRUN<=‘1’; --CPU run program enablePState<=S0; --Initial cpu present state ELSIF CP’EVENT AND CP =‘0’THEN --clock negative edageIF RUN =‘1’THEN --run program eanble?CASE PState IS --check cpu present stateWHEN S0=> --(address state & fetch cycle-1)NState<=S1; --cpu next stateWHEN S1=> --(increment state & fetch cycle-2)NState<=S2; --cpu next stateWHEN S2=> --(memory state & fetch cycle-3)NState<=S3; --cpu next stateWHEN S3=> --STATE S3 (Execution cycle -1)NState<=S4; --cpu next stateWHEN S4=> --STATE S4 (Execution cycle-2)NState<=S5; --cpu next stateWHEN S5=> --STATE S5 (Execution cycle-3)NState<=S0; --cpu next stateEND CASE;PState<=NState; --切换状态END IF;END IF;END PROCESS ChangeStateMode;END a;2.编写“指令捕捉周期(fetch cycle)即状态S0~S2的命令Changestatemode:process(cp,rst) --state s0~s5variable flag,f1:boolean;beginif rst =‘1’then……Pstate<=s0;flag:=ture; ---PC指针允许加1标志打开elsif cp’event and cp=‘0’thenif run=‘1’thencase pstate iswhen so =>nstate<=s1;mar<=std_logic_vector(pc);when s1=>nstate <=s2;if flag=ture thenpc <=pc+1;flag:=false;end if;when s2=>nstate <=s3;flag :ture;Ir<=databus;when s3=>……end case;……3.编写”指令执行周期(fetch cycle)”,即状态S3~S5的命令(IR)截取高4位指令至TMP里……Elsif cp’event and cp=‘0’then……when s2=>……When s3=>nstate<=s4;temp<=ir(7 downto 4);when s4=>……changestatemode : process(cp,rst)variable flag, F1:boolean;BeginIf rst =‘1’then……Elsif cp’event and cp=‘0’thenIf run=‘1’thencase pstate iswhen s0=>nstate<=s1;……end case;pstate<=nstate;End if;If pstate =s3 thenIf(tmp=“0000”)or(tmp=“0001”)or(tmp=“0010”)then Mar<=ir(3 downto 0);elsif tmp =“1110”thenoutreg<=acc;elsif tmp =“1111”thenrun<=‘0’;End ifElsif pstate=s4 thenif tmp=“0000”thenacc<=databus;elsif tmp=“0001”thenbreg<=databus;elsif tmp=“0010”thenbreg<=databus;end if;Elsif pstate=s5 thenif tmp =“0001”and f1=ture thenNum <=unsigned(acc)+unsigend(breg);Acc <=std_logic_vector(num);F1:=false;Elsif tmp=“0010”and f1 =true thennum <=unsigned(acc)-unsigned(breg);Acc<=std_logic_vector(num);F1:false;End if;End if;End if;End process changestatemode;④编译、功能仿真。

相关文档
最新文档