Posted by Tom De Schutter on May 22, 2014
I recently bought myself an activity tracker. The watch-like device keeps track of how many steps I take and how high I climb, such as the amount of vertical feet I “conquer” by taking the stairs. From that it calculates the distance I travel and the amount of calories that I burn in a day. The device can also measure my heart rate and the oxygen level in my blood, but given the high heart rate I supposedly have even without doing any exercise, I seriously doubt the accuracy of the device on those accounts. While the information displayed on the device screen itself is already interesting, the data gathering and analysis opportunity multiplies through connectivity of the activity tracker with my iPhone. Through a Bluetooth connection, I can transfer all the data to a dedicated app on my iPhone. On top of that I log other activities like strength training and biking activity on another app that synchronizes the data with my activity tracker app. Plus if you want to, you can log all the food you eat and thus your calorie intake with a third app that again syncs with the activity tracker app comparing actual calorie intake versus calorie consumption.
This is of course only one example of the possibilities with today’s multitude of “smart” and connected devices. More than ever the world is full of devices that capture data for dedicated applications and are connected with each other and with a central PC, server or mobile phone/tablet that enables data analysis and the option to tune the functionality of the devices for which the data was gathered. This also means that for these devices it is not enough to develop and test these devices stand-alone. Both the hardware and the software need to be tested and tuned in the context of a complete system set up. First of all, all of these devices need to have an interface IP that enables communication with the “outside world”. Typical interface IPs are USB, Ethernet, and PCIe, like DesignWare USB 3.0 from Synopsys. And each interface IP needs to have an optimized device driver that enables smooth operation while still being power conscious. The development of these low-level software functions needs to happen as early in the design cycle as possible given software’s critical role to test any functionality of the resulting device. Hardware and software have become completely interdependent and a technique like virtual prototyping is required to enable early development of the hardware-dependent software. But, as indicated above, just developing and testing the hardware and software in the context of the specific device or SoC is not enough, it is critical to create the system setup so that the multitude of connections can be established and tested. These tests are important to verify and optimize the driver functionality of the interface IP. Virtual prototypes are also good for this task as they can represent the connection of multiple virtual devices before any of them exists in hardware. This pulls in the time at which the entire driver testing can be done and provides the software developer with valuable debug control and visibility that are unique to virtual prototypes.
As everything around us gets connected, it is important that the software development methods adjust accordingly. Software and system testing requires the full system setup to test the interaction of each of these “smart” and connected devices. Virtual prototyping can help with a lot of this work by e.g. providing a solution to develop and test interface IP drivers both within the context of a SoC as well as within the system context of multiple connected devices. So while my activity tracker is urging me to take more steps, I am helping promote a method to make the connected world a bit more of a reality, step by step.
Patrick Sheridan is responsible for Synopsys' system-level solution for virtual prototyping. In addition to his responsibilities at Synopsys, from 2005 through 2011 he served as the Executive Director of the Open SystemC Initiative (now part of the Accellera Systems Initiative). Mr. Sheridan has 30 years of experience in the marketing and business development of high technology hardware and software products for Silicon Valley companies.
Malte Doerper is responsible for driving the software oriented virtual prototyping business at Synopsys. Today he is based in Mountain View, California. Malte also spent over 7 years in Tokyo, Japan, where he led the customer facing program management practice for the Synopsys system-level products. Malte has over 12 years’ experiences in all aspects of system-level design ranging from research, engineering, product management and business development. Malte joined Synopsys through the CoWare acquisition, before CoWare he worked as researcher at the Institute for Integrated Signal Processing Systems at the Aachen University of Technology, Germany.
Tom De Schutter
Tom De Schutter is responsible for driving the physical prototyping business at Synopsys. He joined Synopsys through the acquisition of CoWare where he was the product marketing manager for transaction-level models. Tom has over 10 years of experience in system-level design through different marketing and engineering roles. Before joining the marketing team he led the transaction-level modeling team at CoWare.