From 3b74a1d40f68c0ac02a24fe8efcf2c08ae4a091c Mon Sep 17 00:00:00 2001 From: Minyong Li <ml10g20@soton.ac.uk> Date: Thu, 8 Jul 2021 14:01:07 +0100 Subject: [PATCH] core.Round: add a grouped round block Architectural change: the flattened columnar round and diagonal round are now stacked and controlled by a signal, which means only one can be activated now. --- .../uk/ac/soton/ecs/can/core/Round.scala | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/scala/uk/ac/soton/ecs/can/core/Round.scala diff --git a/src/main/scala/uk/ac/soton/ecs/can/core/Round.scala b/src/main/scala/uk/ac/soton/ecs/can/core/Round.scala new file mode 100644 index 0000000..3477247 --- /dev/null +++ b/src/main/scala/uk/ac/soton/ecs/can/core/Round.scala @@ -0,0 +1,20 @@ +// SPDX-FileCopyrightText: 2021 Minyong Li <ml10g20@soton.ac.uk> +// SPDX-License-Identifier: CERN-OHL-W-2.0 + +package uk.ac.soton.ecs.can.core + +import chisel3._ +import uk.ac.soton.ecs.can.config.CanCoreConfiguration + +class Round(implicit cfg: CanCoreConfiguration) extends MultiIOModule { + val roundSelect = IO(Input(Bool())) + val in = IO(Input(UInt(512.W))) + val out = IO(Output(UInt(512.W))) + + private val columnarRound = Module(new ColumnarRound) + private val diagonalRound = Module(new DiagonalRound) + + columnarRound.in := in + diagonalRound.in := in + out := Mux(roundSelect, columnarRound.out, diagonalRound.out) +} -- GitLab