欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    5级流水无cache-CPU实验计算机组成原理-课程设计报告.docx

    • 资源ID:1492724       资源大小:55.98KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    5级流水无cache-CPU实验计算机组成原理-课程设计报告.docx

    3.中母*2条指令饰指令故揖组关戮钥:NCRONCRlINCR2IXCRO京1第旗S条指令数据相关,有两冲处理方法方法1:在第4条指令的语码制收作0筋田5朽第I条保台的回写於握作为运Uj三B用入法人下一级,如下图所示方法2:为费到读写寄存3的酎回收运,因««写寄存通?时机改在时静下PIg这修1、,指令会营处掘相关了。由25三¾:*S4Kft!8三x*->w11msax.uk(nft三sM三-7.主要用到的关键信号是m_WRCgEn和w.wRegEn,主要运用是在数据相关检测模块foruardingenti(y.vhd中,在ideniity.vhd、exentity.vhd>memaccessentity.vhd中均有运用。具体的运用方法如下。相关的检测都置F”执行阶段二信号WRcgEn是寄存器写使能.SA.SB是寄存静组A.B选择信号.伯号前极去示信号所处的阶段-如JSA衣示处于执行阶段的SA1.相邻指令数据相关的检祗若InjReREn='1',则表示前一指令要回写寄才器,此时,若eSA或eSB等于1.SA,则必定数据相关,这是因为我们规定,若回写寄存器,则寄存器A口选算信号所指定的即有目的寄存器.否则无关,2.中间隔1条指令的两指令数据相关的检测若URegErHJ,则表示第一条指令要回写寄存器。此时,若JSR或JSB等于_SA,则必定数据相关。否则无关.当然,上述两种状况可能会一同出现.这时,我们就按状况1处理.因为状况2可以理解为接连出现状况1。dJRI指令舟右:器输出4.1.3功能实现逻辑通过分析限制信号我们可以也许了解到取指模块的功能实现逻辑是如何的.广义上来说收指模块包括结构相关冲突检测模块,因为PCStall信号(用来实现IF段对PC的更新)和IFnUSh(fi(XjIR写入空指令就来自结构相关冲突检测模块,结构相关检溺模块叫HUZamDClEEnIg其模块图如"HazardDetectEntityBDUnitm_wrMem1.0w_w(Mem(1.0dR(150IFFlushPCStallm_wrMemwrMen在访存阶段的值w_rwMemWrMem在写回阶段的侑d_lR指令寄存器其中输入信号的含义是:通过检测访存阶段的WrMem信号即可确定是否发生了结构冲突.班次取指后,若有冲突,则往IR中写入空指令(NOP),并保持PC不变使得取指延后一个节拍。除此之外.selFlag信号在此处的作用是,确定用状态寄存器输出FIag还是A1.U计算出的临时状态位IHag来推断跳转.4.2W(ID)4.2.1实现功能列表洋码模块实现的功能是:读取指令寄疗器中的指令对指令进行译码,发送限制信号MemACeeSSEnMy1.IemAccessUnitCftw.rr*ToRem_“ReeEnA'resetw-atMm(1.0:EJMVefn1.OOEDen5.包EJMlKMl5.0)w>1.UOrt|l5.Oe.RB4M>".QJ11KMHEgI30*_3130:pC15.6的f115OTFSAl3.01.sApmm-MtQeg3.0Jw.d*iR30:4.4.2输入、输出信号分析主要购入信号:njwrMem内存读写限制信号m_A1.UOut来自A1.U的输出结果m-RBdata要写回的数据PC程序计数器的伯主要输出信号:w-wMen传送到写回模块的内存读写限制信号wr读写限制信号addr要读取的内存地址OuterDB既可作为输入又可作为输出,用于传输数据4.4.3功能实现逻辑访存和取指在功能上是独立的,但是因为CPU对外只有一条地址规和数据线,因此访存和取指在事实上是有联系和冲突的。当执行1.OadNIoB指令时,地址线由A1.U送入访存段的值供应;取指时.则由PC供应.当写内存时,CPU内部数据送往数据线.当须要读内存时,CPU往数据线送高阻.5系统改造5.1 新的指令系统汇编语句操作码功能描述指令类型DDDR.SR0000DRSR->DR算术逻辑指令SUBDR,SR0001DR-SR+DRCMPDR,SR0010DR-SR比较ANDDR.SROOllDRandSR÷DR逻辑与ORDR.SR0100DRorSR->R逻辑或XORDR.SROlOlDRxorSR÷DR异或SH1.DROllO龙辑左移,最低位补0,最高位移入CSHRDROlli龙料右移,最高位补0,以低位移入CMOYIDR.IMM1000IMM(马上数)今DR.存马上数进寄存器数据传送指令MOVDR,SR100lSR÷DR1.OADDR,SRIOlOSR÷DRSTOREDR.SR1011SR-÷(PR)JRADRUOO无条件跳转到ADR,ADR=原K值-OFFSET限制转移指令JRCADRHOl当C-I时,跳转到ADR.ADR=原PC(ft*0ISETJRZADRIllO当Z=I时.跳转到ADR,ADR-原PC值eFFSBTNOPHll空操作其他5.1.1 选择改动说明包括NOP空操作指令在内指令系统共包括16条指令,在原有的25条指令的基础I册除f10条.JI条.具体地.捌除了DEC,INC.TEST,SAR.PUSH.POP.JRNCJRNZ,I.OADH.I.OADI.,新增了,条数据传送指令MOV1.5.2 修改的代码及说明I代码段1,新增内存模块memory.vhd-内存-2015-l(>-30librarj'iccc;useieee.stdjogic_l164.al);useiece.stdjogic_unsigned.all;usework.unitPack.ail:ENTITYmemoryISPORT(databus:inulSTD_1.OGIC.VECTOR(7DOWNTOO);addr:INSID_1.(XilC_VECIOR(7DOWNII)0):wr:INSTDJ)GIC;resecINSTD.1.OGIC):ENDmemory;ARCHITECTUREillOFmemoryISSIGNA1.ramzramJypc:-ramtypeunitpack.vhdUI,ZBEGINPROCESS(addr.wr.ramxla(abus.reset)BEGINIFresct=X)'THENram(O)<=MOVJ&R0&"I,;此处将程序写迸内存中,省略ram(l5)V=JR&”1110”:ENDIE:读写功能的实现IFwr=O1THENdatabus<=Z8:ram(conv_intcgcr(;iddr)<=databus;ENDIF;IFwr=TTHENdatabus<=ram(convJntcgcr(addr)KENDIF;ENDPROCESS;ENDrtI:内存模块运用Vhdl端写,内存由mm组成,读出数据线和写入数据线为同一条数据总线,因此不能同时进行读写.因为这样所以会产生结构相关,即在取指的时帔不行以访存,否则会产生冲突.内存读写功能由Wr信号进行限制,当何为0时执行写功能,当Wr为I时执行读功能,2)代码段2,取指模块ifentity.vhdop<=IR(7dow11o4);,曰<.'i.:j:4一限制相关信号JylFkg用选择当状态寄存据的值来源withJjiClHagselectZZV=Zwhenflag_hold,IemPZwhenoihers;withe-,selHagselectCC<=Cwhentlag_hold,“由于跳转佰号中只保留了JR、JRaJRZ,因此此处只推断该3个OPs-selZ<=,WHEN(op=JRZANDZZ=Ir)ORop=JRelse”;s.selCV:TWHEN(Op=JRCANDCC=)else,a:PCIrScl<='I'WHEN-SdZ二TOrs.sclC=,E1.SEV:此处修改rpc位数当育跳转时pc=pc÷offset.否则PC=PC1WHENO.SePCIncI<=PC+x01m:WITHPCIncScISE1.ECTPCneXl<=s.PCInclPCP)usOffselWHEN.s_PClnclwhenothers;cess(,eset.clk.PCStaIl)beginifreset=UthenPC<=xW;止处修改PC位故elsifF1.1.ING.EDGE(clk)and(PCS(all=,O,)(henPC<=PCnext:endif:endIXoCeSs:取指模块主要修改了与pc相关的地址信号的位数和跳转推断,由于修改指令系统时只保用了JR.JRCJRZ3条跳转指令.因此在跳转推断时只考虑该3条跳转指令,依据跳转推断来选择如何更新PC的值,1)代码段1,执行模块CXCntityAluicaseC-A1.UOpris-选择A1.U的运算,此处主要惨改了位数,逻辑功能不变whenaludd=>A1.UResuIl-OPR*opS;tempV:=(notopR(7)and(no<opS(7)andA1.UResull(7)or(opR(7)andopS(7>and(notA1.URcsult(J);whenaluSub=>Al.URcsuIi:=CPR-opS;(emV:=(opS(7)and(notopR(7)and(not1.UResuh(7)or(NOTopS(7)andopR(7)andA1.UResul(7):whenaluAnd=>A1.lJRcsuh:=opRandopS:whenalur=>A1.URcsuIt:。PRorOPS;whenalXor=>A1.UResuIi:=OPRXOrOpS:whenalShl=>A1.UResuh(7dwnk>I):=opR(6downto0>:A1.URcsuIt(O):=,(;ex:=opR(7);whenaluShr=>Al.URcsuli(OdounloO)opR(7downtoI);A1.UResult(7):='O"ex:=opR<0);-增加了alM0VI的alu功能选择信号及其处理实现whenaluMOVl=>A1.UResult:=,(MXXX),opS(3downto0);whenothers=>null;endease;修改了Hu选择信号以及alu功能信号的推断龙辑,以及状态寄存器的推断龙耨,之所以脩曲是因为位数的修改,除此以外还增加faluM()Vl的alu功能信号及其对应的逻辑功能实现.1)代码段1,译码模块identity.vhd新增WriteBackprcess4resel.c)k)-H【可模块beginIfrcsct=V(hen-新增了初始化寄存器一步RegArray(O)<=X"00”;RegArrayd)<=xW;RCgArray<=x,<X)":RCgAlTay<=-(K)"dsifFA1.1.ING.EDGE(clk)andw_wRegEn='l'thenRegAmiy(WRcgIiKlcx)<=w_WBData:endif:endprocess;DecodjPno:PrgedR>修改了OP码以及限制信号的长度variableOP:std_logic_vcctort3downto0):variableCtrizstdJogic-vcctor(17downto0);beginop:=d_IR(7downto4):修改了操作码的长度“译码产生的信号6A,SB,Wrmcm.WRegEnMcmlbRegeA1.uSgA1.UOprSctHagcaseopis限制信号whenADD=>clrk=dJR(3dwnlo0)&“KT&“I“&”“&“00'&"0000”&”001”;whenSUBB=>ctrk=dJR(3downtoT&“001”&”OOol"&'001”;whenANDins=>ctrl:=dJR(3downto0>&wJ0w&wr&T&tX)r&w0010*&*00r;whenCMP=>cirl:=dR(3downto0)&“10'&'0'&T&“OO'&"Oool'&'001”;新增了MOVl指令及其译码出来的限制信号whenMOVl=>ctri:=dJR(3downto0)&'10"&”imm<='(XXMXM),d.lR(ldownto0);whenORins=>cirl:=<UR(3dowino0)&"10'&T&T&”00'&”0011“&“001”;whenXORins=>CM:=dR(3d»WnkT&T&”OolOKXr&'001”;whenSH1.Ins=>ctri:=d_lR(3downto0)&-10,',1tAo1,(KM)O101,'(X)1m;whenSHRlns=>Cut=(UR(3downto0)&H)()-&-I&"1w&"000w&°01I0h*,'001m;whenMOV=>cirl:=dR(3downto0)&"10'&T&T&0U&'00002Oo0”;when1.OAD=>ctrk=dJR(3dwnlo0)&”0l&T&r&,0()0()”&"Oo0”:whenSTORE=>ctrk=dJR(3downtoT&'000”&”(XK)(r&"000”;whenJRJRZJRC->Cl11:1.DnNothing;W是JR*指令、计幻ofl,sc(并向Exc插入Bubbleoffset<=d_IR(3)&d_IR(3)&d_lR(3>&d_IR(3>&dJR(3downto0):whenOlhCrS=>ctrk三DoNothing;endcase;译码铢块主要修改r限制信号CtrI的位数.并依据“SA.SB.Wrmcm.wRcgEn.McmIoRcg.A1.USn:.AI.UOpr.SctFIag"的依次增加了MOVI指令的限制信号,如下所示:whenMOVI=>CM=CUR(3downto0)*"10"&"1IIOl1010"A"000"imm<="OOO(XK)1Ad-IR(Idownto0);最终还增加了寄存器的初始化。6测试与总结6.1 规则文件(cputxt的内容)6.2 测试代码一RO的位为ADD&RO&,0.-CF=1.ZF=O跳转到15号地址-程序I一折正确性测试-RORlra11M)<三MOVI&RO&'ir:-30ran(I)<=ADD&RO&%>1,:-40ram(2)<=MOV&Rl&RO;-44ra113)<=SBBARIA',l:-4IranM4)<=SUBBR2,10;-4Ir三u!H5)<=ADDAR2&*I;-4Iram(6)<=ORInv&RI&RO;-44ram7)<=ANDIns&RI&R2:-4Iran>(8)<=XORI>&RO&RI:-5Iran(9)OSH1.Ins&R1&"OCT;-52n(IO><=SHRInv&RO&tW;-22ranM!l)<=1.OAD&RO&R2.ranl2><=CMPR0Rkramf3)<=JRC*lll;00-20000:0;WJ(X)OOOOOi11ro(l4)<=MOVIR3;-假如跳转则不执行说指令ranx!5><=STORE&R3&RO;raiiH16><=MOVI&RO&11,:ram(7)<=MOVI&Rl&();ra11Ml8)<=SUBB&RO衣RkraM!9><三JRZAmIIII*:ram(20)V=JR&YMXW:-0号地址的内容变为(XKM)OOOl-RO=3-RI=I一RO=RO-RI-此处不趺此处跳6.3 测试结果测试环境测试程序测试结果五级流水Quartus程序1正确6.4 涌试总结试程序的结果都与预期相符,证明测试结果是正礴的,*一,I,T1i1V:ii广?fJIii片l<IrI1IrS-I.!VM>I1mI1:»1.IJ1tIIIF!<.U"1Ml郭;d,J,tJIIi鬻h产1ii辛片tr.1-"蚱ft馆4J',!-11:睚:Pil!I1S21j-Ilii1.HjhiislH5.一>>>a)aiHi»»i>tr>>>>r>r*it>iiiiiiiiiiiiiiiiilmMiiiiiiiMfii;IdJHBidHHHHiHHeaRnnnmtnnnRr«nanRanain0rr*,*Cr*1.1.r/、r*l/rrr,lr-*尸1.1.»1U1.I1.Jm1.J1.i1.j1.k*ukJ7j1.jkJ7本课程设计的总结7.1A同学总结由于上一学期在计算机殂成原理的综合性试验中担当了主力队员,对CIXl的加木组织结构也算是非常了解,因此该学期主动担当了加长。然而事实并没有那么简洁,当第一次看到代码时发觉,由于上次综合性试验大部分通过M图连线实现.逻辑功能非常明确,一目了然然而该学期的CPU顶层实体是通过Vhdl代码实现的,因此初期花了不少时间在了解代码的语法以及逻辑功能上,完成此步以后,我们组开展了对3种相关进行具体分析,弄清谦流水CPU的实现原理后,后续的修改工作就北常简洁了。一起先我们足米纳机箱+DebugConiruIlCr的方式进行调试,后来由于试验室的机箱资源有限.便再次实行了用QUartUs的时序功能仿真来调试并添加了内存模块.7.2B同学总结在此次课程设计中.我主要:参加修订指令系统:负责数据相关模块的修改:负责译码和访存模块的修改:负责MoVl指令的增加,主要是在常信定义文件UnitPaCk里增加MoVl的。P码常量以及aluMOVI的alu功能选择信号,并在译码模块埴加MOVI的限制信号及相关代码:负资扩展常业定义文件。在组长的组织下按部就班,大部分不懂得问题都能够通过探讨解决。7.3C同学总结在这次的计舞机加成原理课程设计里,我负责的是:参加修订指令系统:负或结构相关模块的修改:负责执行模块和写回模块的修改:负贲新I更层实体CPUm.bdf文件的接线,主要是在创建rCPUemiIy和memory的bsf文件后,新建cpum.txlf文件并将上述两个悦件加入,利用Quanus的接税功能将原件连接起来。

    注意事项

    本文(5级流水无cache-CPU实验计算机组成原理-课程设计报告.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开