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:
parent
47bf283f05
commit
3c2b760a2f
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user