1
0
mirror of https://github.com/aolofsson/oh.git synced 2025-01-17 20:02:53 +08:00

Prettifying format..starting to look decent

This commit is contained in:
Andreas Olofsson 2015-04-18 07:51:13 -04:00
parent 47bf283f05
commit 3c2b760a2f

View File

@ -1,10 +1,10 @@
###DESCRIPTION ###DESCRIPTION
The "elink" is a low-latency/high-speed interface for communicating between The "elink" is a low-latency/high-speed interface for communicating between
FPGAs and ASICs (such as Epiphany) that implement the elink protocol. FPGAs and ASICs (such as Epiphany) that implement the elink protocol.
The interface "should" achieve a peak throughput of 8 Gbit/s in FPGAs with The interface "should" achieve a peak throughput of 8 Gbit/s in FPGAs with
24 available LVDS signal pairs. 24 available LVDS signal pairs.
###ELINK INTERFACE I/O SIGNALS ###ELINK INTERFACE I/O SIGNALS
SIGNAL |DIR| DESCRIPTION SIGNAL |DIR| DESCRIPTION
---------------|---|-------------- ---------------|---|--------------
@ -30,12 +30,15 @@
embox_not_empty| O | Mailbox not empty (connect to interrupt line) embox_not_empty| O | Mailbox not empty (connect to interrupt line)
embox_full | O | Mailbox is full indicator embox_full | O | Mailbox is full indicator
###BUS INTERFACE ###BUS INTERFACE
The elink has a 64 bit data AXI master and 32-bit data AXI slave interface The elink has a 64 bit data AXI master and 32-bit data AXI slave interface
for connecting to a standard AXI network. for connecting to a standard AXI network.
###EMESH PACKET ###EMESH PACKET FORMAT
The elink was born out of a need to connect multiple Epiphany chips together
and uses the eMesh 104 bit atomic packet structure for communication.
The eMesh atomic packet consists of the following sub fields.
PACKET SUBFIELD | DESCRIPTION PACKET SUBFIELD | DESCRIPTION
----------------|---------------- ----------------|----------------
@ -46,15 +49,8 @@
dstraddr[31:0] | Address for write, read-request, or read-responses dstraddr[31:0] | Address for write, read-request, or read-responses
data[31:0] | Data for write transaction, return data for read response data[31:0] | Data for write transaction, return data for read response
srcaddr[31:0] | Return address for read-request, upper data for 64 bit write srcaddr[31:0] | Return address for read-request, upper data for 64 bit write
###PACKET-FORMAT:
The elink was born out of a need to connect multiple Epiphany chips together
and uses the eMesh 104 bit atomic packet structure for communication.
The eMesh atomic packet consists of the following sub fields.
###PACKET FRAMING
###FRAMING:
The number of bytes to be received is determined by the data of the first The number of bytes to be received is determined by the data of the first
“valid” byte (byte0) and the level of the FRAME signal. The data captured “valid” byte (byte0) and the level of the FRAME signal. The data captured
@ -68,7 +64,7 @@
last byte of the previous transaction (byte8 or byte12) will be followed last byte of the previous transaction (byte8 or byte12) will be followed
by byte5 of the new transaction. by byte5 of the new transaction.
###PUSHBACK: ###PUSHBACK
The WAIT_RD and WAIT_WR signals are used to stall transmission when a receiver The WAIT_RD and WAIT_WR signals are used to stall transmission when a receiver
is unable to accept more transactions. The receiver will raise its WAIT output is unable to accept more transactions. The receiver will raise its WAIT output
@ -89,13 +85,13 @@
to indicate to the transmit logic that no more transactions can be received to indicate to the transmit logic that no more transactions can be received
because the receiver buffer full. because the receiver buffer full.
###ELINK MEMORY MAP ###ELINK MEMORY MAP
The elink has an parameter called 'ELINKID' that can be configured by The elink has an parameter called 'ELINKID' that can be configured by
the module instantiating the elink. the module instantiating the elink.
REGISTER | ADDRESS | NOTES REGISTER |ADDRESS |NOTES
------------| --------|------ ------------|---------|--------------------------------------------
ESYSRESET | 0xF0000 | Soft reset ESYSRESET | 0xF0000 | Soft reset
ESYSTX | 0xF0004 | Elink tranmit config ESYSTX | 0xF0004 | Elink tranmit config
ESYSRX | 0xF0008 | Elink receiver config ESYSRX | 0xF0008 | Elink receiver config
@ -110,13 +106,13 @@
ESYSMMURX | 0xE0000 | Start of receiver MMU lookup table ESYSMMURX | 0xE0000 | Start of receiver MMU lookup table
ESYSMMUTX | 0xD0000 | Start of transmit MMU lookup table (tbd) ESYSMMUTX | 0xD0000 | Start of transmit MMU lookup table (tbd)
###ELINK CONFIGURATION REGISTERS ###ELINK CONFIGURATION REGISTERS
REGISTER | DESCRIPTION REGISTER | DESCRIPTION
---------- | -------------- ---------- | --------------------------------------------------
ESYSRESET | (elink reset register) ESYSRESET | (elink reset register)
[0] | 0: elink is active [0] | 0: elink is active
| 1: elink in reset | 1: elink in reset
---------- |------------------- ---------- |---------------------------------------------------
ESYSTX | (elink transmit configuration register) ESYSTX | (elink transmit configuration register)
[0] | 0: TX disable [0] | 0: TX disable
| 1: TX enable | 1: TX enable
@ -127,7 +123,7 @@
| 1x: reserved | 1x: reserved
[7:4] | Transmit control mode for eMesh [7:4] | Transmit control mode for eMesh
[8] | AXI slave read timeout enable [8] | AXI slave read timeout enable
---------- |------------------- -----------|----------------------------------------------------
ESYSRX | (elink receive configuration register) ESYSRX | (elink receive configuration register)
[0] | 0: elink RX disable [0] | 0: elink RX disable
| 1: elink RX enable | 1: elink RX enable
@ -136,7 +132,7 @@
[3:2] | 00: default elink packet receive mode [3:2] | 00: default elink packet receive mode
| 01: stores input pin data in ESYSDATAIN register | 01: stores input pin data in ESYSDATAIN register
| 1x: reserved | 1x: reserved
---------- |------------------- -----------|---------------------------------------------------
ESYSCLk | (elink PLL configuration register) ESYSCLk | (elink PLL configuration register)
[0] | 0:cclk clock disabled [0] | 0:cclk clock disabled
| 1:cclk clock enabled | 1:cclk clock enabled
@ -165,27 +161,27 @@
| 0111: lclk=pllclk/128 | 0111: lclk=pllclk/128
| 1xxx: RESERVED | 1xxx: RESERVED
[15:12] | PLL frequency [15:12] | PLL frequency
---------- |------------------- -----------|-------------------------------------------------
ESYSCOREID | (coordinate ID for Epiphany) ESYSCOREID | (coordinate ID for Epiphany)
[5:0] | Column ID for connected Epiphany chip [5:0] | Column ID for connected Epiphany chip
[11:6] | Row ID for connected Epiphany chip [11:6] | Row ID for connected Epiphany chip
------------------------------------------------------------- -----------|-------------------------------------------------
ESYSLATFORM| (platform ID) ESYSID | (platform and version ID)
[7:0] | Platform model number [7:0] | Platform model number
[7:0] | Revision number [7:0] | Revision number
------------------------------------------------------------- -----------|-------------------------------------------------
ESYSDATAIN | (data on elink input pins) ESYSDATAIN | (data on elink input pins)
[7:0] | rx_data[7:0] [7:0] | rx_data[7:0]
[8] | tx_frame [8] | tx_frame
[9] | tx_wait_rd [9] | tx_wait_rd
[10] | tx_wait_wr [10] | tx_wait_wr
------------------------------------------------------------- -----------|-------------------------------------------------
ESYSDATAOUT| (data on eLink output pins) ESYSDATAOUT| (data on eLink output pins)
[7:0] | tx_data[7:0] [7:0] | tx_data[7:0]
[8] | tx_frame [8] | tx_frame
[9] | rx_wait_rd [9] | rx_wait_rd
[10] | rx_wait_wr [10] | rx_wait_wr
------------------------------------------------------------- -----------|-------------------------------------------------
ESYSDEBUG | (various debug signals from elink) ESYSDEBUG | (various debug signals from elink)
[31] | embox_not_empty [31] | embox_not_empty
[30] | emesh_rx_rd_wait [30] | emesh_rx_rd_wait