Tilelink
配置和实例化
这是一个简单的示例,它定义了两个不相干的tilelink总线实例并将它们连接起来:
import spinal.lib.bus.tilelink
val param = tilelink.BusParameter.simple(
addressWidth = 32,
dataWidth = 64,
sizeBytes = 64,
sourceWidth = 4
)
val busA, busB = tilelink.Bus(param)
busA << busB
这里与上面相同,但是具有一致性通道
import spinal.lib.bus.tilelink
val param = tilelink.BusParameter(
addressWidth = 32,
dataWidth = 64,
sizeBytes = 64,
sourceWidth = 4,
sinkWidth = 0,
withBCE = false,
withDataA = true,
withDataB = false,
withDataC = false,
withDataD = true,
node = null
)
val busA, busB = tilelink.Bus(param)
busA << busB
以上的内容是关于硬件实例化的,这是简单/容易的部分。当涉及SoC/内存一致性时,您可能需要一个额外的层来协调/传递参数。这就是tilelink.fabric.Node的作用。