Getting to Market Early With SuperSpeed USB Virtual Platforms
Frank Schirrmeister, Synopsys
Its simplicity, low cost and functional flexibility has led to tremendous popularity of USB and today over 2 billion devices with USB connectivity are sold. Next generation applications require higher bandwidth for faster "sync-and-go" functionality between PCs and portable electronic devices. For example, a 27 GB transfer of high definition video, which will take about 14 minutes using USB 2.0, can be done in about 70 seconds with the next generation of USB. SuperSpeed USB delivers more than 10x the data transfer rate of Hi-Speed USB and is backwards compatible with previous USB technologies. It is expected that early adopters will be taking advantage of SuperSpeed USB as early as in the second half of 2009.
SuperSpeed USB Characteristics
Figure 1: SuperSpeed USB Protocol Layers
Figure 1 shows the protocol layers of SuperSpeed USB with the host side on the left and the device side on the right. The complexity of the protocol is distributed across hardware and software, with the functional layer implemented in software. The protocol layer, the SuperSpeed USB specific new link layer and the physical layer are implemented in hardware.
Figure 2: SuperSpeed USB Software Architecture
Figure 2 shows the software architecture on the host and device sides for SuperSpeed USB. New drivers for the Extended Host Controller Interface (xHCI) and the SuperSpeed USB Device are required to maintain compatibility with existing standard drivers.
Given the nature of chip development projects in the consumer application domain, re-use of IP is an important component to reduce time to market. The Synopsys DesignWare® SuperSpeed USB IP solution consists of the xHCI host and device controllers, PHY and verification IP. Silicon containing processors and IP requiring drivers cannot be sold without the appropriate associated software. As a result developers have been looking for prototyping techniques to reduce the overall product turnaround time by parallelizing hardware and software development.
In a derivative design, a portion of the software can be developed using the previous-generation chip. This approach often works best for the portions of the software higher up in layered software-architectures, specifically the hardware independent application software. However, given that the register fields are updated and enhanced from on chip generation to the next, this approach is difficult for lower-level portions of the software like drivers and middleware.
Later in the design flow, after the RTL is complete and has reached a stable state using functional verification techniques, FPGA prototypes can be used. They should be a pre-silicon, fully functional hardware representation of the SoC, board and I/O implementing unmodified ASIC RTL code. Optimally implemented, they can run at almost real-time with external interfaces and stimulus connected, and provide, in conjunction with hardware simulators, much better system visibility and control than the actual silicon prototype.
Virtual platforms offer a solution very early in the project, as soon as the architecture of the design has been worked out. Virtual platforms are a pre-RTL, register accurate and fully functional software model of SoC, board, I/O and user interfaces. They execute unmodified production code and run close to real-time with external interfaces like USB as "virtual I/O". Because they are fundamentally software, virtual platforms provide high system visibility and control including multi-core debug. And they can serve as an elegant vehicle of interaction between semiconductor and system house. Since the recent standardization of the OSCI TLM-2.0 transaction-level APIs, SystemC™ has become the suitable infrastructure to develop fast virtual platforms using interoperable transaction-level models and is supported by a variety of commercial products including Synopsys' Innovator product line.
The Synopsys SuperSpeed USB solution also includes a SuperSpeed USB virtual platform as indicated in Figure 3, as well as drivers to aid software development. Transaction-level models of the SuperSpeed USB components are delivered as part of a virtual model of the Samsung IP-MATE platform.
Virtual Platform Use Models for SuperSpeed USB Driver Development
There are two basic use models for virtual platforms supporting driver development in the context of a USB core.
First, a virtual platform can be used to model a device like a digital still camera, a USB video camera or a media player. Using Virtual I/O capabilities for software emulation of device I/O, the virtualized product can be connected to a Windows or Linux host on which the host controller resides and connects to the USB device. This process is illustrated in Figure 4
Figure 4 - USB Device in virtual platform connected to real-world host
In this case the virtual platform simulates the USB device in question. The USB Device Controller model is part of the virtual platform and an ARM processor runs the device driver and application software within the virtual platform. A software debugger can be attached to the processor in the virtual and the function of the device driver can be developed and verified on the virtual platform long before RTL or silicon are available. In addition, the USB application software running on the device - a data transfer program for media files in the example of Figure 3 - can be developed, debugged and verified.
Pushing the button "USB Cable Input" connects the virtual platform to the USB Host Controller on the host on which the virtual platform executes. In effect, all the steps happening when the real device is connected will happen in this case as well, i.e., the Windows operating system will inform the user that a new hardware device has been detected. Together with Synopsys' virtual platform offerings, a virtual USB Hub Driver is provided. This Hub Driver interfaces to the Windows USB driver environment connecting the virtual hard disk in the media player to the Windows Application (in this case Windows Explorer) in which the virtual hard disk appears as a new disk to interact with.
Figure 5 - USB host in virtual platform connected to real-world device
Figure 5 illustrates another use model. This time the virtual platform simulates the USB Host environment and the Host PC is connected to a real-world USB device. The real-world device, a memory stick, is connected the Host PC using the Host Controller Driver and Hub Driver provided by the Windows operating system. Synopsys provides a USB Client Device Driver to connect this real-world device to the host executing in the virtual platform. This way it is easy to develop, debug and verify host controller drivers and applications for different host operating systems.
Enabling an Software Development Eco-system
To enable the availability of system-level solutions, Synopsys has created the System-Level Catalyst program. Open to electronic design automation (EDA) vendors, intellectual property (IP) vendors, embedded software companies and service providers, the program is designed to benefit mutual customers by advancing tool and model interoperability as well as availability of system-level models and services. Members of the System-Level Catalyst Program gain access to Synopsys system-level products such as Innovator, DesignWare® System-Level Library, System Studio, Synplify DSP and Confirma.
To enable software availability around USB, Synopsys has partnered with Jungo Ltd, Emsys Embedded Systems GmBH and MCCI Inc., providing them access to USB virtual platforms to enable early pre-silicon software development. For more information please check out the appropriate System-Level Catalyst partner pages by clicking on the links below.
||"As a leading provider of embedded USB software and drivers, it is critical for Jungo to have access to development platforms, enabling timely and quality software delivery. The Synopsys System-Level Catalyst Program extends our cooperation with Synopsys as we gain access to virtual platforms with system-level models of the Synopsys DesignWare Cores, allowing us to port our USBware™ embedded USB software protocol stack prior to silicon availability of our customer's devices. Besides time to market improvements, the debug visibility in the Synopsys USB virtual platforms improves development productivity at the hardware/software interface."
|- Ophir Herbst, GM Connectivity Software at Jungo|
||"Emsys' USB protocol stack software packages in C and C++ are available for the Synopsys DesignWare® USB solution. Gaining access to virtual platforms representing Synopsys' USB solutions allows us to start software development and porting at the earliest possible time and to shave off important weeks off our joint customer's schedules though early software delivery."
|- Karsten Pahnke, CEO of emsys Embedded Systems GmbH|