Mentor Blogs

Posts tagged with 'C++'

Catapult C and the 7 Samuraïs

Posted Apr 1, 2011, by Thomas Bollaert

You may have already encountered the expression “Full-Chip High-Level Synthesis” on this blog. I typically define it as the ability to model, verify and synthesize complete IP subsystems starting from C++/SystemC. This obviously encompasses core processing functionality, but also control-logic, memories, hierarchy, complex interfaces and interconnects. In other words, being able to do the … Read More

Tags: SystemC, Full-Chip, User Testimonial, Catapult C, control, C++, High-Level Synthesis, Deepchip, ESNUG, Control-Logic Synthesis, Cooley

volatile

Posted Aug 31, 2009, by Colin Walls

I have often talked and written about my thoughts on programming languages. In particular the fact that there really is no language that was designed with embedded programming specifically in mind. Historically, there was assembly language, but that is rarely used for large scale coding nowadays. Intel promoted PL/M many years ago, but that has fallen by the wayside. C and C++ are the key languages … Read More

Tags: C, RTOS, EDGE Compiler, C++

++i or i++?

Posted Aug 10, 2009, by Colin Walls

If you are reading this blog, you are probably knowledgeable about embedded software and, therefore, like me, you consider yourself proficient in C. C is still the dominant language for embedded work. I read an article recently which espoused the view that “real men program in C” - I rather liked that. It also suggested that, since relatively few new graduates know C, there is an increasing shortage … Read More

Tags: C++, Optimization, EDGE Compiler

Synthesizing parallel designs from sequential C++ - part 1

Posted Jul 14, 2009, by Thomas Bollaert

It is a fact of life; preconceived ideas tend to live long. But in a rational and scientific domain such as electronic design, it really feels wrong when false statements are repeatedly asserted by engineers themselves. In EDA, and more specifically in the field of C synthesis, a commonly spread idea is that it is impossible to synthesize parallel hardware designs from sequential C++. The corollary … Read More

Tags: C++, High-Level Synthesis, Catapult C Synthesis

Language extensions

Posted Jun 29, 2009, by Colin Walls

There is a paradox with programming languages. Everyone would agree that standardizing languages is a good thing, leading to portability of software and programming skills. But what if the resulting standard lacks features required by certain types of applications? One possible approach is to define a language specification that is so large that it encompasses every possible eventuality. In the late … Read More

Tags: C++, EDGE Compiler

There are 10 kinds of people in the world

Posted Jun 8, 2009, by Colin Walls

If, like many embedded software developers, you need to work "close to the hardware", you will want to be able to visualize the bit patterns that map on to CPU and peripheral registers. The obvious way to do this is in binary, as you can see the 1s and 0s directly. However, I do not think that I have ever seen the option, even in assembly language, to include binary constants in software. Do feel free … Read More

Tags: Binary, Source Code, EDGE Compiler, C++

Who needs OS source code?

Posted Jun 1, 2009, by Colin Walls

It is an interesting question: when do you need the source code in order to reuse some software and when would binary [i.e. a black box] be quite satisfactory? With an embedded operating system the answer is far from obvious. There is even a question as to what source code really is. If you ask an engineer whether he would like to have the source code for an OS or any other reusable software, the … Read More

Tags: C++, DO-178B, Nucleus, Medical, Avionics, Certification, Source Code, Nucleus Kernel, RTOS

Assembly language is always smallest/fastest - not!

Posted May 27, 2009, by Colin Walls

It would seem intuitive that writing in assembly language is the best possible option if you want the most optimal code in terms of size and/or speed. After all, assuming the programmer is smart and competent in the assembler for a particular CPU and understands its architecture well enough, and he has been fully appraised of the functional requirements of the code, the only possible result is code … Read More

Tags: C++, EDGE Compiler