• 360.50 KB
  • 11页

流水线cpu取指和译码电路设计技术规范_v1.0

  • 11页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'流水线CPU取指和译码电路设计技术规范版本1.0日期:2012年09月16日 版本信息版本日期描述作者1.02012-09-16流水线CPU取指和译码设计V1.0唐凯林封面版本信息必须与本页最后版本保持一致。 目录参考文献:41功能概述42应用范围63电路结构框图64工作频率75设计工艺76引脚描述77详细描述流水线寄存器88时序说明88.1写数据时序图88.2读数据时序图99测试描述910绝对最大范围911温度信息912封装9 参考文献:郑伟民,汤志忠,汪东升(译),计算机系统结构——量化研究方法(第三版)中文版。李亚民(著),计算机原理与设计——VerilogHDL版。JohnL.Hennessy,DavidA.Patterson(著),ComputerArchitecture:AQuantitativeApproach,ThirdEdition.1功能概述流水线是数字系统中一种提高系统稳定性和工作速度的方法,广泛应用于高档CPU的架构中。根据MIPS处理器的特点,将整体的处理过程分为取指令(IF)、指令译码(ID)、执行(EX)、存储器访问(MEM)和寄存器回写(WB)五级,对应多周期的五个处理阶段。如图3.1所示,一个指令的执行需要5个时钟周期,每个时钟周期的上升沿来临时,此指令所代表的一系列数据和控制信息将转移到下一级处理。图3.1流水线5级示意图1.MIPS指令格式1)R型指令格式op、funct:共同决定指令名称,都为6位;rs:指定第一操作数的寄存器地址,为5位;rt:指定第二操作数的寄存器地址,为5位;rd:指定目标寄存器地址,为5位;sa:位移运算的移动位数,为5位。本设计要实现的R型指令有:①算术逻辑运算指令:ADD、SUB、AND、OR、XOR ①移位指令:SLL、SRL、SRA②寄存器跳转指令:JR1)I型指令格式op:决定指令名称,为6位;rs:指定第一操作数的寄存器地址,为5位;rt:储存结果的寄存器地址,为5位;Imm:立即数,为16位。本设计要实现的I型指令有:①存储器访问指令:LW、SW②立即数算术逻辑运算指令:ADDI、ADDIU、ANDI、ORI、XORI③分支指令:BEQ、BNE注:①I型指令中立即数算术逻辑运算指令对立即数(Imm)的处理应分为两类情况考虑:当指令为ADDI时,指令中的16位立即数(Imm)应做符号扩展为32位:sign-extend(Imm)。此符号扩展电路在ID级完成。当指令为ANDI、ORI、XORI时,Imm应做“0”扩展为32位。考虑到资源的限制,在执行ANDI、ORI、XORI指令时,“0”扩展功能放在ALU内部(即EX级)完成。②对于条件分支指令:不执行分支语句时,跳转地址应为下一条地址;执行分支语句时,跳转地址应为下一条地址加上跳转指令数,即为立即数。由于跳转方向有两个:向前与向后,故立即数存在正负性,应该有符号扩展为32位:sign-extend(Imm)。如果能够将立即数的位数扩充,跳转指令的范围将大大增加。由于CPU中指令的起始地址都是4的倍数,因此它们地址的后两位都是0,那么跳过的指令数后两位也应为2’b00,故可将16为立即数左移两位扩充为18位,寻址地址范围也扩大4倍。因此分支地址可表示为{PC+4+sign-extend(Imm)<<2}.③对于取字指令LW操作为:rt<=Mem[rs+sign_extend(Imm)]对于存字指令SW操作为:Mem[rs+sign_extend(Imm)]<=rt由于地址的变化是在内存中进行,故立即数只需进行有符号位扩展,不能位移。2)J型指令格式op:决定指令名称,为6位;address:跳转的地址,为26位。 注:指令都是32位,因此我们要把26位跳转地址扩展为32位。由于CPU中指令的起始地址都是4的倍数,因此它们地址的后两位都是0,可以把26位的address扩展为28位:{26-bitsaddress,2’b00};剩下的最高4位则直接从PC中取,即跳转地址扩展为:{PC[31:28],26-bitsaddress,2’b00}。2应用范围该电路使用硬件实现了流水线CPU的简单功能,适合一些简单的需要通过CPU来进行操作的工程中。3电路结构框图此技术规范主要针对的是IF级和ID级。 4工作频率工作频率:150MHz。5设计工艺目标工艺为48(32)nm标准单元工艺。6引脚描述引脚名称方向说明clkInput系统时钟reset系统复位信号,高电平有效ZR分支指令的条件判断结果JR寄存器跳转指令JrAddr[31:0]JR指令跳转地址BranchAddr[31:0]条件分支地址NextPC_if[31:0]下一个PC值Instruction_id[31:0]Input指令机器码NextPC_id[31:0]指令指针RegWrite_wb寄存器写允许信号,高电平有效RegWriteAddr_wb[4:0]寄存器的写地址RegWriteData_wb[31:0]写入寄存器的数据MemtoReg_idOutput决定回写的数据来源(0:ALU1:存储器)RegWrite_id寄存器写允许信号,高电平有效MemWrite_id存储器写允许信号,高电平有效MemRead_id存储器读允许信号,高电平有效ALUCode_id[4:0]决定ALU采用何种运算ALUSrcA_id决定ALU的A操作数的来源(0:rs1:Sa)ALUSrcB_id决定ALU的B操作数的来源(0:rt1:Imm)RegDst_id决定Register回写是采用的地址(rt/rd)ZR分支指令的条件判断结果JR寄存器跳转指令BranchAddr[31:0]条件分支地址Imm_id[31:0]符号扩展成32位的立即数Sa_id[31:0]0扩展成32位的移位立即数RsData_id[31:0]Rs寄存器数据RtData_id[31:0]Rt寄存器数据 RdAddr_id[4:0]Rd寄存器地址RsAddr_id[4:0]Rs寄存器地址RtAddr_id[4:0]Rt寄存器地址7详细描述流水线寄存器流水线寄存器负责将流水线的各部分分开,共有IF/ID、ID/EX、EX/MEM、MEM/WB四组。而此技术规范,主要针对前两组。根据前面的介绍可知,四组流水线寄存器要求不完全相同,因此设计也有不同考虑。(1)当流水线发生数据冒险时,需清空ID/EX流水线寄存器而插入一个气泡,因此ID/EX流水线寄存器是一个带同步清零功能的D型寄存器,清零信号为Stall。(2)当流水线发生数据冒险时,需保持IF/ID流水线寄存器不变,因此IF/ID流水线寄存器具有使能信号输入,使能信号为PC_IFWrite;当流水线发生分支冒险时,需清空IF/ID流水线寄存器,清零信号为IF_flush。因此,IF/ID流水线寄存器是一个带使能功能、同步清零功能的D型寄存器。需要注意的是,由于仿真对初始值的要求,上述寄存器都应考虑有reset信号的接入,以提供仿真时各寄存器的初值。8时序说明8.1写数据时序图 8.2读数据时序图9测试描述该电路所能完成的功能是对数据进行加、减、移位等操作。因此,我所选择的测试方法是通过xilinx公司的spartan3e上的LCD屏幕,将CPU操作后的结果显示在LCD屏幕上。即可测试功能是否正确。10绝对最大范围工作时钟150MHz。供电电压2.3V~2.45V。电流消耗通常为1.1A,最大为1.3A。备用电流125uA,最大为550uA。功耗通常为5.5W11温度信息环境温度最高温度工作条件0°C~80°C不要超过环境温度30°C保证在温升30度的范围内一般是稳定的。不管你超频到什么程度,都不要使你的cpu温度高过环境温度的30度以上。12封装采用484引脚的PBGA-30X30-2L封装形式。 '