8位CPU的设计与实现Word文档格式.docx

上传人:b****3 文档编号:17546605 上传时间:2022-12-07 格式:DOCX 页数:10 大小:368.26KB
下载 相关 举报
8位CPU的设计与实现Word文档格式.docx_第1页
第1页 / 共10页
8位CPU的设计与实现Word文档格式.docx_第2页
第2页 / 共10页
8位CPU的设计与实现Word文档格式.docx_第3页
第3页 / 共10页
8位CPU的设计与实现Word文档格式.docx_第4页
第4页 / 共10页
8位CPU的设计与实现Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

8位CPU的设计与实现Word文档格式.docx

《8位CPU的设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《8位CPU的设计与实现Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

8位CPU的设计与实现Word文档格式.docx

画出电路原理图、仿真波形图;

二、CPU的组成结构

3、元器件的选择

1.运算部件(ALU)

ALU181的程序代码:

LIBRARYIEEE;

USEALU181IS

PORT(

S:

INSTD_LOGIC_VECTOR(3DOWNTO0);

A:

INSTD_LOGIC_VECTOR(7DOWNTO0);

B:

F:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

COUT:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

M:

INSTD_LOGIC;

CN:

CO,FZ:

OUTSTD_LOGIC);

ENDALU181;

ARCHITECTUREbehavOFALU181IS

SIGNALA9:

STD_LOGIC_VECTOR(8DOWNTO0);

SIGNALB9:

SIGNALF9:

BEGIN

A9<

='

0'

&

A;

B9<

B;

PROCESS(M,CN,A9,B9)

BEGIN

CASESIS

WHEN"

0000"

=>

IFM='

THENF9<

=A9+CN;

ELSEF9<

=NOTA9;

ENDIF;

WHEN"

0001"

=(A9orB9)+CN;

=NOT(A9ORB9);

0010"

=(A9or(NOTB9))+CN;

=(NOTA9)ANDB9;

0011"

="

000000000"

-CN;

="

;

0100"

=A9+(A9ANDNOTB9)+CN;

=NOT(A9ANDB9);

0101"

=(A9orB9)+(A9ANDNOTB9)+CN;

=NOTB9;

0110"

=(A9-B9)-CN;

=A9XORB9;

0111"

=(A9or(NOTB9))-CN;

=A9and(NOTB9);

1000"

=A9+(A9ANDB9)+CN;

=(NOTA9)andB9;

1001"

=A9+B9+CN;

=NOT(A9XORB9);

1010"

=(A9or(NOTB9))+(A9ANDB9)+CN;

=B9;

1011"

=(A9ANDB9)-CN;

=A9ANDB9;

1100"

=(A9+A9)+CN;

000000001"

1101"

=(A9orB9)+A9+CN;

=A9OR(NOTB9);

1110"

=((A9or(NOTB9))+A9)+CN;

=A9ORB9;

1111"

=A9-CN;

=A9;

WHENOTHERS=>

F9<

;

ENDCASE;

IF(A9=B9)THENFZ<

='

ENDIF;

ENDPROCESS;

F<

=F9(7DOWNTO0);

CO<

=F9(8);

COUT<

WHENF9(8)='

ELSE"

ENDbehav;

ALU的原理图:

2.微控制器

实现信息传送要靠微命令的控制,因此在CPU中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传送至运算部件时控制完成运算处理。

微命令产生部件可由若干组合逻辑电路组成,也可以由专门的存储逻辑组成。

产生微命令的方式可分为组合逻辑控制方式和微程序控制方式两种。

在本章所介绍的8位模型CPU设计中,采用微程序控制方式通过微程序控制器和微指令存储器产生微命令,因此此CPU属于复杂指令CISCCPU。

微控制器的原理图:

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,便可从存储器读取下一条指令。

程序计数器的原理图:

4、系统总电路图及原理

系统原理:

该CPU主要由算术逻辑单元ALU,数据暂存寄存器DR1、DR2,数据寄存器R0~R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY,指令寄存器IR,微控制器uC,输入单元INPUT和输出单元OUTPUT所组成。

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

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

5、波形仿真

仿真波形图:

分析:

(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→BUS→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的(0AH)单元的内容34H送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:

RAM(0AH)=34H→BUS→DR2=34H。

(12)执行微地址为06的M微指令01A206,将R0的数据送=1,允许R0的内容56H送往BUS,此时LDDR1为高电平,BUS上的数据56H写入ALU的数据缓冲期DR1,执行结果:

(R0)=56H→BUS→DR1=56H.

(13)执行微地址为01的M微指令919A01,完成加法运算:

(DR1)+(DR2)→R0,56H+34H=8AH→R0=8AH。

(14)执行微地址为02的M微指令01ED82,执行取指令操作:

PC→AR=03H,PC+1=04H,AR指向RAM存储器地址03H,执行第三条指令,存储STA。

(15)执行微地址12的M微指令00C048,取指令,并经过分支判断P

(1),读出地址为03H单元的内容20H,经过BUS送到指令寄存器IR:

RAM(03H)=20H→BUS→IR=20H。

(16)执行微地址为07的M微指令01ED87,通过间接寻址获得另一个操作数,地址寄存器AR指向取数的间接地址:

PC→AR=04H,PC+1=05H,AR指向RAM的04单元。

(17)执行微地址为15的M微指令00E00D,RAM_B为高电平,RAM的(04)单元的内容通过BUS送AR,取数地址(AR)=0BH,RAM(04)=0BH→BUS→AR=0BH。

(18)执行01微地址为01的M微指令038201,RAM_B为高电平,R0的内容存入RAM(0BH)单元,BUS上的数据就送给了DR2,执行结果:

RAM(0BH)=8AH→BUS→RAM(0BH)=8AH。

(19)执行微地址为02的M微指令01ED82,执行取指令操作:

PC→AR=05H,PC+1=06H,AR指向RAM存储器地址05H,执行第四条指令,输出OUT。

(20)执行微地址13的M微指令00C048,取指令,并经过分支判断P

(1),读出地址为05H单元的内容30H,经过BUS送到指令寄存器IR:

RAM(05H)=30H→BUS→IR=30H。

(21)执行微地址为16的M微指令01ED8E,通过间接寻址获得另一个操作数,地址寄存器AR指向取数的间接地址:

PC→AR=06H,PC+1=07H,AR指向RAM的06单元。

(22)执行微地址为17的M微指令00E00F,RAM_B为高电平,RAM的(06)单元的内容通过BUS送AR,取数地址(AR)=0BH,RAM(06)=0BH→BUS→AR=0BH。

(23)执行微地址为25的M微指令00A015,RAM_B为高电平,RAM的(0BH)单元的内容8AH送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:

RAM(0BH)=8AH→BUS→DR2=8AH。

(24)执行微地址为01的M微指令010A01,将DR1的数据送输出单元OUT,允许DR1的内容8AH送往BUS,BUS上的数据8AH送输出单元OUT,执行结果:

DR1=8AH→BUS→OUT=8AH。

(25)执行微地址为02的M微指令01ED82,执行取指令操作:

PC→AR=07H,PC+1=08H,AR指向RAM存储器地址07H。

(26)执行微地址14的M微指令00C048,取指令,并经过分支判断P

(1),读出地址为07H单元的内容40H,经过BUS送到指令寄存器IR:

RAM(07H)=40H→BUS→IR=40H。

(27)执行微地址为26的M微指令01ED96,进入转移JMP运算微程序。

PC→AR=08H,PC+1=09H,AR指向RAM的08单元。

(28)执行微地址为01的M微指令00D181,RAM_B为高电平,RAM的(0AH)单元的内容34H送到BUS,此时LDDR2为高电平,BUS上的数据就送给了DR2,执行结果:

题目:

减法器

实验结论:

本实验系统是我做过最为庞大的,开始时根本不知道如何下手,完全是一头雾水,老师讲解后还是不知道如何着手,还是慢慢查找资料才略微懂得点头绪。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1