【短篇】单周期cpu中cu控制信号的三种写法

时间:2024-03-07 22:09:07

本文是龙芯杯日志的一篇扩展短文,日志指路:【【龙芯杯日志】2020/11/19-2020/11/21: 单周期CPU】

在写单周期cpu的cu和alu时,涉及到控制信号的代码中,有三种较为常见的写法。

1

判断组合写法,直接将指令ID(或者alu的操作ID)的相等判断表达式在MUX前做或运算:(宏定义参见之前的一篇文章)

1

此方法的RTL实现是由数个比较器和或门组成,相对来说路径比较复杂:

5

2

掩码写法,将输出值保存在掩码中,并以指令ID(或者alu的操作ID)作为下标获取控制信号:

2

此方法的RTL实现,只用了一个位选择器,电路结构得到了简化:

6

3

还有上一届代码的写法,在这种写法中,不使用alu的操作ID作为控制信号的生成依据,而是直接将alu的每种操作变为一个单独的信号线:

3

这样的写法下,控制信号的生成方式是:

4

相对前两种方法,这种方法更为直观,但是目前并未对这种写法进行测试,无法确定方法的优劣,需要进一步的工作。