美文网首页
计组实验添加指令

计组实验添加指令

作者: 萍水间人 | 来源:发表于2019-03-23 21:02 被阅读0次

惭愧惭愧, 之前一直不知道计组实验究竟是在干嘛, 所以基本没花时间。
今天用了大概两个小时左右将基本的流程都看明白了。

基本操作

指令添加

bne

分析一下beq指令的格式:
beq 的op 为 000100


beq指令

我们知道beq指令是需要根据ALU的零信号来判断, 如果零信号有效, 也就是两个数据相等则跳转。(在这里跳转的含义就是NPC的值被修改为一个新的值)

先从最简单的bne指令开始。

op : 000101

bne指令 对比

说明一下NPCOp = 01的时候就是计算i类型跳转指令(其实也就bne和beq两条)姚跳转的地址。
所以我们只需要去修改 NPCOp[0]就行啦。

ok, 貌似到这里第一条指令就添加完成了。

sll & srl

这也是一条R类型的指令

op = 000000, funct = 000000

sll & srl

添加jr指令

这条指令的含义就是PC的值直接变为某个寄存器的值, 需要注意的是jr指令本身是一条R类型的指令。

想: 既然PC的值在执行jr这条指令的时候, 必须要得到寄存器的一个值, 而且是Rs这个寄存器号对应的值, 那就必须有一条线

所以,修改NPC


修改NPC NPC_JR

想法是这样子的, NPC既然要读取到寄存器RS端输出的值, 就必须有一给线连接着,
所以NPC的输入端多加一根线,

同时要绑定引脚

同时和寄存器的输出绑定。

和寄存器的输出绑定

这样JR指令就添加完了?(小纠结)
别忘了修改一下控制信号的表示

jalr 指令

JALR指令是需要跳转并链接寄存器的

JALR 指令格式

由于是jal 和jr指令的复合体
而且还是R类型的指令, 所以我修改了这两个地方

slti指令

slti

slti指令需要对立即数做有符号扩展,

这是符号扩展的模块


符号扩展 做有符号扩展

还需要修改ALU?
突然懵逼,分不清楚slt和slti的区别了, slt是用来比较寄存器的, slti是用来比较做符号扩展的立即数的

所以ALU那里需要一个多路选择器?
maybe

但是在这之前我们需要给ALU的A输入端添加一个二路选择器。??

不好意思抽风了, 不需要这个的
slti 的格式和 lw, sw, addi,这些指令的格式是一样的
需要选择rt 寄存器进行写入

也需要对ALU的B输入口进行选择


还需要修改一下ALU的运算

由于ALU对B口有选择, 所以还是沿用slt的判断方法。


sltiu

这条指令类似, 只需要把符号扩展的信号改成无符号的扩展就行了

从逻辑上来说, 默认应该是无符号扩展

上一条slti 的指令好像抽风了, 应该要改成这样子的


sll & sra & srl & lui

这几条指令的特点是都需要移位,
然后, rs这个字段都为0,
接着, shamt 作为 A 输入口, rt(要被移位的数据)作为B输入口??

这些指令全部都需要对ALU进行修改。。。
先看怎么扩展ALU的功能吧。。

扩展ALU的功能 新定义的宏值 新添加一个多路选择器

woc它居然在译码的时候直接略过了shamt!!!。。。
这就很神奇了

添加译码 添加指令 对A输入端进行选择

参考之前的多路选择器我们发现, ctrl控制单元还需要增加一个输出
这个输出用来控制多路选择器的行为

但是在这之前我们还需要决定那几个输出是被选择的。


这里默认AregSel信号为0, 只有当遇到那几个特殊的信号的时候才需要置1

然后我就添加了一个多路选择器

同时修改了ALU的A输入口的绑定引脚

当然这个地方给它全部填


相关文章

  • 计组实验添加指令

    惭愧惭愧, 之前一直不知道计组实验究竟是在干嘛, 所以基本没花时间。今天用了大概两个小时左右将基本的流程都看明白了...

  • 计组实验-添加指令

    需要添加的指令: sll /srl/sllv/ srlv/bne/ nor /jr/ jalr/andi/ lu...

  • 计组实验测试指令

    bne指令测试 添加BNE指令, 这是最开始原始指令结果 然后添加测试文件 可以看到指令这次成功的实现了跳转!! ...

  • 2017-11-14 11周二

    上午上了计组和网络,下午上了VHDL和计组实验,面对VHDL,我真的无话可说,觉得难,尤其是实验箱的操作,自己没学...

  • 实验三【2021OS】

    实验三:Linux用户与用户组管理 单个、批量添加(删除用户)。添加、删除用户组。 添加用户 单个添加 选项:-c...

  • uos 用户和组

    1、实验-添加用户命令 例: 2、实验-删除用户 3、实验-更改用户信息 4、实验-检查用户身份 5、实验-组管理...

  • 计组实验课堂笔记

    2-4译码器 always语句硬件描述语言天生就是并发的?若干个小的电路模块是并发执行的实现一个基本的电路单元。@...

  • Mac 命令行可用指令的组成

    系统自带指令 本地添加指令 用户添加的PATH下的指令 如添加的Anaconda的bin内目录下的ipython指令

  • 2022-06-08 iPhone快捷指令自动切换壁纸

    打开快捷指令软件 点击右上角+号,添加一个快捷指令 可以给这个快捷指令设置一个名称 点击添加操作,快捷指令这里可以...

  • (一)Jmeter创建简单的请求

    1、打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件 2、添加线程组:在“测试计...

网友评论

      本文标题:计组实验添加指令

      本文链接:https://www.haomeiwen.com/subject/vaysvqtx.html