网站大量收购闲置独家精品文档,联系QQ:2885784924

基于MIPS32的SOC设计实践(上)(Verilog+Quartus Ⅱ+...-精选.ppt

基于MIPS32的SOC设计实践(上)(Verilog+Quartus Ⅱ+...-精选.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MIPS32的SOC设计实践(上)(Verilog+Quartus Ⅱ+...-精选.ppt

MiniSys指令格式详解 100 100 100 100 * P.* * MiniSys指令格式详解 * P.* * MiniSys指令格式详解 * P.* * MiniSys指令格式详解 * P.* * 第3章 MiniSys的设计 MiniSys CPU设计架构 MiniSys CPU中各个单元 指令执行的分析 设计流水线处理器的考虑 设计多核处理器的考虑 * P.* * MiniSys CPU设计架构(1) 指令执行的步骤 ifetch idecode Control Execute Write Dmemory * P.* * PC Clock 程序ROM 读地址 指令 [31-0] + 4 控制单元 op 寄存器 0 1 func rs rt rd readR1 readR2 writeR writeD Clock readD1 readD2 Regdst WE Alusrc 符号扩展 immediate 0 1 A B Zero Alu result ALU Address Write Data Mem data 数据RAM 1 0 WE 1 0 jal Regwrite MemtoReg MemWrite Sftmd/sftm/I_format + 左移2位 nBranch Branch 0 1 0 1 jmp | jal 左移2位 address PC+4 1 0 jrn MIPS instruction format op I-format J-format R-format rs rt rd func op rs rt immediate op address * MiniSys CPU中各单元(1) Fetch(取指单元) 定义指令ROM存储器 到程序ROM中取指令 对PC值进行+4处理 完成各种跳转指令的PC修改功能 在有中断的情况下处理中断到来时的PC修改 * P.* * immediate rd PC Clock 程序ROM 读地址 指令 [31-0] + 4 控制单元 op 寄存器 0 1 func rs rt readR1 readR2 writeR writeD Clock readD1 readD2 Regdst WE Alusrc 符号扩展 0 1 A B Zero Alu result ALU Address Write Data Mem data 数据RAM 1 0 WE 1 0 jal Regwrite Memtoreg Memwrite Aluctl/slt/sftmd/sftm/I_format + 左移2位 nBranch Branch 0 1 0 1 jmp | jal 左移2位 addresst PC+4 1 0 jrn 取指单元的设计 * 指令ROM的初始化文件 prgmip32.mif文件(自行创建) DEPTH = 1024; -- 10位地址线 210=1024 WIDTH = 32; -- 数据宽度32位 ADDRESS_RADIX = HEX; --地址采用16进制描述 DATA_RADIX = HEX; -- 数据采用16进制描述 CONTENT BEGIN 0 : 8c020000; --lw $2 0($0) 1 : 8c030002; --lw $3 2($0) [19..3FD] : 3FE: -- jr $1A 中断0返回 3FF: -- jr $1B 中断1返回 END; * P.* * 指令ROM的例化 lpm_rom prgrom(.address(PC[11:2]),.inclock(clock),.q(Jpadr)); // 实际上给出的地址是PC除4的结果,因为MIF文件按0、1、2、 // 3排列的 defparam prgrom.lpm_width = 32; //数据(指令)宽度32位 defparam prgrom.lpm_widthad = 10; //地址线宽度9位 defparam prgrom.lpm_file = prgmip32.mif; defparam prgrom.lpm_outdata = UNREGISTERED; defparam prgrom.lpm_address_control = REGISTERED; * P.* * MiniSys CPU中各单元(2) Decode(译码单元)

文档评论(0)

liuxiaoyu99 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档