FPGA pipeline RISC设计(1).pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Bruce Zhan 个人空间:/?uid/260 2009-2-2 Version 1-0-0 History: Version 1-0-0, released initiailly FPAG pipeline RISC 设计(1) -- FPGA 设计和ASIC 设计常 用单元代价对比 Area Cost ITEM ASIC FPGA Memory High Medium Multiplier High Medium Registers Medium Low Adders Medium Low Multiplexer Low High . FPGA Hard optimization: Memory, Multiplier . FPGA rich registers with every lookup-table . Multiplexer implemented in look-up table for FPGA FPGA pipeline RISC 设计(2)--FPGA 的设计关键优化Multi plexer 从上一片日记看,cost 的考虑,Multiplexer 对于FPGA 设计来说是奢侈的。 下面看barrel-shift 的设计上怎么优化Multiplexer 以8 bit Barrel-shifter 为例,一个直观的实现如下,如果下图不清楚,可以画一个4-bit barrel-shifter 试试。 根据barrel-shifter 的要求,一个8bit 的shifter 需要有3 层Multiplexer 深度来完成8 中移位 可能,一个N bit 的shifter 需要有log2(N)层深度的Multiplexer,每一层有N 个 Multiplexers(2:1)。 所以N bit barrel-shifter 需要有N*log2(N)个Multiplexer。如果每个Multiplexer 的实现占用 一个LE,共需N*log2(N)个 LE 。 那一个普通RISC 需要的32 bit barrel-shifter 就需要32*5=160 个LE 来实现。 下面是使用乘法器来替代multiplexer 的实现方法,用乘以2 的幂来实现移位, 在有硬件乘法器的FPGA 中,就有了barrel-shifter 的一种乘法替代。 对于算术移位,使用有符号乘法: 对于逻辑移位,使用无符号乘法: 对于循环移位: pipeline RISC 设计(3)--一个简单的三级流水线CPU 组 织结构 CPU 简单描述: 指令格式,两源一目标,例如add ra, ra, rb 或者add ra ,ra, imme 寻址,寄存器寻址,立即数寻址 寄存器个数X 个,位宽32 bit,寄存器组(Register file)为2 读1 写 运算,ALU 运算 流水线,三级流水线, 第一级,取指加译码 第二级,取操作数+运算或者Memory 读操作 第三级,寄存器写回 指令从ICache 中取出,另外该CPU 可以从外部异步Memory 中读取数据,但这一阶段暂 时不支持向Memory 中写操作 该CPU 素描长相如下:(图中只是示意性的画出了两个寄存器) pipeline RISC 设计(4)--增加移位指令 在上面CPU 描述的基础上,再增加桶式移位指令,指令例如, asr ra, ra, rb ,其中ra 放置要被移位的操作数,rb 放置移位位数; 或者 asr ra, ra, imme ,其中ra 放置要被移位的操作数,imme 为移位位数 该桶式移位器用乘法器方法实现,在图中乘法器后面的多路选择器是选择算术移位/逻辑移 位/循环移位的。 画图如下, pipeline RISC 设计(5)--增加data cache 给CPU 增加一个同步Data Memory 读取的功能,同步Data Memory 接口可以连接DCache 或者通过CPU Bus Interface 连接到外部总线(例如AMBA )上。 注意无论是访问异步Memory 或者同步Memory,ALU 输出的是访问Memory 的地址, Memory 的输出被读入到寄存器当中;并且指令格式没有差别,都类似于

文档评论(0)

li455504605 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档