tilelink2: Unit Test for the RegisterCrossing
This commit is contained in:
parent
cc88bf1b08
commit
d23ab7370d
@ -212,9 +212,37 @@ trait RRTest1Bundle
|
||||
{
|
||||
}
|
||||
|
||||
trait RRTest1Module extends HasRegMap
|
||||
trait RRTest1Module extends Module with HasRegMap
|
||||
{
|
||||
regmap(RRTest1Map.map:_*)
|
||||
val clocks = Module(new ClockDivider)
|
||||
clocks.io.clock_in := clock
|
||||
clocks.io.reset_in := reset
|
||||
|
||||
def x(bits: Int) = {
|
||||
val field = UInt(width = bits)
|
||||
|
||||
val readCross = Module(new RegisterReadCrossing(field))
|
||||
readCross.io.master_clock := clock
|
||||
readCross.io.master_reset := reset
|
||||
readCross.io.master_allow := Bool(true)
|
||||
readCross.io.slave_clock := clocks.io.clock_out
|
||||
readCross.io.slave_reset := clocks.io.reset_out
|
||||
readCross.io.slave_allow := Bool(true)
|
||||
|
||||
val writeCross = Module(new RegisterWriteCrossing(field))
|
||||
writeCross.io.master_clock := clock
|
||||
writeCross.io.master_reset := reset
|
||||
writeCross.io.master_allow := Bool(true)
|
||||
writeCross.io.slave_clock := clocks.io.clock_out
|
||||
writeCross.io.slave_reset := clocks.io.reset_out
|
||||
writeCross.io.slave_allow := Bool(true)
|
||||
|
||||
readCross.io.slave_register := writeCross.io.slave_register
|
||||
RegField(bits, readCross.io.master_port, writeCross.io.master_port)
|
||||
}
|
||||
|
||||
val map = RRTest1Map.map.drop(1) ++ Seq(0 -> Seq(x(8), x(8), x(8), x(8)))
|
||||
regmap(map:_*)
|
||||
}
|
||||
|
||||
class RRTest1(address: BigInt) extends TLRegisterRouter(address, 0, 32, Some(6), 4)(
|
||||
|
Loading…
Reference in New Issue
Block a user