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.
To read the full article, click here
Related Semiconductor IP
- Root of Trust (RoT)
- Fixed Point Doppler Channel IP core
- Multi-protocol wireless plaform integrating Bluetooth Dual Mode, IEEE 802.15.4 (for Thread, Zigbee and Matter)
- Polyphase Video Scaler
- Compact, low-power, 8bit ADC on GF 22nm FDX
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
- Reimagining AI Infrastructure: The Power of Converged Back-end Networks
- 40G UCIe IP Advantages for AI Applications
- Recent progress in spin-orbit torque magnetic random-access memory
- What is JESD204C? A quick glance at the standard
- Open-Source Design of Heterogeneous SoCs for AI Acceleration: the PULP Platform Experience