You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scope docs to only facilities used outside SpinalHDL/SpinalHDL: remove StreamAccessibleFifo, StreamShiftChain, PackedBundle page, and undocumented BusSlaveFactory methods
Copy file name to clipboardExpand all lines: source/SpinalHDL/Libraries/stream.rst
-80Lines changed: 0 additions & 80 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -610,86 +610,6 @@ You can apply them by calling the corresponding method on a ``Stream`` or by pas
610
610
val pipeType: StreamPipe = StreamPipe.M2S
611
611
sink << pipeType(source)
612
612
613
-
StreamAccessibleFifo
614
-
^^^^^^^^^^^^^^^^^^^^
615
-
616
-
``StreamAccessibleFifo`` is a FIFO where all stored elements are accessible at any time through the ``io.states`` ports in addition to the normal ``push``/``pop`` stream interface.
617
-
This is useful when logic needs to inspect the entire contents of the queue without consuming elements.
618
-
619
-
.. list-table::
620
-
:header-rows: 1
621
-
:widths: 2 2 5
622
-
623
-
* - Signal
624
-
- Type
625
-
- Description
626
-
* - ``io.push``
627
-
- slave Stream[T]
628
-
- Input stream; pushes data into the FIFO
629
-
* - ``io.pop``
630
-
- master Stream[T]
631
-
- Output stream; pops data from the FIFO
632
-
* - ``io.states``
633
-
- Vec(master Flow[T], length)
634
-
- Read-only view of each slot in the FIFO
635
-
636
-
.. code-block:: scala
637
-
638
-
val input = Stream(Bits(8 bits))
639
-
val output = Stream(Bits(8 bits))
640
-
641
-
// Instantiate a StreamAccessibleFifo with 4 slots
642
-
val fifo = StreamAccessibleFifo(input, output, length = 4)
643
-
644
-
// Access the first slot's data without consuming it
645
-
when(fifo.io.states(0).valid) {
646
-
val firstElement = fifo.io.states(0).payload
647
-
}
648
-
649
-
StreamShiftChain
650
-
^^^^^^^^^^^^^^^^
651
-
652
-
``StreamShiftChain`` is a shift-register chain of ``length`` registered stream stages.
653
-
Each stage is a ``m2sPipe`` of the previous one.
654
-
The ``io.states`` ports expose all intermediate stages as ``Flow``\s so that any stage can be inspected.
655
-
An optional ``io.clear`` input can flush all stages simultaneously.
656
-
657
-
.. list-table::
658
-
:header-rows: 1
659
-
:widths: 2 2 5
660
-
661
-
* - Signal
662
-
- Type
663
-
- Description
664
-
* - ``io.push``
665
-
- slave Stream[T]
666
-
- Input stream; enters the first stage of the chain
667
-
* - ``io.pop``
668
-
- master Stream[T]
669
-
- Output stream; exits the last stage of the chain
670
-
* - ``io.states``
671
-
- Vec(master Flow[T], length)
672
-
- Read-only view of each registered stage in the chain
673
-
* - ``io.clear``
674
-
- in Bool (default False)
675
-
- When asserted, flushes all pipeline stages
676
-
677
-
.. code-block:: scala
678
-
679
-
val input = Stream(Bits(8 bits))
680
-
val output = Stream(Bits(8 bits))
681
-
682
-
// Create a 3-stage shift chain
683
-
val chain = StreamShiftChain(input, output, length = 3)
684
-
685
-
// Read the second stage value without consuming it
0 commit comments