In the IoT world, verification tools will be needed to ensure that many devices are correct by construction—and more secure.
Everywhere around us the devices we use are getting connected to each other digitally. New devices that sense and quantify the parameters we need to make decisions are also being created. It is estimated that 26 billion connected devices will be installed by 2020, or roughly four per person on the planet!
The whole purpose of the connected device is to observe/report and control remotely, often aggregating data from numerous sources and making decisions in real time. In making these connections, devices that were hitherto isolated and reported to one master now can be observed and controlled by a host of unseen controllers across the network. The great challenge facing us now is making sure that this whole system works flawlessly across the whole world.
Although it seems that IoT applications are primarily software-driven, that is the visible user interface, the “app”. Underlying this will be layers of OS, communication devices, security functions, and of course, the hardware that really does all the heavy lifting of 1s and 0s. For hardware to connect in new ways and to support new actions we need the development and evolution of new protocols and interfaces. The rapidly spreading adoption of protocols like Bluetooth (LE) Smart is an example.
The challenge does not stop at merely connecting and transmitting information such as temperature. The transmittal of status or parameters is useless unless a return path of control also is supported. As it turns out, control is harder to automate. For example, one can send a message when the temperature exceeds a particular value, but to make a decision to open the window (based on ambient temperature), turn on the fan, or turn on the air conditioner, is more complicated. Also, to put a control interface to each of these devices that is digital is another challenge—literally converting the fan knob into a power electronic control and creating a remote software interface for it.
Such power to remotely control devices comes with its dangers. Consider, for example, that in the year 2020 you programmed the door to your home to compare images of visitors to your home, and open the door if the person at the door is your son (and alert you). However, you made an error while doing the programming and the system opens the door, checks the photo and does not alert you if the visitor is not your son. Oh wait, the door is already open! Although this is a trivial example, it is a very likely scary scenario. We have to remember that not everyone has a master’s degree in programming (although engineers are equally likely to make this mistake).
This is where the art and science of verification comes to the aid of IoT devices and users. In the not so distant future, hardware protocols and software checkers will be made to ensure that many of these devices are correct by construction. In addition, technologies used today such as emulation, constrained random simulation, assertion, coverage and stimulus generation will be used to detect and prevent undesirable scenarios in real-time user contexts.
Today, simulation solutions like Synopsys’ VCS are used to verify billions of gates over millions of clock cycles. Adding verification IP for IoT protocols, the same technology can be used to provide confidence for many critical systems such as automotive, enterprise security and home security. In fact, it is likely that these technology solutions are constantly running in a household or enterprise, providing us confidence that the system(s) are operating in a safe and efficient manner. Confidence is the new verification.