chisel.lib.fifo.Fifo.scala Maven / Gradle / Ivy
The newest version!
// Author: Martin Schoeberl ([email protected])
// License: this code is released into the public domain, see README.md and http://unlicense.org/
package chisel.lib.fifo
import chisel3._
import chisel3.util._
/**
* FIFO IO with enqueue and dequeue ports using the ready/valid interface.
*/
class FifoIO[T <: Data](private val gen: T) extends Bundle {
val enq = Flipped(new DecoupledIO(gen))
val deq = new DecoupledIO(gen)
}
/**
* Base class for all FIFOs.
*/
abstract class Fifo[T <: Data](gen: T, val depth: Int) extends Module {
val io = IO(new FifoIO(gen))
assert(depth > 0, "Number of buffer elements needs to be larger than 0")
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy