如何将数据分配给凿子中的寄存器?

How to assign data to a register in chisel?

我在我的加速器中初始化了两个寄存器,比如

val one = RegInit(0.U(5.W))
val two = RegInit(0.U(5.W))

如果我在我的C测试代码中加载了一个数据到我的rs1(R型指令),我想把这个值赋给我自定义的寄存器'one'。我还想将寄存器 'one' 中的值与寄存器 'two' 相乘,然后将结果返回给我的 'rs1'。是否可以用凿子语言来完成这些操作?

您使用连接运算符 := 将一个寄存器的输出连接到另一个寄存器的输入:

val rs1 = RegInit(0.U(5.W))
val one = RegInit(0.U(5.W))
val two = RegInit(0.U(5.W))

one := rs1
rs1 := one * two

请注意,由于寄存器是计时的,因此连接的值会在下一个时钟上升沿传播到寄存器的值。