feature article
Subscribe Now

Integrating Hardies and Softies

Winston Churchill once said that the United Kingdom and the United States are two nations divided by a single language. Sometimes it seems like that in an embedded development environment. In the green corner – the hardies. These are people who think in volts and transistors and will spend enormous effort to reduce watts burned by a system. In the red corner – the softies. Their thinking is dominated by efficient code execution time. The difference between the two is nicely encapsulated in the story of a UNIX based system that was burning excessive power: the processor never seemed to go into any form of standby mode. The hardies naturally blamed the softies, who in return disclaimed all responsibility and also pointed out it would be very hard to find a culprit in the vast number of lines of code in the system. It took a very clever person to get to the bottom of it. The very clever person noticed that the screen prompt for input flashed regularly. Two lines of code ran this prompt, and they were responsible for keeping the processor awake. Merely disabling the two lines of code allowed the processor to move gracefully into a standby mode, saving considerable watts.

During system development, the hardies build virtual models and use simulators and emulators to evaluate architectural options, to optimise the implementation, and to chase bugs. The virtual models and the emulators have interfaces that match the hardies’ way of thinking. Softies work in a different world of development tools. If they want to use either the virtual models or the emulators, they have to leave their world and move into the alien world of the hardies. This requires learning not just a new interface, or even a new vocabulary, but coping with a different way of thinking.

Unusually for an EDA company, Mentor supports both hardies and softies in the embedded sector. The Nucleus RTOS has been around for years, and Mentor says it has been shipped in over 2.4 billion units. (The population of the world is only around 7 billion.) The company has also built its expertise in open source, and it has developed platforms of OS and tools for Linux and, more recently, for Android, as well as providing consultancy services in these areas. Late last year Mentor took over “certain assets” of CodeSourcery, which had been building open source tool chains.

Now it has extended the CodeSourcery products with the launch of Sourcery CodeBench with Sourcery SystemAnalyser. (Not the snappiest of titles, no matter how interesting the products.)

Sourcery CodeBench is not dissimilar to integrated development environments for creating embedded systems available from a range of sources, such as the IAR Workbench. Unlike IAR, it is open source and is based on a GNU tool chain and Eclipse. It provides C/C++ compilers, linkers, run-time libraries, debuggers, instruction set simulators for different target hardware, and so on. There are links for hooking the workbench into a hardware prototype or the end product, through JTAG, TRACE or a serial interface, allowing the developer to download code and exercise it. All in all it is pretty much the environment that a softie with some experience in developing embedded systems is used to.

What is new is that Mentor has added interfacing that allows the softie, while staying in the familiar CodeBench development environment, to hook into two of the Mentor tools for hardies, the Vista virtual prototyping environment and the Veloce SOC emulation tool.

Vista is a way for hardies to build their system as a model. It uses the technique of Transaction Level Modelling (TLM – as defined in the OSCI TLM 2.0 standard) to create a model of the system under development, covering functionality, timing and power, and communication interfaces. The system model uses models of processors, which can execute code at speeds equal to or even faster than the real silicon. It is designed for hardies to explore architectural options and then validate their decisions, including looking at power budgets. The idea behind TLM was that it would also, through the virtual prototype, provide a platform for software development. With the interface to CodeBench, this becomes more practicable.

Veloce is a family of hardware simulators/emulators, which allows the hardies to test and debug hardware before real silicon is available. They can be seriously big boxes (the largest one, the Veloce Maximus, is nearly ten feet long and seven feet high, burning 32 KWatt), and, again, the assumption has always been that they would be used for software as well as hardware development. Again, the interface to CodeBench makes this much more feasible.

The Sourcery CodeBench System Analyser, the other extension to the CodeBench, is designed to cope with the potentially enormous amounts of data that can be generated from Vista and Veloce as well as from JTAG, TRACE, and serial connections to hardware prototypes and the completed system. This data gets even bigger when the systems are deploying multicores and using multiple Operating Systems. There are several ways of viewing the data: for example, a process and thread view shows when a thread starts and finishes within the context of the other threads, clearly interesting in debugging. Other options provide for power and performance optimisation and also help in analysing the information from the use of breakpoints, program single stepping, and other normal debug techniques. It supports Nucleus and Mentor’s Linux plus any other flavour of Linux. It also supports bare metal systems.

If you have been following the Cadence EDA360 saga, the latest announcement also talks about virtual prototyping with virtual models and emulation/simulations, only using Cadence’s Palladium emulation box. Where Mentor is scoring is that it is making its resources easily available to the softies, within a familiar environment.

Of course, for this to be successful, companies developing embedded systems have to come to terms with spending money on software tools, something they seem reluctant to do. They also have to come to terms with letting the softies near the hardies’ toys. At the level of hardware prototypes, where availability of a board to each software developer can reduce project lifecycles and produce better quality software, there is strong anecdotal evidence that companies are reluctant to spend the extra few thousand dollars and instead insist on sharing.

But, on a positive note, the new interfaces and the analysis tool from Mentor have the potential to give the softies better tools and earlier access to the hardware – which have to be good things.

Leave a Reply

featured blogs
Sep 30, 2022
When I wrote my book 'Bebop to the Boolean Boogie,' it was certainly not my intention to lead 6-year-old boys astray....
Sep 30, 2022
Wow, September has flown by. It's already the last Friday of the month, the last day of the month in fact, and so time for a monthly update. Kaufman Award The 2022 Kaufman Award honors Giovanni (Nanni) De Micheli of École Polytechnique Fédérale de Lausanne...
Sep 29, 2022
We explain how silicon photonics uses CMOS manufacturing to create photonic integrated circuits (PICs), solid state LiDAR sensors, integrated lasers, and more. The post What You Need to Know About Silicon Photonics appeared first on From Silicon To Software....

featured video

PCIe Gen5 x16 Running on the Achronix VectorPath Accelerator Card

Sponsored by Achronix

In this demo, Achronix engineers show the VectorPath Accelerator Card successfully linking up to a PCIe Gen5 x16 host and write data to and read data from GDDR6 memory. The VectorPath accelerator card featuring the Speedster7t FPGA is one of the first FPGAs that can natively support this interface within its PCIe subsystem. Speedster7t FPGAs offer a revolutionary new architecture that Achronix developed to address the highest performance data acceleration challenges.

Click here for more information about the VectorPath Accelerator Card

featured paper

Algorithm Verification with FPGAs and ASICs

Sponsored by MathWorks

Developing new FPGA and ASIC designs involves implementing new algorithms, which presents challenges for verification for algorithm developers, hardware designers, and verification engineers. This eBook explores different aspects of hardware design verification and how you can use MATLAB and Simulink to reduce development effort and improve the quality of end products.

Click here to read more

featured chalk talk

Enabling the Flow of Data in the World of IoT

Sponsored by Mouser Electronics and YAGEO Group

At the heart of our growing IoT ecosystem are high performance semiconductors, but integrated circuits alone cannot make a successful IoT system. In this episode of Chalk Talk, Amelia Dalton chats with Peter Blais from KEMET and Ryan Wenzelman from Pulse about how passive components are crucial to the development of successful IoT frameworks. They take a closer look at RF, wired and power distribution aspects of IoT system development and investigate how YAGEO Group is advancing innovation in the world of IoT with a wide selection of passive components.

Click here for more information about Pulse Electronics World of IoT