|
||||||||||
Designing a CE-ATA Verification Environment for SoC Applications
Ioannis Mavroidis, Globetech Solutions
Thessaloniki, Greece Abstract : In this paper we will describe a verification environment developed for the emerging CE-ATA interface. The environment is written in e and is fully compatible with Cadence's Specman Elite. As such, it can be used as a Plug-n-Play verification component into any SoC that implements a CE-ATA bus. The user has full control over every verification aspect, including actively driving generated stimuli onto the bus, or passively monitoring the bus for protocol compliance checking, and coverage collection. 1. Introduction CE-ATA [1] [2], is an emerging disk drive interface tailored to the needs of the handheld and Consumer Electronics (CE) industries. It uses an optimized subset of the ATA command set, stripped down to its bare essentials, over the proven and established MultiMedia Card (MMC [3]) electrical interface. Creating a Verification Environment (VE) for CE-ATA poses a number of challenges. A comprehensive VE should be easily configurable to fit the user environment, should allow full user control to every aspect of its functionality, and should provide monitoring, checking and coverage collection capabilities at all protocol layers. Additionally, since the CE-ATA interface is usually part of a bigger System-on-Chip (SoC) design, a plug-n-play ability to a bigger system-wide VE is particularly important. In this paper, we discuss these challenges and present a CE-ATA VE that has been constructed with the above goals in mind. It is written in e as a reusable and highly configurable eVC (e Verification Component [4]), is fully compatible with Cadence's Specman Elite [4], and takes advantage of the powerful eRM (e Reuse Methodology [4]) guidelines. 2. CE-ATA Technology Overview CE-ATA, publicly announced in September 2004 at the Intel Developer Forum, is a disk drive interface standard tailored to the needs of the handheld and Consumer Electronics (CE) industries. It facilitates the adoption of higher capacity digital storage, afforded by small form factor hard disk drives, into host systems such as cameras, MP3 players, PDAs, personal video players, cellular handsets, GPS navigation systems, automotive devices, and various new and emerging applications. The CE-ATA initiative is backed by some of the most prominent companies in these market segments. Based on the target market, CE-ATA's goals differ from the ones of its desktop siblings, PATA and SATA (Parallel and Serial ATA). Emphasis is given on simplicity, ease of integration, power efficiency and low pin-count, instead of plain performance. CE-ATA meets these goals by using an optimized subset of the ATA command set, stripped down to its bare essentials, over the proven and established MultiMedia Card (MMC) electrical interface. Thus, ATA commands are sent to the small form factor HDD using the MMC bus protocol. The ATA commands used by CE-ATA are:
Assuming no PACKET command support, all commands and command parameters are delivered by writing the device Command Block registers. After writing the command parameters to the corresponding device registers, the command is launched by writing to the Command register. At this point, both the host and the device enter a command specific state machine to execute the command protocol. For the DMA transfers (assuming Multiword DMA is used, instead of Ultra DMA) the ATA command protocol consists of the device asserting a DMA request signal when it is ready for the transfer, waiting for the host to acknowledge the DMA request and then transferring the requested data. After the DMA transfer is acknowledged and finished, the host polls the device Status register or waits for a device interrupt (depending on whether interrupts are enabled or not) until the device becomes idle. CE-ATA uses the above ATA command delivery and protocol execution mechanisms over an MMC bus and command protocol. The MMC bus conforms to the handheld market requirements, utilizing a low pin-count and low voltage levels. It consists of 3 power supply pins and 10 data pins (contrast this to the 50-pin ATA interface):
After a command is driven by the host on the CMD line, the device will drive its response (if any) on the CMD line, followed by the data block transfers (if any) on the DAT0-7 lines. CE-ATA maps all required ATA registers to the MMC register space and uses a reduced MMC command set to deliver the ATA commands of the previous section to the device. It makes use of the following MMC commands (CMD60 and CMD61 are new MMC commands defined by CE-ATA):
CE-ATA also defines a command completion signal for use as the interrupt mechanism during the ATA Command Protocol execution (if interrupts are enabled). Instead of adding an extra interrupt line, the device interrupts the host by sending the command completion signal over the CMD line. Figure 1 shows how a READ_DMA_EXT command would be executed over a MMC bus. The host uses CMD60 to deliver the ATA command to the device and then polls the Status register until the device is ready to accept data (DRQ set). At this point, the host uses CMD61 to initiate the data transfer. When the data has been transferred, the host again polls to determine the device status after command execution (assuming interrupts are disabled; if not, the device would use a command completion signal to interrupt the host when the command has finished). Click to Enlarge Figure 1: READ_DMA_EXT execution over MMC bus. 3. Verification Goals and Challenges Figure 2 shows the possible applications of a CE-ATA Verification Environment (VE). In order to verify a CE-ATA compliant device, the VE should be able to emulate a CE-ATA compliant host, and vice versa. In both cases, the VE should monitor and check the CE-ATA interface for protocol compliance. The protocol checker can also be used in cases where both the host and device are part of the DUT. Figure 2: Applications of a CE-ATA Verification Environment a) Verifying a CE-ATA compliant device b) Verifying a CE-ATA compliant host c) Verifying a CE-ATA Interface Creating such a VE poses a number of challenges. These are summarized below:
A CE-ATA VE was constructed with the above goals in mind. It is written in e as a reusable and highly configurable eVC (e Verification Component), and is fully compatible with Cadence's Specman Elite. Taking advantage of the powerful eRM (e Reuse Methodology) guidelines, it can be put as is into a SoC-wide VE, to verify CE-ATA compliant host or device implementations. Figure 3 shows the CE-ATA eVC architecture in its two most typical applications, which are to verify a CE-ATA compliant device or host. For this reason the Agent of the CE-ATA eVC can play the role of either a bus master (emulating a host that initiates activity on the bus – see Figure 3), or the role of a bus slave (emulating a device that responds to bus master requests). In both configurations, an independent Protocol Checker unit, verifies the CE-ATA bus traffic against MMC or ATA layer errors. Figure 3: Architecture of the CE-ATA e Verification Component (eVC) If both an ACTIVE HOST Agent and an ACTIVE DEVICE Agent are instantiated, together with the Protocol Checker, the eVC can operate in a completely standalone mode, where no DUT is present. If, on the other hand, the Protocol Checker is the only unit instantiated, with no ACTIVE HOST or DEVICE Agent present, the eVC can operate in a completely passive mode monitoring a CE-ATA bus. The CE-ATA eVC consists of the following components: Bus Monitor The Bus Monitor is a completely passive unit which sits on the CE-ATA bus, and monitors for all types of transactions including MMC Commands, MMC Responses, MMC Data Blocks, CRC Status, MMC Busy, Command Completion Signal, and Command Completion Signal Disable. It collects the data for each item in a temporary struct and, when it is fully received, will emit a corresponding event. These events will be acted upon by the HOST and DEVICE BFMs according to the CE-ATA protocol rules, as well as the Protocol Checker. ACTIVE HOST Agent An ACTIVE HOST Agent, is able to fully emulate the behavior of a CE-ATA compliant host. The host acts as a bus master and generates commands on the CE-ATA bus. The user is able to fully control any aspect of the host behavior, ranging from the sequence of generated MMC and ATA commands, to the protocol timing the host should adhere to, and to any optional CRC error injection. User control is also provided at the ATA command level, where the user is able to specify specific transmission parameters for each command. The ACTIVE HOST Agent contains an MMC-ATA Sequence driver and a BFM. The user test interfaces with the Sequence driver in order to specify the sequence of commands to be executed over the bus. The BFM (Bus Functional Model) executes the host protocol to drive the bus with the specified commands. ACTIVE DEVICE Agent An ACTIVE DEVICE Agent, is able to fully emulate the behavior of a CE-ATA compliant device. The device acts as a bus slave and can only respond to host commands; it is not able to initiate any transactions. The user is able to fully control any aspect of the device behavior, ranging from the protocol timing the device should adhere to, to any optional CRC error and device fault injection. User control is also provided at the ATA command level, where the user is able to specify specific device reaction to each command. The ACTIVE DEVICE Agent contains models for the device registers and RAM array, as well as a BFM to execute the device protocol and drive the bus. Protocol Checker The role of the Protocol Checker is to decode the transactions seen on the CE-ATA bus, report any violations of the CE-ATA protocol, and gather coverage information. For this reason it models both a CE-ATA compliant host, and a CE-ATA compliant device together with its registers and storage area, thus knowing their expected states at any point during the test. The Protocol Checker is a completely passive unit, independent of the Agents, which listens for any type of event emitted by the Bus Monitor. Whenever an event is emitted, it will be dispatched to the corresponding event handler, that will:
The Coverage Collector makes use of Specman's Elite powerful tools for functional coverage analysis, to collect coverage information on the MMC and ATA commands, in all their different flavors, that have been exercised over the CE-ATA Bus during a set of test-runs. For example, it collects coverage information for the opcode, interrupts mode (enabled/disabled), number of CMD61’s used, and MMC data block size, for all ATA commands that get executed. It also collects coverage information for the opcodes and arguments of all monitored MMC commands and responses, as well as the observed values for all protocol timing parameters. Conclusions CE-ATA is an emerging disk drive interface tailored to the needs of the handheld and Consumer Electronics (CE) industries. In this paper we discussed the challenges of creating a Verification Environment for the CE-ATA interface, and described an implementation that addresses these challenges in an efficient and comprehensive way. References [1] CE-ATA Digital Protocol, Revision 1.1, 29-September-2005. Available from http://www.ce-ata.org [2] CE-ATA Host Design Guide, Revision 1.0, 29-September-2005. Available from http://www.ce-ata.org [3] The MultiMedia Card System Specification, Version 4.1, April 2005. Available from http://www.mmca.org [4] Cadence products: Specman Elite, eRM (e Reuse Methodology), eVC (e Verification Component). http://www.verisity.com/products
|
Home | Feedback | Register | Site Map |
All material on this site Copyright © 2017 Design And Reuse S.A. All rights reserved. |