ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:1.27MB ,
资源ID:852459      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-852459.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计采用EDA技术设计简单微处理器.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

课程设计采用EDA技术设计简单微处理器.doc

1、简单微处理器的设计 摘要:本课程设计采用EDA技术设计简单微处理器。系统设计采用自顶向下的设计方法。它由数的输入,数的比较,数的交换和结果输出四部分组成。系统实现采用硬件描述语言VHDL把系统电路按模块化方式进行设计,然后进行编程、时序仿真并分析。系统结构简单,使用方便,功能齐全,精度高,具有一定的应用价值。关键词:处理器;输入;比较;交换目录1 引 言11.1课题设计的背景、目的11.2 课程设计的内容12 EDA、VHDL简介32.1 EDA简介32.2 VHDL简介3VHDL语言的特点3VHDL的设计流程43 简单微处理器的设计过程53.1设计规划53.2 各模块设计及相应程序54 系统

2、仿真91.数的输入.92 数的比较。93 交换两个数。104 结果输出(从小到大).10结束语11致 谢12参考文献13附 录14 李江江 简单微处理器的设计 第25页 共25页 1 引 言随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,而处理器,作为计算机中的一个重要部分,其性能从很大程度上决定了计算机的性能。本设计介绍的简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。1.1课题设计的背景、目的微处理器技术的发展是与微电子技术即大规模集成电路技术的发展分不开的。微电子技术以每18个月集成度提高

3、一倍的速度迅速发展。20世纪80年代初,主要是16位微处理器8086/8088。1985年推出了80386微处理器,完成了16位体系结构向32位体系结构的转变。1989年80486出现了。80486的设计目标是提高指令执行速度和支持多处理器系统。80486在芯片内部增加一个8KB的高速缓冲存储器(cache),还增加了相当于80387的浮点部件(FPU),在基本指令的实现上,采用硬布线逻辑而不是微程序技术。1993年3月,Intel公司推出了第一代“奔腾”微处理器(Pentium),微处理器技术发展进入了一个新的阶段。到目前为止,“奔腾”已有四代产品。“奔腾”的设计思想是把如何提高微处理器内部

4、指令执行的并行性作为主导。指令执行的并行性越好,微处理器的性能就越高。本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用电子称的设计,巩固和综合运用所学课程,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。1.2 课程设计的内容本设计主要介绍的设计一台简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这1

5、0个数。( 1 )程序开始及输入10个数据。( 2 )数的比较。( 3 )交换两个数。( 4 )结果输出(从小到大)。2 EDA、VHDL简介2.1 EDA简介EDA是Electronic Design Automation(电子设计自动化)的缩写,EDA技术是20世纪90年代初以来迅速发展起来的现代电子工程领域的一门新技术。它可以编程逻辑器件(PLD)为载体,以计算机为工作平台,以EDA工具软件为开发环境,以硬件描述语言(HDL)作为电子系统功能描述方式,以电子系统设计为应用方向的电子产品自动化设计过程。2.2VHDL简介VHDL的英文全名是Very-High-Speed Integrate

6、d Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和

7、Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。2.3VHDL语言的特点VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计

8、的优点是多方面的。(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化

9、,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.4VHDL的设计流程它主要包括以下几个步骤:1.设计规范的定义这个有点象系统的设计的总体规划,就是要明确这个系统有哪些设计要求,和你要想到达的目标。2.采用VHDL进行设计描述这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计,这个和其他软件语言差不多。最重要还是模块划分,这个和设计者的设计水平有很大关系。 完成规划设计后,就可以编写个模块的V

10、HDL程序了,最后将各模块的VHDL程序综合起来就完成了整个设计的VHDL描述.3.VHDL程序仿真 这个过程和其他软件语言没什么区别。4.综合、优化和布局布线综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的利用;布局布线,指的是将逻辑关系转化成电路连接的方式。5.后仿真。这个与VHDL程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功能验证。6.器件编程3 简单微处理器的设计过程3.1设计规划 计算器通过简单的数字键盘输入操作数,其中所键入的数据将被暂存在移位寄存器中,然后根据运算符执行产生不同的操作结

11、果,所获得的运算结果再通过译码电路转移到七段显示器输出。整个微处理器的工作原理图如图3.11所示。图3.1 微处理器的工作原理图3.2 各模块设计及相应程序本系统设计了10条指令:IN1(输入到目的寄存器),MOV(将一个数送入目的寄存器),MOV1(将源寄存器中的数据存储到目的寄存器所指向的地址单元),MOV2(将源寄存器所指向的地址单元中的数送入目的寄存器), OUT1(输出),CMP(将目的寄存器和源寄存器所指向的地址单元中的数据进行比较),DEC(将目的寄存器中的数据自减一),INC(将目的寄存器中的数据自加一),JMP(无条件跳转),JB(小于跳转),下表列出了每条指令的格式、汇编符

12、号和指令功能。表3.2 指令系统格式表助记符号指令格式功 能IN1 Rd 1000Rd (SW)-RdMOV im Rd 1001Rdim(im)RdMOV1 Rs Rd1010Rs Rd(Rs)-RdMOV2 Rs Rd 1011 Rs Rd(Rs)RdOUT1 Rd 1100Rs (Rs)LEDCMP Rs Rd 1101 RsRd(Rs)-(Rd),锁存CY和ZIDEC Rd1110Rd(Rd)-1RdINC Rd 1111 Rd(Rd)+1RdJMP addr0110addraddr-PCJB addr0111addr若小于,则addr-PC关键程序数的选择模块LIBRARY IEEE

13、;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX5 ISPORT( R0_B,R1_B,R2_B,R3_B,ALU_B:IN STD_LOGIC; R0_IN,R1_IN,R2_IN,R3_IN,ALU_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); MUX5OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END MUX5;ARCHITECTURE A OF MUX5 ISBEGIN PROCESS(ALU_B,R3_B,R2_B,R1_B,R0_B) BEGIN IF(ALU_B=1 AND R3_B=1 A

14、ND R2_B=1 AND R1_B=1 AND R0_B=0) THEN MUX5OUT=R0_IN; ELSIF(ALU_B=1 AND R3_B=1 AND R2_B=1 AND R1_B=0 AND R0_B=1) THEN MUX5OUT=R1_IN; ELSIF(ALU_B=1 AND R3_B=1 AND R2_B=0 AND R1_B=1 AND R0_B=1) THEN MUX5OUT=R2_IN; ELSIF(ALU_B=1 AND R3_B=0 AND R2_B=1 AND R1_B=1 AND R0_B=1) THEN MUX5OUT=R3_IN; ELSIF(ALU_

15、B=0 AND R3_B=1 AND R2_B=1 AND R1_B=1 AND R0_B=1) THEN MUX5OUT=ALU_IN; ELSE MUX5OUT=ALU_IN; END IF; END PROCESS;END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT( MUX5_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LED_B,WR: IN STD_LOGIC; OUT_MUX3,OUT_PUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END F

16、EN2;ARCHITECTURE A OF FEN2 ISBEGIN PROCESS(LED_B) BEGIN IF(LED_B=0 AND WR=0) THEN OUT_PUT=MUX5_IN; OUT_MUX3=00000000; ELSE OUT_MUX3=MUX5_IN; END IF; END PROCESS;END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX3 ISPORT( SW_B,CS:IN STD_LOGIC; FEN2_IN,MUX2_2IN,SW_IN:IN STD_LOGIC_VECTOR(7 DOWNT

17、O 0); MUX3OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END MUX3;ARCHITECTURE A OF MUX3 ISBEGINPROCESS(SW_B,CS) BEGIN IF(SW_B=0 AND CS=1) THEN MUX3OUT=SW_IN; ELSIF(SW_B=1 AND CS=0) THEN MUX3OUT=MUX2_2IN; ELSIF(SW_B=0 AND CS=0) THEN MUX3OUT=FEN2_IN; ELSE MUX3OUTR2则跳转到交换,否则顺序执行。图4.2 数的比较4.3交换两个数。如图4.3,由于R3种的

18、数25大于R2中的数15,则进行交换。使R2每次存入最大的值后,R3继续读入R1地址的值继续进行比较。图4.3 交换两个数4.4 结果输出图4.4中的R0控制循环, R1与用自增, R2用于输出寄存器.结果从QD输出。图中刚好从最小的数06开始输出。图4.4 结果输出结束语我在老师的细心指导和同学们的耐心帮助之下成功完成了本次实验,并能得到预期的实验结果。在这段时间内,我努力学习了计算机系统结构,VHDL等相关的各项知识,也查阅不少资料,并能够将课堂上所学的知识运用于实际的设计中,能够很好的进行理论联系实际进行开发。通过解决这次设计和设计中遇到的问题,也积累了一定的经验。对以后从事集成电路设计

19、工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。致 谢 本课程设计在选题和设计过程中得到了肖晓丽老师的悉心指导,肖老师多次询问课程设计进程,并多次指导我对课程设计进行修改,帮助我完善了该课程设计。在此对肖老师表示衷心的感谢。 还要感谢寝室的同学们,谢谢你们对我技术和精神上的帮助,谢谢你们。参考文献1 黄仁欣.EDA技术实用教程.北京:清华大学出版社,20062黄志鹏,付丽琴.可编程逻辑器件开发技术MAX+pius.北京:国防工业出版社,20053潘松.VHDL实用教程M.成都:电子科技大学出版社,20004 谭会生

20、.EDA技术基础.长沙:湖南大学出版社,20045 杨刚,龙海燕.现代电子技术VHDL与数字系统设计.北京.电子工业出版社,2004 附 录程序清单:1 ALU子模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU ISPORT( AC, DR: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S1, S0: IN STD_LOGIC; BCDOUT: OUT STD_LOGIC_VECTOR(7 DO

21、WNTO 0); CY,ZI: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP: STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN PROCESS(S1,S0) BEGIN IF(S1=0 AND S0=0) THEN BCDOUT = AC + DR; AA=0∾ BB=0&DR; TEMP = AA + BB; CY=TEMP(8); IF( TEMP =100000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSIF(S1=0 AND S0=1

22、) THEN BCDOUT = AC - DR; AA=0∾ BB=0&DR; TEMP = AA - BB; CY=TEMP(8); IF( TEMP =000000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSIF(S1=1 AND S0=0) THEN AA=0∾ TEMP=AA+1; BCDOUT=TEMP(7 DOWNTO 0); CY=TEMP(8); IF( TEMP =100000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSIF(S1=1 AND S0=1) THEN AA=0∾ T

23、EMP=AA-1; BCDOUT=TEMP(7 DOWNTO 0); CY=TEMP(8); IF( TEMP =000000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSE BCDOUT = 00000000; CY = 0; ZI = 0; END IF; END PROCESS;END A;2状态条件寄存器子模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS74 ISPORT( LDFR:IN STD_LOGIC; CY,ZI:IN STD_LOGIC; FC,FZ:OUT STD_LOGIC )

24、;END LS74;ARCHITECTURE A OF LS74 ISBEGIN PROCESS(LDFR) BEGIN IF(LDFREVENT AND LDFR=1) THEN FC=CY; FZ=ZI; END IF; END PROCESS;END A;3 时序产生器子模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER ISPORT( Q,CLR:IN STD_LOGIC; T2,T3,T4:OUT S

25、TD_LOGIC );END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN PROCESS(Q,CLR) BEGIN IF(CLR=0) THEN T2=0; T3=0; T4=0; X=00; ELSIF(QEVENT AND Q=1) THEN X=X+1; T2=(NOT X(1) AND X(0); T3=X(1) AND (NOT X(0); T4=X(1) AND X(0); END IF; END PROCESS;END A;4.程序计数器子模块LIBRARY IEE

26、E;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PC ISPORT( LOAD,LDPC,CLR:IN STD_LOGIC; BUS_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); PCOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROC

27、ESS(LDPC,CLR,LOAD) BEGIN IF (CLR=0) THEN QOUT= 00000000; ELSIF (LDPCEVENT AND LDPC=1) THEN IF (LOAD=0) THEN QOUTPC ELSE QOUT= QOUT+1; -PC+1 END IF; END IF; END PROCESS; PCOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT ROMOUT = 11001000; -L6: OUT

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922