简单微处理器的设计Word格式文档下载.docx

上传人:b****5 文档编号:20328463 上传时间:2023-01-22 格式:DOCX 页数:18 大小:22.73KB
下载 相关 举报
简单微处理器的设计Word格式文档下载.docx_第1页
第1页 / 共18页
简单微处理器的设计Word格式文档下载.docx_第2页
第2页 / 共18页
简单微处理器的设计Word格式文档下载.docx_第3页
第3页 / 共18页
简单微处理器的设计Word格式文档下载.docx_第4页
第4页 / 共18页
简单微处理器的设计Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

简单微处理器的设计Word格式文档下载.docx

《简单微处理器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《简单微处理器的设计Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

简单微处理器的设计Word格式文档下载.docx

EDA简介

EDA是ElectronicDesignAutomation(电子设计自动化)的缩写,EDA技术是20世纪90年代初以来迅速发展起来的现代电子工程领域的一门新技术。

它可以编程逻辑器件(PLD)为载体,以计算机为工作平台,以EDA工具软件为开发环境,以硬件描述语言(HDL)作为电子系统功能描述方式,以电子系统设计为应用方向的电子产品自动化设计过程。

简介

VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。

现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

语言的特点

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

应用VHDL进行工程设计的优点是多方面的。

(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。

强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

的设计流程

它主要包括以下几个步骤:

1.设计规范的定义

这个有点象系统的设计的总体规划,就是要明确这个系统有哪些设计要求,和你要想到达的目标。

2.采用VHDL进行设计描述

这部分包括设计规划和程序的编写。

设计规划主要包括设计方式的选择及是否进行模块划分。

设计方式一般包括直接设计,自顶向下和自底向下设计,这个和其他软件语言差不多。

最重要还是模块划分,这个和设计者的设计水平有很大关系。

完成规划设计后,就可以编写个模块的VHDL程序了,最后将各模块的VHDL程序综合起来就完成了整个设计的VHDL描述.

程序仿真

这个过程和其他软件语言没什么区别。

4.综合、优化和布局布线

综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;

优化,这个主要是为了提高程序的执行效率及减少资源的利用;

布局布线,指的是将逻辑关系转化成电路连接的方式。

5.后仿真。

这个与VHDL程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功能验证。

6.器件编程

3简单微处理器的设计过程

设计规划

计算器通过简单的数字键盘输入操作数,其中所键入的数据将被暂存在移位寄存器中,然后根据运算符执行产生不同的操作结果,所获得的运算结果再通过译码电路转移到七段显示器输出。

整个微处理器的工作原理图如图所示。

图微处理器的工作原理图

各模块设计及相应程序

本系统设计了10条指令:

IN1(输入到目的寄存器),MOV(将一个数送入目的寄存器),MOV1(将源寄存器中的数据存储到目的寄存器所指向的地址单元),MOV2(将源寄存器所指向的地址单元中的数送入目的寄存器),OUT1(输出),CMP(将目的寄存器和源寄存器所指向的地址单元中的数据进行比较),DEC(将目的寄存器中的数据自减一),INC(将目的寄存器中的数据自加一),JMP(无条件跳转),JB(小于跳转),下表列出了每条指令的格式、汇编符号和指令功能。

表指令系统格式表

助记符号

指令格式

功能

IN1Rd

1000

×

Rd

(SW)->

Rd

MOVimRd

1001

im

(im)->

MOV1Rs[Rd]

1010

Rs

(Rs)->

[Rd]

MOV2[Rs]Rd

1011

([Rs])->

OUT1Rd

1100

(Rs)->

LED

CMPRsRd

1101

Rs

(Rs)-(Rd),锁存CY和ZI

DECRd

1110

(Rd)-1->

INCRd

1111

(Rd)+1->

JMPaddr

0110

addr

addr->

PC

JBaddr

0111

若小于,则addr->

关键程序

数的选择模块

LIBRARYIEEE;

USEMUX5IS

PORT(

R0_B,R1_B,R2_B,R3_B,ALU_B:

INSTD_LOGIC;

R0_IN,R1_IN,R2_IN,R3_IN,ALU_IN:

INSTD_LOGIC_VECTOR(7DOWNTO0);

MUX5OUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDMUX5;

ARCHITECTUREAOFMUX5IS

BEGIN

PROCESS(ALU_B,R3_B,R2_B,R1_B,R0_B)

BEGIN

IF(ALU_B='

1'

ANDR3_B='

ANDR2_B='

ANDR1_B='

ANDR0_B='

0'

)THEN

MUX5OUT<

=R0_IN;

ELSIF(ALU_B='

=R1_IN;

=R2_IN;

=R3_IN;

=ALU_IN;

ELSEMUX5OUT<

ENDIF;

ENDPROCESS;

ENDA;

USEFEN2IS

MUX5_IN:

LED_B,WR:

INSTD_LOGIC;

OUT_MUX3,OUT_PUT:

ENDFEN2;

ARCHITECTUREAOFFEN2IS

PROCESS(LED_B)

IF(LED_B='

ANDWR='

)THEN

OUT_PUT<

=MUX5_IN;

OUT_MUX3<

="

00000000"

;

ELSE

USEMUX3IS

SW_B,CS:

FEN2_IN,MUX2_2IN,SW_IN:

MUX3OUT:

ENDMUX3;

ARCHITECTUREAOFMUX3IS

PROCESS(SW_B,CS)

IF(SW_B='

ANDCS='

MUX3OUT<

=SW_IN;

ELSIF(SW_B='

=MUX2_2IN;

=FEN2_IN;

ELSE

4系统仿真

数的输入

以下仿真波形图的测试输入为(34,15,25,92,17,06,83,68,72,87)。

程序开始及输入10个数据.图中的R0控制循环,R1与用自增,R2用于保存输入的数并送到与R1对应地址的RAM中.

图程序开始及输入

数的比较

如图所示,R0存放外循环的比较次数,R1存放内循环的指针。

R2存放每次比较的大数,3存放与R2比较的下一个数。

如果R3>

R2则跳转到交换,否则顺序执行。

图数的比较

交换两个数。

如图,由于R3种的数25大于R2中的数15,则进行交换。

使R2每次存入最大的值后,R3继续读入R1地址的值继续进行比较。

图交换两个数

结果输出

图中的R0控制循环,R1与用自增,R2用于输出寄存器.结果从QD输出。

图中刚好从最小的数06开始输出。

图结果输出

结束语

我在老师的细心指导和同学们的耐心帮助之下成功完成了本次实验,并能得到预期的实验结果。

在这段时间内,我努力学习了计算机系统结构,VHDL等相关的各项知识,也查阅不少资料,并能够将课堂上所学的知识运用于实际的设计中,能够很好的进行理论联系实际进行开发。

通过解决这次设计和设计中遇到的问题,也积累了一定的经验。

对以后从事集成电路设计工作会有一定的帮助。

在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。

致谢

本课程设计在选题和设计过程中得到了肖晓丽老师的悉心指导,肖老师多次询问课程设计进程,并多次指导我对课程设计进行修改,帮助我完善了该课程设计。

在此对肖老师表示衷心的感谢。

还要感谢寝室的同学们,谢谢你们对我技术和精神上的帮助,谢谢你们。

参考文献

[1]黄仁欣.EDA技术实用教程.北京:

清华大学出版社,2006

[2]黄志鹏,付丽琴.可编程逻辑器件开发技术MAX+piusⅡ.北京:

国防工业出版社,2005

[3]潘松.VHDL实用教程[M].成都:

电子科技大学出版社,2000

[4]谭会生.EDA技术基础.长沙:

湖南大学出版社,2004

[5]杨刚,龙海燕.现代电子技术—VHDL与数字系统设计.北京.电子工业出版社,2004

附录

程序清单:

1ALU子模块

USEALUIS

AC,DR:

INSTD_LOGIC_VECTOR(7DOWNTO0);

S1,S0:

BCDOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

CY,ZI:

OUTSTD_LOGIC

ENDALU;

ARCHITECTUREAOFALUIS

SIGNALAA,BB,TEMP:

STD_LOGIC_VECTOR(8DOWNTO0);

PROCESS(S1,S0)

IF(S1='

ANDS0='

BCDOUT<

=AC+DR;

AA<

='

&

AC;

BB<

DR;

TEMP<

=AA+BB;

CY<

=TEMP(8);

ZI<

='

ELSIF(S1='

=AC-DR;

=AA-BB;

IF(TEMP="

000000000"

TEMP<

=AA+1;

BCDOUT<

=TEMP(7DOWNTO0);

=AA-1;

="

CY<

2状态条件寄存器子模块

USELS74IS

LDFR:

FC,FZ:

OUTSTD_LOGIC

ENDLS74;

ARCHITECTUREAOFLS74IS

PROCESS(LDFR)

IF(LDFR'

EVENTANDLDFR='

FC<

=CY;

FZ<

=ZI;

3时序产生器子模块

USECOUNTERIS

Q,CLR:

T2,T3,T4:

ENDCOUNTER;

ARCHITECTUREAOFCOUNTERIS

SIGNALX:

STD_LOGIC_VECTOR(1DOWNTO0);

PROCESS(Q,CLR)

IF(CLR='

T2<

T3<

T4<

X<

00"

ELSIF(Q'

EVENTANDQ='

=X+1;

=(NOTX

(1))ANDX(0);

=X

(1)AND(NOTX(0));

=X

(1)ANDX(0);

4.程序计数器子模块

USEPCIS

LOAD,LDPC,CLR:

BUS_IN:

PCOUT:

ENDPC;

ARCHITECTUREAOFPCIS

SIGNALQOUT:

STD_LOGIC_VECTOR(7DOWNTO0);

PROCESS(LDPC,CLR,LOAD)

IF(CLR='

QOUT<

ELSIF(LDPC'

EVENTANDLDPC='

IF(LOAD='

=BUS_IN;

--BUS->

=QOUT+1;

--PC+1

PCOUT<

=QOUT;

5ROM子模块

USEROM16IS

ROMOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

ADDR:

RE,CS_I:

INSTD_LOGIC

);

ENDROM16;

ARCHITECTUREAOFROM16IS

PROCESS(RE,CS_I)

BEGIN

IF(RE='

ANDCS_I='

CASEADDRIS

WHEN"

00000001"

=>

ROMOUT<

00001010"

00000011"

00001000"

01110000"

--JBL1

00001001"

00000100"

00001011"

00001101"

00010001"

--JBL4

00010010"

00011111"

00010101"

--JBL3

00010110"

00011001"

00010111"

01100000"

--JMPL2WHEN"

00011000"

00001110"

00011101"

--JMPL2

00011110"

DECR0

00100001"

00100011"

--JBL2

00100100"

00100110"

00101000"

MOV2[R1]R2

00101101"

--JBL5

00101110"

00101001"

OUT1R2

00110000"

--JMPL6

00110001"

00101111"

WHENOTHERS=>

NULL;

ENDCASE;

子模块

LIBRARYI

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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