欢迎来到天天文库
浏览记录
ID:50321653
大小:1.47 MB
页数:16页
时间:2020-03-08
《基于VHDL语言的8位CPU的设计(quartus仿真).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于VHDL语言的8位RISC-CPU的设计学生:李艳超指导老师:孙冰时间:2012-5-26毕业设计主要内容:本课题是应用硬件描述语言VHDL语言实现8位RISC-CPUIP软核的设计。通过对RISC-CPU结构和指令执行的分析将整个系统划分为各个功能模块,并阐明各模块间的接口信号,给出了每个模块内部设计实现的详细叙述,最后介绍对设计的综合和验证工作,给出了仿真验证数据以及仿真波形图。第一部分:RISC-CPU的架构设计一个基本的CPU要包括三部分功能:数据的存储、数据的运算和控制部分。与之相对应的硬
2、件结构也分为三部分:存储器、数据通路和控制器。指令状态信号控制信号读写控制信号存储器、数据通路和控制器这三部分的基本关系图控制器数据通路存储器第一部分:RISC-CPU的架构设计图1.1各个模块之间的互连关系图CPU的作用是协调并控制计算机的各个部件执行程序的指令序列,使其有条不紊地进行。因此它必须具有以下基本功能:(1)取指令(2)分析指令(3)执行指令从功能上分,RISC-CPU应至少包含八个基本组成部件:时钟发生器指令寄存器累加器算术逻辑单元数据输出控制器地址多路器程序计数器状态控制器第二部分:RI
3、SC-CPU各模块设计与仿真图2.1时钟发生器利用外来时钟信号CLK来生成一系列时钟信号CLK1、FETCH、ALU_CLK送往CPU的其他部件。图2.2时钟发生器仿真波形外来时钟为12MHz,周期T=0.083us,取每格41.6ns。仿真波形如下:时钟发生器2.指令寄存器第二部分:RISC-CPU各模块设计与仿真指令寄存器用于寄存指令。如图2.3,指令寄存器的触发时钟是CLK1,在CLK1的上升沿触发下,寄存器将数据总线送来的指令存入高8位或低8位寄存器中。图2.3指令寄存器图2.4指令寄存器仿真波形
4、3.累加器第二部分:RISC-CPU各模块设计与仿真用于存放当前的结果,它也是双目运算其中的一个数据来源,同时累加器还用来存放算术运算指令的结果,如图2.5所示。累加器采用同步复位方式,即当RST信号为高电平时,累加器的值为零。图2.5累加器图2.6累加器仿真波形4.算术逻辑单元第二部分:RISC-CPU各模块设计与仿真alu_clock为ALU的时钟信号,由时钟发生器输出;opcode取指令寄存器的高3位,ALU根据输入opcode的8种不同操作码分别实现相应的加、与、异或、跳转等基本操作运算;data
5、输入来自数据总线上的数据;accum输入来自累加器的一个操作数;alu_out用来保存或输出操作后的值;zero用于标志ACCUM是否为0.图2.7算术逻辑单元该模块用来执行诸如加减乘除以及寄存器中的值之间的逻辑运算。其各端口功能如下:图2.8算术逻辑运算单元仿真波形在仿真过程中,假设操作码依次为上述8种操作码。数据值为5,累加器值为由3变0,以此来验证zero作用。仿真波形下图所示:5.数据输出控制器第二部分:RISC-CPU各模块设计与仿真控制累加器数据输出,如图2.9由于数据总线是各种操作时传送数据
6、的公共通道,不同的情况下传送不同的内容。有时要传输指令,有时要传送RAM区或接口的数据。图2.9数据输出控制器图2.10数据输出控制器仿真波形假设累加器输出值由00000000递增,验证当data_ena为1时,data输出alu_out的值,当data_ena为0时,data输出"ZZZZZZZZ"。波形如下:6.地址多路器第二部分:RISC-CPU各模块设计与仿真用于选择输出的地址是PC地址还是数据/端口地址,如图2.11所示。每个指令周期的前4个时钟周期用于从ROM中读取指令,输出PC地址。后4个时
7、钟周期用于对RAM或端口的读写,输出数据或端口地址。图2.11地址多路器图2.12地址多路器仿真波形7.程序计数器第二部分:RISC-CPU各模块设计与仿真用于提供指令地址,如图2.13,以便读取指令,指令按地址顺序存放在存储器中。有两种途径可形成指令地址:其一是顺序执行的情况,其二是遇到要改变顺序执行程序的情况。图2.13程序计数器假设指令地址为0、1、2、3…,为便于显示,设置地址指令和程序计数器输出为数制十进制,仿真波形如下图:图2.14程序计数电路仿真波形8.状态控制器第二部分:RISC-CPU各
8、模块设计与仿真图2.17状态控制器仿真波形图2.16封装的状态控制器图2.15状态控制器是CPU的控制核心,用于产生一系列的控制信号,启动或停止某些部件,由状态机和状态机控制器组成,如图。指令周期是由8个时钟周期组成,每个时钟周期都要完成固定的操作。状态转换如图:图2.18状态控制器状态转换图第三部分:RISC-CPU的综合及操作时序为了对所设计的RISC_CPU模型进行验证,需要把RISC_CPU包装在一个模块下,这样
此文档下载收益归作者所有