EDA课程设计简易cpu设计Word下载.docx
- 文档编号:7310641
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:27
- 大小:710.14KB
EDA课程设计简易cpu设计Word下载.docx
《EDA课程设计简易cpu设计Word下载.docx》由会员分享,可在线阅读,更多相关《EDA课程设计简易cpu设计Word下载.docx(27页珍藏版)》请在冰点文库上搜索。
电子工业出版社,2011.
[2]曹昕燕,周凤臣.EDA技术实验与课程设计.北京:
清华大学出版社,2006.5
[3]阎石主编.数字电子技术基础.北京:
高等教育出版社,2003.
指导教师签字:
年月日
简易cup系统
摘要
EDA(electronicdesignautomation)技术是现代电子工程领域的一门新兴的电子设计技术。
它大大缩短了集成电路的设计周期,提高了生产效率。
VHDL(VeryHighSpeedIntegratedCircuit(VHSIC)HardwareDescriptionLanguage)作为IEEE标准所规范的硬件描述语言,目前正在电子系统设计领域获得广泛应用。
QuartusII是Altera公司最新推出的EDA开发工具。
QuartusII支持VHDL和Verilog硬件描述语言(HDL)的设计输入、基于图形的设计输入方式。
QuartusII软件可以将设计、综合、布局和布线以及系统验证全部都整合到一个无缝的环境中。
本论文主要研究的是借助Altera公司的QuartusII4.0软件开发工具,采用VHDL硬件描述语言作为输入方式,采用分层次,分模块的设计方法,对CPU的各个模块进行了描述,综合和仿真。
该4位微处理器取代了手工插线的实验方法,采用EDA技术设计并在实验台上对设计进行了验证,并最终将处理器下载到实验台上,为硬件教学实验改革提供了一个新的尝试。
在各个功能模块的实现中主要使用了自顶向上的设计方法。
先实现寄存器,再实现寄存器组,最后将各个器件和模块之间互连,得到顶层设计图。
关键词:
4位微处理器;
QuartusII;
VHDL;
CPU系统
第一章绪论
§
1.1概述
EDA是电子设计自动化(ElectronicDesignAutomation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
硬件描述语言HDL是相对于一般的计算机软件语言。
HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。
设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;
然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的门级或更底层的结构网表文件或下载文件。
目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL、Verilog和VHDL。
VHDL语言是美国国防部在1981年提出的,并于1987年成为IEEE1076标准。
VHDL语言成为世界标准后,很快在世界各地得到了广泛的应用,这为电子设计自动化的普及和推广奠定了坚实的基础。
1995年中国国家技术监督局制定的《CAD通用技术规范》推荐使用VHDL语言作为我国电子设计自动化硬件描述语言的国家标准。
1.2设计目的和意义
当前是知识经济时代,更是知识爆炸的时代。
特别是信息技术产业,更是日新月异。
而相比之下,教学实验的改革则显得相形见绌,许多学习内容都大大落后于时代的要求,教学实验对于培养学生的动手能力、实践能力有着非常重要的作用,但教学实验大大滞后于实际中应用的技术也进一个不争的事实。
特是别是在计算机科学与技术方面,新技术层出不穷,更要求计算机教学实验与时俱进。
为了提高学生的实践能力,提高学生的动手能力,计算机组成原理教学改革势在必行。
本次设计的内容就是要利用EDA开发工具,设计一个新的组成原理实验,来取代现行的组成原理实验。
使进一步巩固理论知识,培养所学理论知识在实际中的应用能力;
1.3系统的开发环境
1.3.1EDA技术简介
EDA(ElectronicsDesignAutomation)即电子设计自动化。
EDA技术是一种以计算机为基本工作平台,利用计算机图形学,拓扑逻辑学,计算数学以及人工智能学等多种计算机应用学科的最新成果而开发的技术,是一种帮助电子设计工程师从事电子元件产品和系统设计的综合技术。
本次毕业设计的FPGA平台也是EDA电子设计自动化的一种。
1.3.2VHDL语言简介
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage。
自IEEE公布了VHDL的标准之后,各EDA开发公司相继推出了自己的EDA设计环境,或宣布自己的设计工具可以和EDA接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。
现在VHDL和Verilog作为IEEE的工业标准硬件描述,描述以得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机程序设计语言。
VHDL的程序结构特点是将一项工程设计为实体(可以是一个元件,一个电路模块或一个系统),分成外部(或称可视部分)和内部(或称不可视部分)。
在一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个模块。
这种将实体设计分成为内外部分是VHDL系统设计的基本点。
应用VHDL进行工程设计的优点是多方面的:
(1)VHDL语言功能强大,设计方式多样。
(2)VHDL语言具有强大的硬件描述能力。
(3)VHDL语言具有很强的移植性。
(4)VHDL语言的设计描述与具体的器件无关。
(5)VHDL语言易于实现IP设计的共享和复用。
1.3.3QUARTUSII简介
QuartusII软件支持VHDL和Verilog的设计输入、基于图形的设计输入方式以及集成的系统级设计工具。
QuartusII软件可以将设计、综合、布局、布线以及系统验证全部都整合到一个无缝的环境中,其中还包括第三方EDA工具的借口。
QuartusII的主要设计特性如下:
1.基于模块的设计方法提高工作效率。
2.更快集成IP。
3.在设计的早期对I/O引脚进行分配和验证。
4.存储器编译器使存储器的设计更为高效。
5.支持CPLD、FPGA和基于HardCopy的ASIC。
6.使用全新的命令行和脚本功能自动化设计流程。
7.高级教程帮助深入了解QuartusII的功能特性。
第二章总体设计
2.1微处理器技术
中央处理器(CPU)是驱动计算机技术和产业发展的火车头,CPU和操作系统的配合又组成了计算机系统的平台。
中国是一个信息化大国,但不是一个信息化强国。
中国在信息技术的基础方面还很薄弱,其中发展和加强CPU的设计和制造技术是信息技术和科技界与教育界的一项重要任务。
当然CPU设计本身是很复杂的,目前先进的CPU芯片上的晶体管数已经达到数亿个;
先进的CPU还有很多复杂技术,如多发射,乱序执行,多线程,向量与标量部件的混合以及多样的执行预测技术等;
现在的CPU还在向多核心芯片发展。
芯片上具有10亿个晶体管的CPU已经离我们不远。
此外,CPU的自检测设计技术也很复杂,高级CPU套片(CHIPSET)的复杂程度一点也不亚于CPU中央处理器简称CPU(CentralProcessingUnit),它是计算机系统的核心,主要包括运算器和控制器两个部件。
2.2CPU的结构
2.2.1算术逻辑单元ALU
ALU是运算器的核心。
它是以全加器为基础,辅之以移位寄存器及相应控制逻辑组合而成的电路,在控制信号的作用下可完成加、减、乘、除四则运算和各种逻辑运算。
就像刚才提到的,这里就相当于工厂中的生产线,负责运算数据。
2.2.2寄存器组RS
RS实质上是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。
采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。
但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。
寄存器组可分为专用寄存器和通用寄存器。
专用寄存器的作用是固定的,分别寄存相应的数据。
而通用寄存器用途广泛并可由程序员规定其用途。
通用寄存器的数目因微处理器而异。
2.2.3控制单元
正如工厂的物流分配部门,控制单元是整个CPU的指挥控制中心,由指令寄存器IR(InstructionRegister)、指令译码器ID(InstructionDecoder)和操作控制器0C(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。
它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。
操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
2.2.4总线
就像工厂中各部位之间的联系渠道,总线实际上是一组导线,是各种公共信号线的集合,用于作为电脑中所有各组成部分传输信息共同使用的“公路”。
直接和CPU相连的总线可称为局部总线。
其中包括:
数据总线DB(DataBus)、地址总线AB(AddressBus)、控制总线CB(ControlBus)。
其中,数据总线用来传输数据信息;
地址总线用于传送CPU发出的地址信息;
控制总线用来传送控制信号、时序信号和状态信息等。
2.3指令系统的设计
计算机的操作基本上可归结为信息传送。
所以在逻辑结构上,关键在于如何实现数据信息的传送,即数据的通路结构。
在现代计算机中,普遍采用总线结构。
总线是一组能为多个部件共享的公共信息传送通路,可以分时的接收与发送各个部件的信息。
总线可以分为4种:
(1)CPU内部总线。
(2)部件内总线。
(3)系统总线。
(4)外总线。
在本毕业设计中,也采用了总线结构。
计算机的基本功能是进行各种运算,包括算术运算与逻辑运算。
计算机的工作,基本上体现为执行指令,一台计算机所能执行的全部指令,称为该机的系统或称为指令集合。
指令系统是程序员编制程序的基础,虽然现在已经广泛应用各种程序设计编程,但需要通过解释或编译转换为机器可以识别与执行的指令序列。
指令系统表明一台计算机具有哪些功能,因而在很大程度上决定着如何使用计算机。
CPU的基本任务是解释执行指令代码,所以指令系统又在很大程度上决定着计算机如何工作,它是硬件逻辑设计的基础,与CPU的总体结构及整机设计思想密切相关。
指令系统是CPU的硬件与软件的分界面,是设计和利用CPU的出发点。
本处理器字长为4位。
指令系统如下:
Load指令:
用来将数据从内存中读到CPU的寄存器中。
Add指令:
做一次加法运算。
Sub指令:
做一次减法运算。
Store指令:
存储指令,将数据存入RAM中。
Jmp指令:
无条件转移指令。
Load_far指令:
将内存中的数据读入到CPU中。
由于本处理是用来做组成原理实验的,在实现上与原来的实验保持了基本的一致。
并且增加了一种寻址方式。
对于CPU指令的设计来讲,主要考虑的指令的字长,地址结构与寻址方式。
由于受处理器字长的限制,设计的指令为固定的字长,并且每条指令占用两个字,第一个机器字为操作码(OPCODE),后一个指令字为操作数(OPRAND)。
微处理器的总体结构与数据通路如图所示:
图2-1处理器的数据通路结构
2.4数据通路的设计
在上几节中,给出了微处理器的通路结构和模块的划分,在数据通路结构确定之后,下面将给出它们之间通过总线传送的路径。
指令的执行基本上可以归结为信息的传送,即控制流和数据流两大信息流。
控制流表现为指令信息的传送,及由此产生微命令序列。
指令信息与数据信息读取,以依赖于地址信息。
弄清各类信息的传送路径,有助于从逻辑结构的角度了解指令是如何执行的,以及需要为此发出那些微命令。
(1)指令信息的传送:
RAM系统总线IR
(2)地址信息传送:
PC系统总线MAR
ADDR系统总线MAR
RAMMDR系统总线ADDREG
(3)数据信息传送:
RAMMDR系统总线ACC
ACC+MDRACC
ACC-MDRACC
ACC数据总线MDRRAM
2.5微命令设计
在全面分析了各类信息的传送路径以后,对指令如何执行就有了进一步的了解,并为时序的安排和相应的微命令的设置打下了基础。
在本微处理器的设计中,设置了以下微命令:
微处理器的控制信号:
ACC_bus用ACC的内容驱动总线,三态输出
Load_ACC将总线上的数据放入ACC中
PC_bus用PC的内容驱动总线
Load_IR将总线内容装入IR
Load_MAR将总线内容装入MAR
MDR_bus用MDR的内容驱动总线
Load_MDR将总线上的数据装入MDR
ALU_ACC将ALU的结果送ACC
INC_PCPC+1->
PC
Addr_bus用ADDREG的内容来驱动总线
Load_Addr用总线的内容来装载ADDREG
CS片选,用MAR设置存储器地址
R_NW读取,不可写
ALU_add做加法运算
ALU_sub做减法运算
在确定了微指令和数据的传送路径之后,就可以根据指令的功能需要选择上述微命令中的有关部分,形成微操作命令序列,实现指令功能。
第三章微处理器各个模块的设计与实现
3.1指令寄存器IR的设计
IR是用来保存从内存中取来的指令,IR基本上是一个带有使能控制端的寄存器,在时钟的上升沿对输入的数据进行锁存。
总线连接到IR的输入端,其输出连到控制器输入端。
对于总线数据,使用IEEE的库来进行描述。
具体名称为IEEE.STD_LOIC_1164.ALL,可以用它来定义位或位向量。
由以上的介绍,给出了接口信号与描述的方法,也就不难用VHDL语言来实现。
在QuartusII4.0中可以新建一个工程,名字为IR,新建一个VHDL文件名字也为IR,在其中用VHDL来描述该寄存器。
在QuartusII4.0
中,它支持层次化的设计。
在编译并综合后,综合后得到其RTL视图。
图3-1RTL视图
图3-2IR的波形文件
3.2程序计数器PC的设计
程序计数器是一个有复位端的、可以装入计数初值的通用计数器。
由于机器的字长为4位,因而它的计数范围从0到15。
也就是说它的寻址能力只有16个单元。
因而存储器的大小为16个机器字。
当然,这样做的最大的优点是可以简化设计,缺点是在很多地方要受寻址能力和存储能力的约束。
改进的方向是增加指令字长,比如8位,16位,32位等和改进处理器的体系结构。
VHDL语言来描述电路,必须要包含相应的库文件。
本模块的设计中除了包含最基本的ieee.std_logic库外,还必须包含ieee.numeric_std和ieee.unsigned库。
在这两个库中定义了无符号数的加法。
调用这两个库以实现PC<
-PC+1的运算。
图3-3程序计数器的设计
3.3算术逻辑单元ALU模块的设计
ALU是算术逻辑单元,中规模集成器件如74LS181就是一个典型的ALU。
ALU是用来完成算术逻辑运算的。
对于组合逻辑实现来讲,最基本的单元是全加器。
而对于FPGA实现的器件来讲,实现一个运算器变得非常的简单,只要用一个运算符并在头文件中包含相应的库及可。
逻辑综合工具会自动的生成对应的运算单元。
这样设计出来的模块就有很强的移植性,可以在不同的硬件上进行实现,而且易于修改。
不足是可能综合的结果在资源和面积功耗方面不满中要求。
比如对于4位全加器,是采用并行进位链还是采用串行进位链在用硬件是实现进是必须要考虑的。
但对于FPGA则可将这个工作交给综合工具去做,用户只要指定要求就可以了。
图3-4PC的RTL视图
3.4内存储器RAM模块的设计
存储器是计算机系统的五大部件之一。
在处理器的构造中,一般只在片内集成小容量、高速的Cache比如80386、486、pentium等,RAM独立于处理器之外。
在本毕业设计中,充分利用FPGA的可配置性,在FPGA上集成了一小块片内RAM。
并在复位的时候利用FPGA的可配置性引入了一小段程序。
这样就避开了程序的初始引入问题,也就避开了中断等复杂的问题。
为了不拘泥于一个具体的片内RAM,用寄存器堆来实现一个16个字的RAM。
RAM与外界的接口是MDR和MAR。
其中MAR有来保存地址,MDR用来保存数据。
RAM与外界的接口比较复杂,对时序的要求较强。
其接口如下定义:
Load_MAR:
用总线上的数据装载MAR。
送地址。
Load_MDR:
将总线上的数据送到MDR。
MDR_bus:
用MDR的内容来驱动总线。
也就是读出数据。
CS:
RAM选中信号,使能控制信号。
R_NW:
对RAM的读控制信号。
图3-5RAM的仿真波形图
图3-6RAM的RTL图
3.5控制器SEQUENCER模块的设计
Sequencer是处理器的核心模块,是整个设计的重点也是整个设计的难点。
在前面的小节中,已经将各个模块的功能与接口做了比较详细的说明。
如何将各个模块合理的组织起来,使处理器可以正确的运行,进而得到结果是控制器的任务。
微操作命令是最基本的控制命令,如开门关门等电平型命令,多路选择定时脉冲等。
控制器的任务是决定在什么时刻、根据什么条件、发什么命令。
做什么事。
因此,产生微命令的基本依据是时间(如周期节拍、脉冲等时序信号)、指令代码(如操作在码、寻址方式、寄存器号等)、状态(如CPU的内部状态字、控制设备要考虑的外部状态)、外部请求(如控制请求、外部中断请求、DMA请求)等。
这些信息称为逻辑变量,经组合逻辑产生的微操作命令序列,或形成相应的微程序地址,通过微程序中的微指令直接产生微操作命令序列。
按照微命令的形成方法,控制器可以分为组合逻辑控制器和微程序控制器两种。
由于在FPGA中实现组合逻辑控制是比较简单的,而且硬连逻辑有着速度上的优势。
因此在本本设计中,采用了组合逻辑控制器。
在处理器中,由于其速度高,一般采用同步时序逻辑,因而在本设计中也采用了同步时序。
在大规模集成电路的设计中,使用状态机来进行设计是电子工程师经常采用的手段。
VHDL语言支持有限状态机的描述。
一个控制器可以将它的每一条命令分成若干个状态,这些状态中有许多是相同的,这样就利于采用状态机来进行实现。
关键源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYMUX5IS
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;
LIBRARYIEEE;
ENTITYMUX3IS
SW_B,CS:
FEN2_IN,MUX2_2IN,SW_IN:
MUX3OUT:
ENDMUX3;
ARCHITECTUREAOFMUX3IS
PROCESS(SW_B,CS)
IF(SW_B='
AND
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 简易 cpu 设计