// SPDX-License-Identifier: Apache-2.0 package chisel3.util import chisel3._ /** Concatenates elements of the input, in order, together. * * @example {{{ * Cat("b101".U, "b11".U) // equivalent to "b101 11".U * Cat(myUIntWire0, myUIntWire1) * * Cat(Seq("b101".U, "b11".U)) // equivalent to "b101 11".U * Cat(mySeqOfBits) * }}} */ object Cat { /** Concatenates the argument data elements, in argument order, together. The first argument * forms the most significant bits, while the last argument forms the least significant bits. */ def apply[T <: Bits]( @deprecatedName(Symbol("a"), "Chisel 3.5") a: T, @deprecatedName(Symbol("r"), "Chisel 3.5") r: T* ): UInt = apply( a :: r.toList ) /** Concatenates the data elements of the input sequence, in reverse sequence order, together. * The first element of the sequence forms the most significant bits, while the last element * in the sequence forms the least significant bits. * * Equivalent to r(0) ## r(1) ## ... ## r(n-1). * @note This returns a `0.U` if applied to a zero-element `Vec`. */ def apply[T <: Bits](@deprecatedName(Symbol("r"), "Chisel 3.5") r: Seq[T]): UInt = SeqUtils.asUInt(r.reverse) }