基于fpga cpu数据通路的设计与实现

更新时间:2023-07-14 03:24:02 阅读: 评论:0

教学叙事基于fpga cpu数据通路的设计与实现
   
    CPU的主要构件有:指令地址寄存器PC、指令存储器 (InstMem)、寄存器堆 (RegFile)、立即数生成器(ImmGen)、运算单元 (ALU)、控制单元(CTRL)、数据存储器(DMEM)
    相信假如没有学过计算机组成原理,看到这里会很乏力,确实是很抽象,所以这里给出我的设计,按照这个设计我们照着具体指令重新来捋一遍(将我们实验课的流程反过来)
    我设计的数据通路如下图:漫画女图片
尊重自己
    建议照着图边看边比划,举几个栗子:
手机浏览器哪个好用    这条指令是什么意思捏,就是将 x1和 x0寄存器的内容相加,然后写到 x2中。
    那这一条指令就执行完毕了。
    这条指令是什么意思捏,就是将 PC+4写到寄存器 x2中,同时要跳转到 Label处。
    那这一条指令就执行完毕了。
    这条指令是什么意思捏,就是判断寄存器 x1和寄存器 x2的内容是否相等,假如相等则跳到 PC + Label处,否则顺序进行(PC + 4)。
    那这一条指令就执行完毕了。
    这条指令是什么意思捏,就是将存储器中地址为 20 + num[x1]的数据写到寄存器 x2中。
    那这一条指令就执行完毕了。
    这条指令是什么意思捏,就是将寄存器 x2中的数据写到存储器中地址为 20 + num[x1]处。
    那这一条指令就执行完毕了。
    其他指令大同小异,大伙就自己康康,很快就清晰了,有问题也可以评论区讨论。
    注意:这里有一些指令是需要单独处理的,比如 lui和 auipc等等这些,方法其实比较灵活,以 lui为栗子:
    看起来好像后者更麻烦,但是在电路上差别不大,都是复用相同的部件,只是控制信号不同
    那么了解相应的部件功能和信号含义后,你也可以设计相应的 CPU啦
    虽然可能你对于单独设计一个全新架构的 CPU感到迷茫和吃力,但是我们可以在已有的架构基础上做自己的修改呀。这样也是在考验你对一条指令执行过程的熟悉程度,至于创新嘛,总得有个基础和过程。
    可以不用照着我的设计,毕竟这种东西嘛很自由。比如说我想把比较放在 ALU中的减法一起完成行不行?也可以,就是少了个 COMP模块和 ALU需要多几个输入输出而已。
蟋蟀科    但是在这之前,建议先写出数据通路表和控制信号取值表,将相应的接口和信号控制写出来。这样一方面画图的时候思路会更清晰,写代码的时候也会有个对照表。在画图或者写代码的时候假如有所修改,也可以回来修改这个表格,毕竟它只是你理清思路的一种做法。
    这里给出我的数据通路表和控制信号取值表,大伙也可以照着这个格式写一写。
塞翁失马的意思>护发素和发膜的区别
    所谓数据通路表,就是对于我们所说的关键部件,它们的输入分别是什么,来自哪里(输出体现在下一个部件的输入上)
丰满美女图    而控制信号取值表,就是对于每一个部件而言,是具有不同功能的(比如寄存器堆可以读也可以写,因此需要有个读写使能)。那么这些控制信号的规定,就体现在这张表中。

本文发布于:2023-07-14 03:24:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1095412.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指令   信号   设计   控制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图