周期cpu设计参考

周期cpu设计参考

ID:23361536

大小:1002.50 KB

页数:5页

时间:2018-11-07

周期cpu设计参考_第1页
周期cpu设计参考_第2页
周期cpu设计参考_第3页
周期cpu设计参考_第4页
周期cpu设计参考_第5页
资源描述:

《周期cpu设计参考》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、单周期CPU及其VerilogHDL设计一、指令的设计MIPS32的指令的三种格式的参考:R类型:312625212016151110650oprsrtrdsafunc6位5位5位5位5位6位I类型:312625212016150oprsrtimmediate6位5位5位16位J类型:3126250opaddress6位26位R类型指令的op为0,具体操作由func指定。rs和rt是源寄存器号,rd是目的寄存器号。只有移位指令使用sa来指定移位位数。I类型指令的低16位是立即数,计算时要把它扩展到32位。依指令的不

2、同,有零扩展和符号扩展两种。J类型指令右边26位是字地址,用于产生跳转的目标地址。具体的指令格式和内容请参考MIPS32。设计报告中需自行设计所有指令的二进制格式和对应的汇编指令格式。二、单周期CPU的设计我们把时钟的电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。单周期CPU指的是一条指令的执行在一个这样的时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个周期。2.1执行一条指令所需的硬件电路我们的目的地是要设计CPU的硬件电路,使其能够从存储器中读出一条条指令并执

3、行指令所描述的操作。从存储器中读取指令的动作一般与指令本身的意义无关,可以以同样的方法把指令从存储器中取出。而执行指令则与指令本身的意义密切相关,因此最重要是首先搞清楚CPU要执行的每条指令的意义。下面以两种类型的电路来举例。2.1.1与取指令有关的电路指令存储在存储器中。CPU取指令时把程序计数器(PC)中的内容作为存储器的地址,根据它来访问存储器,从PC值指定的存储单元中取来一条32位指令。如果取来的指令执行时没有引起转移,PC的值要加4;如果转移,要把转移的目标地址写入PC,以便在下一个时钟周期取出下一条指令

4、。图2.1取指令时用到的硬件电路和指令寄存器如图2.1所示,PC是一个简单的32位寄存器,由32个D触发器构成。指令存储器(InstMem)的输入端a是地址、输出端do是数据输出,即指令。图中的加法器专供PC+4使用,它的输出接到多路器的一个输入端。如果取来的指令没有引起转移或跳转,则选择PC+4,在时钟上升沿处将其打入PC;若引起转移或跳转,则用多路器选择下一条指令该打入的PC值。2.1.2寄存器计算类型指令执行时所需电路寄存器类型的指令有add等。如图2.2所示是执行它们所需的部分硬件电路。大多数MIPS指令属

5、于三操作数指令。指令格式中的rs和rt是两个5位的寄存器号,由它们从寄存器堆(Regfile)中读出两个32位的数据。由于寄存器号有5位,所以能从32个寄存器中选出一个。32个寄存器合在一起称为寄存器堆(RegisterFile)。从寄存器堆读出的两个32位数据分别被送到ALU的a和b的输入端。图2.2执行寄存器计算类型指令所需电路具体的计算由ALU完成。ALU的计算控制码aluc由控制部件(ControlUnit)产生。这里的控制部件是简单的组合电路,输入信号是指令的操作码op和功能码func,输出信号3个,它们

6、分别是ALU的操作码aluc、计算结果是否写入寄存器堆的控制信号wreg和下一条指令的地址选择信号pcsource。ALU的计算结果要写入寄存器堆。到底要写入32个寄存器中的哪一个,由5位目的寄存器号rd指定。2.2寄存器堆设计寄存器堆有两个读端口和一个写端口。每个端口都有一个5位寄存器号,用于指定一个寄存器;还有32位的数据端,用于写数据。寄存器堆的参考电路如图2.3,其中,dec5e是一个带有使能端的5-32译码器,mux32x32是一个32位的32选1的多路器,reg32由许多D触发器组成。可以用功能描述风格

7、的VerilogHDL代码来实现,关键部分是类似于二维数组的寄存器变量:reg[31:0]register[1:31](寄存器0的内容永远是0)。图2.3寄存器堆regfile的电路图2.3数据存储器和指令存储器设计我们利用XilinxISE自带的IP核实现数据存储器和指令存储器的设计。在使用IP核时,可以将其作为一个黑盒子,只关注核的功能和参数配置,不需要了解核内部的实现电路。下面以指令存储器的设计为例。2.3.1指令存储器的设计1、双击“ISEDesignSuite14.2”启动软件,建立好project。2、

8、编辑初始化存储器的文档。在工程目录下生成一个txt文档,内容格式为:图2.4初始化ROM的文件格式文件前两行是格式说明,第一行说明数据格式是16进制,第二行说明是初始向量,每个单元内的数据用逗号隔开,结束用分号。这里的数据是机器指令代码。完成后将后缀改成.coe。3、在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择NewSource命令。在弹出如图2.5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。