shim

corner

PDF datasheets:

ASIC
Altera Lattice Xilinx

Options for this core:

Related information:

News Releases

06/18/01 CAST Releases USB 1.1 IP Core

Resources

For an excellent USB overview, see Which version of USB is right for your application?, by Dan Harmon, at Planet Analog

For more information:

contact Sales @ CAST

CUSB Universal Serial Bus Device Controller Core

The CUSB is a USB Device Controller that provides USB full speed function interface that meets the 1.1 revision of the USB specification. The CUSB logic handles bytes transfer autonomously and bridges USB interface to a simple read/write parallel interface. The CUSB can be customized and optimized for a specific application. It contains a set of Special Function Registers that is similar to the Cypress EZ-USB FX chip.

The microcode-free design was developed for reuse in ASICs and FPGAs. The design is strictly synchronous with positive-edge clocking, no internal tri-states and a synchronous reset. Scan insertion is straightforward.

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

Altera numbers Lattice numbers Xilinx numbers

Features

  • Serial Interface Engine
    • Support full speed devices
    • Extraction clock and data signals in internal DPLL
    • NRZI decoding/encoding
    • Bit stuffing/stripping
    • CRC checking/generation
    • Interface for an external transceiver
  • Up to 31 configurable endpoints
    • Support control transfers by endpoint 0
    • Support bulk, interrupt and isochronous transfers
    • Double buffering for isochronous endpoints
    • Programmable double buffering for bulk and interrupt endpoints
  • Automatic data retry mechanism
  • Data toggle synchronization mechanism
  • Suspend and resume power management functions
  • Remote Wake-Up function
  • Endpoint buffers RAM interface
    • 2 x 1024 Bytes FIFO size for isochronous endpoints
    • Up to 64 Bytes buffer size for each bulk, interrupt and control endpoints
  • Microcontroller interface
    • Asynchronous address and data bus interfaces, and read and write control signals. (Internally synchronized within the CUSB core)
    • Interrupt request signals for application microcontroller
    • Interrupt vector for autovector interrupts
  • Optional Feature - DMA Controller

Applications

  • Embedded microcontroller systems
  • Communication systems

Symbol Diagram

CUSB Universal Serial Bus Device Controller Symbol Diagram

Block Diagram

CUSB Universal Serial Bus Device Controller Block Diagram

Functional Description

The CUSB core is partitioned into modules as shown in the block diagram and described below:

CUSB Serial Interface Engine

As shown in Figure 1 the CUSB is connected directly to the USB transceiver. The CUSBSIE logic contains a Digital Phase Locked Loop (DPLL) that uses 4 times over-sampling USB data stream for clock extraction. It’s able to track jitter and frequency drift as specified by the USB Specification Rev. 1.1. The CUSBSIE performs serial data decoding/encoding, bit stuffing/ stripping and CRC checking/generation. Received/ transmitted data are grouped in bytes and transferred to/from the CUSBPIE.

CUSB Parallel Interface Engine

The CUSBPIE contains a set of Special Function Registers (SFR) that are provided to control the CUSB behavior, the logic that handles all USB transfers and interfaces for endpoints buffers and for the microcontroller.

Implementation Results

CUSB reference designs have been evaluated in a variety of technologies.

FPGA results:   Altera | Lattice | Xilinx

Deliverables

  • VHDL or Verilog HDL source code
  • Post-synthesis EDIF netlist (netlist license)
  • Testbench (self-checking)
  • Vectors for testing the core
  • Place & route scripts (netlist license)
  • Simulation & synthesis scripts
  • Documentation

 

 

 

top of page
cores    models     info     support     services
site info     contacts      castNet