0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自制CPU(一)单周期

学FPGA,慢慢来 2018-07-16 09:20 次阅读

设计是基于MIPS指令集的单周期,多周期,流水线CPU。最终实现也是在FPGA板上跑了一个小程序,开发版使用的是basys3.基础指令集等在此就不在为大家细说了,他人的博客已经讲述的很清晰了。代码和数据通路均已上传至CSDN下载频道,大家可以自行下载。我们这里先讲CPU究竟是如何进行操作的。

CPU再进行一次操作的时候实际上就是在指令存储器中读出一条指令,在取出这条指令之后,将他的前6为拆分出来,进行判别他是哪种指令。根据前六位操作码的分类来控制数据通路中的不同部件的使能来控制数据的流向。

R型指令就是选择将Rs和Rt作为地址访问寄存器堆,读出其中数据输入至ALU的数据读口,由func来确定ALU的运算的类型,计算结束之后再将输出的数据写会到寄存器堆的Rw地址对应的存储单元。

I型指令的基础指令和R型的基本形似,只不过将数据busB改换为立即数进行零扩展后的数据操作,写回至Rt中。I型指令的非常重要的三条指令为load(加载),store(存储),beq(分支跳转)。load,store指令将Rs和立即数符号扩展后相加作为内存单元地址,load指令是将内存单元内容送至Rt,store是将Rt中的值送至内存单元。beq指令是将rshert之中的数据进行比较,相等则跳转到立即数和当前指令所处位置和1三者相加的位置。

三种指令如何操作了解了,下面设计就会很简单,根据不同的指令的不同数据通路,让主控单元输出不同控制数据正常流入下一级。

讲的比较简略,如有不理解的欢迎提问或者留言。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21274

    浏览量

    592837
收藏 人收藏

    评论

    相关推荐

    STM8S的NOP指令周期是多少?

    大家好,STM8S的NOP指令周期是多少?现在外部晶振16MHZ,CPU不分频,请问NOP的周期是多少?因为想用NOP做延时,谢谢!
    发表于 04-09 07:54

    好,自制一个桌面萌宠

    忙碌时光里相伴,治愈各种不开心,谁还没有个梦中“萌宠”了?想要的不离不弃,却因为各种原因还在寻寻觅觅、犹犹豫豫……好,那就自制一个桌面宠物——今天特别分享@有出息的男孩_大佬的开源佳作。简单可爱自带憨态,很适
    的头像 发表于 02-24 08:04 215次阅读
    好,<b class='flag-5'>自制</b>一个桌面萌宠

    TLE9879电阻方案驱动BLDC如何配置周期内采样两次?采样时间如何触发?

    TLE9879电阻方案驱动BLDC 如何配置周期内采样两次?采样时间如何触发?
    发表于 02-19 07:56

    ADuC7060个指令周期为几个机器周期个机器周期为多少个振荡周期

    假定使用内部32.768Khz振荡频率,倍频至10.24MHZ,内核频率为分频即10.24MHZ,那么个指令周期是多少?个指令周期为几
    发表于 01-15 07:22

    怎么自制恒流恒压可调电源

    自制恒流恒压可调电源是一项相对复杂的任务,需要一些电子基础知识和相关的电路设计技术。以下是步骤指南,以帮助你自制恒流恒压可调电源。 第一部分:理论基础 了解恒流恒压电源的原理和应用领域。恒流恒压
    的头像 发表于 12-26 13:55 948次阅读

    占空比什么是频率,什么是周期

    占空比(Duty Cycle)是指一个周期内,信号处于高电平的时间占整个周期的比例。通常用百分比表示,占空比越高表示信号处于高电平的时间越长。 频率是指一个信号的周期性重复发生的次数,在每一次
    的头像 发表于 12-18 14:41 1121次阅读

    AT32F系列TMR周期模式的使用方法

    AT32F系列周期模式演示AT32F系列TMR周期模式的使用方法。
    发表于 10-27 06:58

    TMR周期模式CVAL值从1开始计数的解决方式

    TMR 处于周期下,当 TMR 的 TMRx_PR 寄存器设置为奇数,且 TMRx_DIV 设置为 0 时,向上溢出更新中断,此时 TMRx_CVAL 会在第二次更新中断后从 1 开始计数,
    发表于 10-20 08:17

    周期cpu的设计思想是什么?怎样实现cpu多流水线?

    周期cpu的设计思想是什么?怎样实现cpu多流水线? 多周期cpu的设计思想是针对传统的单周期
    的头像 发表于 10-19 16:53 1378次阅读

    周期cpu和多周期cpu的区别 多周期cpu和流水线的区别

    周期cpu和多周期cpu的区别 多周期cpu和流水线的区别  单
    的头像 发表于 10-19 16:53 5855次阅读

    用a4纸自制款手势鼠标项目

    神奇arduino:用a4纸自制款手势鼠标项目文档请下载附件哦
    发表于 10-10 06:14

    大神手工自制CPU的过程

    为了深入理解这个问题,大神耗时整整半年,“逐点”焊接,自制了一个CPU,杰作如下图所示。
    的头像 发表于 09-27 09:41 565次阅读
    大神手工<b class='flag-5'>自制</b><b class='flag-5'>CPU</b>的过程

    E203处理器内核,mdv模块虽然需要多个周期执行,但是仍然被视为是周期指令?

    在alu模块中,可以看到mdv模块(长乘/除模块),具有长周期标志指令 但是这条指令在mdv模块中直为0 在E203中,每条长指令在解码后数据会直带着Tag,从disp-&
    发表于 08-12 06:11

    小伙手工制作了一款32位CPU

    此前,我在 Youtube 上发现了电子爱好者 Ben Eater 自制 CPU(构建著名的 8 位计算机和经典的 6502 微处理器)的相关教程,所以非常着迷,也就有了自制 CPU
    的头像 发表于 07-11 16:11 557次阅读
    小伙手工制作了一款32位<b class='flag-5'>CPU</b>

    自制RGB LED矩阵屏蔽

    电子发烧友网站提供《自制RGB LED矩阵屏蔽.zip》资料免费下载
    发表于 06-16 15:48 0次下载
    <b class='flag-5'>自制</b>RGB LED矩阵屏蔽