tilelink2: clarify use of Isolation
This commit is contained in:
parent
76388117bb
commit
97af07eb3e
@ -6,6 +6,7 @@ import Chisel._
|
|||||||
import chisel3.internal.sourceinfo.SourceInfo
|
import chisel3.internal.sourceinfo.SourceInfo
|
||||||
import diplomacy._
|
import diplomacy._
|
||||||
|
|
||||||
|
// READ the comments in the TLIsolation object before you instantiate this module
|
||||||
class TLIsolation(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt) extends LazyModule
|
class TLIsolation(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt) extends LazyModule
|
||||||
{
|
{
|
||||||
val node = TLAsyncIdentityNode()
|
val node = TLAsyncIdentityNode()
|
||||||
@ -67,9 +68,10 @@ class TLIsolation(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt) extends
|
|||||||
object TLIsolation
|
object TLIsolation
|
||||||
{
|
{
|
||||||
// applied to the TL source node; y.node := TLIsolation(fOut, fIn)(x.node)
|
// applied to the TL source node; y.node := TLIsolation(fOut, fIn)(x.node)
|
||||||
// f should insert an isolation gate between the input UInt and its result
|
// f* should insert an isolation gate between the input UInt and its result
|
||||||
// fOut is applied for data flowing from client to manager
|
// fOut is applied to data flowing from client to manager
|
||||||
// fIn is applied for data flowing from manager to client
|
// fIn is applied to data flowing from manager to client
|
||||||
|
// **** WARNING: the isolation functions must bring the values to 0 ****
|
||||||
def apply(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt)(x: TLAsyncOutwardNode)(implicit sourceInfo: SourceInfo): (TLAsyncOutwardNode, () => (Bool, Bool)) = {
|
def apply(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt)(x: TLAsyncOutwardNode)(implicit sourceInfo: SourceInfo): (TLAsyncOutwardNode, () => (Bool, Bool)) = {
|
||||||
val iso = LazyModule(new TLIsolation(fOut, fIn))
|
val iso = LazyModule(new TLIsolation(fOut, fIn))
|
||||||
iso.node := x
|
iso.node := x
|
||||||
|
Loading…
Reference in New Issue
Block a user