Functions
The Spartan FPGA implements transmit and receive FIFOs, associated state
machines for the Utopia interface, a process controller interface with
DMA support, and a USB controller interface. The Utopia state machines
interact with the USB interface by way of 2x9 FIFOs. The microcontroller
interface includes logic for latching and decoding the address, along with
a command register and a command response structure. The USB interfaces
arbitrates between the three functions that need to transfer data across
the USB bus: ATM read, ATM write, and microcontroller read/write operations.
Advantages
The Spartan device is perfect for this application because of its architecture,
programmability, and low cost. The small FIFOs are efficiently built from
the SelectRAM memory. The largest function will be the USB controller interface,
requiring about 4,000 gates. Although the entire USB control function could
be implemented using a Core solution, a dedicated USB controller is more
cost-effective in this application. A Spartan XCS10XL has sufficient density,
I/O count, and performance for the remaining logic. The Spartan FPGA can
be programmed over the USB interface, allowing the logic to be updated
via a new device driver and eliminating the need for a configuration PROM.
The total FPGA solution is less than $4, and the total semiconductor cost
for the modem is only 10% more than the cost of the DSL chip set. |