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
Copy file name to clipboardExpand all lines: misoclib/mem/litesata/doc/source/docs/frontend/index.rst
+30-28
Original file line number
Diff line number
Diff line change
@@ -15,13 +15,13 @@ Packets and user commands/responses are described in the next sections.
15
15
Packets description
16
16
===================
17
17
18
-
Sink and Source are packets with additional parameters. A packet has the following signals:
18
+
Sink and Source endpoints use packets with additional parameters. A packet has the following signals:
19
19
20
-
- :code:`stb`: Strobe signal indicates that command or data is valid.
21
-
- :code:`sop`: Start Of Packet signal indicates that current command or data is the first of the packet.
22
-
- :code:`eop`: End Of Packet signal indicates that current command or data is the last of the packet.
23
-
- :code:`ack`: Response from the endpoint indicates that core is able to accept our command or data.
24
-
- :code:`data`: Current data of the packet.
20
+
- :code:`stb`: Strobe signal, indicates that command or data is valid.
21
+
- :code:`sop`: Start Of Packet signal, indicates that current command or data is the first of the packet.
22
+
- :code:`eop`: End Of Packet signal, indicates that current command or data is the last of the packet.
23
+
- :code:`ack`: Acknowledge signal, indicates the destination is able to accept current data.
24
+
- :code:`data`: Data signal.
25
25
26
26
.. figure:: packets.png
27
27
:width:50%
@@ -31,20 +31,20 @@ Sink and Source are packets with additional parameters. A packet has the followi
31
31
32
32
.. tip::
33
33
34
-
- When a packet only has a command or :code:`data`, :code:`sop` and :code:`eop` must be set to 1 on the same clock cycle.
34
+
- When a packet only has a :code:`data`, :code:`sop` and :code:`eop` must be set to 1 on the same clock cycle.
35
35
- A :code:`data` is accepted when :code:`stb` =1 and :code:`ack` =1.
36
36
37
37
User Commands
38
38
=============
39
39
40
-
All transfers are initiated using the Sink endpoint which has the following signals:
40
+
All transfers are initiated using the Sink endpoint of the interface which has the following signals:
41
41
42
-
- :code:`write`: 1 bit signal indicates if we want to write data to the HDD.
43
-
- :code:`read`: 1 bit signal indicaties if we want to read data from the HDD.
44
-
- :code:`identify`: 1 bit signal indicates if command is an identify device command (use to get HDD informations).
45
-
- :code:`sector`: 48 bits signal, the sector number we are going to write or read.
46
-
- :code:`count`: 16 bits signal, the number of sectors we are going to write or read.
47
-
- :code:`data`: n x 32 bits signal, the write data. (n depends of the frontend module)
42
+
- :code:`write`: 1 bit signal, indicates a write command.
43
+
- :code:`read`: 1 bit signal, indicaties a aread command.
44
+
- :code:`identify`: 1 bit signal, indicates an identify command. (used to get HDD informations).
45
+
- :code:`sector`: 48 bits signal, sector number for the write or read.
46
+
- :code:`count`: 16 bits signal, number of sectors for the write or read.
47
+
- :code:`data`: n x 32 bits signal, write data. (n depends of the frontend module)
48
48
49
49
.. tip::
50
50
@@ -57,12 +57,12 @@ User Responses
57
57
58
58
Responses are obtained from the Source endpoint which has the following signals:
59
59
60
-
- :code:`write`: 1 bit signal indicates if command was a write.
61
-
- :code:`read`: 1 bit signal indicaties if command was a read.
62
-
- :code:`identify`: 1 bit signal indicates if command was an identify device command.
63
-
- :code:`last`: 1 bit signal indicates if this is the last packet of the response. (A response can be return in several packets)
64
-
- :code:`failed`: 1 bit signal identicates if an error was detected in the response (CRC, FIS...)
65
-
- :code:`data`: n x 32 bits signal, the read data. (n depends of the frontend module)
60
+
- :code:`write`: 1 bit signal, indicates a write response.
61
+
- :code:`read`: 1 bit signal, indicaties a read response.
62
+
- :code:`identify`: 1 bit signal, indicates an identify response.
63
+
- :code:`last`: 1 bit signal, indicates it's the last packet of the response. (A response can be return in several packets)
64
+
- :code:`failed`: 1 bit signal, indicates that an error was detected in the response (CRC, FIS...)
65
+
- :code:`data`: n x 32 bits signal, read data. (n depends of the frontend module)
66
66
67
67
.. tip::
68
68
@@ -77,12 +77,12 @@ Frontend modules
77
77
LiteSATA provides a configurable and flexible frontend that can be used to:
78
78
79
79
- Provides any number of user ports.
80
-
- Generate any RAID configuration when used with multiple HDDs.
80
+
- Generate RAID configurations when used with multiple HDDs.
81
81
82
82
Crossbar
83
83
========
84
84
85
-
The crossbar let the user request any number of ports. It automatically arbitrate requests and dispatch responses to the corresponding ports.
85
+
The crossbar allows the user to request any number of ports for its application. It automatically arbitrates requests and dispatches responses to the corresponding ports.
86
86
87
87
The following example creates a crossbar and 2 user ports:
88
88
@@ -95,7 +95,7 @@ The following example creates a crossbar and 2 user ports:
95
95
Striping
96
96
========
97
97
98
-
The striping module segment data so that data is stored on N different controllers. (RAID0 equivalent)
98
+
The striping module segments data so that data is stored on N different controllers. (RAID0 equivalent)
99
99
100
100
.. code-block:: python
101
101
@@ -115,7 +115,7 @@ The following example creates a striping with 2 HDDs:
Writes have priority on reads. When a write is presented on one of the port, the module waits for all ongoing reads to finish and commute to write mode. Once all writes are serviced it returns to read mode.
142
+
Writes have priority on reads. When a write is presented on one of the ports, the module waits for all ongoing reads to finish and commute to write mode. Once all writes are serviced it returns to read mode.
0 commit comments