Administrator approval is now required for registering new accounts. If you are registering a new account, and are external to the University, please ask the repository owner to contact ServiceLine to request your account be approved. Repository owners must include the newly registered email address, and specific repository in the request for approval.

Verified Commit 3b74a1d4 authored by Minyong Li's avatar Minyong Li 💬
Browse files

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.
parent 79ae3d38
// 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)
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment