Hardware emulator debugs Linux driver
By Alain Raynaud, EE Times
(09/10/07, 09:00:00 AM EDT)
Implementing electronics design functionality using a combination of hardware blocks and software modules based on advanced, multiprocessor platforms is now commonplace. As the dominant implementation style for leading products such as cell phone handsets and consumer multimedia devices, this architectural trend offers advantages of reduced risk, lower cost and faster time-to-market. However, it also drives traditional design methodology issues to extremes.
Since the design functionality is contained in both hardware and software, hardware engineers and software specialists must work closely to ensure consistent operational interaction between their design components. This interaction is often detailed in a specification using the English language as the medium. This method has often proved inadequate because of ambiguities in operational descriptions, producing particularly obscure bugs. To find the bugs, exhaustive verification methods are required. Today, the only methods available to accomplish the required level of verification are to prototype the design or to use an emulation system.
To illustrate these issues and their resolution, we will describe a relatively simple processor platform and attempt to boot up an operating system on it using an emulation system. We will then demonstrate the effect of a complex bug and detail its resolution.
The hardware design used was an embedded processor core--a Tensilica Diamond 232L--with a random-access and flash memory subsystem and a universal asynchronous receiver/transmitter (UART) controller. We used the Linux OS distribution from Monta Vista based on the version 2.6 kernel, coupled with various software capabilities to complete the necessary OS infrastructure. The OS contained driver routines for the UART and other system components. The entire system was mounted onto an EVE ZeBu-UF 0.5 emulator, connected externally through two transaction-level interfaces. A UART transactor was used to drive the console window on a host workstation, and a JTAG standard transactor connected the Tensilica debug tool set into the system.
Related Semiconductor IP
- AES GCM IP Core
- High Speed Ethernet Quad 10G to 100G PCS
- High Speed Ethernet Gen-2 Quad 100G PCS IP
- High Speed Ethernet 4/2/1-Lane 100G PCS
- High Speed Ethernet 2/4/8-Lane 200G/400G PCS
Related White Papers
- Networking driver strategies for using embedded Linux
- SoC interconnect performance verification methodology based on hardware emulator
- Generic Driver Model using hardware abstraction and standard APIs
- Improving Software Driver Development and Hardware Verification Productivity using Virtual Platforms
Latest White Papers
- New Realities Demand a New Approach to System Verification and Validation
- How silicon and circuit optimizations help FPGAs offer lower size, power and cost in video bridging applications
- Sustainable Hardware Specialization
- PCIe IP With Enhanced Security For The Automotive Market
- Top 5 Reasons why CPU is the Best Processor for AI Inference