基于FPGA16位CPU设计.docVIP

  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文档。上传文档
查看更多
基于FPGA16位CPU设计

基于FPGA16位CPU设计   【摘 要】本文研究了常见处理器的结构和功能,将CPU的核心功能集成到FPGA上,采用VHDL作为硬件描述语言完成了一种拥有双运算核心的4级流水线架构的16位RISC处理器设计。采用FPGA技术设计的处理器精度高,速度快,为高性能的CPU设计提供了研究价值。   【关键词】CPU;FPGA;双运算核心   0 引言   随着我国信息化进程的不断推进,计算机技术还将对我国的生产力的发展产生日益深远的影响。近年来我国在CPU设计领域取得了一些重大突破,相继研制出龙芯系列、方舟系列高性能CPU,此外位于台湾的威盛电子也是较大的处理器生产商。然而我国的CPU设计及制造技术与国外相比还有很大差距,我国信息产业中与CPU相关的许多核心技术及产品仍然主要依赖进口,不仅经济上受制于人,而且信息系统的安全乃至国家安全也面临威胁。FPGA技术自20世纪80年代中期出现至今,引起了电子设计技术的深刻变革,也成为现代电子设计技术的核心。因此,基于FPGA技术的CPU设计具有较高的研究价值。   1 16位CPU的流水线结构设计   流水线(pipelining)是提高CPU运行效率的关键技术。和工业流水相似,流水线的核心思想是把多条指令的执行重叠起来。在任何时候,CPU同时处理多条指令,这些指令分处于不同的运行周期,使用不同的物理器件。   在流水线CPU中,每条指令的指令执行过程被分成若干个执行阶段。只有当每一个执行阶段都完成之后,一条指令才算执行完毕。在每一个指令执行阶段中,当一条指令在该阶段中完成执行之后,下一条指令将立即进入到该执行阶段开始执行。当流水线处于饱和状态时,CPU中将有与流水线级数相同数目的指令在同时执行,本设计将流水线分为4个阶段,每一个执行阶段的名称和功能如下:   1)IF:取指令阶段;   2)ID:指令译码阶段;   3)EXE:指令执行阶段;   4)PPR:后处理阶段。   2 16位CPU主要模块设计   2.1 程序计数器模块的设计   程序计数器的模块结构如图1所示,其中pc_addr为16位数据输出端口,os16为CPU与操作系统的接口,enable为其控制端,当enable为高电平时os16输入有效。ir_addr和imme分别为分支和跳转指令的指令运算所需要的16位扩展加数输入端口。en为该模块的使能控制输入信号,load和branch分别为跳转和分支控制信号。该模块的功能为:在时钟作用下,当跳转和分支控制指令为低电平时,pc_addr地址加1。   2.2 指令寄存器模块的设计   此模块的结构图如2所示,其中data为16位数据输入端口,ena为该模块的使能信号端口,clk和rst分别为时钟和复位信号端口,instr为16位数据输出端口。   此模块的功能是在ena信号为高电平的条件下将16位输入指令数据送给16位输出端口instr。   图1 图2   2.3 ALU模块设计   此模块结构如图3所示,其中a和b为16位操作数输入端口,aluop为4位的alu操作码信号输入端口,shift为4位的偏移量信号输入端口,result为16位的结果输出端口。此模块为CPU的核心运算模块,其功能为在aluop的控制下进行各种算数、逻辑及移位运算操作。ALU操作码aluop并不是指令中的操作码部分,而是经由指令译码模块产生的控制信号。   图3   2.4 指令译码模块的设计   此模块为CPU的逻辑控制及调度中心,它的功能是根据输入指令的类型及特点产生一系列的控制信号,协调其他模块正确滴完成指令的执行过程。   2.5 通用寄存器堆的设计   通用寄存器堆模块为CPU的通用数据集散中心,它既可以为指令的执行提供操作数,也可以存储运算处理的结果,还可以和主存进行数据交换。此模块采用通用RAM模块的设计思想,在普通的RAM基础上扩展相应的数据及地址输入输出端口实现了通用寄存器堆的功能。(下转第242页)   (上接第237页)3 CPU的结果测试   本设计采用的验证方式是设计相关的外围模块,通过实际运行测试程序来验证CPU的方法。这种方法更具体更实际。图4为本设计的16位CPU由os16端口装入程序首地址的操作的时序仿真结果。   图4   通过仿真结果可以看出,本设计中的处理器功能正确,能实现定点加减法运算、逻辑运算、移位运算、数据传送、指令跳转等功能,控制逻辑及数据通路的时序匹配合理,运算速度快,精度高。   4 结论   本设计根据FPGA技术的特点,提出了一种基于FPGA的16位CPU的设计方法。设计中采用了自顶向下、模块化的设计思想,将整个CPU的设计分各个功能模块,利用VHDL语言进行了各个功能模块的设

文档评论(0)

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

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

1亿VIP精品文档

相关文档