xFaceMAC32

xFaceMAC32 is an Ethernet media-access controller. It receives and transmits Gigabit traffic concurrently (full-duplex). The xFaceStream32 interface allows direct network access for software and for hardware.

Application

Application of xFaceAES as encryption unit

Application of xFaceMAC32 as network interface for software-defined radios

The xFaceMAC32 allows receiving and transmitting Gigabit Ethernet traffic with minimal hardware resources. It is applied to connect systems on chip with the Internet. xFaceMAC32 provides direct access to the network for digital hardware via the xFaceStream32 bus. This allows high throughput applications with minimal latency because no software interaction is needed.

Deliverables

  • Source code
    • Synthesizable Verilog code
    • Behavioral code without specific instances
  • Simulation
    • Testbench and test data
  • Documentation
    • Including getting started tutorial
  • Optional
    • Customization and integration services

Features

  • Functionality
    • Gigabit Ethernet IEEE 802.3 compatible
      • 1 Gbps receiving of traffic of any shape
      • 1 Gbps sending of data up to 8k packet size
    • Verification and generation of CRC-32 checksum (FCS calculation)
    • Extraction of received Ethernet headers
    • Up to four data sources for transmission (multiplexing)
    • DMA like data transfer
      • No CPU interaction needed for transferring data to / from MAC
  • Interfaces
    • GMII interface for physical device
      • external PHY for 1000Base-T network (RJ45 connector)
      • PCS/PMA for 1000Base-X (SFP modules)
    • xFaceStream32 interface
      • High throughput, low latency
  • Optimization
    • Optimized for Xilinx FPGAs Spartan-6, Virtex-4, Virtex-5, Virtex-6
  • Performance
    • Throughput: 1 Gbps RX + 1 Gbps TX (full duplex)
    • Latency GMII <-> xFaceStream32
      • RX: 620+ ns (increases with packet size)
      • TX: 120 ns
    • Max. clock frequency
      • Spartan-6: 165 MHz
      • Virtex-6: 274 MHz
  • Resources
    • Spartan-6, Virtex-6: 8 BRAM (18k block RAM) and 870 slices
  • Verified on
    • Xilinx SP605 board (Xilinx Spartan-6)

Interested?

Contact us:

Tel +43 681 10291010
Skype johannes.wolkerstorfer
Email Johannes.Wolkerstorfer@xface.at
Web https://www.xface.at/

Results

xFaceMAC32
FPGA slice BRAM f_max
Xilinx Spartan-3 XC3SD1800A 557 of 16640 (3%) 8 of 84 (9%) 122.47 MHz
Xilinx Spartan-6 XC6SLX45T 868 of 27288 (3%) 8 of 116 (6%) 165.70 MHz
Xilinx Virtex-4 XC4VLX25 570 of 10752 (5%) 8 of 72 (11%) 213.42 MHz
Xilinx Virtex-6 XC6VLX75T 813 of 46560 (1%) 4 of 156 (2%) 274.03 MHz

Table. Synthesis results on small Xilinx FPGAs: 8 BRAMs and 870 slices running at 165 MHz