EMAC8_W, EMAC8_MD_W - Internal Memory Buffers
The following sections detail the memory buffers used for the Transmit and Receive sections of the Controller.
Transmit Buffer
Address: 000h
to 5EDh
Access: Write-only
Value after Reset: Unknown
The message data to be transmitted is written to and stored in, FPGA Dual Port Block RAM. The size of the RAM will depend on the physical FPGA device used.
The message to be sent is written using one port of the RAM block, configured for byte-wide addressing. The message must consist of the following components, written to the specified (and contiguous) memory locations within the buffer:
000h
to005h
– 6-Byte Destination Address
006h
to00Bh
– 6-Byte Source Address
00Ch
to00Dh
– 2-Byte Length/Type field
00Eh
to5EDh
– the main message Data (from 0-1500 Bytes)
The message written to the Transmit Buffer does not include the Preamble, SFD, Padding or CRC fields, as these will be automatically generated by the Controller.
When transmitting, the stored message data is read from the second port of the RAM block, which is configured for nibble-wide addressing (since transmission to the connected PHY device is in nibbles).
Receive Buffer
Address: 000h
to 5EDh
Access: Read-only
Value after Reset: Unknown
Received message data is written to and stored in, additional FPGA Dual Port Block RAM. Again, the size of RAM will depend on the particular FPGA device to which the design is targeted.
The received message from the connected PHY device is written using one port of the RAM block, configured for nibble-wide addressing (since data is received from the PHY in nibbles).
When the processor reads the message, the stored message data is read using the second port of the RAM block, which is configured for byte-wide addressing. The message consists of the following components, read from the specified (and contiguous) memory locations within the buffer:
000h
to005h
– 6-Byte Destination Address
006h
to00Bh
– 6-Byte Source Address
00Ch
to00Dh
– 2-Byte Length/Type field
00Eh
to5EDh
– the main message Data (from 0-1500 Bytes)
The received message will also contain Padding bytes (if applicable) and the CRC.