clarification of AddressRange arguments
This commit is contained in:
@@ -29,7 +29,7 @@ object from testchipip like so:
|
||||
name = "my-client",
|
||||
sourceId = IdRange(0, 4),
|
||||
requestFifo = true,
|
||||
visibility = Seq(AddressSet(0, 0xffff))))
|
||||
visibility = Seq(AddressSet(0x10000, 0xffff))))
|
||||
|
||||
lazy val module = new LazyModuleImp(this) {
|
||||
val (tl, edge) = node.out(0)
|
||||
@@ -53,13 +53,13 @@ If it is set to true, the client will request that downstream managers that
|
||||
support it send responses in FIFO order (that is, in the same order the
|
||||
corresponding requests were sent).
|
||||
|
||||
The ``visibility`` argument specifies the address ranges that the client
|
||||
will access. By default it is set to include all addresses. In this example,
|
||||
we set it to contain a single address range ``AddressSet(0, 0xffff)``, which
|
||||
means that the client will only access addresses in this range. Clients
|
||||
normally do not specify this, but it can help downstream crossbar generators
|
||||
optimize the hardware by not arbitrating the client to managers with address
|
||||
ranges that don't overlap with its visibility.
|
||||
The ``visibility`` argument specifies the address ranges that the client will
|
||||
access. By default it is set to include all addresses. In this example, we set
|
||||
it to contain a single address range ``AddressSet(0x10000, 0xffff)``, which
|
||||
means that the client will only be able to access addresses from 0x10000 to
|
||||
0x1ffff. normally do not specify this, but it can help downstream crossbar
|
||||
generators optimize the hardware by not arbitrating the client to managers with
|
||||
address ranges that don't overlap with its visibility.
|
||||
|
||||
Inside your lazy module implementation, you can call ``node.out`` to get a
|
||||
list of bundle/edge pairs. If you used the TLHelper, you only specified a
|
||||
@@ -116,7 +116,11 @@ is a TLManagerParameters object.
|
||||
|
||||
The only required argument for ``TLManagerParameters`` is the ``address``,
|
||||
which is the set of address ranges that this manager will serve.
|
||||
This information is used to route requests from the clients.
|
||||
This information is used to route requests from the clients. In this example,
|
||||
the manager will only take requests for addresses from 0x20000 to 0x20fff.
|
||||
The second argument in ``AddressSet`` is a mask, not a size.
|
||||
You should generally set it to be one less than a power of two. Otherwise,
|
||||
the addressing behavior may not be what you expect.
|
||||
|
||||
The second argument is ``resources``, which is usually retrieved from a
|
||||
``Device`` object. In this case, we use a ``SimpleDevice`` object.
|
||||
|
||||
Reference in New Issue
Block a user