Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
Verification Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
The Cadence Academic Network helps build strong relationships between academia and industry, and promotes the proliferation of leading-edge technologies and methodologies at universities renowned for their engineering and design excellence.
Participate in CDNLive
A huge knowledge exchange platform for academia to network with industry. We are looking for academic speakers to talk about their research to the industry attendees at the Academic Track at CDNLive EMEA and Silicon Valley.
Come & Meet Us @ Events
A huge knowledge exchange platform for academia. We are looking for academic speakers to talk about their research to industry attendees.
Americas University Software Program
Join the 250+ qualified Americas member universities who have already incorporated Cadence EDA software into their classrooms and academic research projects.
EMEA University Software Program
In EMEA, Cadence works with EUROPRACTICE to ensure cost-effective availability of our extensive electronic design automation (EDA) tools for non-commercial activities.
Apply Now For Jobs
If you are a recent college graduate or a student looking for internship. Visit our exclusive job search page for interns and recent college graduate jobs.
Cadence is a Great Place to do great work
Learn more about our internship program and visit our careers page to do meaningful work and make a great impact.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
Overview All Courses Asia Pacific EMEANorth America
Instructor-led training [ILT] are live classes that are offered in our state-of-the-art classrooms at our worldwide training centers, at your site, or as a Virtual classroom.
Online Training is delivered over the web to let you proceed at your own pace, anytime and anywhere.
Exchange ideas, news, technical information, and best practices.
The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
Get email delivery of the Cadence blog featured here
Lately, device teardowns of consumer electronics have become popular. There are many articles and videos showing what's inside a particular device. EE Times even had an article asking if they were useful and who actually benefits from them (but after the new EE Times website was launched I can't find it). Today, I have a different kind of teardown, a software tool teardown.
The most intriguing slide (for me) in the DAC presentation by Iqbal Arshad, entitled "Designing the Motorola Droid," is the laundry list of tools that were used to ensure the software was stable and operating with expected performance. It's slide 27 of the presentation. The bottom of the slide says, "Cumbersome System Optimization". Some tools are familiar to me and some are not. I thought I would take a shot at identifying as many as possible and hopefully I will get some help from readers in a game of "Identify that Tool."
The list is directly from the slide by category: Debugging, Logging, Test, Measurement, and Benchmarking. Below is my identification attempt with links to more info. There are some I couldn't identify, so please help figure out what they are.
JTAG and ETM: These are pretty easy, JTAG is a hardware connection for a software debugger to control the CPU execution. ETM is the ARM Embedded Trace Macrocell which captures information from the running CPU and exports it back to the host machine for analysis tools to process for things like performance profiling. RealView ICE and RealView Trace are good examples. There are many more JTAG products available in the market for ARM processors.
ADB: This is the Android Debug Bridge. ADB is used to communicate with a running device to get the status, copy files to/from the device, check log messages, install applications, and more. Check out the Android developer documentation for details.
GDB: Obviously, the ubiquitous GNU debugger used to debug software.
Kmem: Probably refers to /dev/kmem or /dev/mem. These are character devices that can be used to inspect the state of memory on the target system. I'm not sure if there are any tools to help memory inspection. Reader help is needed on this one.
LTT-lite: Refers to the Linux Tracing Tool used to debug or gather statistics about the running system related to performance.
RTA: I don't have a clue here; my only guess is Real Time Audio analyzer. Maybe it's a tool to confirm multimedia performance.
ADB: Already covered above.
DDMS: The Android debugging tool called Dalvik Debug Monitor Server. DDMS provides screen capture, and more information about the running device.
Genie tool: Could be a framework for testing web applications found on SourceForge.
QXDM, QPST: These are tools provided by Qualcomm for monitoring and analyzing wireless 3G protocols. This makes sense since the Droid has a Qualcomm baseband processor/RF transceiver.
Monkey: Monkey is a testing tool for Android that generates random streams of user input as well as other system events. More details are in the Android Developer Documentation. I covered a bit about Monkey in my series on Android System Verification.
Hopper: Hopper looks like a Microsoft version of Monkey. I'm not sure why it's mentioned for the Droid since it seems to be for Windows Mobile.
Raptor: All I could find was a Java tool on SourceForge, this may or may not be it.
TestNG: Looks like a Java testing tool like JUnit.
P-unit: Another testing tool for Java on Android.
VNC: Not sure why VNC is is mentioned, maybe it's used to connect to Droid displays over the network, I have a Nokia n800 that can run a vncserver and it can be accessed from another machine. Sometimes I also use TightVNC.
I don't think these are tools; I'm not sure why they are mentioned. Any clues would be appreciated.
High speed camera
DDMS screen capture
Maybe video capture is used to measure user experience to avoid a sluggish product -- not sure.
CaffineMark: Benchmark developed by Pendragon Software for the Android Java Virtual Machine.
Does this tool list confirm the opinion held by some (especially in EDA) that embedded software development and testing teams do not spend much money on tools? Things like JTAG hardware and the Qualcomm tools are not free, but most of the things listed are free. Personally, I think companies would pay for tools that help find and fix system issues in a much easier way, so the fact that software engineers don't pay much for this mix of tools doesn't bother me too much.
Please help by sharing any additional insight into the tools that are listed.
Also, if you have other tools that you use to do these tasks in your embedded system, please share information about them.