2016 DUSB2 IP Core USB 2.0 device controller v. 3.02 COMPANY OVERVIEW Digital Core Design is a leading IP Core provider and a System-on-Chip design house. The company was founded in 1999 and since the very beginning has been focused on IP Core architecture improvements. Our innovative, silicon proven solutions have been employed by over 300 customers and with more than 500 hundred licenses sold to companies like Intel, Siemens, Philips, General Electric, Sony and Toyota. Based on more than 70 different architectures, starting from serial interfaces to advanced microcontrollers and SoCs, we are designing solutions tailored to your needs. IP CORE OVERVIEW The DUSB2 is a hardware implementation of a full/high-speed peripheral controller that interfaces to an UTMI bus transceiver. The DUSB2 contains a USB PID and address recognition logic, state machines to handle USB packets and transactions, endpoints number recognition logic and endpoints FIFO control logic. The DUSB2 is designed to support 12 Mb/s "Full Speed" (FS) and 480 Mb/s "High Speed" (HS) serial data transmission rates. The design is technology independent and thus can be implemented in a variety of process technologies. This core strictly conforms to the USB Specification v 2.0. It is delivered with fully automated test bench and complete set of tests, allowing easy package validation at each stage of SoC design flow. ● ● ● ● ● ● ● ● ● ● CONFIGURATION At the synthesis level, the following parameters of the DUSB2 core can be easily adjusted to requirements of a dedicated application and technology. The CPU interface is configurable as 8, 16 or 32-bit wide. Each data endpoint can be effortlessly enabled and disabled, by simply changing an appropriate constant in the package file. There is no need to change any parts of the code, to prepare DUSB2 core with requested number of data endpoints. APPLICATIONS ● Human Interface Devices like keyboards, mousses or game peripherals ● Mass Storage devices like flash disks, mp3 or mp4 players ● GPS navigation systems ● Digital Cameras ● Cellular phones ● Audio devices like microphones and speakers ● Printers ● Scanners MAIN FEATURES ● ● ● ● Full compliance with the USB 2.0 specification Full-speed 12 Mbps operation High-speed 480 Mbps operation Software configurable EP0 control endpoint size 8-64 bytes ● Software configurable 15 IN/OUT endpoints ○ double buffering ○ configurable number of endpoints ○ configurable type of each endpoint: INTERRUPT, ○ configurable size of each endpoint: 8-1024 bytes Supports UTMI Transceiver Macrocell Interface Synchronous RAM interface for FIFOs Suspend and resume power management functions Simple interface allows easy connection to 8, 16, 32bit CPU Allows operation from a wide range of CPU clock frequencies Fully synthesizable Static synchronous design Positive edge clocking No internal tri-states Scan test ready EP1_ENABLE - TRUE (1) / FALSE (0) EP2_ENABLE - TRUE (1) / FALSE (0) EP3_ENABLE - TRUE (1) / FALSE (0) EP4_ENABLE - TRUE (1) / FALSE (0) EP5_ENABLE - TRUE (1) / FALSE (0) EP6_ENABLE - TRUE (1) / FALSE (0) EP7_ENABLE - TRUE (1) / FALSE (0) EP8_ENABLE - TRUE (1) / FALSE (0) EP9_ENABLE - TRUE (1) / FALSE (0) EP10_ENABLE - TRUE (1) / FALSE (0) EP11_ENABLE - TRUE (1) / FALSE (0) EP12_ENABLE - TRUE (1) / FALSE (0) EP13_ENABLE - TRUE (1) / FALSE (0) EP14_ENABLE - TRUE (1) / FALSE (0) EP15_ENABLE - TRUE (1) / FALSE (0) Besides synthesis level configuration parameters mentioned above, there is a portion of device and endpoints parameters, configured at software level, after the USB bus reset condition. The following parameters can be configured at software level: ♦ ♦ ♦ ♦ Endpoint 0 FIFO size to 8, 16, 32 or 64 bytes Endpoints 1-15 FIFO size to 8, 16, 32, 64, 128, 256, 512 or 1024 bytes Endpoints 1-15 direction to IN or OUT Endpoints 1-15 mode to INTERRUPT, BULK or ISOCHRONOUS BULK or ISOCHRONOUS ○ configurable direction of each endpoint 1 Copyright © 1999-2016 DCD – Digital Core Design. All Rights Reserved. All trademarks mentioned in this document are the property of their respective owners. LICENSING DELIVERABLES Comprehensible and clearly defined licensing methods without royalty-per-chip fees make use of our IP Cores easy and simple. ♦ Single-Site license option – dedicated to small and middle sized companies, which run their business in one place. ♦ Multi-Site license option – dedicated to corporate customers, who operate at several locations. The licensed product can be used in selected company branches. ♦ In all cases the number of IP Core instantiations within a project and the number of manufactured chips are unlimited. The license is royalty-per-chip free. There are no restrictions regarding the time of use. There are two formats of the delivered IP Core: VHDL or Verilog RTL synthesizable source code called HDL Source code FPGA EDIF/NGO/NGD/QXP/VQM called Netlist PINS DESCRIPTION PIN TYPE DESCRIPTION cpuclk input CPU clock cpuaddress(7:0) input CPU address bus cpudatai(CS-1:0) input CPU data input bus cpuwr input CPU write cpurd input CPU read cpube(3:0) input CPU byte enable utmiclk input USB clock utmilinestate(1:0) input USB line state utmidatai(7:0) input USB parallel data input bus utmirxvalid input USB receive valid utmirxactive input USB receive active utmirxerror input USB receive error utmitxready input USB transmit ready sramdataia(FS-1:0) input SRAM port A data input bus sramdataib(FS-1:0) input SRAM port B data input bus cpudatao(CS-1:0) output CPU data output bus irq output CPU interrupt request utmiopmode(1:0) output USB operational mode utmidatao(7:0) output USB parallel data output bus utmitxvalid output USB transmit valid utmisuspendm output USB suspend utmixcvrselect output USB transceiver select utmitermselect output USB termination select sramaddra(14:0) output SRAM port A address bus sramaddrb(14:0) output SRAM port B address bus sramdataoa(FS-1:0) output SRAM port A data output bus sramdataob(FS-1:0) output SRAM port B data output bus sramwea output SRAM port A write enable sramweb output SRAM port B write enable FS=8, 16, 32 equal to USB_FIFO_DATA_WIDTH; CS=8, 16, 32 equal to USB_CPU_DATA_WIDTH; DS=8, 16, 32 equal to USB_DMA_DATA_WIDTH; Source code: ● ● ● VHDL Source Code or/and VERILOG Source Code or/and Encrypted, or plain text EDIF VHDL & VERILOG test bench environment ● ● ● Active-HDL automatic simulation macros ModelSim automatic simulation macros Tests with reference responses Technical documentation ● ● ● ♦ ♦ ♦ Installation notes HDL core specification Datasheet Synthesis scripts Example application Technical support ● ● IP Core implementation support 3 months maintenance ● ● Delivery of the IP Core and documentation updates, minor and major versions changes Phone & email support SYMBOL utmiclk utmilinestate(1:0) utmidatai(7:0) utmirxvalid utmirxactive utmirxerror utmitxready utmiopmode(1:0) utmidatao(7:0) utmitxvalid utmisuspendm utmixcvrselect utmitermselect sramaddra(14:0) sramaddrb(14:0) sramdataia(FS-1:0) sramdataoa(FS-1:0) sramdataib(FS-1:0) sramdataob(FS-1:0) sramwea sramweb cpuaddress(8:0) cpudatai(CS-1:0) cpube(3:0) cpurd cpuwr dmaaddress(3:0) dmadatai(DS-1:0) cpudatao(CS-1:0) irq dmadatao(DS-1:0) dmabe(3:0) dmard dmawr 2 Copyright © 1999-2016 DCD – Digital Core Design. All Rights Reserved. All trademarks mentioned in this document are the property of their respective owners. BLOCK DIAGRAM utmiclk utmilinestate(1:0) utmidatai(7:0) utmirxvalid utmirxactive utmirxerror utmitxready utmiopmode(1:0) utmidatao(7:0) utmisuspendm utmixcvrselect utmitermselect utmitxvalid cpuclk reset CPU Interface UTMI Interface cpurd cpuwr cpube(3:0) cpuaddress(8:0) cpudatai(CS-1:0) cpudatao(CS-1:0) irq SRAM Interface EP0 EP1 EP2 EP3 EP4 EP5 EP6 EP7 EP8 EP9 EP10 EP11 EP12 EP13 EP14 EP15 sramaddra(14:0) sramaddrb(14:0) sramdataoa(FS-1:0) sramdataob(FS-1:0) sramwea sramweb sramdataia(FS-1:0) sramdataib(FS-1:0) 3 Copyright © 1999-2016 DCD – Digital Core Design. All Rights Reserved. All trademarks mentioned in this document are the property of their respective owners. UNITS SUMMARY CONTACT UTMI Interface – The UTMI interface is clocked by UTMICLK clock and manages communication with USB 2.0 Transceiver Macrocell. It is responsible for reset detection, speed handshake, token, data and handshake packet reception and transmission. Digital Core Design Headquarters: CPU Interface – The CPU interface module is clocked by CPUCLK clock and manages communication with some CPU. In this module DUSB2 core configuration and status registers are being located. CPU bus size is configurable as 8, 16 or 32-bit wide. Distributors: Wroclawska 94, 41-902 Bytom, POLAND e-mail: tel.: fax: Please check: firstname.lastname@example.org 0048 32 282 82 66 0048 32 282 74 37 http://dcd.pl/sales SRAM Interface – The SRAM interface module manages communication with Synchronous Random Access Memory. It generates address, read and write signals for the SRAM memory and buffers data bytes during the FIFO read and write operations. EP0 endpoint –The EP0 control endpoint is special bidirectional endpoint, used for device configuration. It allows generic USB control and status access. EP1-EP15 endpoints – The EP1 to EP15 data endpoints are unidirectional configurable doublebuffered endpoints, used for application specific data transmission. PERFORMANCE The following tables give a survey about the Core area and performance in ASIC Devices. Device 0.25u typical 0.25u typical 0.18u typical 0.18u typical 0.13u typical 0.13u typical Optimization cpuclk Fmax area > 200 MHz speed > 200 MHz area > 200 MHz speed > 200 MHz area > 200 MHz speed > 200 MHz Core performance in ASIC devices utmiclk Fmax >100 MHz >100 MHz >100 MHz >100 MHz >100 MHz >100 MHz An area utilized by a typical configuration of the DUSB2 core suitable for HID and Mass Storage devices in vendor specific technologies, are summarized in the table below. Component Area Gates 5400 2100 2100 9600 DUSB2+EP0 EP1 endpoint EP2 endpoint Total area Core components area utilization 4 Copyright © 1999-2016 DCD – Digital Core Design. All Rights Reserved. All trademarks mentioned in this document are the property of their respective owners.