Академический Документы
Профессиональный Документы
Культура Документы
0_aware_DMAC_Requirements
03.11.2010
USB
Connector
Transceiver
Chip (PHY) UTMI
Protocol
Engine
DMAC
Controller
SRAM
AGE
System Bus
ROM/
EEPROM
Fig. 1 Controller-based Device Controller Block Diagram
The USB 2.0 DMAC is programmed by the C, at system boot time, according to the code generated by
the USB2.0 SDK, in the development system. Once, development has been completed and the USB 2.0
Device is ready for production, the C is eliminated from the system (cost saving) and Mask ROMs
replace the Configuration Registers within the Protocol Engine and the DMAC.
The DMAC Configuration Registers contain the information necessary to access the Animation Graphic
Engine (AGE) application-defined Endpoints Buffers (Memory or Register Files), i.e. the data width for
each and every Endpoint.
The DMAC supports up to 4 different functions within a single configuration (though within the GOK,
it supports a single function).
The PE issues a Transaction Request command (ntreq signal) and a Packet transfer request (npreq), for a
specific function Endpoint. The ntreq signal is used also as DMAC requests system bus access
permission from the C (nbreq). When bus access is granted by the C's Bus Arbiter, the nbgnt signal is
used also as a ndack signal to the PE and the DMAC starts data transfer transactions over the system bus
by issuing Endpoint Buffer Address, Read and Write control signals, monitor Function's Wait signal,
start data transfer (between PE Packet Buffers and EP Buffers Registers or Memory), either in flyby
single 16bit (word) data transfer mode or multiple bus cycles gather-scatter mode, to match different
source and destination bus width.
In both single packet or multiple packets data transfers, terminating specific channel/EP In Transaction
(from EP to Host), is done by the DMAC monitoring the End-Of-Transaction (neot) signal, issued by
the Function (last EP Buffer address reached). In case of Out Transaction (from Host to EP), if last
packet size is smaller than the pre-defined EP MaxPacketSize or packet having data size = 0 (zero), the
VLSI LAB
BIU
USB2.0_aware_DMAC_Requirements
03.11.2010
PE de-asserts ntreq signal (bus request de-asserted). In case of multiple packets data transfers, only the
npreq is de-asserted, bus request still asserted (and granted) and DMAC will carry on with next packet
data transfers as soon as npreq will be asserted. When both ntreq and npreq will be de-asserted, the
system bus is released for Controller's usage and the DMAC is ready to perform the next transfer
request.
The DMAC access PEs RX/TX Buffers (FIFOs), as an I/O Devices, using dedicated PE read/write
signals (npbrd/npbwr). Data is transferred over the system data bus.
-Vss
+Vcc
nbreq
nbgnt
nbreq
nbgnt
XTAL
Oscillator
ntreq
npreq
ndack
ep_dir
epn[3:0]
16bit RISC
Controller
clk
nrst
+Vcc -Vss
-Vss
nrst
clk
USB2.0-Aware
DMAC
abus dbus
npbwr npbrd nwr nrd nwait [23:0] [47:0]
nrd
LDO
USB
Connector
Data Bus
+V -V
Address Bus
nwr
+D -D
int
CLK
UTMI
USB2.0 PHY
ntreq
dbus
[15:0] npreq
ndack
USB2.0 Protocol ep_dir
epn[3:0]
Engine
epn[3:0]
abus dbus
[18:0] [47:0]
AGE ASIC
Device
npbwr
npbrd
RST
nrst
+Vcc
clk
nrst
clk
-Vss
+Vcc
-Vss
+Vcc
-Vss
4. Implementation
The DMAC is designed as a Front-End for near future ASIC implementation. It is designed using
Verilog HDL and simulated/logically verified for correct operation, using Cadence Incisive Simulator.
Intermediate Hardware Implementation, for proof of concept and correct functionality, is performed
using FPGA Device, located on Altera DE2 Development Board, under Quartus II Development
Environment. The Incisive logically verified Verilog code is used for implementation.
Quartus II MegaFunction Wizard is not used.
There is an option to incorporate the Protocol-Aware DMAC into the USB2.0 Protocol Engine.
VLSI LAB
BIU