Skip to content

Commit

Permalink
Practical application of Slots
Browse files Browse the repository at this point in the history
  • Loading branch information
Dolu1990 committed Jul 24, 2023
1 parent fc314f1 commit e847c83
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions source/SpinalHDL/Examples/Advanced ones/slots.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,19 @@ Note that the `reader` API is for SpinalHDL version comming after 1.9.1

.. literalinclude:: /../examples/src/main/scala/spinaldoc/examples/advanced/Timer.scala
:language: scala


In practice
^^^^^^^^^^^^^^

For instance, this kind of slot pattern is used in Tilelink coherency hub to keep track of all ongoing memory probes in flight:

https://github.com/SpinalHDL/SpinalHDL/blob/008c73f1ce18e294f137efe7a1442bd3f8fa2ee0/lib/src/main/scala/spinal/lib/bus/tilelink/coherent/Hub.scala#L376

As well in the DRAM / SDR / DDR memory controller to implement the handeling of multiple memory transactions at once (having multiple precharge / active / read / write running at the same time to improve performances) :

https://github.com/SpinalHDL/SpinalHDL/blob/1edba1890b5f629b28e5171b3c449155337d2548/lib/src/main/scala/spinal/lib/memory/sdram/xdr/Tasker.scala#L202

As well in the NaxRiscv (out of order CPU) load-store-unit to handle the store-queue / load-queue hardware (a bit too scary to show here in the doc XD)


0 comments on commit e847c83

Please sign in to comment.