diff --git a/src/main/scala/uk/ac/soton/ecs/can/core/Adder.scala b/src/main/scala/uk/ac/soton/ecs/can/core/Adder.scala index 7d470511dac5d16212b242a78d6adb0ba3f248d6..9d5c08312234aecd70e807eaaa47fde436771bf8 100644 --- a/src/main/scala/uk/ac/soton/ecs/can/core/Adder.scala +++ b/src/main/scala/uk/ac/soton/ecs/can/core/Adder.scala @@ -10,5 +10,10 @@ class Adder extends MultiIOModule { val rhs = IO(Input(UInt(512.W))) val out = IO(Output(UInt(512.W))) - out := lhs + rhs + private val _lhs = lhs.asTypeOf(Vec(16, UInt(32.W))) + private val _rhs = rhs.asTypeOf(Vec(16, UInt(32.W))) + private val _out = Wire(Vec(16, UInt(32.W))) + out := _out.asUInt() + + _lhs.zip(_rhs).zip(_out).foreach { case ((l, r), o) => o := l + r } }