Files
eb001/src/main/scala/Switch/SwitchNode.scala

63 lines
1.1 KiB
Scala
Raw Normal View History

2023-11-01 14:48:03 +08:00
package Switch
import chisel3._
import chisel3.util._
import org.chipsalliance.cde.config._
import freechips.rocketchip.diplomacy._
import freechips.rocketchip.tilelink._
import MAC._
class SwitchNodeIO extends Bundle{
val rx = Decoupled(new Mac_Stream_Bundle)
2023-11-06 18:56:02 +08:00
val mInfo = new Rx_MuxInfo_Bundle
2023-11-01 14:48:03 +08:00
val tx = Flipped(Decoupled(new Mac_Stream_Bundle))
}
abstract class SwitchNode(implicit p: Parameters) extends SwitchModule{
val ex: SwitchNodeIO = IO(new SwitchNodeIO)
}
class MacNode(implicit p: Parameters) extends Mac{
val rxBuff = Module(new RxBuff)
val txBuff = Module(new TxBuff)
2023-11-06 18:56:02 +08:00
2023-11-01 14:48:03 +08:00
macTileLinkRx.io.rxEnq <> rxBuff.io.enq
txBuff.io.deq <> macTileLinkTx.io.txDeq
rxBuff.io.deq <> ex.rx
ex.tx <> txBuff.io.enq
2023-11-06 18:56:02 +08:00
ex.mInfo <> rxBuff.mInfo
2023-11-01 14:48:03 +08:00
}
class DmaNode(edgeOut: TLEdgeOut)(implicit p: Parameters) extends DMAMst(edgeOut){
2023-11-06 18:56:02 +08:00
def DmaMac = "habcdef".U(48.W)
2023-11-01 14:48:03 +08:00
ex.tx <> rxBuff.io.enq
txBuff.io.deq <> ex.rx
2023-11-06 18:56:02 +08:00
ex.mInfo.dest.valid := mInfoValid
ex.mInfo.dest.bits := Cat( 1.U, trigTxNum )
ex.mInfo.source.valid := mInfoValid
ex.mInfo.source.bits := DmaMac
2023-11-01 14:48:03 +08:00
}