一种基于FPGA流水线8051IP核设计与实现.docVIP

一种基于FPGA流水线8051IP核设计与实现.doc

  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文档。上传文档
查看更多
一种基于FPGA流水线8051IP核设计与实现

一种基于FPGA流水线8051IP核设计与实现   摘 要: 给出一种基于FPGA的8051MCU的IP核设计方案,指令集与标准8051系列处理器完全兼容。采用译码——执行两级流水结构,并通过了仿真与综合,理论速度较传统8051MCU有6~10倍的提升。针对CISC流水线设计的复杂性,提出了一种高效的实现方案,可以使执行结构近满状态运行,且简便有效地解决了传统流水线所必须面对的三种冲突。设计采用Verilog HDL语言描述,并采用ModelsimSE 6.2进行功能和时序验证,将代码下载到Xilinx公司的FPGA上进行物理验证,测试了一个LED流水灯程序,结果表明软核达到了预期的效果。   关键字: 8051微处理器; 流水线; FPGA; 控制冒险   中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2014)05?0080?03   0 引 言   自51单片机应用以来,对其进行功能改进和性能提升的芯片设计层出不穷。但由于其CISC的架构,对其流水线化始终局限于将CISC指令转换为可以在一周期内完成的类RISC指令,然后使用RISC指令流水作业的方式,这虽然可以让多条指令同时执行,但增加了译码结构的复杂程度,而且需要复杂的控制逻辑解决指令同时执行带来的传统流水线所必须面对的三种冲突。本文原创性地提出一种新的实现方案,该方案解决了这三种冲突,且在FPGA的平台下最大限度地做到填充执行结构,使得指令可以流畅运行。   1 MCU结构与FPGA平台   本文设计的8051 IP核是与传统8051指令集兼容的MCU内核,不包含定时器等模块但通过总线预留接口。其结构如图1所示。   (1)译码器。负责将读入的指令译成可供流水线执行结构执行的控制码,同时向其发送执行所需的地址和数据。它包含4个控制码队列,在译码过程中循环地向四个队列中写入当前指令的控制码,因此可以不必等待指令执行完毕再继续下一条指令的译码。   (2)流水线执行结构。读取译码器发出的控制码并进行相应的操作。主要完成对地址单元的读写,数据总线的操作和PC的控制。   (3)ALU算术逻辑运算单元。完成8位整数的四则运算和逻辑运算,同时内置了位寻址单元,具有位运算的功能。   (4)256 B的RAM单元。其中低128 B是连续的RAM空间,高128 B是特殊???能寄存器SFR,被分散在各模块中。   (5) 216 B的ROM单元。指令存储空间,存储指令和表格。   设计采用Xilinx XCV300芯片,可以使用Xilinx公司提供的BlockRam。它不消耗逻辑资源,且可以实现双通道读写,增大了内部总线的带宽。同时,该型可以使用Xilinx提供的乘法器和除法器,有效地缩短了乘法和除法操作的时间。   2 流水线设计及性能分析   2.1 CISC指令流水化的控制码方案   51单片机采用的是CISC架构,其指令长度从1~3 B不等,指令执行周期也不固定,对其直接进行流水化控制逻辑复杂,难度较大。吸收传统CISC流水化实现方案的积极因素,针对FPGA平台的特定结构,对其进行改进。总体思路是将其转换为可单周期执行的指令,称其为控制码,将它发送给流水执行部件,但不像传统流水线的方式去流水,而是进行单指令流水,即对指令A转换的指令[a(0)-a(n)]进行流水,在A指令的全部次级指令执行完毕前,不允许其他指令进入流水线。这样避免了流水线的结构冲突和数据冲突,对于控制冲突,由于PC在执行转移指令前不会改变,译码仍然是顺序译码,即相当于默认跳转不成功。若预测失败,则流水线暂停跳转后第一条指令的字节数个周期。在中断到来时,自动生成保存当前PC的控制码,同时清空控制码队列并跳转到中断执行程序。   2.2 与传统流水线方案的对比   流水线思想的最终目的,实质上是尽量并行化地使用MCU的全部资源。因此这里提出两条观点:   (1) 不完全流水线化的执行结构若能保证资源的充分使用,因其指令周期较流水化的指令周期短,故其整体效率与流畅的流水线相近。   (2) 尽力避免流水线冲突使得指令运行流畅,不能流畅运行的流水线其效率可能低于无流水的执行结构。   前面提到,与传统流水线不同,这里采取的方案是单指令流水,其实质是将译码和执行分开,让两者并行运行。当指令周期与所执行指令的平均字节数即译码周期相等时,流水线恰好可以无中断地运行。在FPGA平台下,通过对控制码的优化设计,将指令的平均周期控制在两个时钟周期,与51指令集的平均字节数相同,符合提出的理论。同时,在译码器中设置了4个控制码队列,保证了在字节?周期数不匹配时能够有足够的空间进行自动的调节。   3 流水线体系结构   (1) 控制码定义  

文档评论(0)

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

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

1亿VIP精品文档

相关文档