PDF datasheets:

ASIC
Altera Xilinx

IP Subsystem MAC-PCI Ethernet MAC Controller with PCI Host Interface Core

The MAC-PCI IP core is a combination of the Ethernet Media Access Controller (MAC) HDL core - and the 32-bit 33 MHz Master/Slave PCI Host Interface core (PCI-M32). The core is intended to simplify the Ethernet networking support development in PCI based systems and applications.

A variety of available PHY interfaces facilitates the controller’s integration with a wide range of third-party transceivers. While the implementation of the most common PCI Local Bus interface guarantees seamless integration with a large number of PCI-equipped hardware devices, an available Linux driver allows users to skip basic software development stages and concentrate on designing the main application. Both the integrated scatter/gather DMA Controller and extended filtering features decrease CPU overhead, whereas advanced interrupt mitigation lowers the number of necessary interrupt support routines. Configurable internal FIFO’s architecture and low power capabilities make MAC-PCI a perfect solution for both resource and power limited applications.

The MAC-PCI is a design developed for reuse in ASIC and FPGA implementations. The design is strictly synchronous with positive-edge clocking, no internal tri-states, and a synchronous reset; therefore, scan insertion is straightforward.

See representative implementation results (each in a new pop-up window):

ASIC numbers Altera numbers Xilinx numbers

Features

Applications

Block DIagram

mac-pci-block-diagram

Functional Description

The core consists of functional blocks as shown in the diagram and briefly described here.

Ethernet MAC Controller

The MAC subcomponent consists of several modules that provide MAC-PCI with essential Ethernet functionality. Transmit/Receive Controllers implement frames operations according to IEEE 802.3 CSMA/CD standard, while an optional Backoff/Deferring component implements half-duplex functions. Transmit/Receive FIFO’s handle data buffering and provide an interface for external dual-port RAM, working as FIFO memory. Transmit/Receive List State Machines implement descriptors/buffers for architecture handling over a  built-in DMA Controller, which provides the Ethernet MAC with master data interface to service both receive and transmit channels. Control and Status Registers implement the register set, interrupt controller, serial RAM and MII management interfacing, and power management functionality.

PCI Interface Controller

The PCI subcomponent handles the PCI Local bus transaction. It consists of several modules that implement particular functions: initiating and handling PCI transactions, parity bits generation and checking, and PCI configuration space handling.

PCI Initiator Wrapper

The module provides the FSM and logic required to translate DMA master interface transfers into PCI bus transactions.

PCI Target Wrapper

The module provides FSM and logic essential for translating PCI transactions into the generic MAC CSR slave interface transfers.

Example Application

The MAC-PCI controller is used to implement 10 and 100 Mbps Ethernet networks interface in a PCI-enabled system. The example application consists of the microprocessor, shared memory block, and the MAC-PCI core.
The host application communicates with the MAC-PCI through a set of Control and Status Registers (CSRs), connected to the PCI Bus shared with other system peripherals.
To provide high system performance, the MAC’s DMA engine is connected as a second PCI initiator device on the bus and automatically transfers the frames to and from buffers defined in a shared memory block.

mac-pci example

Support

The core as delivered is warranted against defects for ninety days from purchase. Thirty days of phone and email support are included, starting with the first interaction. Additional maintenance and support options are available.

Verification

The core has been verified through extensive functional and post‑route simulation, and has achieved high Code Coverage. An FPGA prototype was used to verify the functionality in a Linux OS-based environment.

Deliverables

The core is available in ASIC (synthesizable HDL) or FPGA (netlist) forms, and includes everything required for successful implementation:

 

Request Info
Top of Page