in PDF Format - Embedded-Control-Europe.com
in PDF Format - Embedded-Control-Europe.com
in PDF Format - Embedded-Control-Europe.com
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Stop with bor<strong>in</strong>g presentations!,<br />
Long before there were <strong>com</strong>puters<br />
there were bad presentations. And<br />
there still are. All of you attend<strong>in</strong>g<br />
presentations regularly experience<br />
this by suffer<strong>in</strong>g bor<strong>in</strong>g hours<br />
where conference speakers fail to<br />
use your time and theirs wisely.<br />
Most of the presentations are too<br />
detailed for the audience, use visuals<br />
that are far too <strong>com</strong>plex, and<br />
generally show a lack of passion<br />
from the orator.<br />
When you th<strong>in</strong>k of technical pre-<br />
Michael Moesslang<br />
sentations, you may th<strong>in</strong>k of dark<br />
rooms, masses of slides, and a<br />
voice at the front of the room narrat<strong>in</strong>g <strong>in</strong> detail the facts for the audience.<br />
However, there are def<strong>in</strong>itely exceptions and ways to deliver<br />
a speech that manage to reach the goal content-wise and at the<br />
same time persuade and enterta<strong>in</strong> the audience. The worst belief is<br />
that your presentation has to be like presentations have always been<br />
<strong>in</strong> your <strong>com</strong>pany, as that is the standard. Be<strong>in</strong>g standard - another<br />
word is mediocre - never leads to be<strong>in</strong>g conv<strong>in</strong>c<strong>in</strong>g. And isn’t this<br />
what it is all about? To really conv<strong>in</strong>ce your audience? Lots of technicians<br />
th<strong>in</strong>k they are not <strong>in</strong> sales and therefore they do not need to<br />
be conv<strong>in</strong>c<strong>in</strong>g. So very wrong! To conv<strong>in</strong>ce an audience is sell<strong>in</strong>g observations,<br />
conclusions, and projections. That also is sales, isn’t it?<br />
To reach your audience and have it leave satisfied and impressed after<br />
your presentation, you’d better th<strong>in</strong>k about break<strong>in</strong>g several of these<br />
standard patterns and relate to some of the rules of human <strong>com</strong>munication.<br />
One of these is to speak <strong>in</strong> a clear and understandable<br />
way with as few technical abbreviations or terms as possible. Never<br />
assume that your audience has the same level of technical knowledge<br />
as yourself. Slides filled with masses of text <strong>in</strong> small fonts do not support<br />
but rather destroy the impact of your words. Visuals are far better<br />
and should clearly show what you wish to po<strong>in</strong>t out. Never forget<br />
that your audience will see the visual - maybe a technical illustration<br />
or a spreadsheet - for the very first time. They will need time<br />
to understand and are not able to listen to you dur<strong>in</strong>g that process.<br />
People cannot read and listen at the same time. To get and keep an<br />
alert audience you should speak with suspense and use loops. A loop<br />
is a teas<strong>in</strong>g announcement creat<strong>in</strong>g suspense. In the follow<strong>in</strong>g the audience<br />
will wait curiously for the later clarification of facts and therefore<br />
stay with you.<br />
If you are go<strong>in</strong>g to get up <strong>in</strong> front of your audience and say that the<br />
design of your strategy matters, that the design of your software or<br />
hardware matters, that your content matters, then at the very least the<br />
structure and visuals you use also need to be the result of credible design.<br />
Then, and only then, can you give presentations that are better<br />
than the rest out there. And w<strong>in</strong> over your audience.<br />
Yours s<strong>in</strong>cerely,<br />
Michael Moesslang<br />
VIEWPOINT<br />
Viewfullarticleonl<strong>in</strong>eathttp://www.<strong>Embedded</strong>-Know-how.<strong>com</strong><br />
3 November 2009<br />
V-10_2009-TM-4805<br />
SH7216<br />
Ultra Fast Flash Microcontroller<br />
The perfect s<strong>in</strong>gle-chip solution for automation,<br />
servo motor and <strong>in</strong>verter applications.<br />
72 different devices offer various <strong>com</strong>b<strong>in</strong>ations of<br />
functionality, memory capacity and package.<br />
Performance:<br />
� Superskalar SH2A-Core 200 MHz/400 DMIPS<br />
� Float<strong>in</strong>g-Po<strong>in</strong>t-Unit 400 MFLOPS<br />
� 1 MB S<strong>in</strong>gle-Cycle <strong>Embedded</strong> Flash<br />
� 128 KB SRAM<br />
Peripherals:<br />
� Multi-functional Timer Units<br />
� 100 MHz Complementary PWM<br />
� Fast 12-bit A/D Converter<br />
Connectivity:<br />
� Ethernet MAC<br />
� CAN<br />
� USB 2.0 Full Speed<br />
Renesas the no.1 supplier of<br />
microcontroller products offers<br />
best <strong>in</strong> class Flash technology,<br />
proven quality and long life time support.<br />
You will like it – once you try it!<br />
Get <strong>in</strong> contact with MSC to evaluate the SH7216 now!<br />
Visit our ToolGuide-Webshop:<br />
www.msc-toolguide.<strong>com</strong><br />
MSC Vertriebs GmbH<br />
+49 7249 910-520 · micros-renesas@msc-ge.<strong>com</strong><br />
www.msc-ge.<strong>com</strong>/ad/micros-renesas
CONTENTS<br />
Viewpo<strong>in</strong>t 3<br />
Cover Story<br />
High performance semiconductors<br />
paved the way for electric bicycles 6<br />
Industrial <strong>Control</strong><br />
Mak<strong>in</strong>g <strong>in</strong>dustrial systems safer<br />
by meet<strong>in</strong>g the IEC 60730 standards 9<br />
Tools & Software<br />
Design kits for PCBs featur<strong>in</strong>g<br />
embedded Atom processors 12<br />
Rapid prototyp<strong>in</strong>g us<strong>in</strong>g software<br />
configuration management 14<br />
Tools & Software<br />
Different design patterns for<br />
<strong>in</strong>tegrat<strong>in</strong>g Simul<strong>in</strong>k with Stateflow 18<br />
Micros & DSPs<br />
S<strong>in</strong>gle-chip coherent multiprocess<strong>in</strong>g<br />
boosts embedded performance 20<br />
Accelerat<strong>in</strong>g early stages of the design<br />
cycle with i.MX processors 24<br />
FPGAs, PLDs & ASICs<br />
The drive to lower power opens up<br />
new FPGA applications 26<br />
Flexible power system management<br />
capabilities for embedded systems 29<br />
Low-power FPGA solutions for<br />
graphics applications featur<strong>in</strong>g LCDs 31<br />
Highly configurable embedded 32-bit<br />
RISC processor for FPGA applications 33<br />
Product News 36<br />
Cover Photo<br />
Inf<strong>in</strong>eon Technologies<br />
November 2009 4<br />
High performance semiconductors<br />
paved the way for electric bicycles PAGE 6<br />
This article describes the technical progress <strong>in</strong> electronics and<br />
power electronics which enables nowadays e-bikes as mass products<br />
for green personal transportation.<br />
Mak<strong>in</strong>g <strong>in</strong>dustrial systems safer<br />
by meet<strong>in</strong>g the IEC 60730 standards PAGE 9<br />
This article discusses the different classes of the IEC 60730 standards<br />
for appliances and <strong>in</strong>dustrial control and shows how MCU<br />
manufacturers can help by deliver<strong>in</strong>g hardware features, such as<br />
<strong>in</strong>dependent watchdogs, CRC eng<strong>in</strong>es, ECC and software periodic<br />
test rout<strong>in</strong>es to ga<strong>in</strong> IEC 60730 <strong>com</strong>pliance.<br />
Rapid prototyp<strong>in</strong>g us<strong>in</strong>g software<br />
configuration management PAGE 14<br />
Software configuration management<br />
contributes powerfully to<br />
rapid prototyp<strong>in</strong>g of both hardware<br />
and software for embedded<br />
systems, especially with the <strong>com</strong>munication<br />
problems aris<strong>in</strong>g from<br />
far-flung design teams and -<br />
system architects. This article describes latest techniques such as<br />
lazy copy<strong>in</strong>g and reverse delta archiv<strong>in</strong>g.<br />
S<strong>in</strong>gle-chip coherent multiprocess<strong>in</strong>g<br />
boosts embedded performance PAGE 20<br />
This article expla<strong>in</strong>s how the MIPS32 1004K coherent process<strong>in</strong>g<br />
system br<strong>in</strong>gs together MIPS multi-thread<strong>in</strong>g and coherent SMP<br />
<strong>in</strong> a s<strong>in</strong>gle IP block to provide scalable, high-density embedded<br />
<strong>com</strong>put<strong>in</strong>g power.<br />
The drive to lower power opens up<br />
new FPGA applications PAGE 26<br />
Power is often a more important<br />
design consideration today than<br />
performance. Portable, powerconscious<br />
electronics demands<br />
low-power <strong>com</strong>ponents of every<br />
k<strong>in</strong>d, a demand <strong>in</strong>creas<strong>in</strong>gly met<br />
by FPGAs. This article highlights<br />
the trend and technology by<br />
examples drawn from many fields.<br />
Flexible power system management<br />
capabilities for embedded systems PAGE 29<br />
This article shows how programmable<br />
logic devices are well suited<br />
to enable flexible and efficient<br />
power management functions,<br />
especially for battery-powered<br />
embedded systems.
®<br />
The INTEGRITY RTOS<br />
Certified and Deployed Technology<br />
The INTEGRITY RTOS is deployed and certified to:<br />
Avionics: DO-178B Level A, certified: 2002<br />
Industrial: IEC 61508 SIL 3, certified: 2006<br />
Medical: FDA Class III, approved: 2007<br />
Security: EAL6+ High Robustness, certified: 2008<br />
France:<br />
Israel:<br />
Sweden:<br />
Please contact your local office<br />
for your free Certification Information Pack.<br />
+33 (0) 143 143 700<br />
+972 (0)9 9584060<br />
+46 (0)8 750 82 70<br />
www.ghs.<strong>com</strong><br />
Germany: +49 (0)228 43 30 777<br />
Netherlands: +31 (0)33 4613363<br />
UK: +44 (0)1844 267950<br />
Copyright © 2009 Green Hills Software, Inc. Green Hills, the Green Hills logo and INTEGRITY are trademarks of Green Hills Software, Inc. <strong>in</strong> the U.S.and/or<br />
<strong>in</strong>ternationally. All other trademarks are the property of their respective owners.
COVER STORY<br />
High performance semiconductors<br />
paved the way for electric bicycles<br />
By Juergen Hoika, Inf<strong>in</strong>eon Technologies<br />
November 2009<br />
This article describes<br />
the technical progress<br />
<strong>in</strong> electronics and power<br />
electronics which enables<br />
nowadays e-bikes as mass<br />
products for green personal<br />
transportation.<br />
■ Electrical drives are not new <strong>in</strong> transport:<br />
Trams and tra<strong>in</strong>s have been runn<strong>in</strong>g on electricity<br />
for a long time. Electrically driven vehicles<br />
have been around s<strong>in</strong>ce the 1830s and more<br />
than 100 years have now passed s<strong>in</strong>ce the <strong>in</strong>vention<br />
of the electric bicycle. In 1895, Ogden<br />
Bolton, Jr. applied for the first patent for a battery-operated<br />
bicycle with a 6-pole brush<br />
motor built <strong>in</strong>to the rear wheel. Development<br />
and <strong>com</strong>mercialization of the electric bicycle<br />
have <strong>com</strong>e a long way <strong>in</strong> those 110 years. From<br />
a technological po<strong>in</strong>t of view, the breakthrough<br />
undoubtedly came with the availability of<br />
long-lived accumulators - such as the lithiumpolymer<br />
battery - and with the <strong>in</strong>crease <strong>in</strong> the<br />
power and efficiency of electric motors brought<br />
about by the use of electronics. Electric bikes are<br />
part of a wide range of Light Electric Vehicles<br />
(LEVs). Generally designed for one person and<br />
small cargo capacity, electric bike range, speed,<br />
and costs are moderate, provid<strong>in</strong>g clean, quiet,<br />
convenient and efficient local transportation.<br />
What is that market? Worldwide, bicycles and<br />
scooters are the number one mode of transportation.<br />
An estimated one billion bicycles are<br />
<strong>in</strong> daily use, and more than 100 million new bicycles<br />
enter the world market each year. Ch<strong>in</strong>a,<br />
for example, has 34 bicycles per 100 <strong>in</strong>habitants<br />
and has a market for more than 30 million bicycles<br />
annually. So it is no surprise, that the<br />
<strong>com</strong>mercialization of the electric bicycle has<br />
been driven ma<strong>in</strong>ly by its <strong>in</strong>troduction and subsidization<br />
<strong>in</strong> Ch<strong>in</strong>a. The production figure of<br />
only 40,000 electric bicycles <strong>in</strong> Ch<strong>in</strong>a <strong>in</strong> 1998<br />
rose to 10 million with<strong>in</strong> 7 years. By 2008 this<br />
figure had almost doubled. What caused this<br />
breakthrough for the electric bicycle <strong>in</strong> Ch<strong>in</strong>a?<br />
These conveyances became the favorite means<br />
of transport for the Ch<strong>in</strong>ese populace because<br />
they offer a cheap, convenient form of personal<br />
mobility as an attractive alternative to public<br />
transport and the push-bike. In Ch<strong>in</strong>a,<br />
electric bicycles are subsidized by national and<br />
many local governments, thanks to their low<br />
energy consumption and freedom from emission<br />
– a particularly important aspect <strong>in</strong><br />
Ch<strong>in</strong>a`s overloaded urban areas. They have already-<br />
quite literally - overtaken the conventional<br />
bicycle <strong>in</strong> some cities.<br />
In <strong>Europe</strong>, the electric bicycle suffered from a<br />
negative image for many years. It was heavy, and<br />
was regarded as un-sportsmanlike, and found a<br />
place more as an aid than as a means of transport<br />
<strong>in</strong> its own right. In view of the stream of<br />
announcements of new, so-called “Pedelecs”<br />
(Pedal Electric Cycles), these times seem to be<br />
over at last. Cities <strong>in</strong> <strong>Europe</strong> are also beg<strong>in</strong>n<strong>in</strong>g<br />
to <strong>in</strong>vest <strong>in</strong> this means of transport. In Switzerland,<br />
too, the Elektrovelo is boom<strong>in</strong>g, thanks to<br />
the NewRide subsidization programme; <strong>in</strong> Austria,<br />
the Klima:aktiv-Programme subsidizes the<br />
purchase of a Pedelec to the tune of up to € 400,<br />
6<br />
Figure 1. Us<strong>in</strong>g the benefits of<br />
high performance semiconductors<br />
electric bicycles provide<br />
clean, quiet, convenient and<br />
efficient local transportation<br />
and <strong>in</strong> numerous German cities, such as<br />
Stuttgart and Kaiserslautern, new mobility concepts<br />
<strong>in</strong>volv<strong>in</strong>g electric bicycles are be<strong>in</strong>g<br />
launched. New bus<strong>in</strong>ess concepts are emerg<strong>in</strong>g.<br />
Personal mobility is be<strong>com</strong><strong>in</strong>g a service, analogous<br />
to mobile <strong>com</strong>munications. Companies<br />
such as Movelo rent out Pedelecs, and also offer<br />
battery exchange <strong>in</strong> <strong>in</strong>terest<strong>in</strong>g holiday resorts<br />
and urban areas. This way, users pay for mobility<br />
as required, and do not have to worry about<br />
servic<strong>in</strong>g, such as battery ma<strong>in</strong>tenance. Electric<br />
bicycles have also been <strong>in</strong> service <strong>in</strong> a <strong>com</strong>mercial<br />
environment for years; <strong>in</strong> many countries,<br />
mail is already be<strong>in</strong>g delivered by Pedelec.<br />
The technical breakthrough for electric bicycles<br />
came with the use of electronics. These control<br />
electric motors efficiently, thus optimiz<strong>in</strong>g<br />
performance and battery life. The most frequently<br />
used topography <strong>in</strong> series production<br />
of electric bicycles today is a brushless DC<br />
motor (BLDC) with Hall sensors. A basic electric<br />
bicycle runs on a BLDC motor, is powered<br />
by batteries and controlled from an ECU (<strong>Embedded</strong><br />
<strong>Control</strong> Unit). The BLDC motor for the<br />
electric bicycle is of the standard three phase<br />
trapezoidal type, typically rated at a few hundred<br />
watts and the battery voltage is usually<br />
36V or 48V. Almost all the electronics <strong>in</strong> the<br />
electric bicycle are found <strong>in</strong> the ECU, it conta<strong>in</strong>s<br />
the <strong>in</strong>verter circuit for the motor; temperature<br />
sensor; fault detection; SMPS; analogue and dig-
MAKING ONE OF THESE?<br />
...THEN YOU NEED THREADX<br />
ThreadX is Express Logic's small, fast,<br />
T H R<br />
E<br />
A<br />
D<br />
royalty-free RTOS that powers over<br />
500 million electronic devices, with<br />
millions more produced each month. That's because ThreadX is easy-to-use,<br />
mak<strong>in</strong>g your development job easier and more likely to f<strong>in</strong>ish on time or even<br />
ahead of schedule. Developers of consumer, medical, network<strong>in</strong>g, <strong>in</strong>dustrial,<br />
aerospace, and automotive electronics products rely on ThreadX for their<br />
RTOS. Call today to f<strong>in</strong>d out how ThreadX can help you br<strong>in</strong>g your next<br />
electronic product to market faster. Make it better - make it with ThreadX.<br />
For a free evaluation copy, call one of our <strong>Europe</strong>an<br />
Offices or visit www.rtos.<strong>com</strong><br />
Express<br />
Logic (UK) ( UUK)Ltd<br />
Ltd<br />
4b 4b Empire<br />
Court Cour t<br />
Prospect<br />
Hill<br />
Redditch B97 4DA 4D DA<br />
UK<br />
Tel: Teel:<br />
+44 (0) 152 1527 27 597007<br />
Fax: +44 (0) 1527 152 27 597701<br />
Email: <strong>in</strong>fo@expresslogic.co.uk<br />
<strong>in</strong>fo@expr resslogic.co.uk<br />
Express<br />
Logic GmbH G GmbH<br />
Hanover Office:<br />
Am Saegewerk 2a<br />
D-29308 DD-29308 29308 W WW<strong>in</strong>sen<br />
<strong>in</strong>se en<br />
Germany<br />
Tel: Teel:<br />
+49 5143 911-303 9<br />
Fax: +49 +49 5143 911-305<br />
Email <strong>in</strong>fo@expresslogic.de<br />
Express<br />
Logic<br />
GGmbH<br />
mmbH<br />
Munich Office:<br />
Eichbaumstr. Eichbaumstr.80<br />
80<br />
D-85635 DD-85635 85635 Siegertsbrunn<br />
Sieger ts sbr unn<br />
Germany<br />
Tel: Teel:<br />
+49 8102 784-5865 78 84-5865<br />
Fax: +49 8102 784-5866 78 84-5866<br />
Email: sales@expresslogic.de<br />
• Small S Small<br />
footpr<strong>in</strong>t<br />
• Low LLow<br />
over overhead head<br />
•Full • F Full<br />
source<br />
code<br />
• Easy-to-use<br />
E Easy-to-use<br />
•• Field-proven<br />
F Field-proven<br />
•• Low LLow<br />
cost<br />
•Royalty-free<br />
• R Royalty-free<br />
Copyright © 2008, Express<br />
Logic, , Inc.<br />
ThreadX Thrr<br />
eadX is a rregistered<br />
egistered<br />
trademark of Ex Express xpress<br />
Logic, Inc. All other trademarks trademar rks are<br />
the property<br />
of their respective<br />
owners.
COVER STORY<br />
Figure 2. Market forecast for electric bicycles <strong>in</strong> Ch<strong>in</strong>a, iSuppli, June 2009<br />
Figure 3. Block diagram of a BLDC motor control <strong>in</strong> a Pedelec<br />
ital I/Os; and f<strong>in</strong>ally the controller itself. Some<br />
ECUs have advanced features such as remote<br />
controlled alarm and electric horn as well. All of<br />
these as well as the wir<strong>in</strong>g are usually packed<br />
<strong>in</strong>to a robust and very <strong>com</strong>pact metal box.<br />
Inf<strong>in</strong>eon is the lead<strong>in</strong>g <strong>com</strong>pany <strong>in</strong> the area of<br />
semiconductors for electric bicycles. In about<br />
every second electric bicycle worldwide, the<br />
motor is controlled by an 8-bit microcontroller<br />
of Inf<strong>in</strong>eon XC800 family. One reason for this<br />
is that the product characteristics are tailormade<br />
for this application at low cost. The special<br />
functions <strong>in</strong> the microcontroller (fast<br />
ADC, Capture/Compare unit, etc.) make for<br />
particularly fast signal recognition and signal<br />
generation to switch the <strong>in</strong>dividual phase currents<br />
of the motor. The cyclist notices this by<br />
the excellent performance of the electric bicycle<br />
<strong>in</strong> every load state. Another reason is high<br />
quality and reliability as products are build on<br />
automotive proven technologies.<br />
Figure 4. Reference design of the control unit<br />
Further essential elements of the motor<br />
electronics are the robust, <strong>in</strong>telligent power<br />
semiconductors. The Inf<strong>in</strong>eon EiceDRIVER<br />
portfolio <strong>in</strong>cludes full-bridge drivers to control<br />
power devices such as IGBTs or MOS transistors<br />
<strong>in</strong> 3-phase systems with a block<strong>in</strong>g voltage<br />
of up to 600V. Based on Silicon-On-Insulator<br />
(SOI) technology, these devices are very resistant<br />
to negative transient voltages. Unlike standard<br />
monolithic high-voltage IC technology,<br />
Inf<strong>in</strong>eon SOI th<strong>in</strong>-film technology does not<br />
have parasitic thyristor structures. The result is<br />
outstand<strong>in</strong>g robustness aga<strong>in</strong>st latch-up when<br />
exposed to extreme temperature and voltage<br />
conditions. Furthermore, they switch off<br />
automatically <strong>in</strong> many error modes to prevent<br />
destruction of the electronics or the motor.<br />
The e-bike is one example of the broad range of<br />
applications which benefits from the unique<br />
features of the OptiMOS2 or OptiMOS3 power<br />
MOSFETs, offer<strong>in</strong>g a <strong>com</strong>b<strong>in</strong>ation of the lowest<br />
available on-state resistance <strong>in</strong> <strong>com</strong>parable<br />
packages and lowest gate drive requirements.<br />
These MOSFETs feature excellent switch<strong>in</strong>g<br />
performance, they help to <strong>in</strong>crease power density<br />
<strong>in</strong> the application and consequently they<br />
save energy. In addition these MOSFETs provide<br />
the highest immunity to dynamic turn-on.<br />
Hall sensors from Inf<strong>in</strong>eon, such as the<br />
TLE4946, were developed specifically for motor<br />
control applications, and are characterized <strong>in</strong><br />
November 2009 8<br />
the electric bicycle by their precision and immunity<br />
to <strong>in</strong>terference signals. Inf<strong>in</strong>eon have<br />
been offer<strong>in</strong>g solutions for electronics <strong>in</strong> electric<br />
bicycles for over three years now. Meanwhile<br />
there is a second generation of a reference<br />
system available, that <strong>com</strong>prises both the reference<br />
circuit with all active and passive <strong>com</strong>ponents,<br />
and a reference platform for software<br />
development. The software library for electric<br />
bicycles <strong>in</strong>cludes functions such as evaluation of<br />
<strong>in</strong>put units, battery voltage monitor<strong>in</strong>g, and<br />
measurement of phase currents.<br />
On the electronics side, the semiconductor<br />
<strong>com</strong>ponents will provide designers with sufficient<br />
<strong>com</strong>put<strong>in</strong>g performance, <strong>in</strong>creased switch<strong>in</strong>g<br />
efficiency, and more safety and diagnosis<br />
functionstocreateanewclassofelectricbicycles.<br />
The 8-bit XC800 microcontroller series offers<br />
derivatives with a vector <strong>com</strong>puter, which<br />
allows implementation of Field Oriented<br />
<strong>Control</strong> (FOC) for the price of a standard 8-bit<br />
microcontroller. Thanks to FOC, non-sensor<br />
topologies <strong>in</strong> the electric drives of the Pedelecs<br />
are possible, and the efficiency of the motor is<br />
further <strong>in</strong>creased. If even more processor<br />
performance needed <strong>in</strong> motor scooters and<br />
motorcycles, Inf<strong>in</strong>eon offers the 16-bit microcontroller<br />
series XE166 with the same peripheral<br />
functions, for example signal generation<br />
(Capture Compare Unit), as <strong>in</strong> the XC800 series.<br />
This creates a scalable development platform.<br />
The mentioned reference system is under<br />
cont<strong>in</strong>uous further development, <strong>in</strong> order to<br />
shorten the development times for the motor<br />
control unit with the help of more software<br />
functions. In addition to this, Inf<strong>in</strong>eon offers<br />
the auto-code generator DAvE Drive, which<br />
generates, with just a few mouse-clicks, block<strong>com</strong>mutation<br />
or FOC code that is optimized to<br />
the microcontroller architecture.<br />
Electric drives for bicycles know no limits. The<br />
next generation <strong>in</strong> the upper performance<br />
range is go<strong>in</strong>g <strong>in</strong>to mass production: the socalled<br />
E-Scooter. The electric motor has also<br />
found its way <strong>in</strong>to the motor-cycl<strong>in</strong>g world. The<br />
12th of June 2009 saw the first “Zero Emission<br />
Motorcycle Race”. The w<strong>in</strong>ner was Chris Heath<br />
on a Native TTGXP, which reached 160km/h on<br />
the legendary Isle of Man circuit. New bus<strong>in</strong>ess<br />
models, like the rent<strong>in</strong>g of electric bicycles <strong>in</strong><br />
urban areas and holiday resorts, will certa<strong>in</strong>ly<br />
remove any obstacles <strong>in</strong> the run-up to Pedelec<br />
mobility with regard to the charg<strong>in</strong>g and ma<strong>in</strong>tenance<br />
of batteries. It will be excit<strong>in</strong>g to see<br />
what <strong>in</strong>terest<strong>in</strong>g k<strong>in</strong>ds of electric-powered<br />
bicycle will <strong>com</strong>e on the market <strong>in</strong> the <strong>com</strong><strong>in</strong>g<br />
months and years, and what concepts cities and<br />
towns will offer consumers with regard to<br />
personal mobility with Pedelecs. The technological<br />
prerequisites to support the next generations<br />
of e-bikes are all already <strong>in</strong> place. ■
Mak<strong>in</strong>g <strong>in</strong>dustrial systems safer<br />
by meet<strong>in</strong>g the IEC 60730 standards<br />
By Dugald Campbell, Freescale<br />
This article discusses the different<br />
classes of the IEC 60730 standards<br />
for appliances and <strong>in</strong>dustrial control<br />
and shows how MCU manufacturers<br />
can help by deliver<strong>in</strong>g hardware features,<br />
such as <strong>in</strong>dependent<br />
watchdogs, CRC eng<strong>in</strong>es, ECC and<br />
software periodic test rout<strong>in</strong>es to<br />
ga<strong>in</strong> IEC 60730 <strong>com</strong>pliance.<br />
■ With the <strong>in</strong>troduction of the International<br />
Electrotechnical Commission IEC 60730 standards<br />
series, household appliance and <strong>in</strong>dustrial<br />
control manufacturers now have to consider <strong>in</strong>troduc<strong>in</strong>g<br />
new design enhancements to their<br />
automatic electronic controls that ensure their<br />
<strong>com</strong>ponents’ safe and reliable operation. IEC<br />
60730 standards series on automatic electrical<br />
controls for household and similar use, Part 1,<br />
is one of many standards used by large appliance<br />
manufacturers. IEC 60730 is also referenced<br />
by other standards for other systems,<br />
such as boiler ignition systems (EN 297) and<br />
medical electrical equipment (IEC 60601), that<br />
cover general requirements for basic safety and<br />
essential performance.<br />
IEC 60730 discusses mechanical, electrical,<br />
electronic, environmental, endurance, EMC<br />
and abnormal operation of AC appliances. IEC<br />
60730 Annex H: Requirements for Electronic<br />
<strong>Control</strong>s, specifically relates to microcontrollers<br />
(MCUs), detail<strong>in</strong>g new test and diagnostic<br />
methods to ensure the safety of embedded control<br />
hardware and software for automatic systems.<br />
Its focus is to provide measures to ensure<br />
that the embedded software design functions<br />
safely and reliably if a fault condition occurs<br />
with<strong>in</strong> the system sub-<strong>com</strong>ponents, such as<br />
CPU, memory, <strong>in</strong>terrupts, program counter,<br />
<strong>com</strong>munication <strong>in</strong>terfaces and software<br />
program flow.<br />
Today the majority of automatic electronic controls<br />
use s<strong>in</strong>gle-chip MCUs (microprocessors<br />
with embedded memory and <strong>in</strong>put/output<br />
peripherals). Manufacturers develop real-time<br />
embedded software that executes with<strong>in</strong> the<br />
MCU and provides the hidden <strong>in</strong>telligence that<br />
controls an electro-mechanical device. Measures<br />
detailed <strong>in</strong> IEC 60730 are critical to help<br />
ensure that such an electro-mechanical device<br />
INDUSTRIAL CONTROL<br />
will not be hazardous to users. IEC 60730/EN<br />
60335 segments automatic control products<br />
<strong>in</strong>to three different classifications. Class A: not<br />
<strong>in</strong>tended to be relied upon for the safety of the<br />
equipment, Class B: to prevent unsafe operation<br />
of the controlled equipment. Class C: to prevent<br />
special hazards.<br />
Class A controls are deemed not hazardous if<br />
the software malfunctions, and thus IEC 60730<br />
does not require the manufacturer to implement<br />
system checks. A class B system likely has<br />
automatic controls where a possible hazard<br />
could occur and result <strong>in</strong> harm to a human<br />
be<strong>in</strong>g. Generally, the controls are characterized<br />
by how the class B system is implemented and<br />
if the critical safety system features some form<br />
of redundancy (<strong>in</strong> hardware and/or software).<br />
If the automatic control relies on a specific safety<br />
function and there is no redundancy, then<br />
the system will likely be deemed class C. If the<br />
9 November 2009
INDUSTRIAL CONTROL<br />
automatic controls directly control an explosive<br />
substance, such as gasol<strong>in</strong>e, the system will be<br />
deemed class C. The various <strong>com</strong>ponents of an<br />
embedded system that must be tested are summarized<br />
<strong>in</strong> Table H.11.12.7. of IEC 60730<br />
Annex H. For each of the listed class B and class<br />
C <strong>com</strong>ponents, optional measures are given for<br />
the manufacturer to deploy with<strong>in</strong> the automatic<br />
system. Table 1 summarizes the required<br />
<strong>com</strong>ponents that need to be tested and monitored<br />
to ensure the system meets class B specifications.<br />
CPU registers can be monitored by<br />
us<strong>in</strong>g a periodic test rout<strong>in</strong>e that writes a 0xAA<br />
pattern followed by a 0x55 pattern to verify no<br />
register bits are stuck at a 1 or 0 state. A CPU<br />
program counter can be similarly tested with a<br />
0x55/0xAA pattern by plac<strong>in</strong>g small rout<strong>in</strong>es at<br />
addresses 0x5555.. and 0xAAA.. that have return<br />
from subrout<strong>in</strong>e <strong>in</strong>structions (RTS). The CPU<br />
should execute these rout<strong>in</strong>es and then exam<strong>in</strong>e<br />
the contents <strong>in</strong> the stack po<strong>in</strong>ter.<br />
Interrupt handl<strong>in</strong>g and execution is verified by<br />
a method called <strong>in</strong>dependent time base monitor<strong>in</strong>g.<br />
This requires a regular periodic check<br />
from a time base <strong>in</strong>dependent of the CPU<br />
clock. An example is hav<strong>in</strong>g a real-time <strong>in</strong>terrupt<br />
clocked by an <strong>in</strong>dependent 1 kHz oscillator<br />
that <strong>in</strong>cludes a check on token counters of<br />
all <strong>in</strong>terrupts utilized. If any irregularity is discovered,<br />
then the CPU is forced <strong>in</strong>to a rout<strong>in</strong>e<br />
that places the application <strong>in</strong> a safe state. The<br />
clock or the CPU clock is also required to be<br />
checked by an <strong>in</strong>dependent time-base monitor.<br />
An <strong>in</strong>dependent clocked timer, such as a realtime<br />
<strong>in</strong>terrupt, can be used to make timestamps<br />
at regular <strong>in</strong>tervals from a CPU clocked timer.<br />
Additionally, Freescale MCUs feature a watchdog<br />
counter that is clocked by an <strong>in</strong>dependent<br />
timebase. This feature provides an additional<br />
check if the CPU clock stops, ensur<strong>in</strong>g that an<br />
asynchronous reset occurs to place the system<br />
November 2009<br />
<strong>in</strong> a safe state. Watchdogs that are clocked from<br />
the same source as the CPU cannot provide this<br />
protection. For <strong>in</strong>variable memory (flash), the<br />
manufacturer is required to check for s<strong>in</strong>gle bit<br />
faults, which can be performed us<strong>in</strong>g a modified<br />
checksum rout<strong>in</strong>e. The ma<strong>in</strong> issue here is<br />
that there is no <strong>com</strong>mon method or rout<strong>in</strong>e for<br />
deploy<strong>in</strong>g a modified checksum. Manufacturers<br />
have taken the approach of deploy<strong>in</strong>g the<br />
program memory cycle redundancy check<strong>in</strong>g<br />
(CRC) signatures because it is well understood<br />
and has a reliable mechanism for identify<strong>in</strong>g<br />
s<strong>in</strong>gle-bit errors. After all bytes have been read,<br />
each byte is run through a CRC calculation.<br />
Once that calculation is made, it can be <strong>com</strong>pared<br />
to a so-named golden CRC signature to<br />
verify no s<strong>in</strong>gle faults exist. Freescale has created<br />
a hardware CRC eng<strong>in</strong>e that will provide a<br />
fast method of creat<strong>in</strong>g a 16-bit CRC.<br />
For small memory footpr<strong>in</strong>ts, the CRC can be<br />
calculated <strong>in</strong> software with<strong>in</strong> a reasonable time<br />
frame. Variable memory (RAM) can be verified<br />
as hav<strong>in</strong>g no DC faults by execut<strong>in</strong>g a periodic<br />
test us<strong>in</strong>g the well-known March C or March X<br />
test pattern. These March patterns require a lot<br />
of execution time for most embedded systems,<br />
and the designer must segment the RAM <strong>in</strong>to favorable<br />
sizes, check<strong>in</strong>g each segment <strong>in</strong> sequence.<br />
Freescale has developed March C and<br />
March X tests for HCS08 and MC56F80xx controllers,<br />
which can help speed up the development<br />
of a class B system. The March X pattern is<br />
a subset of March C where only steps 1, 2, 5 and<br />
6 are executed, thus sav<strong>in</strong>g CPU execution time.<br />
Components 4.3 address<strong>in</strong>g, 5.0 <strong>in</strong>ternal data<br />
path and 5.2 address<strong>in</strong>g (table 1) are covered by<br />
implement<strong>in</strong>g the above variable and <strong>in</strong>variable<br />
periodic test rout<strong>in</strong>es. 6.0 external <strong>com</strong>munication<br />
refers to protocols that are used to <strong>in</strong>terface<br />
with <strong>com</strong>ponents external to the automatic<br />
control system, such as UART <strong>com</strong>munication<br />
between a control board and a motor<br />
control board. There are several optional measures<br />
to ensure reliable <strong>com</strong>munication, such as<br />
add<strong>in</strong>g a 16-bit CRC to data transferred via the<br />
10<br />
<strong>com</strong>munication port and transfer redundancy,<br />
which is simply send<strong>in</strong>g data twice. A tim<strong>in</strong>g<br />
<strong>com</strong>ponent, as <strong>in</strong> the wrong po<strong>in</strong>t <strong>in</strong> time, and<br />
sequence of external data exchanges can be reliably<br />
checked us<strong>in</strong>g <strong>in</strong>dependent time slot<br />
monitor<strong>in</strong>g, the same as used for <strong>in</strong>terrupts.<br />
Components 7.0 periphery, 7.2.1 analog I/O<br />
and 7.2.2 analog multiplexers (table 1) require<br />
the manufacturer to carry out plausibility<br />
checks prior to application use. These employ<br />
a number of techniques, <strong>in</strong>clud<strong>in</strong>g mak<strong>in</strong>g<br />
upper/lower limits on ADC <strong>in</strong>puts, redundant<br />
ADC <strong>in</strong>puts to check multiplexer, and short circuit<br />
and open circuit tests of adjacent p<strong>in</strong>s to a<br />
safety-critical signal l<strong>in</strong>e. Subject<strong>in</strong>g a system<br />
design to all the measures described will provide<br />
IEC 60730 Class B <strong>com</strong>pliance.<br />
Table 2 summarizes the required <strong>com</strong>ponents<br />
that need to be tested and monitored to ensure<br />
the system meets class C specifications. For class<br />
C systems there is one additional <strong>com</strong>ponent<br />
that needs to be tested and more str<strong>in</strong>gent<br />
measures placed on four of the exist<strong>in</strong>g <strong>com</strong>ponents.<br />
The additional <strong>com</strong>ponent is 1.2<br />
CPU <strong>in</strong>struction decod<strong>in</strong>g and execution,<br />
which is required to check that the CPU is decod<strong>in</strong>g<br />
the <strong>in</strong>structions used to perform the<br />
safety feature. Table H.11.12.7 of IEC 60730<br />
Annex H provides three optional measures to<br />
test for this <strong>com</strong>ponent: Dual CPU implementation<br />
with <strong>com</strong>parison, <strong>in</strong>ternal hardware detection,<br />
and periodic self-test us<strong>in</strong>g equivalence<br />
class test.<br />
Freescale Power Architecture products, such as<br />
the MPC5510 family, have dual CPU cores that<br />
can execute simultaneously, and the execution<br />
results can be <strong>com</strong>pared prior to execut<strong>in</strong>g a<br />
safety function. Internal hardware detection<br />
through error code correction (ECC) is provided,<br />
which uses a form of parity when read<strong>in</strong>g<br />
program <strong>in</strong>structions and can automatically<br />
correct s<strong>in</strong>gle parity errors. This feature can be<br />
found on S12X family members, such as the<br />
MC9S12XE100, as well as the MPC5510 fami-
Table 1. Class B <strong>com</strong>ponents that need test<strong>in</strong>g<br />
and monitor<strong>in</strong>g<br />
ly, which has ECC on both flash and RAM<br />
memory. For 8-bit S08 CPU, a CPU <strong>in</strong>struction<br />
test is developed that can be executed prior to<br />
runn<strong>in</strong>g power-up on the end application.<br />
This test rout<strong>in</strong>e requires approximately 2<br />
Kbytes of program memory, but it is modular,<br />
which allows remov<strong>in</strong>g tests for <strong>in</strong>structions<br />
that are not utilized by the safety application.<br />
Execution time for the full test is 3666 CPU<br />
BUS cycles (183.3 s at 20MHz). TÜV SÜD has<br />
validated and certified this test rout<strong>in</strong>e to be<br />
IEC 60730-<strong>com</strong>pliant, and the test rout<strong>in</strong>e is<br />
available for Freescale customers. In addition to<br />
the extra <strong>com</strong>ponent to be tested, there are four<br />
<strong>com</strong>ponents of class C systems that require<br />
more str<strong>in</strong>gent test<strong>in</strong>g: CPU register test, variable<br />
memory (RAM), <strong>in</strong>variable memory<br />
(flash), and external <strong>com</strong>munications.<br />
CPU register test requires the manufacturer to<br />
check for DC faults on the CPU registers, which<br />
can be ac<strong>com</strong>plished us<strong>in</strong>g a walk<strong>in</strong>g 1s and<br />
walk<strong>in</strong>g 0s pattern. The last figure <strong>in</strong> this article<br />
shows a walk<strong>in</strong>g 1s pattern on an 8-bit register.<br />
By execut<strong>in</strong>g this pattern and confirm<strong>in</strong>g<br />
Industrial Comput<strong>in</strong>g & Communications Forum<br />
At SPS/IPC/DRIVES, the Boards & Solutions<br />
team is runn<strong>in</strong>g the Industrial Comput<strong>in</strong>g &<br />
Communications Forum - a 3-day programme<br />
with presentations about technical trends,<br />
product <strong>in</strong>novations, strategies and applications.<br />
Major Topics of the ICC Forum are:<br />
✓ Industrial PCs, Panel PCs, Box PCs<br />
✓ Industrial Communications<br />
✓ Small Form Factor Boards<br />
✓ Tools & Software for <strong>in</strong>dustrial applications<br />
The Industrial Comput<strong>in</strong>g & Communications<br />
Forum is located <strong>in</strong> Hall 8, Stand 528<br />
close to the gateway to Hall 7. It is a theater-<br />
Table 2. Class C <strong>com</strong>ponents that need test<strong>in</strong>g<br />
and monitor<strong>in</strong>g<br />
the data at each step, all DC faults will be exposed.<br />
A walk<strong>in</strong>g 0s pattern is similar to the<br />
walk<strong>in</strong>g 1s pattern with all data <strong>in</strong>verted, and it<br />
should also be performed. Variable memory<br />
(RAM) test<strong>in</strong>g requires the same techniques as<br />
used for the CPU register (walk<strong>in</strong>g 1s and walk<strong>in</strong>g<br />
0s to check for DC faults). For RAM arrays<br />
of >2 Kbtes, execut<strong>in</strong>g such a test can be time<br />
consum<strong>in</strong>g. However, the manufacturer can<br />
split the RAM array <strong>in</strong>to small segments (32 to<br />
128 bytes), and each RAM segment can be tested<br />
<strong>in</strong> sequence while execut<strong>in</strong>g the application.<br />
Note that the manufacturer will likely need to<br />
pause the application while it tests each application<br />
and disable <strong>in</strong>terrupts to ensure no program<br />
variables are <strong>in</strong>advertently corrupted.<br />
Freescale has developed a walk<strong>in</strong>g 1s and walk<strong>in</strong>g<br />
0s RAM test for the HC9S08AC60 MCU,<br />
which segments the RAM <strong>in</strong>to 48-byte segments.<br />
This is modular software, however, and<br />
can be easily modified to support larger or<br />
smaller RAM arrays. Invariable memory (flash)<br />
style presentation area with free access for all<br />
exhibition visitors.<br />
11<br />
INDUSTRIAL CONTROL<br />
for class C systems requires the user to look for<br />
99.6 percent coverage of all bits. This can be covered<br />
by ECC or by a 32-bit CRC. Optionally, redundant<br />
memory can be deployed where the<br />
CPU can periodically check that both arrays<br />
<strong>com</strong>pare. For external <strong>com</strong>munications <strong>com</strong>ponents<br />
meet<strong>in</strong>g class C specifications, the<br />
manufacturer is required to implement either a<br />
32-bitCRCtodatatransfersordeploydataredundancy,<br />
where the data is sent at least twice<br />
and the redundant data is modified <strong>in</strong> some<br />
form,suchas<strong>in</strong>vert<strong>in</strong>gthesecondpieceofdata.<br />
Another option is to use <strong>com</strong>parison or redundant<br />
functional channels with <strong>com</strong>parison. By<br />
us<strong>in</strong>g two <strong>com</strong>munications ports and send<strong>in</strong>g<br />
the data on both ports, the software can <strong>com</strong>pare<br />
the received data to ensure they match.<br />
Periodic test rout<strong>in</strong>es for Freescale MCUs were developed<br />
that users can deploy <strong>in</strong> their application<br />
code. These developed rout<strong>in</strong>es have each been<br />
certified by a certification body, such as VDE or<br />
TÜVSÜD,tomeetIEC60730requirements.■<br />
Product News<br />
■ Rutronik: low-power high-precision<br />
op amps<br />
Microchip Technology presents three new families<br />
of low-power, high-precision operational<br />
amplifiers broaden<strong>in</strong>g the portfolio of high precision<br />
op amps with Ga<strong>in</strong> Bandwidth Product<br />
from 10kHz to 50MHz. The new products are<br />
available at distributor Rutronik now.<br />
News ID 450<br />
■ Toshiba: 32nm mSATA and half-slim<br />
SSD modules<br />
Toshiba Electronics <strong>Europe</strong> has announced a<br />
series of solid state drive modules us<strong>in</strong>g the<br />
latest generation Toshiba 32nm MLC NAND<br />
flash. The Toshiba SG2 modules are offered <strong>in</strong><br />
two types, one based on the new low-profile<br />
m<strong>in</strong>i-SATA <strong>in</strong>terface standard and the other<br />
aHalf-Slimtype,whichusesaSATAconnector.<br />
The drives are available <strong>in</strong> 30GB and<br />
62GB modules. Volume production will start<br />
<strong>in</strong> October.<br />
News ID 486<br />
■ Fujitsu: graphics SoC with <strong>in</strong>tegrated<br />
dual APIX l<strong>in</strong>k<br />
Fujitsu has announced the MB86R02 ‘Jade D’,<br />
the latest device <strong>in</strong> its ‘Jade’ SoC family,<br />
which <strong>in</strong>corporates 32-bit ARM926EJ-S CPU<br />
core and the <strong>com</strong>pany’s graphics processor<br />
‘Coral PA’. Based on Fujitsu’s proprietary<br />
90nm CMOS process technology, ‘Jade D’ is<br />
optimised for automotive applications requir<strong>in</strong>g<br />
high CPU performance <strong>com</strong>b<strong>in</strong>ed<br />
with sophisticated 2D/3D graphics.<br />
News ID 549<br />
November 2009
TOOLS &SOFTWARE<br />
Design kits for PCBs featur<strong>in</strong>g<br />
embedded Atom processors<br />
By Dirk Mueller, FlowCAD<br />
This article describes the<br />
issues <strong>in</strong> PCB design associated<br />
with the latest fast embedded<br />
processors. Design kits<br />
<strong>in</strong>clud<strong>in</strong>g all design rules and<br />
a reference board are offered<br />
by most semiconductor <strong>com</strong>panies,<br />
normally subject to<br />
non-disclosure agreements.<br />
■ With the new generation of embedded<br />
processors like Intel Atom, the PCB design<br />
process moves to another level of <strong>com</strong>plexity.<br />
The numbers of design constra<strong>in</strong>ts are dramatically<br />
<strong>in</strong>creased and the tolerances of these<br />
design rules are gett<strong>in</strong>g tighter and tighter.<br />
M<strong>in</strong>iaturization also adds a new dimension to<br />
the design challenges. In the past it was possible<br />
to build an embedded PC from scratch, but<br />
today it is crucial to implement and reuse<br />
proven models and reference designs from<br />
semiconductor vendors like Intel, Xil<strong>in</strong>x, etc, <strong>in</strong><br />
order to reach design closure without miss<strong>in</strong>g<br />
project deadl<strong>in</strong>es. With today’s high performance<br />
semiconductors, differential high speed<br />
must not only control differential impedance<br />
and parallelism of the two tracks, but the signals<br />
must also be controlled <strong>in</strong> length for each track,<br />
and match the length of all other tracks <strong>in</strong> the<br />
same bus <strong>in</strong>clud<strong>in</strong>g control signals.<br />
In a typical Atom design you f<strong>in</strong>d a memory<br />
control hub, which is connected via the 64-bit<br />
wide front side bus to the microcontroller. External<br />
<strong>com</strong>munication is made through a PCIexpress<br />
<strong>in</strong>terface and the DDR2 memory is<br />
connected through a one-hundred-bit wide<br />
memory <strong>in</strong>terface to each memory <strong>com</strong>ponent.<br />
In embedded systems, the dimensions of a PCB<br />
are similar to the size of a credit card. Real es-<br />
tate on the board is limited also by the given locations<br />
of the Com Express connector and the<br />
mount<strong>in</strong>g holes. To make the design process<br />
really challeng<strong>in</strong>g the manufactur<strong>in</strong>g costs<br />
have to be low, so the number of layers available<br />
for the designer to select from is typically reduced<br />
to below ten.<br />
Many semiconductor <strong>com</strong>panies offer their<br />
customers design kits under a non–disclosure<br />
agreement. These kits <strong>in</strong>clude the def<strong>in</strong>ition of<br />
all required design rules, and these rules are<br />
managed <strong>in</strong> a constra<strong>in</strong>t management system,<br />
where each value for the net length, impedance<br />
and delta[CDSI1] to the other nets <strong>in</strong> a group<br />
are collected. To get the real value of the electrical<br />
net, the length from the last transistor on<br />
the CPU chip has to be measured to the first<br />
<strong>in</strong>put buffer from the [CDSI2] memory control<br />
hub. S<strong>in</strong>ce the chips are not mounted directly<br />
onto the PCB, the <strong>in</strong>ternal length of the signal<br />
<strong>in</strong>side the IC has to be added to this calculation.<br />
This value is called p<strong>in</strong> delay. This value always<br />
existed, but the tolerances were bigger, so the <strong>in</strong>ternal<br />
p<strong>in</strong> delay could be ignored to calculate<br />
length of signals. In modern designs two th<strong>in</strong>gs<br />
have changed: the tolerances are reduced due to<br />
<strong>in</strong>creases <strong>in</strong> the front side bus speed i.e. 533<br />
MHz, and the topology is made with signals<br />
which have to be of the same length. So the p<strong>in</strong><br />
November 2009 12<br />
Figure 1. Example of an<br />
embedded module based<br />
on Atom processor<br />
delay can no longer be ignored and each <strong>in</strong>dividual<br />
value for each p<strong>in</strong> has to be respected.<br />
Spac<strong>in</strong>g of decoupl<strong>in</strong>g capacitors to the Vcc and<br />
GND p<strong>in</strong>s of the IC is gett<strong>in</strong>g smaller if the<br />
transmission speed is <strong>in</strong>creas<strong>in</strong>g. The efficient<br />
distance for a ceramic capacitor with a low<br />
equivalent series resistance is only several millimeters,<br />
so the placement of these <strong>com</strong>ponents<br />
should rema<strong>in</strong> the same as the orig<strong>in</strong>al floor<br />
plann<strong>in</strong>g of the reference design kit. In the constra<strong>in</strong>t<br />
manager this maximum spac<strong>in</strong>g can be<br />
attached to the capacitor and <strong>in</strong>dividual p<strong>in</strong>s of<br />
an IC, so dur<strong>in</strong>g placement of the capacitor the<br />
designer gets a visual feedback if the <strong>com</strong>ponent<br />
is placed too far away. A wrong placement<br />
would reduce the power <strong>in</strong>tegrity (PI) and<br />
destabilize the <strong>com</strong>plete power delivery system,<br />
which can result <strong>in</strong> malfunction of the module.<br />
Memory modules like DDR2 have to be connected<br />
to the memory hub controller. These<br />
connections of the address and data busses have<br />
very <strong>com</strong>plex structures and detailed rules<br />
how to connect the <strong>in</strong>dividual signals. Such a<br />
structure is called topology. For one DDR2 signal,<br />
the signal will split like a tree <strong>in</strong>to different<br />
branches. The impedance for parts of the<br />
branch has to be different because of signal <strong>in</strong>tegrity<br />
(SI) requirements. After a split the two<br />
new branches have to be matched <strong>in</strong> length to
Figure 2. Design rules are managed <strong>in</strong> a constra<strong>in</strong>t manager<br />
Figure 3: DDR2 topology<br />
each other. After two splits the last four branches have to be matched <strong>in</strong><br />
length. In a 64-bit wide data bus the length of all nets have to be matched,<br />
consequently the total number of <strong>com</strong>b<strong>in</strong>ed matched length rules is huge<br />
and nearly impossible to manage manually. In Allegro PCB editor and<br />
constra<strong>in</strong>t manager the control of such a <strong>com</strong>plex task is implemented<br />
<strong>in</strong> an efficient and user-friendly way. From the design kit the requirements<br />
for a s<strong>in</strong>gle net are stored <strong>in</strong> the constra<strong>in</strong>t manager (match<strong>in</strong>g <strong>in</strong>clud<strong>in</strong>g<br />
tolerances). In a second step the match<strong>in</strong>g rules between all nets <strong>in</strong><br />
a bus (and groups of nets <strong>in</strong> the bus) are def<strong>in</strong>ed as a second hierarchy<br />
of rules, and <strong>in</strong>clude also the specified tolerances. This <strong>com</strong>plete rule set<br />
for DDR2 is def<strong>in</strong>ed <strong>in</strong> one topology. While the def<strong>in</strong>ition is stored <strong>in</strong> the<br />
constra<strong>in</strong>t manager, the PCB editor will give onl<strong>in</strong>e feedback if a value is<br />
violat<strong>in</strong>g the specification. Allegro PCB editor will also display the value<br />
of the tolerances <strong>in</strong> a visual way, so the adjustment of all matched groups<br />
is made fast and flawless.<br />
An Atom design kit <strong>in</strong>cludes a <strong>com</strong>plete multi-page schematic of a tested<br />
reference design <strong>in</strong> OrCAD capture format or alternatively <strong>in</strong> Allegro<br />
design entry HDL. So if you start the first Atom design, you do not have<br />
to start from scratch, but can reuse the <strong>com</strong>ponent symbols as well as<br />
several pages of the reference design. In the kit is also a <strong>com</strong>plete layout<br />
of a reference design made <strong>in</strong> Allegro PCB editor. With this design, you<br />
can see how the fan-out of the Atom CPU was made and how decoupl<strong>in</strong>g<br />
capacitors were placed under and around the CPU. The processor fan-out<br />
is only one task of a design. You will also f<strong>in</strong>d structures for the power<br />
delivery system, which power regulators were used and how the power<br />
delivery system was designed to fulfil the <strong>com</strong>plex demand of the CPU.<br />
All def<strong>in</strong>itions of the PCB footpr<strong>in</strong>t can be extracted from the reference<br />
design and stored <strong>in</strong> the local library, which saves a lot of time. ■<br />
TOOLS &SOFTWARE<br />
13 November 2009
TOOLS &SOFTWARE<br />
Rapid prototyp<strong>in</strong>g us<strong>in</strong>g software<br />
configuration management<br />
By Dave Robertson, Perforce Software<br />
■ Over time, faster and better tools and processes<br />
have steadily shortened the time-to-market<br />
for new embedded systems. As ever more projects<br />
<strong>in</strong>volve the collaboration of <strong>in</strong>creas<strong>in</strong>g<br />
numbers of different design teams and third<br />
parties spread across the world, produc<strong>in</strong>g<br />
work<strong>in</strong>g prototypes is be<strong>com</strong><strong>in</strong>g as much a logistical,<br />
as a technological, challenge. New development<br />
techniques have emerged that try to<br />
give more control <strong>in</strong> this area. Methods such as<br />
agile development view the entire development<br />
process as a series of small step releases, where<br />
the software evolves and is cont<strong>in</strong>uously updated.<br />
Increas<strong>in</strong>gly used by enterprise software<br />
development teams, Agile is mak<strong>in</strong>g some <strong>in</strong>roads<br />
<strong>in</strong>to embedded projects as it can provide<br />
extra value to customers.<br />
However, the sheer global scale of some embedded<br />
systems development projects, and the<br />
quantity and size of the data and variants <strong>in</strong>volved,<br />
takes this beyond merely a process problem.<br />
One way these challenges can be addressed<br />
is with software configuration management<br />
(SCM) systems. Designed for traditional software<br />
development, modern SCM systems can<br />
handle large numbers of files and variants for<br />
globally distributed eng<strong>in</strong>eer<strong>in</strong>g teams. They<br />
also enable rapid prototyp<strong>in</strong>g <strong>in</strong>volv<strong>in</strong>g multiple<br />
sites and many hundreds of collaborat<strong>in</strong>g<br />
developers. It is rare to <strong>com</strong>e across a new product<br />
that is built <strong>com</strong>pletely from scratch. More<br />
November 2009<br />
Software configuration management<br />
contributes powerfully<br />
to rapid prototyp<strong>in</strong>g of<br />
both hardware and software<br />
for embedded systems, especially<br />
with the <strong>com</strong>munication<br />
problems aris<strong>in</strong>g from farflung<br />
design teams and -<br />
system architects. This article<br />
describes latest techniques<br />
such as lazy copy<strong>in</strong>g and<br />
reverse delta archiv<strong>in</strong>g.<br />
likely there is a mixture of reliable <strong>com</strong>modity<br />
<strong>com</strong>ponents - hardware and software - with<br />
new proprietary IP and custom logic that cements<br />
all the parts together. The location of the<br />
teams and track<strong>in</strong>g the large quantity of items<br />
<strong>in</strong>volved means that pull<strong>in</strong>g all the pieces together<br />
<strong>in</strong> a timely way to produce a work<strong>in</strong>g<br />
prototype or early release candidates is a major<br />
issue.<br />
Prototypes <strong>in</strong>creas<strong>in</strong>gly require the management<br />
of many different types of file - the output<br />
from EDA tools, hardware design schematics,<br />
software source code and so on, along with<br />
track<strong>in</strong>g their use and reuse. As the development<br />
progresses, the files go through many revisions<br />
and are <strong>com</strong>b<strong>in</strong>ed <strong>in</strong> a range of different<br />
configurations. The capture, organisation<br />
and management of this <strong>com</strong>plex array of <strong>in</strong>formation<br />
and ensur<strong>in</strong>g the right versions of<br />
the right files are where they need to be, be<strong>com</strong>es<br />
non-trivial. This often leads to a significant<br />
reduction <strong>in</strong> productivity dur<strong>in</strong>g the<br />
prototyp<strong>in</strong>g stage as well as the overall development<br />
time.<br />
At its simplest, an SCM system tracks and manages<br />
the digital files created <strong>in</strong> the design and<br />
development process. Basic features of the system<br />
<strong>in</strong>clude version control, change history, and<br />
track<strong>in</strong>g the files that have been checked out of<br />
the system for edit<strong>in</strong>g. The more advanced sys-<br />
14<br />
Figure 1. Many variants and<br />
prototypes can be born out of<br />
a good idea.<br />
tems provide configuration management, the<br />
act of record<strong>in</strong>g an arbitrary collection of files<br />
and their versions that have some special significance<br />
to the project and may need to be recalled<br />
or recreated at some future po<strong>in</strong>t. To help<br />
with the strenuous demands of an embedded<br />
systems development, an SCM system needs to<br />
support rapid prototyp<strong>in</strong>g and distributed<br />
development teams.<br />
There are many contributors <strong>in</strong>volved <strong>in</strong> develop<strong>in</strong>g<br />
the f<strong>in</strong>ished hardware and software.<br />
Software developers and hardware eng<strong>in</strong>eers<br />
have already received a mention. But there are<br />
also documentation writers and testers, too.<br />
And, for truly <strong>in</strong>tegrated teams, the team may<br />
<strong>in</strong>clude the web designers build<strong>in</strong>g the product<br />
pages, and the market<strong>in</strong>g folks produc<strong>in</strong>g collateral<br />
and so on. Their <strong>com</strong>b<strong>in</strong>ed output <strong>in</strong>volves<br />
the need to handle the wide range of file<br />
types that the tools of the team generate - from<br />
graphical behavioural models, through the<br />
VHDL for the hardware design and C text files<br />
for the middleware and applications, to the<br />
EDA design files for the hardware and the libraries<br />
and <strong>com</strong>piled b<strong>in</strong>ary code for the software.<br />
And not forgett<strong>in</strong>g all the test and verification<br />
files for both the hardware and software.<br />
To be effective, the SCM system has to be both<br />
fast and secure, but also easy to use so as to have<br />
m<strong>in</strong>imal impact on the day-to-day activities of
Figure 2. Propagat<strong>in</strong>g bug fixes and new features between variants is a management challenge.<br />
Figure 3. Lazy copy<strong>in</strong>g uses fact that variant is identical to orig<strong>in</strong>al to save space when branch<strong>in</strong>g.<br />
users.Sav<strong>in</strong>gchangestofilesmustbequickand<br />
easy, otherwise users will avoid us<strong>in</strong>g or pay lip<br />
service to the system and the time and management<br />
advantages are missed. Similarly, the<br />
latest revisions from teams and third parties<br />
around the world should be available as soon as<br />
possible otherwise time is lost by hav<strong>in</strong>g to sort<br />
out <strong>com</strong>pet<strong>in</strong>g revisions. All the revisions have<br />
to be stored safely and securely with the m<strong>in</strong>imum<br />
of cost <strong>in</strong> storage space and retrieval time.<br />
At the start, it is nearly impossible to predict<br />
howdeeporbroadthescopeofaproductwill<br />
be<strong>com</strong>e. If the IP be<strong>in</strong>g developed be<strong>com</strong>es a<br />
<strong>com</strong>mercial success, there will be high demand<br />
for new variants for use <strong>in</strong> different environments<br />
or applications. As the scope <strong>in</strong>creases <strong>in</strong><br />
scale, the SCM system will need to cope. Two<br />
techniques SCM systems use to address this are<br />
lazy copy<strong>in</strong>g and reverse delta archiv<strong>in</strong>g.<br />
Lazy copy<strong>in</strong>g recognises that when a variant is<br />
first created it is identical to the orig<strong>in</strong>al. A<br />
po<strong>in</strong>ter to the orig<strong>in</strong>al is all that is created,<br />
rather than a physical copy. As the variant is<br />
modified new storage is reserved, and then only<br />
15<br />
TOOLS &SOFTWARE<br />
to record the differences between it and the<br />
orig<strong>in</strong>al. This applies to a variant consist<strong>in</strong>g of<br />
any number of files so ensur<strong>in</strong>g m<strong>in</strong>imal storage<br />
space requirements. Reverse delta archiv<strong>in</strong>g<br />
is where the historical record of a file just consists<br />
of the latest version of a file stored <strong>in</strong> its entirety<br />
along with the difference - or delta - between<br />
it and the previous version, and the version<br />
before that and so on. Older versions are<br />
recreated by tak<strong>in</strong>g the latest and apply<strong>in</strong>g the<br />
relevant deltas <strong>in</strong> reverse order until the required<br />
version is recreated. This technique<br />
recognises that the most <strong>com</strong>monly accessed<br />
versions are usually the most recent and also<br />
that the differences between versions are often<br />
fairly small. Like lazy copy<strong>in</strong>g, the reverse delta<br />
technique aids performance by reduc<strong>in</strong>g both<br />
disk space needs and <strong>com</strong>putation time as the<br />
size of the project <strong>in</strong>creases.<br />
So, by avoid<strong>in</strong>g the creation of a physical copy,<br />
variants constitut<strong>in</strong>g any number of files can be<br />
created quickly - a key advantage <strong>in</strong> fast prototyp<strong>in</strong>g,<br />
where system architects and product developers<br />
can be work<strong>in</strong>g on separate ideas<br />
alongside the ma<strong>in</strong> development stream. These<br />
November 2009
TOOLS &SOFTWARE<br />
prototype developments have to be isolated<br />
from all other development streams until all or<br />
parts of them are ready to be <strong>in</strong>troduced back<br />
<strong>in</strong>to the ma<strong>in</strong> design. This can be a problem for<br />
some SCM systems, but is a vital requirement to<br />
allow eng<strong>in</strong>eers to <strong>in</strong>novate and prototype <strong>in</strong><br />
the way they want to. Aga<strong>in</strong>, lazy copy<strong>in</strong>g<br />
helps by mak<strong>in</strong>g it straightforward for just the<br />
differences to be copied back <strong>in</strong>to the ma<strong>in</strong><br />
development stream from the variant.<br />
With the relative ease that differences can be<br />
moved backwards and forwards between variant<br />
streams, feature enhancements, bug track<strong>in</strong>g<br />
and resolution is simplified too. New features<br />
added, or bugs resolved dur<strong>in</strong>g development,<br />
can be applied easily and propagated<br />
around the various development areas, and a<br />
<strong>com</strong>plete audit trail is preserved with<strong>in</strong> the<br />
SCM system.<br />
Increas<strong>in</strong>g product <strong>com</strong>plexity has seen architects<br />
and developers be<strong>com</strong><strong>in</strong>g more focused on<br />
<strong>in</strong>novation <strong>in</strong> their specialist areas. To deliver<br />
products, it is <strong>com</strong>monplace that third-party IP<br />
is used for some elements of both hardware,<br />
such as processor and <strong>in</strong>terface IP, and software,<br />
with drivers and middleware. So, for rapid pro-<br />
■ IAR: ZigBee tool for sens<strong>in</strong>g and control<br />
applications<br />
IAR Systems and Ember have teamed together<br />
to deliver a reliable and easy to use ZigBee development<br />
and debugg<strong>in</strong>g platform for sens<strong>in</strong>g<br />
and control applications such as smart meter<strong>in</strong>g<br />
and home automation. Ember recently<br />
launched the EM35x InSight Development<br />
Kit. The EM35x Insight Development Kit is<br />
built around ARM Cortex-M3 processor technology<br />
and <strong>com</strong>es with the latest version of IAR<br />
<strong>Embedded</strong> Workbench for ARM, a <strong>com</strong>pletely<br />
<strong>in</strong>tegrated development environment for embedded<br />
applications.<br />
News ID 489<br />
■ pls: UDE supports VaST’s virtual processor<br />
models and tools<br />
pls Programmierbare Logik & Systeme and<br />
VaST Systems have established a cooperation<br />
with the goal to further simplify the simulation<br />
of automotive software applications by <strong>in</strong>terfac<strong>in</strong>g<br />
their products. Developers use VaST tools<br />
totyp<strong>in</strong>g benefits to be felt, these third party elements<br />
have to be <strong>in</strong>tegrated <strong>in</strong>to the prototype<br />
as easily as possible. With agile development<br />
techniques and a cont<strong>in</strong>uous development<br />
cycle, new versions of third party IP can be fed<br />
<strong>in</strong> from the software team and third party partners<br />
almost cont<strong>in</strong>uously. With the right SCM<br />
system, all these <strong>in</strong>puts can be added to a safe<br />
area where eng<strong>in</strong>eers can look at the latest <strong>com</strong>ponent<br />
versions and assess whether they can be<br />
used <strong>in</strong> the prototype. They can also access the<br />
latest hardware elements and test them out to<br />
see whether they are appropriate to be <strong>in</strong>cluded<br />
<strong>in</strong> the prototype.<br />
Large organisations often struggle to ma<strong>in</strong>ta<strong>in</strong><br />
the pace of <strong>in</strong>novation that they had when they<br />
were smaller. Develop<strong>in</strong>g prototypes <strong>in</strong> either<br />
hardware or software usually requires br<strong>in</strong>g<strong>in</strong>g<br />
together far-flung design teams and system architects,<br />
and deal<strong>in</strong>g with the <strong>in</strong>herent <strong>com</strong>munication<br />
challenges. Mak<strong>in</strong>g this a fast and<br />
efficient process can be a struggle. SCM systems<br />
are also be<strong>in</strong>g used to speed up the prototyp<strong>in</strong>g<br />
process dramatically by l<strong>in</strong>k<strong>in</strong>g sites and teams<br />
around the world, rather than hav<strong>in</strong>g to have a<br />
prototype handled by one team <strong>in</strong> one place.<br />
NVIDIA, for <strong>in</strong>stance, uses SCM to l<strong>in</strong>k <strong>in</strong>ter-<br />
Product News<br />
to create and simulate virtual prototypes for application<br />
software development and to perform<br />
precise architecture performance analysis. Their<br />
ability to run real software applications at<br />
near real-time speeds before hardware availability<br />
reduces time-to-market.<br />
News ID 443<br />
■ The MathWorks: Simul<strong>in</strong>k <strong>Control</strong> Design<br />
with improved PID tun<strong>in</strong>g features<br />
The MathWorks announces the availability of<br />
Simul<strong>in</strong>k <strong>Control</strong> Design 3.0, equipped with<br />
new features that automate the process of tun<strong>in</strong>g<br />
proportional-<strong>in</strong>tegral-derivative controllers.<br />
These features are be<strong>in</strong>g released along with<br />
new PID <strong>Control</strong>ler blocks <strong>in</strong> Simul<strong>in</strong>k.<br />
News ID 493<br />
■ W<strong>in</strong>d River adds CGL 4.0 <strong>com</strong>pliance<br />
for MIPS architectures<br />
W<strong>in</strong>d River announces that W<strong>in</strong>d River L<strong>in</strong>ux<br />
3.0 for MIPS architectures <strong>com</strong>plies with the<br />
Carrier Grade L<strong>in</strong>ux (CGL) 4.0 specification<br />
November 2009 16<br />
nal teams across multiple discipl<strong>in</strong>es and multiple<br />
global sites along with third party developers,<br />
pull<strong>in</strong>g <strong>in</strong> the right elements for the project,<br />
regardless of the location.<br />
The practical adoption of any SCM system has<br />
to be achieved with the m<strong>in</strong>imum impact on<br />
the development process and on <strong>com</strong>pany resources<br />
to stand any chance that it will actually<br />
be used and that the designs and prototypes<br />
are turned <strong>in</strong>to the right products at the right<br />
time for the market. And us<strong>in</strong>g the SCM system<br />
well can significantly improve the efficiency and<br />
<strong>in</strong>novation <strong>in</strong> develop<strong>in</strong>g prototypes, without<br />
<strong>com</strong>promis<strong>in</strong>g the exist<strong>in</strong>g product l<strong>in</strong>es. SCM<br />
systems can remove a huge logistical burden <strong>in</strong><br />
manag<strong>in</strong>g the output of <strong>in</strong>ternal and external<br />
teams from around the world. Design teams get<br />
the resources they need quickly and give them<br />
more room to <strong>in</strong>novate and push the boundaries<br />
of what is possible <strong>in</strong> embedded designs.<br />
Everyth<strong>in</strong>g that is ever created is recorded -<br />
whether it survives <strong>in</strong> the f<strong>in</strong>al product, or ends<br />
up a failed experiment. Innovations <strong>in</strong> one variant<br />
can be folded back <strong>in</strong>to the ma<strong>in</strong>stream<br />
product l<strong>in</strong>es, and bug fixes quickly propagated<br />
to everywhere they should be. ■<br />
from the L<strong>in</strong>ux Foundation, a critical requirement<br />
for the tele<strong>com</strong>munications and high-end<br />
data network<strong>in</strong>g markets. This <strong>in</strong>cludes MIPSbased<br />
multicore processors from Cavium Networks<br />
and RMI Corporation, and also extends<br />
exist<strong>in</strong>g CGL 4.0 support for PowerPC and x86<br />
architecture-based processors from Freescale<br />
and Intel.<br />
News ID 494<br />
■ QNX pursues SIL 3 certification for<br />
safety-critical systems<br />
QNX Software Systems is pursu<strong>in</strong>g IEC 61508<br />
Safety Integrity Level 3 certification for the<br />
QNX Neutr<strong>in</strong>o RTOS. SIL 3 is considered the<br />
highest level of risk reduction achievable on a<br />
s<strong>in</strong>gle programmable electronic system. IEC<br />
61508 is well established <strong>in</strong> the <strong>in</strong>dustrial<br />
process control and automation space, and is<br />
be<strong>com</strong><strong>in</strong>g <strong>in</strong>creas<strong>in</strong>gly important <strong>in</strong> automotive,<br />
heavy mach<strong>in</strong>ery, m<strong>in</strong><strong>in</strong>g, nuclear, and<br />
other applications.<br />
News ID 495
■ LynuxWorks: new version of separation<br />
kernel and hypervisor<br />
LynuxWorks announces the release of Lynx-<br />
Secure 3.1, the newest version of its separation<br />
kernel and embedded hypervisor. This update<br />
to LynxSecure takes advantage of new technologies,<br />
<strong>in</strong>clud<strong>in</strong>g guest operat<strong>in</strong>g support for<br />
the latest Microsoft W<strong>in</strong>dows and the latest<br />
Intel Core2 Duo systems.<br />
News ID 498<br />
■ Microsoft kicks off embeddedSPARK<br />
2010 Challenge<br />
Microsoft has launched the embeddedSPARK<br />
2010 Challenge, a new <strong>com</strong>petition designed to<br />
foster creativity and <strong>in</strong>novation among the embedded<br />
hobbyist and academic <strong>com</strong>munities<br />
globally. Based on the successful Sparks will Fly<br />
<strong>com</strong>petition, the embeddedSPARK 2010 Challenge<br />
encourages contestants to demonstrate<br />
<strong>in</strong>novative th<strong>in</strong>k<strong>in</strong>g with<strong>in</strong> the theme of ‘Fun<br />
and Games.’<br />
News ID 510<br />
■ dSPACE: real-time system for fast function<br />
prototyp<strong>in</strong>g<br />
All dSPACE MicroAutoBoxes now provide<br />
more performance for prototyp<strong>in</strong>g ECU functions,<br />
especially with large real-time models.<br />
The performance boost <strong>com</strong>es from the IBM<br />
PPC 750GL processor, which reaches faster<br />
cycle times for model calculation with its<br />
doubledLevel2cacheof1MB.<br />
News ID 532<br />
■ Hitex: evaluation with benchmark<strong>in</strong>g<br />
of performance and power consumption<br />
The LPC1313-Stick from Hitex is the brand<br />
new tool for evaluation of the ARM Cortex-<br />
M3 based LPC1300 controller family from<br />
NXP featur<strong>in</strong>g a high level of <strong>in</strong>tegration and<br />
low power consumption. The LPC1313-stick<br />
<strong>com</strong>es with an un-limited HiTOP debugger,<br />
GNU Arm <strong>com</strong>piler and the professional Task<strong>in</strong>g<br />
<strong>com</strong>piler as well as a large selection of application<br />
code. In addition, benchmark<strong>in</strong>g is<br />
easy with the <strong>in</strong>cluded tools from EEMBC.<br />
News ID 483<br />
■ IAR: development package for<br />
ARM Cortex cores<br />
IAR Systems announces the availability of IAR<br />
<strong>Embedded</strong> Workbench for Cortex-M, an <strong>in</strong>tegrated<br />
development environment designed<br />
specifically for ARM Cortex-M0, Cortex-M1,<br />
and Cortex-M3 based cores, which provides a<br />
<strong>com</strong>prehensive set of tools <strong>in</strong> a s<strong>in</strong>gle package.<br />
Based on the latest full license edition of IAR<br />
<strong>Embedded</strong> Workbench for ARM 5.40, this<br />
limited license edition is <strong>com</strong>petitively priced<br />
and helps keep the costs of equipp<strong>in</strong>g development<br />
eng<strong>in</strong>eers with <strong>in</strong>dustry respected toolsets<br />
to a m<strong>in</strong>imum.<br />
News ID 430<br />
17<br />
TOOLS &SOFTWARE<br />
■ NI simplifies advanced motion control<br />
National Instruments announces the new Lab-<br />
VIEW NI SoftMotion Module, which simplifies<br />
the development of advanced s<strong>in</strong>gle- and multiaxis<br />
motion applications, and new NI C Series<br />
modules, which expand the connectivity of the<br />
NI CompactRIO programmable automation<br />
controller platform to hundreds of servo and<br />
stepperdrivesfromNIandthird-partyvendors.<br />
News ID 596<br />
■ Enea announces OSE multicore edition<br />
Enea announces the immediate availability of<br />
Enea OSE Multicore Edition, an <strong>in</strong>novative kernel<br />
design that <strong>com</strong>b<strong>in</strong>es the advantages of both<br />
traditional Asymmetric Multiprocess<strong>in</strong>g and<br />
Symmetric Multiprocess<strong>in</strong>g while avoid<strong>in</strong>g the<br />
disadvantages <strong>in</strong>herent <strong>in</strong> both programm<strong>in</strong>g<br />
models. OSE Multicore Edition kernel delivers<br />
on the ease-of-use promise of SMP when it<br />
<strong>com</strong>es to simplicity, flexibility, application<br />
transparency and debugg<strong>in</strong>g.<br />
News ID 461<br />
■ Actron: simplify<strong>in</strong>g graphic displays<br />
development<br />
Distributor Actron announced that Beijer<br />
Electronics is launch<strong>in</strong>g a new concept based on<br />
their knowledge <strong>in</strong> HMI together with Hitech<br />
Electronics’ experience <strong>in</strong> LCM. "Programm<strong>in</strong>g-Free<br />
Display" enables simply-designed<br />
user <strong>in</strong>terfaces for embedded systems. With no<br />
specific experience required, development time<br />
and costs are dramatically reduced.<br />
News ID 462<br />
■ SYSGO: PikeOS aims at Common<br />
Criteria EAL 7<br />
As part of the Verisoft XT project SYSGO has<br />
<strong>in</strong>itiated the formal verification of its Safe and<br />
Secure Virtualization product PikeOS, tak<strong>in</strong>g<br />
aim at the highest level of security correspond<strong>in</strong>g<br />
to today’s Common Criteria EAL 7. The<br />
new <strong>in</strong>novative verification technique uses Microsoft’s<br />
VCC tool and <strong>in</strong>cludes a verify<strong>in</strong>g C<br />
<strong>com</strong>piler used to annotate PikeOS and assembly<br />
code with assertions that always hold and<br />
that can be proved correct by VCC. The verification<br />
extends to both C and assembly code.<br />
News ID 477<br />
■ Trusted Logic: NFC protocol stack<br />
for Android<br />
Trusted Logic launches TRUSTED NFC software<br />
platform for Google Android operat<strong>in</strong>g<br />
system enabl<strong>in</strong>g mobile applications to use<br />
handset NFC connectivity. It provides simple <strong>in</strong>terfaces<br />
for develop<strong>in</strong>g applications, either <strong>in</strong> native<br />
or us<strong>in</strong>g Java. Trusted NFC can be ported on<br />
any mobile operat<strong>in</strong>g system and speeds up the<br />
<strong>in</strong>tegration process by offer<strong>in</strong>g reference implementations<br />
on the ma<strong>in</strong> operat<strong>in</strong>g systems,<br />
such as the one on Android that is now available.<br />
News ID 600<br />
November 2009<br />
You CAN get it...<br />
Hardware & software for<br />
CAN bus applications…<br />
PCAN-USB Pro<br />
High-speed USB 2.0 <strong>in</strong>terface with<br />
galvanic isolation for connect<strong>in</strong>g<br />
up to 2 CAN and 2 LIN busses.<br />
PCAN-m<strong>in</strong>iPCI<br />
CAN <strong>in</strong>terface for M<strong>in</strong>i PCI slots.<br />
Optionally with galvanic isolation.<br />
Available as S<strong>in</strong>gle channel or Dual<br />
channel version.<br />
PCAN-Explorer 5<br />
CAN/LIN <strong>in</strong>terface<br />
Universal CAN monitor,<br />
symbolic representation, VBS<br />
<strong>in</strong>terface, <strong>in</strong>tegrated data logger,<br />
functionality upgrades with add<strong>in</strong>s<br />
(e.g. Plotter & J1939 Add-<strong>in</strong>).<br />
www.peak-system.<strong>com</strong><br />
Otto-Roehm-Str. 69<br />
64293 Darmstadt / Germany<br />
Phone: +49 6151 8173-20<br />
Fax: +49 6151 8173-29<br />
<strong>in</strong>fo@peak-system.<strong>com</strong>
TOOLS &SOFTWARE<br />
Different design patterns for<br />
<strong>in</strong>tegrat<strong>in</strong>g Simul<strong>in</strong>k with Stateflow<br />
By Michael Carone, The Mathworks<br />
■ Eng<strong>in</strong>eers who use Simul<strong>in</strong>k and Stateflow<br />
with<strong>in</strong> model-based design often need to <strong>in</strong>tegrate<br />
state mach<strong>in</strong>es and control logic designed<br />
<strong>in</strong> Stateflow with Simul<strong>in</strong>k blocks, subsystems,<br />
and <strong>com</strong>ponents. Common tasks <strong>in</strong>clude<br />
call<strong>in</strong>g a look-up table block from<br />
Simul<strong>in</strong>k to perform <strong>in</strong>terpolation on a specific<br />
Stateflow variable. Stateflow is often used to<br />
enable or disable Simul<strong>in</strong>k subsystems that represent<br />
specific tasks, such as start-up and shutdown,<br />
or <strong>in</strong>dividual controller types. Another<br />
<strong>com</strong>mon procedure <strong>in</strong>volv<strong>in</strong>g both Simul<strong>in</strong>k<br />
and Stateflow is controll<strong>in</strong>g the behaviour of<br />
system <strong>com</strong>ponents, such as the guidance and<br />
navigation system of an airplane or a set of sensors<br />
located <strong>in</strong> an automobile. To <strong>com</strong>plete<br />
tasks and procedures like these requires a<br />
seamless <strong>in</strong>terface between Simul<strong>in</strong>k and Stateflow.<br />
Start<strong>in</strong>g with R2008b, Stateflow users can<br />
create and embed Simul<strong>in</strong>k functions directly<br />
<strong>in</strong>side their Stateflow charts. This article reviews<br />
three design patterns for us<strong>in</strong>g Simul<strong>in</strong>k functions<br />
<strong>in</strong>side Stateflow: model<strong>in</strong>g algorithms,<br />
schedul<strong>in</strong>g tasks and controllers, and controll<strong>in</strong>g<br />
<strong>com</strong>ponents.<br />
Add<strong>in</strong>g Simul<strong>in</strong>k functions to Stateflow is a<br />
straightforward process: you simply drag the<br />
function <strong>in</strong>to the Stateflow workspace and<br />
then double-click the function to open a new<br />
Simul<strong>in</strong>k editor w<strong>in</strong>dow. In the example shown<br />
November 2009<br />
This article describes three<br />
design patterns for<br />
<strong>in</strong>tegrat<strong>in</strong>g state mach<strong>in</strong>es<br />
and control logic designed <strong>in</strong><br />
Stateflow with Simul<strong>in</strong>k<br />
blocks, subsystems, and<br />
<strong>com</strong>ponents: model<strong>in</strong>g<br />
algorithms, schedul<strong>in</strong>g tasks<br />
and controllers, and<br />
controll<strong>in</strong>g <strong>com</strong>ponents.<br />
Figure 1. Left: Stateflow chart <strong>in</strong>corporat<strong>in</strong>g Simul<strong>in</strong>k functions created us<strong>in</strong>g the Simul<strong>in</strong>k<br />
function button (the white icon <strong>in</strong> the left navigation bar). Right: Function details<br />
<strong>in</strong> figure 1, two Simul<strong>in</strong>k functions, <strong>in</strong>it and<br />
steady, are embedded <strong>in</strong>side the Stateflow<br />
chart. The same syntax used to call graphical<br />
functions, truth-table functions, and embedded<br />
MATLAB functions is used to call Simul<strong>in</strong>k<br />
functions. Simul<strong>in</strong>k w<strong>in</strong>dows opened <strong>in</strong> Stateflow<br />
<strong>in</strong>clude the same functionality as standard<br />
Simul<strong>in</strong>k w<strong>in</strong>dows. The three design patterns<br />
described below are arranged <strong>in</strong> order of <strong>com</strong>plexity,<br />
from simple algorithm development to<br />
<strong>com</strong>ponent-based design. Model<strong>in</strong>g Algo-<br />
Figure 2. Design pattern for call<strong>in</strong>g Simul<strong>in</strong>k algorithms from Stateflow<br />
18<br />
rithms. Us<strong>in</strong>g a Simul<strong>in</strong>k block or algorithm<br />
modeled with<strong>in</strong> a Stateflow chart is an efficient<br />
way to <strong>in</strong>clude reliable Simul<strong>in</strong>k algorithms<br />
with<strong>in</strong> your control logic. In figure 2, a<br />
Simul<strong>in</strong>k look-up table block is <strong>in</strong>corporated<br />
<strong>in</strong>to a Stateflow chart us<strong>in</strong>g Simul<strong>in</strong>k functions.<br />
The block is used to perform a l<strong>in</strong>ear <strong>in</strong>terpolation<br />
of one of the <strong>in</strong>put variables to the Stateflow<br />
chart. The state mach<strong>in</strong>e <strong>com</strong>pares the<br />
output of this function to another Stateflow
Figure 3. Design pattern for schedul<strong>in</strong>g tasks modelled <strong>in</strong> Simul<strong>in</strong>k<br />
from Stateflow<br />
Figure 4. Design pattern for controll<strong>in</strong>g <strong>com</strong>ponents with<strong>in</strong> Stateflow<br />
■ CMX: embedded software for<br />
ColdFire processors<br />
CMX Systems offers two RTOSes, two TCP/IP<br />
stacks, five Flash File Systems and multiple USB<br />
stacks for Freescale’s ColdFire processor family.<br />
CMX-RTX is a truly preemptive, multi-task<strong>in</strong>g<br />
RTOS offer<strong>in</strong>g one of the smallest footpr<strong>in</strong>ts,<br />
fastest context switch<strong>in</strong>g, and lowest<br />
<strong>in</strong>terrupt latency times available on the market<br />
today.<br />
News ID 604<br />
■ Vector enters <strong>in</strong>to partnership with<br />
aqu<strong>in</strong>tos<br />
Vector enters <strong>in</strong>to partnership with aqu<strong>in</strong>tos.<br />
The software eng<strong>in</strong>eer<strong>in</strong>g <strong>com</strong>pany aqu<strong>in</strong>tos,<br />
located <strong>in</strong> Karlsruhe, puts its primary focus on<br />
Product News<br />
the development of the PREEvision product. Its<br />
software tools are used <strong>in</strong> the design, development,<br />
evaluation and optimization of E/E<br />
architectures. From product def<strong>in</strong>ition to topology,<br />
it considers the levels of functional<br />
model<strong>in</strong>g and distribution, network<strong>in</strong>g, power<br />
supply, electrical system and wire harness.<br />
News ID 592<br />
■ NXP: onl<strong>in</strong>e tools for rapid prototyp<strong>in</strong>g<br />
ARM and NXP announce mbed.org and the<br />
mbed microcontroller rapid prototyp<strong>in</strong>g tools.<br />
Mbed is an onl<strong>in</strong>e platform for fast, low-risk<br />
prototyp<strong>in</strong>g of microcontroller-based systems.<br />
The mbed tools launch with <strong>in</strong>tegral hardware<br />
and software support for the NXP LPC1768<br />
ARMCortex-M3 processor-based MCU, mak-<br />
19<br />
variable to determ<strong>in</strong>e whether the state mach<strong>in</strong>e should be <strong>in</strong> the S1 or<br />
S2 state. There are several other possibilities for <strong>in</strong>clud<strong>in</strong>g Simul<strong>in</strong>k algorithms<br />
with<strong>in</strong> Stateflow. For example, custom library blocks can be<br />
added to Simul<strong>in</strong>k functions. You can then add your own reusable<br />
Simul<strong>in</strong>k algorithms to the logic and call these algorithms throughout the<br />
state chart. The blocks that can be added to Simul<strong>in</strong>k functions are not<br />
limited to those <strong>in</strong> the Simul<strong>in</strong>k library; for <strong>in</strong>stance, you can also add the<br />
fast Fourier transform block from signal process<strong>in</strong>g blockset.<br />
Schedul<strong>in</strong>g Tasks and <strong>Control</strong>lers. Stateflow is <strong>com</strong>monly used to<br />
model schedulers that determ<strong>in</strong>e when certa<strong>in</strong> actions take place. For example,<br />
Stateflow can be used to schedule exactly when a system should<br />
start-up, perform a certa<strong>in</strong> operation, and then shut down. The tasks that<br />
are performed when the system is <strong>in</strong> each of those states are often modelled<br />
<strong>in</strong> Simul<strong>in</strong>k. With Simul<strong>in</strong>k functions, you can directly associate<br />
these tasks with the correspond<strong>in</strong>g state (figure 3). In this design pattern,<br />
three phases of a process are represented by three Stateflow states. When<br />
the system is <strong>in</strong> phase 1, the Stateflow chart executes the task that is modelled<br />
<strong>in</strong> the Simul<strong>in</strong>k subsystem (task 1).<br />
After 60 seconds, the system enters phase 2, and task 2 is executed. After<br />
another 60 seconds, task 3 is executed. A key advantage of this approach<br />
is the readability of the Stateflow chart - for example, it is immediately<br />
apparent that the task to be executed when <strong>in</strong> phase 1 is the task that is<br />
modelled with<strong>in</strong> the task1 Simul<strong>in</strong>k function. Another application of this<br />
design pattern is to activate different types of controllers based on the<br />
state of the system. For example, <strong>in</strong> one state, the controller can behave<br />
<strong>in</strong> an open-loop fashion. When the difference between the desired<br />
response and the actual response reaches a certa<strong>in</strong> threshold value, the<br />
state mach<strong>in</strong>e can transition to the closed-loop state, at which po<strong>in</strong>t the<br />
closed-loop controller, modelled <strong>in</strong> Simul<strong>in</strong>k, is activated.<br />
<strong>Control</strong>l<strong>in</strong>g Components. Another <strong>com</strong>mon application for Stateflow is<br />
to control the behaviour of <strong>com</strong>ponents modelled <strong>in</strong> Simul<strong>in</strong>k. Figure 4<br />
shows two <strong>in</strong>dependent <strong>com</strong>ponents represented by two parallel states <strong>in</strong><br />
Stateflow. These <strong>com</strong>ponents can be either off or on. When one of these<br />
<strong>com</strong>ponents is switched on, the Simul<strong>in</strong>k <strong>com</strong>ponent is activated from<br />
the Stateflow chart. The Simul<strong>in</strong>k functions shown <strong>in</strong> figure 4 look very<br />
similar to those shown <strong>in</strong> figure 3, with one major difference: the blocks<br />
shown <strong>in</strong> figure 4 are model blocks, not subsystem blocks. Model blocks<br />
l<strong>in</strong>k to models that can be developed and tested <strong>in</strong>dependently. These<br />
blocks are important for <strong>com</strong>ponentized design and large-scale<br />
modell<strong>in</strong>g. ■<br />
<strong>in</strong>g cutt<strong>in</strong>g-edge microcontroller technology<br />
accessible to a wide audience.<br />
News ID 475<br />
■ TI: USB Stick based DSP development tool<br />
Texas Instruments announces the availability of<br />
the TMS320VC5505 eZdsp USB stick development<br />
tool, which drops the cost of a full-featured<br />
emulator and <strong>in</strong>tegrated development<br />
platform. This enables rapid creation of DSP<br />
applications <strong>in</strong>clud<strong>in</strong>g portable audio players,<br />
voice recorders, IP phones, portable medical<br />
devices, biometric USB keys, software def<strong>in</strong>ed<br />
radios, hands-free headsets and meter<strong>in</strong>g<br />
applications.<br />
News ID 453<br />
TOOLS &SOFTWARE<br />
November 2009
MICROS & DSPS<br />
S<strong>in</strong>gle-chip coherent multiprocess<strong>in</strong>g<br />
boosts embedded performance<br />
By Mark Throndson, MIPS<br />
November 2009<br />
This article expla<strong>in</strong>s how the<br />
MIPS32 1004K coherent process<strong>in</strong>g<br />
system br<strong>in</strong>gs together<br />
MIPS multi-thread<strong>in</strong>g and<br />
coherent SMP <strong>in</strong> a s<strong>in</strong>gle IP<br />
block to provide scalable,<br />
high-density embedded <strong>com</strong>put<strong>in</strong>g<br />
power.<br />
■ Driv<strong>in</strong>g the performance of an <strong>in</strong>dividual<br />
processor to the limits of the possible <strong>in</strong> a given<br />
implementation technology is never easy or efficient.<br />
The tried and true methods of faster<br />
clocks, deeper pipel<strong>in</strong>es, and bigger caches all<br />
have silicon area and power dissipation costs<br />
that get well <strong>in</strong>to dim<strong>in</strong>ish<strong>in</strong>g returns to get that<br />
last 10% of performance. There are times<br />
when there is no alternative but to turn up the<br />
clock and upgrade the power and cool<strong>in</strong>g subsystems;<br />
but when a workload can be split<br />
across multiple processors, the limits to maximum<br />
total performance are pushed back, and<br />
the design of the process<strong>in</strong>g elements themselves<br />
can be made simpler and more efficient.<br />
While you see this approach today <strong>in</strong> PCs,<br />
servers and workstations, this is just as true <strong>in</strong><br />
embedded SoC designs. In fact, many embedded<br />
SoC designs today make use of multiple<br />
processors, but do so <strong>in</strong> an application-specific<br />
or loosely coupled manner. Until recently,<br />
SoC design options for software-friendly multiprocess<strong>in</strong>g<br />
were severely limited. However,<br />
with the advent of SoC design <strong>com</strong>ponents<br />
such as the MIPS32 1004K coherent process<strong>in</strong>g<br />
system (CPS), on-chip symmetric multiprocess<strong>in</strong>g<br />
(SMP) under a s<strong>in</strong>gle operat<strong>in</strong>g system<br />
has be<strong>com</strong>e a real design option, and system architects<br />
need to understand its promises and<br />
limitations. Exploit<strong>in</strong>g parallel processors requires<br />
parallel software, and parallel program-<br />
m<strong>in</strong>g is a model that creates some apprehension<br />
with software eng<strong>in</strong>eers because not all exist<strong>in</strong>g<br />
code was written for a parallel process<strong>in</strong>g platform.<br />
But there are several paradigms for parallel<br />
software, some of which are already very<br />
familiar to software designers, even if they do<br />
not necessarily th<strong>in</strong>k of them as such.<br />
Data-parallel algorithms are ways of attack<strong>in</strong>g<br />
a s<strong>in</strong>gle basic <strong>com</strong>putational problem by<br />
carv<strong>in</strong>g up the data set to make use of more<br />
than one processor, ideally up to a large number<br />
of CPUs. The textbook case of a large data<br />
set is a large <strong>in</strong>put file or data array, but <strong>in</strong><br />
embedded systems, it can mean high I/O and<br />
event service bandwidth. In some SoC<br />
architectures, multiple sources of <strong>in</strong>put data,<br />
such as network <strong>in</strong>terface ports, each of which<br />
needs to be handled the same way, can be<br />
statically assigned to multiple processors<br />
runn<strong>in</strong>g the same driver/router code to make<br />
for natural data-parallelism.<br />
When the power of multiple processors must be<br />
brought to bear on a s<strong>in</strong>gle data array or s<strong>in</strong>gle<br />
<strong>in</strong>put stream, data-parallel algorithms that divide<br />
and conquer the data are often used, such<br />
as the simple example shown <strong>in</strong> figure 1. Such<br />
algorithms are generally sub-optimal on a s<strong>in</strong>gle<br />
processor, but make up for their <strong>in</strong>efficiency<br />
with scalability to exploit more <strong>com</strong>putational<br />
bandwidth. They make up for it <strong>in</strong> vol-<br />
20<br />
Figure 1. Data-parallel<br />
programm<strong>in</strong>g model<br />
ume. These algorithms have been shown to be<br />
the most scalable approach to parallel <strong>com</strong>put<strong>in</strong>g,<br />
but convert<strong>in</strong>g a work<strong>in</strong>g sequential<br />
program to a data-parallel algorithm may be<br />
trivial, difficult, or impossible, depend<strong>in</strong>g on<br />
factors such as the dependency characteristics<br />
of the program.<br />
A system designer look<strong>in</strong>g for higher performance<br />
for an exist<strong>in</strong>g application would<br />
most likely look to explicitly implement dataparallel<br />
algorithms if the vast bulk of <strong>com</strong>putational<br />
work <strong>in</strong> the application is done <strong>in</strong> a relatively<br />
small number of long runs of regular<br />
<strong>com</strong>putational loops. The emergence of multicore<br />
x86 chips for PC, workstation and server<br />
processors has generated research and <strong>in</strong>vestment<br />
<strong>in</strong> a new wave of libraries and toolkits to<br />
enable, and more easily exploit, parallel algorithms<br />
on modest numbers of processors.<br />
Many of these are open-sourced and portable to<br />
embedded architectures such as MIPS. Open-<br />
MP extensions to gcc for data-parallel C/C++<br />
as well as FORTRAN are be<strong>com</strong><strong>in</strong>g a part of the<br />
standard GNU <strong>com</strong>piler collection.<br />
Another paradigm, which will be referred to<br />
here as control-parallel programm<strong>in</strong>g, is to split<br />
the work of a program by task, rather than by<br />
<strong>in</strong>put. If an automobile factory where 100<br />
workers are each given a car to build can be seen<br />
as a metaphor for a 100-way data parallel
Figure 2. <strong>Control</strong>-parallel programm<strong>in</strong>g model<br />
Figure 3. Concurrent multitask<strong>in</strong>g<br />
MICROS & DSPS<br />
Figure 4. SMP task distribution across multiprocessor resources<br />
algorithm, the analogous metaphor for a control-parallel program<br />
would be a factory with a s<strong>in</strong>gle assembly l<strong>in</strong>e consist<strong>in</strong>g of 100 stations,<br />
each staffed by a worker perform<strong>in</strong>g a different task that is 1/100 of the<br />
assembly work. A simple example of a two station implementation is<br />
shown <strong>in</strong> figure 2. The assembly l<strong>in</strong>e approach is generally more<br />
efficient, but there is a limit to how far one can divide up the work of<br />
assembl<strong>in</strong>g a s<strong>in</strong>gle car. This limitation is significant for scientific codes<br />
that one would like to scale to thousands of processors, but not generally<br />
an issue with modestly parallel SoC architectures for consumer<br />
applications.<br />
Even without tak<strong>in</strong>g parallel process<strong>in</strong>g <strong>in</strong>to consideration, software<br />
eng<strong>in</strong>eers will often break programs up <strong>in</strong>to phases. It makes for easier<br />
cod<strong>in</strong>g, debugg<strong>in</strong>g, and ma<strong>in</strong>tenance by teams of programmers, and it<br />
reduces pressure on <strong>in</strong>struction memory and caches. In many cases, the<br />
control-parallel de<strong>com</strong>position of a problem has already been taken to<br />
the level of OS-visible tasks. The s<strong>in</strong>gle <strong>com</strong>mand cc on a UNIX-like<br />
system <strong>in</strong>vokes, sequentially, a C language pre-processor, a <strong>com</strong>piler, an<br />
assembler and a l<strong>in</strong>ker. On an SMP multiprocessor, several of these can<br />
be run simultaneously, with each successive program us<strong>in</strong>g the output<br />
of the previous phase as its <strong>in</strong>put, us<strong>in</strong>g files or, better still, the software<br />
pipes that have long been a feature of UNIX-like operat<strong>in</strong>g systems,<br />
<strong>in</strong>clud<strong>in</strong>g L<strong>in</strong>ux. When de<strong>com</strong>position <strong>in</strong>to <strong>in</strong>dependently run tasks has<br />
not already been done, some software eng<strong>in</strong>eer<strong>in</strong>g must be done to<br />
make the phases of an application visible to the operat<strong>in</strong>g system and<br />
21<br />
November 2009<br />
Stock around the clock:<br />
Rutronik-Webg@te<br />
é<br />
By means of this modular e-<strong>com</strong>merce platform consist<strong>in</strong>g<br />
of an onl<strong>in</strong>e catalogue, a product change notifi cation (PCN)<br />
database and procurement, you have full 24-hour access to<br />
all technical <strong>in</strong>formation and <strong>in</strong>ventories.<br />
∙ Unrivalled affordability among onl<strong>in</strong>e distributors<br />
∙ Optimal traceability due to a uniquely <strong>com</strong>plete body of<br />
documentation of all key process steps<br />
∙ Personalized consult<strong>in</strong>g<br />
∙ Full access to all technical <strong>in</strong>formation and <strong>in</strong>ventories<br />
∙ A choice of several <strong>com</strong>ponent manufacturers<br />
∙ Simple search for product groups and products<br />
∙ Constant status access and monitor<strong>in</strong>g of current orders<br />
Consult | Components | Logistics | Support<br />
Tel: +44 (0) 1204 602 200<br />
Committed to Excellence<br />
www.rutronik.<strong>com</strong>
MICROS & DSPS<br />
the underly<strong>in</strong>g hardware, and to explicitly pass<br />
data from one task to another when its ownership<br />
passes from one phase to another. But<br />
there should be no need to reth<strong>in</strong>k or rework<br />
the algorithms of the constituent phases, as is<br />
generally required for a data-parallel de<strong>com</strong>position.<br />
Coarse-gra<strong>in</strong> task de<strong>com</strong>position can<br />
be done <strong>in</strong> terms of processes <strong>com</strong>municat<strong>in</strong>g<br />
via files, sockets, or pipes. For f<strong>in</strong>er-gra<strong>in</strong>ed<br />
control, the POSIX thread API, pthreads, is<br />
widely used, and is supported by a broad<br />
range of operat<strong>in</strong>g systems, <strong>in</strong>clud<strong>in</strong>g L<strong>in</strong>ux,<br />
Microsoft W<strong>in</strong>dows, and many real-time operat<strong>in</strong>g<br />
systems.<br />
Complex, modular, multitask<strong>in</strong>g embedded<br />
software systems will often exhibit serendipitous<br />
concurrency, such as that illustrated <strong>in</strong> figure<br />
3, even if it was not a design objective. The<br />
overall mission of the system may <strong>in</strong>volve the<br />
operation of multiple tasks, each of which has<br />
a dist<strong>in</strong>ct responsibility, respond<strong>in</strong>g to a dist<strong>in</strong>ct<br />
set of <strong>in</strong>puts. Without a time-shar<strong>in</strong>g operat<strong>in</strong>g<br />
system, these tasks would each have to run on<br />
a separate processor. On a time-shar<strong>in</strong>g<br />
uniprocessor, they run <strong>in</strong> alternat<strong>in</strong>g timeslices.<br />
On a multiprocessor with an SMP operat<strong>in</strong>g<br />
system, they can run concurrently across<br />
as many processors as are available.<br />
Another form of parallel process<strong>in</strong>g that has be<strong>com</strong>e<br />
so <strong>com</strong>monplace that it is sometimes not<br />
even thought of as parallel is distributed <strong>com</strong>put<strong>in</strong>g,<br />
of which network client/server models<br />
are by far the most <strong>com</strong>mon paradigm. Clientserver<br />
programm<strong>in</strong>g is basically a form of<br />
control-flow de<strong>com</strong>position. Rather than perform<strong>in</strong>g<br />
all of a <strong>com</strong>putation itself, a program<br />
task connects and sends work requests to one or<br />
more specialized tasks <strong>in</strong> a system which are<br />
designated to perform specific jobs. While<br />
client/server programm<strong>in</strong>g is most <strong>com</strong>monly<br />
done across LANs and WANs, <strong>com</strong>munications<br />
between tasks with<strong>in</strong> an SMP SoC follow the<br />
same paradigm. One can use unmodified<br />
client/server b<strong>in</strong>aries <strong>com</strong>municat<strong>in</strong>g by<br />
TCP/IP via on-chip or null loopback network<br />
<strong>in</strong>terfaces, or more efficiently by us<strong>in</strong>g local<br />
<strong>com</strong>munications protocols that pass data<br />
buffers <strong>in</strong> memory. In practice, any of these<br />
techniques may be used alone, or <strong>in</strong> <strong>com</strong>b<strong>in</strong>ation,<br />
to leverage the power of an SMP-based<br />
platform for a given application. One could<br />
even construct a data-parallel array of distributed<br />
SMP servers, each of which implements a<br />
control-flow pipel<strong>in</strong>e. But for such a scheme to<br />
be efficient there would need to be a very large<br />
workload and data set.<br />
In SoC systems where parallelism by static<br />
physical de<strong>com</strong>position of tasks onto processors<br />
is possible (e.g. one processor core per <strong>in</strong>put<br />
port), the assignment of parallel tasks to processors<br />
can be done <strong>in</strong> hardware. This reduces software<br />
overhead and footpr<strong>in</strong>t, but provides no<br />
flexibility. Similarly, if an embedded application<br />
can be statically de<strong>com</strong>posed <strong>in</strong>to clients and<br />
servers <strong>com</strong>municat<strong>in</strong>g across an on-chip <strong>in</strong>terconnect,<br />
the only system software required to<br />
tie the system together would be message-pass<strong>in</strong>g<br />
code that implements a <strong>com</strong>mon protocol<br />
between processors. The message pass<strong>in</strong>g protocol<br />
provides some level of abstraction that can<br />
enable configurations with more or fewer<br />
processors to run a <strong>com</strong>mon base of application<br />
code, but for any given configuration, the load<br />
balanc<strong>in</strong>g between processors is as static as the<br />
hardware partition<strong>in</strong>g. For more flexible parallel<br />
system programm<strong>in</strong>g, software distribution<br />
of tasks across a multiprocessor system with<br />
shared resources is needed.<br />
As the name implies, SMP operat<strong>in</strong>g systems<br />
have a symmetric view of the system. All<br />
processors see the same memory, the same I/O<br />
devices and the same global operat<strong>in</strong>g system<br />
state. This makes migration of programs from<br />
one processor to another extremely simple and<br />
November 2009 22<br />
efficient, as shown <strong>in</strong> the simple example <strong>in</strong> figure<br />
4, and makes load balanc<strong>in</strong>g easy. With no<br />
additional programm<strong>in</strong>g or system adm<strong>in</strong>istration,<br />
a set of programs that multi-tasks on a<br />
s<strong>in</strong>gle CPU us<strong>in</strong>g time-slic<strong>in</strong>g will run concurrently<br />
on the available CPUs of an SMP system.<br />
An SMP scheduler, such as that of L<strong>in</strong>ux, will<br />
switch programs on and off of processors so<br />
that all make progress <strong>in</strong> a fair manner.<br />
A L<strong>in</strong>ux application that runs as multiple<br />
processes needs no modification to take advantage<br />
of SMP parallelism. In most cases, no<br />
re<strong>com</strong>pilation is required; the exception be<strong>in</strong>g<br />
b<strong>in</strong>aries that were statically l<strong>in</strong>ked with nonthread-safe<br />
libraries. An SMP L<strong>in</strong>ux environment<br />
provides a number of tools that allow a<br />
system designer to tune the way tasks share the<br />
available processors. Tasks can have their priorities<br />
raised and lowered, and can be restricted<br />
to run on arbitrary subsets of processors.<br />
With appropriate kernel support, they can request<br />
the use of different real-time schedul<strong>in</strong>g<br />
regimes.<br />
UNIX-like operat<strong>in</strong>g systems have always allowed<br />
applications to have some control over<br />
the relative schedul<strong>in</strong>g priority of tasks, even <strong>in</strong><br />
uniprocessor time-shar<strong>in</strong>g systems. The traditional<br />
nice shell <strong>com</strong>mand and system call have<br />
been augmented <strong>in</strong> L<strong>in</strong>ux with more elaborate<br />
mechanisms to manipulate the priority of<br />
tasks, groups of tasks, or specific users of a system,<br />
should it be necessary to second-guess the<br />
OS. Additionally, <strong>in</strong> multiprocessor configurations,<br />
every L<strong>in</strong>ux task has a parameter that<br />
specifies what set of processors may schedule<br />
the task. By default, that parameter is the full set<br />
of processors <strong>in</strong> the system, but, like priority,<br />
this CPU aff<strong>in</strong>ity can be controlled either by the<br />
taskset shell <strong>com</strong>mand, or by explicit system<br />
calls to manipulate the “CPU aff<strong>in</strong>ity” of tasks.<br />
An SMP system paradigm requires that all<br />
processors see all of memory at the same ad-
dresses. For simple, low-performance processors,<br />
this is not too difficult to ac<strong>com</strong>plish. One<br />
simply puts the <strong>in</strong>struction fetch and load/store<br />
traffic of all processors on a <strong>com</strong>mon memory<br />
and I/O bus. This simplistic model breaks<br />
down pretty quickly with <strong>in</strong>creas<strong>in</strong>g numbers<br />
of processors however, as the bus quickly be<strong>com</strong>es<br />
a performance bottleneck. And even <strong>in</strong><br />
uniprocessor systems, the bandwidth requirements<br />
for <strong>in</strong>structions and data of high-performance<br />
embedded cores dictate that cache<br />
memories be used between ma<strong>in</strong> memory and<br />
the processor.<br />
A system with <strong>in</strong>dependent per-processor<br />
caches is no longer naturally SMP. When one<br />
processor cache conta<strong>in</strong>s the only copy of the<br />
most recent value of a location <strong>in</strong> memory,<br />
there is a basic - and dangerous - asymmetry.<br />
Cache coherence protocols must be added to<br />
the system to restore that symmetry. In very<br />
simple systems, where all processors are connected<br />
to a <strong>com</strong>mon bus, it is sufficient for all<br />
cache controllers to monitor the bus to see<br />
which cache owns the latest version of a given<br />
memory location. In more advanced systems,<br />
such as the MIPS32 1004K CPS, processors are<br />
connected to memory us<strong>in</strong>g po<strong>in</strong>t-to-po<strong>in</strong>t<br />
connections to a switch<strong>in</strong>g fabric rather than a<br />
bus. Cache coherence thus requires more sophisticated<br />
support. The 1004K coherence<br />
manager imposes a global order on memory<br />
transactions and generates the necessary <strong>in</strong>tervention<br />
signals to ma<strong>in</strong>ta<strong>in</strong> cache coherence<br />
among multiple 1004K processor cores. The<br />
1004K processors thus see a symmetric view of<br />
memory. An SMP operat<strong>in</strong>g system such as<br />
L<strong>in</strong>ux can freely migrate tasks and dynamically<br />
balance processor loads.<br />
In an embedded SoC, a substantial portion of<br />
overall <strong>com</strong>putation can be spent <strong>in</strong> <strong>in</strong>terrupt<br />
service. This implies that good load balanc<strong>in</strong>g<br />
and performance tun<strong>in</strong>g requires control, not<br />
only of where program tasks are allowed to run,<br />
butalsowhere<strong>in</strong>terruptserviceistobeperformed.<br />
The L<strong>in</strong>ux operat<strong>in</strong>g system has an<br />
IRQ aff<strong>in</strong>ity control <strong>in</strong>terface that allows users<br />
and programs to specify which processors are to<br />
be used to service a given <strong>in</strong>terrupt. To be usable,<br />
this <strong>in</strong>terface requires that the underly<strong>in</strong>g<br />
system hardware provide a means to selectively<br />
route <strong>in</strong>terrupts to processors. The 1004K<br />
global <strong>in</strong>terrupt controller provides this capability<br />
for the 1004K CPS.<br />
Cache coherence <strong>in</strong>frastructure is useful, not<br />
only between processors for symmetric multiprocess<strong>in</strong>g,<br />
but between processors and I/O<br />
DMA channels. While RISC architectures such<br />
as MIPS32 have features to support softwarebased<br />
I/O coherence, this requires that DMA<br />
buffers be processed by the CPU before or after<br />
each I/O DMA operation. This process<strong>in</strong>g has<br />
23<br />
MICROS & DSPS<br />
a measurable performance impact on I/O-<strong>in</strong>tensive<br />
applications. In the 1004K CPS, connect<strong>in</strong>g<br />
I/O DMA to memory via an I/O coherence<br />
unit allows DMA traffic to be ordered<br />
and <strong>in</strong>tegrated with the coherent load/store<br />
flow, elim<strong>in</strong>at<strong>in</strong>g the software overhead.<br />
In SoC design, as elsewhere <strong>in</strong> life, there is no<br />
suchth<strong>in</strong>gasafreelunch.The1004Kcoherence<br />
manager imposes order and sanity on memory<br />
traffic between processors, I/O, and memory,<br />
but <strong>in</strong> do<strong>in</strong>g so, it adds cycles to the memory<br />
access time experienced by the processor.<br />
Ord<strong>in</strong>arily, this would always result <strong>in</strong> additional<br />
lost processor cycles when the pipel<strong>in</strong>e<br />
stalls, wait<strong>in</strong>g for the cache to be filled with <strong>in</strong>structions<br />
or necessary data. But the 1004K<br />
platform implements the MIPS multi-thread<strong>in</strong>g<br />
architecture first pioneered <strong>in</strong> the MIPS32<br />
34K core family, which allows a s<strong>in</strong>gle core to<br />
execute multiple concurrent <strong>in</strong>struction<br />
streams.<br />
Each <strong>in</strong>dividual core with<strong>in</strong> the 1004K CPS <strong>in</strong>cludes<br />
support for two hardware threads via<br />
VPEs, virtual process<strong>in</strong>g elements that look just<br />
like a CPU to operat<strong>in</strong>g system software. The<br />
two virtual processors share the same cache and<br />
functional units, and <strong>in</strong>terleave their execution<br />
on the pipel<strong>in</strong>e. If one VPE is stalled wait<strong>in</strong>g for<br />
a cache fill from memory, the other can execute<br />
to keep the pipel<strong>in</strong>e busy. In effect, the multithread<strong>in</strong>g<br />
capability of the 1004K processor allows<br />
it to take back cycles otherwise lost to the<br />
latency of the coherent memory subsystem.<br />
S<strong>in</strong>ce the 1004K processor VPEs look like fullblown<br />
processors to software, up to and <strong>in</strong>clud<strong>in</strong>g<br />
hav<strong>in</strong>g <strong>in</strong>dependent <strong>in</strong>terrupt <strong>in</strong>puts,<br />
the same SMP operat<strong>in</strong>g system logic that manages<br />
multiple cores can be exploited to manage<br />
their constituent VPEs. At the highest level of<br />
system adm<strong>in</strong>istration, a dual-core 1004K system<br />
with all VPEs active looks to be a 4-way<br />
SMP system. Software that has been written or<br />
configured to exploit SMP can naturally exploit<br />
multi-thread<strong>in</strong>g, and vice versa.<br />
While the view of system resources rema<strong>in</strong>s<br />
symmetric, it is true that two threads <strong>com</strong>pet<strong>in</strong>g<br />
for the use of a s<strong>in</strong>gle processor pipel<strong>in</strong>e will<br />
achieve lower performance than two threads<br />
runn<strong>in</strong>g on <strong>in</strong>dependent cores. This situation<br />
has existed for years <strong>in</strong> server systems, where coherent<br />
clusters of multi-threaded CPUs are not<br />
unusual, and the SMP L<strong>in</strong>ux kernel for the<br />
1004K is equipped to do the necessary load-balanc<strong>in</strong>g<br />
optimizations. If optimiz<strong>in</strong>g for power<br />
consumption, the scheduler can load work onto<br />
the virtual processors of one core at a time, so<br />
that the others can rema<strong>in</strong> <strong>in</strong> a low-power state.<br />
If optimiz<strong>in</strong>g for performance, it can spread<br />
work across dist<strong>in</strong>ct cores first, only load<strong>in</strong>g up<br />
multiple VPEs per core once all cores have an<br />
active task to run. ■<br />
November 2009<br />
Development D e v e l o p m e n t Solutions S o l u t i o n s for fo o r<br />
AARM,<br />
RM,<br />
88051<br />
0 051<br />
& XXE166<br />
E166<br />
Microcontrollers<br />
Micro<br />
c controllers<br />
elopment e l o p m e n t Solutions S o l u t i o n s for fo o r<br />
ARM,<br />
88051<br />
0 051<br />
& XXE166<br />
E166<br />
Microcontrollers<br />
Micro<br />
c cMicrocontroller<br />
Micr ontro<br />
o contr llers<br />
oller<br />
Development<br />
Kits<br />
C and C++ Compilers C<br />
Royalty-Free<br />
RTX R<br />
TX Kernel Keernel<br />
Microcontroller<br />
μVision<br />
Dev<br />
vice<br />
D a atabase<br />
Development Development<br />
Kits<br />
μVision Device Database &<br />
IDE<br />
and C++ μVision Compilers C De Debugger ebugger<br />
yalty-Free yalty-F<br />
Complete ree<br />
RTX R<br />
TX Device De Kernel Ke ernel vicce<br />
Simulation<br />
n Device Dev<br />
vice<br />
DDatabase<br />
a atabase<br />
&<br />
IDE<br />
μVision De Debugger ebugger<br />
plete Device Devicce<br />
Simulation<br />
Keil Keeil<br />
RTOS RT T TPK51,<br />
PK OS K51, and<br />
PK166, d Mid Middleware dl dleware<br />
and M MDK-ARM Components<br />
Com mponents<br />
support supportm<br />
mor more e than 1,700<br />
0<br />
micr microcontrollers<br />
RTX RTTX<br />
oKernel<br />
Ke contr ernel ollers Source Soource<br />
Code<br />
www www.keil.<strong>com</strong>/dd<br />
.kk<br />
eil.<strong>com</strong>/dd<br />
TOS T OS and<br />
d Mid Middleware dl dleware<br />
Flash Flash File System<br />
Components<br />
Com mponents<br />
XXKe Kernel ernel USB So Source our De Device ce vice Code Interface<br />
Pnet Network<strong>in</strong>g Netwoork<strong>in</strong>g<br />
CAN Inte Interface Suite erface<br />
Flash Flash File System<br />
USB De Device vice Interface<br />
CAN Inte Interface erface<br />
Examples E and<br />
TTe Templates emplates<br />
Keil Ke eil PK51, PK K51, PK166,<br />
and M MDK-ARM<br />
suppor support tm mor more e than 1,700<br />
0<br />
micr microcontrollers ocontrollers<br />
www www.keil.<strong>com</strong>/dd<br />
.k keil.<strong>com</strong>/dd<br />
TCPnet Network<strong>in</strong>g Netwoork<strong>in</strong>g<br />
Suite<br />
Examples Exammples<br />
and and Templates Te emplates<br />
Free<br />
evaluation evaluat<br />
tion vversions<br />
ersions can<br />
be bbe downloaded ddownnloaded<br />
l d d from ffrom<br />
llRL-ARM RL-ARM www.keil.<strong>com</strong>/demo<br />
www. M and .kei<br />
ART ARTX-166 il.<strong>com</strong>/demo<br />
TX-166<br />
ghly<br />
optimised, optimmised,<br />
royalty-free<br />
middleware middlee<br />
ware<br />
suites<br />
www.keil.<strong>com</strong><br />
wwww.<br />
.keil.<strong>com</strong><br />
+49 89 456040-20<br />
Examples E and<br />
TTe Templates emplates<br />
Examples Exammples<br />
and Templates TTe emplates<br />
Keil Keeil<br />
RL-ARM M and ARTX-166 ART TX-166<br />
highly<br />
optimised, optimmised,<br />
royalty-free<br />
middleware middle<br />
eware<br />
suites<br />
www www.keil.<strong>com</strong>/rtos<br />
.keeil.<strong>com</strong>/rtos
MICROS & DSPS<br />
Accelerat<strong>in</strong>g early stages of the design<br />
cycle with i.MX processors<br />
By Tony Eriksson, Future Electronics<br />
■ For good reason, the i.MX family of microprocessors<br />
from Freescale Semiconductor is a<br />
popular choice for embedded systems that require<br />
high performance and low power consumption<br />
at a reasonable cost. These devices are<br />
highly sophisticated processors with strong<br />
<strong>com</strong>pute and data-throughput capabilities. But<br />
the very power and sophistication of the i.MX<br />
makes it all the more important to approach the<br />
design process correctly. With so many options<br />
and configurations available to the designer,<br />
there is a risk of fail<strong>in</strong>g to take advantage of features<br />
or capabilities that could be useful to the<br />
application. So before beg<strong>in</strong>n<strong>in</strong>g a new design<br />
project, it will pay every design team to ensure<br />
that they have the right <strong>com</strong>b<strong>in</strong>ation of hardware,<br />
knowledge and resources available to<br />
them from the start.<br />
First, it will help to understand what k<strong>in</strong>d of<br />
processor we are deal<strong>in</strong>g with. The i.MX is an<br />
ARM-based application processor that aims for<br />
high <strong>in</strong>tegration and low power consumption<br />
<strong>com</strong>b<strong>in</strong>ed with powerful performance. It is derived<br />
from the Dragonball MX series processors,<br />
and can be traced back to devices <strong>in</strong>troduced<br />
<strong>in</strong> 1996 by Freescale’s predecessor <strong>com</strong>pany<br />
Motorola. Then, the parts were aimed at<br />
the handheld market, where the requirement<br />
was for low power consumption <strong>com</strong>b<strong>in</strong>ed with<br />
high performance. Today the i.MX family can<br />
be used <strong>in</strong> a wide variety of applications. To<br />
meet this variety of needs, it is divided <strong>in</strong>to<br />
three groups: i.MX2x, i.MX3x and i.MX5x.<br />
November 2009<br />
The i.MX family<br />
of microprocessors from<br />
Freescale is a popular choice<br />
for embedded systems that<br />
require high performance<br />
and low power consumption.<br />
This article describes<br />
some of the most useful<br />
resources and tools for<br />
i.MX design teams.<br />
With<strong>in</strong> these families there are further sub-divisions<br />
target<strong>in</strong>g automotive, <strong>in</strong>dustrial and<br />
consumer applications. With so many different<br />
variants of the core product, it is possible to<br />
f<strong>in</strong>d a part with features that closely match the<br />
requirements of almost any embedded application<br />
(figure 1). Hav<strong>in</strong>g chosen the i.MX device<br />
that is best suited to the requirements of<br />
the application, the product design process is<br />
readytostart.Itisalwaystempt<strong>in</strong>gtostartadesign<br />
project by develop<strong>in</strong>g a proof-of-concept<br />
of the end product. Strangely, design projects<br />
proceed quicker if the first action of the designer<br />
is to work with a board that is not a prototype<br />
of the end product: a product development<br />
kit (PDK) or evaluation kit (EVK) provided<br />
by Freescale. (For the purposes of illustration,<br />
this article will describe <strong>in</strong> detail only a<br />
PDK, the more feature-rich and powerful of the<br />
two types of kit. It should also be noted that<br />
i.MX development kits are available from<br />
third-party <strong>com</strong>panies other than Freescale.)<br />
The Freescale PDK <strong>com</strong>es with start-up software<br />
and tool<strong>in</strong>g pre-loaded and configured for<br />
use out of the box. Even though you are unlikely<br />
to use all the software and schematics,<br />
they give you a feel for the i.MX. In addition,<br />
the PDK board gives you a benchmark for <strong>com</strong>par<strong>in</strong>g<br />
the performance of your prototype.<br />
Freescale makes several operat<strong>in</strong>g-system board<br />
support packages (BSPs) available for download<br />
with every i.MX PDK. You can also order the kit<br />
pre-loaded with W<strong>in</strong>dows CE or L<strong>in</strong>ux. The<br />
24<br />
Figure 1. Freescale roadmap<br />
for the i.MX family<br />
BSP is an important part of the PDK, s<strong>in</strong>ce it<br />
enables to start application development early<br />
<strong>in</strong> the design process. It <strong>in</strong>cludes a tool cha<strong>in</strong>,<br />
operat<strong>in</strong>g system (OS) kernel, middleware,<br />
applications and board-specific modules. Aga<strong>in</strong>,<br />
BSPs for various i.MX processors are available<br />
from a variety of third-party OS vendors, such<br />
as W<strong>in</strong>d River for its VxWorks OS, QNX for its<br />
Neutr<strong>in</strong>o OS and MontaVista software for<br />
L<strong>in</strong>ux. For the newly released i.MX25 PDK, Future<br />
Electronics exclusively offers Freescale<br />
eCos OS. eCos is a fast, reliable real-time operat<strong>in</strong>g<br />
system that is both extremely configurable<br />
and has a very small memory footpr<strong>in</strong>t.<br />
For users who are migrat<strong>in</strong>g to an i.MX processor<br />
from a less powerful microcontroller, the<br />
decision about platform software is new and<br />
critical. Typically, legacy microcontroller projects<br />
either use a proprietary scheduler, a small<br />
operat<strong>in</strong>g system or no platform software at all.<br />
When migrat<strong>in</strong>g to a high-end processor, it is<br />
tempt<strong>in</strong>g to port the previous scheduler or operat<strong>in</strong>g<br />
system to the i.MX. But there are huge<br />
advantages to the powerful operat<strong>in</strong>g systems<br />
that such a processor can support. L<strong>in</strong>ux, <strong>in</strong><br />
particular, is a very attractive option, as it gives<br />
you access to a huge quantity of free (opensource)<br />
code. By cont<strong>in</strong>u<strong>in</strong>g to use a proprietary<br />
or small OS, you are more or less restricted to<br />
the content of your own libraries. Some established<br />
OS vendors warn developers that there is<br />
a high risk of wast<strong>in</strong>g both time and money <strong>in</strong><br />
us<strong>in</strong>g an unsupported open-source OS such as
Figure 2. Development environment us<strong>in</strong>g the i.MX25 PDK<br />
L<strong>in</strong>ux. They will claim that developers can accelerate<br />
the design cycle and reduce risk by<br />
us<strong>in</strong>g a <strong>com</strong>mercial, out-of-the-box real-time<br />
OS that is fully supported by the vendor.<br />
Nowadays, however, the quality of the embedded<br />
L<strong>in</strong>ux distributions from semiconductor<br />
manufacturers such as Freescale is extremely<br />
good. You can also get almost the same level of<br />
support on L<strong>in</strong>ux as you would expect from any<br />
<strong>com</strong>mercial OS by buy<strong>in</strong>g a distribution from<br />
a L<strong>in</strong>ux vendor such as MontaVista.<br />
So, what can you expect from the PDK once<br />
you have laid your hands on it? The development<br />
kit consists of three boards: a CPU<br />
board, a debug board and a so-named personality<br />
board. The CPU board conta<strong>in</strong>s the i.MX<br />
applications processor, memories and power<br />
management circuitry – a range of CPU boards<br />
are available that carry processors such as the<br />
i.MX25, i.MX27, i.MX31 and i.MX35. The<br />
CPU board can run on its own without the<br />
debug and personality boards. The debug<br />
board enables easy and quick debugg<strong>in</strong>g of<br />
both software and hardware. One debug board<br />
is <strong>com</strong>patible for use with a series of different<br />
CPU boards. The function of the personality<br />
board is to model real products. This means<br />
that it conta<strong>in</strong>s various <strong>in</strong>terfaces and functions<br />
that suit the i.MX variant on the CPU board.<br />
For example, the personality board for the<br />
i.MX25 processor, which is aimed at <strong>in</strong>dustrial<br />
and consumer applications, conta<strong>in</strong>s wireless<br />
(Bluetooth, 802.11) and wired (USB, CAN, Ethernet)<br />
connectivity <strong>in</strong>terfaces, a TFT display, a<br />
camera module, external memory card <strong>in</strong>terfaces,<br />
connectors for headphones, TV-out and<br />
dock<strong>in</strong>g, and a microphone.<br />
Freescale usefully makes the schematics for each<br />
of the boards available free for download from<br />
the <strong>in</strong>ternet. Its board designs are deliberately<br />
made to resemble customer end products, and<br />
so the ability to copy and then ref<strong>in</strong>e the<br />
Freescale schematics can usefully accelerate the<br />
board design process. If you use <strong>com</strong>ponents <strong>in</strong><br />
the end product that are also on one of the PDK<br />
boards, you will know that the software support<strong>in</strong>g<br />
these <strong>com</strong>ponents <strong>in</strong> your end product<br />
will work. This section outl<strong>in</strong>es the development<br />
tools required for an i.MX project, but<br />
there are a number of sources of <strong>in</strong>formation<br />
for more detail on the set-up process for new<br />
projects. The most important documentation<br />
about sett<strong>in</strong>g up the host is the L<strong>in</strong>ux Target<br />
Image Builder (LTIB) manual; this is <strong>in</strong>cluded<br />
<strong>in</strong> the kit and can be downloaded from the<br />
Freescale website. First, then, the basic resources<br />
you will need (figure 2). In hardware<br />
you will need PC, Ethernet cable, serial cable,<br />
i.MX PDK, and JTAG debugger. The software<br />
must conta<strong>in</strong> the latest L<strong>in</strong>ux BSP, which<br />
should be downloaded, s<strong>in</strong>ce the one preloaded<br />
on the kit could be an older version,<br />
VMWare player, available free from VMWare,<br />
and a PC L<strong>in</strong>ux distribution supported by the<br />
kits LTIB. For the sake of illustration, figure 2<br />
shows Ubuntu L<strong>in</strong>ux v8.10. ATK (advanced<br />
tool kit), a program used to flash images to<br />
Freescale development boards via a serial or<br />
USB port, and a serial term<strong>in</strong>al program, to<br />
<strong>com</strong>municate with the boot-loader, should<br />
also be <strong>in</strong>cluded.<br />
First, you will need to <strong>in</strong>stall the required programmes<br />
on the PC. L<strong>in</strong>ux distributions that<br />
support LTIB are downloadable from the <strong>in</strong>ternet<br />
as VMWare images that are configured to run<br />
<strong>in</strong> the VMWare player. Next, <strong>in</strong>stall the LTIB on<br />
the L<strong>in</strong>ux OS. LTIB is used for creat<strong>in</strong>g and build<strong>in</strong>g<br />
L<strong>in</strong>ux target images. LTIB, a free software programme,<br />
is available from, and ma<strong>in</strong>ta<strong>in</strong>ed at,<br />
www.bitshr<strong>in</strong>e.org. Now you will set up the <strong>com</strong>munications<br />
<strong>in</strong>terfaces to the system. At this stage,<br />
you should decide whether to implement an NFS<br />
server. (NFS stands for network file system and is<br />
a client/server system that allows the i.MX PDK<br />
to access files over a network and treat them as locally<br />
stored.) Us<strong>in</strong>g an NFS development configuration<br />
is the right choice for most develop-<br />
25<br />
ment projects, because it means not hav<strong>in</strong>g to<br />
store and edit files on the kit itself. In some realtime<br />
applications, however, tim<strong>in</strong>g could be<br />
skewed by the delay produced when data is transmitted<br />
over Ethernet. The PDK is shipped with<br />
a pre-<strong>in</strong>stalled boot-loader, kernel and file system<br />
as shown <strong>in</strong> figure 2 – this helps save time at the<br />
start of the development process.<br />
In a real end product, the boot-loader will generally<br />
load the kernel from NAND, NOR or<br />
SD/MMC memory at start-up. For debugg<strong>in</strong>g<br />
purposes, the boot-loader also enables the<br />
kernel to be downloaded via the NFS server. For<br />
the same reason, the L<strong>in</strong>ux kernel provides access<br />
to the file system via the NFS server when<br />
you have the file system configured for on target<br />
memory. After experiment<strong>in</strong>g with the<br />
board, it can be helpful to create a fresh, clean<br />
environment on the board: to do this, the BSP<br />
is able to revert to known good configuration<br />
files for the entire BSP or for specific elements<br />
such as the kernel or the boot-loader. These<br />
image files are downloadable to the board<br />
with the ATK or a JTAG debugger. With regard<br />
to JTAG debuggers, it is good practice to connect<br />
the device directly to the board, as this allows<br />
for faster download<strong>in</strong>g and provides better<br />
debug options. ■<br />
��������<br />
�����<br />
� ������ ��� ���� ����<br />
� ����������� ����<br />
� ������������<br />
� �������������<br />
� ���������� ����<br />
� ���� ���� �������������<br />
� ��������<br />
���� ������<br />
����������������<br />
MICROS & DSPS<br />
November 2009
FPGAS,PLDS & ASICS<br />
The drive to lower power opens up<br />
new FPGA applications<br />
By Christian Plante, Actel<br />
■ Field-programmable gate arrays (FPGAs)<br />
are grow<strong>in</strong>g up. As process technology cont<strong>in</strong>ues<br />
to improve, device sizes shr<strong>in</strong>k and designers<br />
pack more onto silicon real estate, FPGAs<br />
have found themselves, <strong>in</strong> recent years, the centre<br />
of attention. Their differentiation <strong>in</strong> terms<br />
of flexibility and time-to-market are f<strong>in</strong>d<strong>in</strong>g<br />
new applications - and responsibilities.<br />
The shift towards portability and power-conscious<br />
electronics has led to the demand for<br />
low-power <strong>com</strong>ponents of every variety, and<br />
that now <strong>in</strong>cludes FPGAs. Today, power is a<br />
more important design consideration than<br />
performance. For some vendors this has meant<br />
offer<strong>in</strong>g <strong>in</strong>crementally lower power devices,<br />
with next-generation devices be<strong>in</strong>g 60 percent<br />
lower power than previous generations. This<br />
trend is tak<strong>in</strong>g root <strong>in</strong> a variety of applications.<br />
In medical devices, where there is a clamour for<br />
portable medical equipment for quick and<br />
easy diagnosis. In displays, which are today<br />
be<strong>in</strong>g <strong>in</strong>corporated <strong>in</strong>to <strong>in</strong>numerable systems.<br />
In <strong>in</strong>dustrial equipment, where motor control<br />
design is seen as a key way to improve the overall<br />
energy efficiency of products and ultimately<br />
the world.<br />
That FPGAs are be<strong>in</strong>g designed <strong>in</strong>to such applications<br />
is new. Designers traditionally relied<br />
on application-specific <strong>in</strong>tegrated circuits<br />
(ASICs), not FPGAs, to meet their low-power<br />
November 2009<br />
Power is often a more important<br />
design consideration<br />
today than performance.<br />
Portable, power-conscious<br />
electronics demands lowpower<br />
<strong>com</strong>ponents of every<br />
k<strong>in</strong>d, a demand <strong>in</strong>creas<strong>in</strong>gly<br />
met by FPGAs. This article<br />
highlights the trend and technology<br />
by examples drawn<br />
from many fields.<br />
constra<strong>in</strong>ts. But hardwired ASICs, with their<br />
longer time-to-market, ris<strong>in</strong>g non-recurr<strong>in</strong>g<br />
eng<strong>in</strong>eer<strong>in</strong>g charges (NREs) and lack of flexibility<br />
to address chang<strong>in</strong>g standards and latestage<br />
design modifications, are riskier and<br />
often impractical for applications with short<br />
product life-cycles or evolv<strong>in</strong>g standards. Similarly,<br />
the <strong>com</strong>plex programmable logic devices<br />
(CPLDs) used <strong>in</strong> some low-power applications<br />
are los<strong>in</strong>g their effectiveness, due to relatively<br />
high costs and the <strong>in</strong>creased demand for highend<br />
features and extra logic. CPLDs do not<br />
offer the level of <strong>in</strong>tegration, flexibility, or<br />
sophistication required for most of today’s<br />
applications. As a result, designers are look<strong>in</strong>g<br />
to FPGAs as <strong>com</strong>petition <strong>in</strong>tensifies and timeto-market<br />
asserts a greater impact on product<br />
success. In fact, designers are f<strong>in</strong>d<strong>in</strong>g that a lowpower,<br />
reprogrammable solution is required to<br />
adapt to evolv<strong>in</strong>g standards, speed time-tomarket,<br />
offer products with multiple personalities<br />
and deliver the footpr<strong>in</strong>t and power -<br />
consumption required for the next cutt<strong>in</strong>g-edge<br />
electronics designs.<br />
Certa<strong>in</strong>ly, not all programmable logic is well<br />
suited to address low-power needs. In fact,<br />
some of today’s “low-power” FPGAs draw upwards<br />
of 30mA, which is often an order of magnitude<br />
or two higher than typical power-sensitive,<br />
battery-operated applications can tolerate.<br />
SRAM-based devices experience well-docu-<br />
26<br />
mented <strong>in</strong>rush and boot-up configuration<br />
power spikes dur<strong>in</strong>g system <strong>in</strong>itialization that<br />
can dra<strong>in</strong> a battery quickly. But s<strong>in</strong>gle-chip,<br />
flash-based devices do not require an external<br />
configuration device (i.e. boot PROM or microcontroller)<br />
to support device programm<strong>in</strong>g<br />
at every power-up cycle. And the live-at-powerup<br />
feature elim<strong>in</strong>ates the need for an external<br />
device to assist <strong>in</strong> system boot-up. Remov<strong>in</strong>g<br />
the additional parts required by SRAM-based<br />
FPGAs not only reduces board space and<br />
system power consumption, but also <strong>in</strong>creases<br />
reliability, simplifies <strong>in</strong>ventory management<br />
and lowers total system costs by as much as 70<br />
percent <strong>com</strong>pared with similar SRAM-based<br />
FPGA solutions.<br />
Once the FPGA is on and configured, power<br />
consumption takes two basic forms - static and<br />
dynamic. Static power consumption is the<br />
current drawn by an FPGA when it is powered<br />
up, configured and do<strong>in</strong>g noth<strong>in</strong>g, while dynamic<br />
power is consumed when devices are actively<br />
work<strong>in</strong>g. Until recently dynamic power<br />
was the dom<strong>in</strong>ant source of power consumption.<br />
Once help<strong>in</strong>g to manage the dynamic<br />
power problem, device supply voltages (Vcc)<br />
had scaled downwards with process shr<strong>in</strong>ks and<br />
subsequent lower system voltages, but the days<br />
of cont<strong>in</strong>ued scal<strong>in</strong>g are <strong>com</strong><strong>in</strong>g to a close.<br />
Compound<strong>in</strong>g the issue, each process node<br />
shr<strong>in</strong>k means additional static power con-
Figure 1. Until recently dynamic power was the dom<strong>in</strong>ant source of power consumption.<br />
sumption for transistor-heavy SRAM-based<br />
FPGAs. This is due to worsen<strong>in</strong>g problems like<br />
quantum tunnell<strong>in</strong>g and sub-threshold leakage,<br />
which create real challenges for devices targeted<br />
to power-conscious applications. And, with<br />
leakage worsen<strong>in</strong>g, static power has begun to<br />
dom<strong>in</strong>ate the power consumption equation as<br />
the biggest concern. So where the SRAM cell<br />
structure <strong>in</strong>curs substantial leakage and requires<br />
power-consum<strong>in</strong>g configuration memory, by<br />
contrast, flash-based cells have no leakage path<br />
and thus have 1,000 times lower leakage per cell<br />
than SRAM.<br />
To address some of these power concerns, several<br />
suppliers of SRAM-based FPGAs claim to<br />
offer s<strong>in</strong>gle-chip, flash-based solutions. These<br />
hybrid solutions are merely <strong>com</strong>b<strong>in</strong>ations of<br />
flash memory <strong>com</strong>ponents with the underly<strong>in</strong>g<br />
SRAM FPGA technology - either <strong>in</strong>tegrated<br />
with the FPGA die <strong>in</strong>to a s<strong>in</strong>gle package or, alternatively,<br />
stacked or placed side-by-side. Unfortunately,<br />
the FPGA array is still volatile and<br />
is subject to the power drawbacks associated<br />
with this type of device. With these solutions,<br />
DISCRETE DEVICES<br />
ANALOGUE ASSPs<br />
SINGLECHIPINVERTER&MOSFETS<br />
CONTROLLER & DRIVER<br />
the embedded flash memory blocks control<br />
only the <strong>in</strong>itial configuration of the devices<br />
dur<strong>in</strong>g power-up. Certa<strong>in</strong>ly, both the silicon<strong>in</strong>-package<br />
(SIP) and the multichip package<br />
(MCP) hybrid approaches over<strong>com</strong>e some of<br />
the limitations of traditional SRAM-based<br />
solutions by provid<strong>in</strong>g a smaller footpr<strong>in</strong>t, a<br />
m<strong>in</strong>or reduction <strong>in</strong> power consumption, and<br />
small advances <strong>in</strong> power-up time and security.<br />
But these are only <strong>in</strong>cremental improvements<br />
over their pure SRAM-based peers.<br />
True non-volatile FPGAs are those that conta<strong>in</strong><br />
a non-volatile FPGA array, reduc<strong>in</strong>g power consumption,<br />
improv<strong>in</strong>g response times, and deliver<strong>in</strong>g<br />
unparalleled reliability and security. Because<br />
true non-volatile flash-based FPGAs do<br />
not use millions of power-hungry SRAM configuration<br />
bit cells, they have significantly<br />
lower static power than SRAM-based solutions,<br />
mak<strong>in</strong>g them ideal for power-sensitive applications.<br />
In fact, the many flavours of flashbased,<br />
low-cost FPGAs <strong>in</strong>clude devices that<br />
have been optimized for power, speed, and I/O,<br />
some of the fundamental design requirements<br />
MICROCONTROLLER<br />
FIELD-ORIENTATED CONTROL<br />
for power- and cost-sensitive design. Portable<br />
medical equipment made big news at the 2008<br />
Beij<strong>in</strong>g Olympics when <strong>com</strong>panies, such as GE,<br />
were test-driv<strong>in</strong>g portable MRIs and other<br />
imag<strong>in</strong>g and diagnostic tools at the Games.<br />
FPGAs play a big part <strong>in</strong> this development,<br />
allow<strong>in</strong>g programm<strong>in</strong>g of various features and<br />
design for differ<strong>in</strong>g geographical standards,<br />
mak<strong>in</strong>g them devices with multiple personalities,<br />
while at the same time keep<strong>in</strong>g power low<br />
as well as the design costs. This trend towards<br />
m<strong>in</strong>iaturization and portability for home,<br />
cl<strong>in</strong>ical, and imag<strong>in</strong>g medical devices presents<br />
a significant opportunity for medical equipment<br />
designers to use FPGAs <strong>in</strong> develop<strong>in</strong>g<br />
efficient and flexible designs.<br />
Medical devices have high-reliability requirements,<br />
demand multi-functionality (<strong>in</strong>tegrated<br />
capabilities), require data logg<strong>in</strong>g and transmission<br />
capabilities - and yet must consume the<br />
lowest amount of power. In the most basic<br />
form, portable medical devices are all batteryoperated,<br />
micro-controlled handheld devices<br />
that take and analyze measurements us<strong>in</strong>g<br />
various biosensors that are used <strong>in</strong> a patient’s<br />
treatment plan. Home-based and consumer<br />
medical devices - digital blood pressure meters,<br />
blood gas meters, and blood glucose meters -<br />
have been traditionally used for test<strong>in</strong>g and<br />
monitor<strong>in</strong>g. Today, medical devices are expected<br />
to do much more than just test and<br />
monitor. Some now log and analyze data and<br />
<strong>com</strong>municate accurate results to the health<br />
provider. Blood pressure meters benefit from a<br />
more extensive data-logg<strong>in</strong>g feature as well as<br />
<strong>com</strong>munication ports for real-time <strong>in</strong>formation<br />
shar<strong>in</strong>g with the health provider. Insul<strong>in</strong> meters<br />
are now equipped with <strong>com</strong>munication ports<br />
(IR/wireless) to transfer real-time measurement<br />
to the PC or to the <strong>in</strong>sul<strong>in</strong> pump to effectively<br />
treat the disease. In figure 2 the functional<br />
blocks represented with shad<strong>in</strong>g represent<br />
some possible functions that can be implemented<br />
<strong>in</strong> FPGA devices. These functions can<br />
either be <strong>in</strong>dividually addressed as needed by<br />
OUR COMPLETE MOTOR CONTROL SOLUTION -<br />
MAKING DEVELOPMENT SIMPLE<br />
• High performance sensorless field oriented motor control<br />
• Cortex-M3 based 32-bit microcontroller with programmable motor control<br />
• Simple motor control by analog BiCD ASSPs<br />
• High-voltage s<strong>in</strong>gle chip <strong>in</strong>verter for PWM driver<br />
• New starter kit available<br />
Discover Toshiba’s Motor <strong>Control</strong> ASSPs for brushed DC, brushless DC or stepper<br />
motor appliances.<br />
Visit us today at www.toshiba-<strong>com</strong>ponents.<strong>com</strong>/motorcontrol<br />
27<br />
FPGAS,PLDS & ASICS<br />
November 2009
FPGAS,PLDS & ASICS<br />
Figure 2. The functional blocks represented with shad<strong>in</strong>g represent some possible functions that<br />
can be implemented <strong>in</strong> FPGA devices.<br />
Figure 3. Careful design considerations <strong>in</strong> manag<strong>in</strong>g power us<strong>in</strong>g FPGAs as a <strong>com</strong>plex LCD<br />
controller, for example, can reduce power consumption.<br />
smaller low-power reprogrammable FPGA devices,<br />
or be <strong>in</strong>tegrated <strong>in</strong>to larger FPGA devices.<br />
These ultra-low-power FPGA families offer gate<br />
capacity from 15k gates up to 3 million gates.<br />
Pressure to reduce healthcare costs is butt<strong>in</strong>g <strong>in</strong>to<br />
the demand for more portable devices, which,<br />
when deployed <strong>in</strong> the home, can save the system<br />
money. But these devices need to be low power,<br />
flexible and cost-effective for wide deployment.<br />
Let us look at another application that is <strong>in</strong>creas<strong>in</strong>gly<br />
lean<strong>in</strong>g on programmable logic to<br />
ensure flexibility and time-to-market speed:<br />
displays. Lower costs and ease of mass manufactur<strong>in</strong>g<br />
have <strong>in</strong>creased LCD panel demand <strong>in</strong><br />
medical markets. When creat<strong>in</strong>g these devices<br />
to meet consumer demands, designers select<br />
LCD panels based on critical factors, such as<br />
size, resolution, reliability, power consumption,<br />
and product lifecycle. As newer displays with<br />
enhanced capabilities and features are cont<strong>in</strong>uously<br />
launched, designers face challenges <strong>in</strong><br />
keep<strong>in</strong>g up with technology by redesign<strong>in</strong>g the<br />
display controller. Redesign<strong>in</strong>g is expensive<br />
November 2009<br />
and can significantly <strong>in</strong>crease time-tomarket;<br />
therefore, designers need solutions<br />
that will enable them to <strong>in</strong>corporate the latest<br />
technology with m<strong>in</strong>imal cost and effort.<br />
In portable devices, LCDs can consume up to<br />
50 percent of the power budget of an application,<br />
escalat<strong>in</strong>g the need for a power-efficient<br />
solution. Power-aware attention to the design<br />
does not rule out the use of FPGAs, which are<br />
often seen as power-<strong>in</strong>efficient choices. Careful<br />
design considerations <strong>in</strong> manag<strong>in</strong>g power us<strong>in</strong>g<br />
FPGAs as a <strong>com</strong>plex LCD controller, for example,<br />
can reduce power. Some FPGAs offer<br />
low-power advantages, down to 5mW while reta<strong>in</strong><strong>in</strong>g<br />
the contents of the system memory and<br />
data registers. As a result, the FPGA approach<br />
can enable both the LCD panel and the controller<br />
to function <strong>in</strong> a power-sav<strong>in</strong>g mode with<br />
the LCD data and backlight disabled, represent<strong>in</strong>g<br />
significant battery sav<strong>in</strong>gs for LCD applications.<br />
The development of smaller and<br />
more powerful motors, along with recent advances<br />
<strong>in</strong> high-energy batteries, has opened new<br />
28<br />
marketstoarangeofmotorizedproducts,from<br />
home appliances and electric vehicles to enterta<strong>in</strong>ment<br />
devices and toys. New designs for AC<br />
and DC motor control must be highly efficient<br />
and consume little power <strong>in</strong> order to provide<br />
longer operation without affect<strong>in</strong>g performance<br />
quality. The need to implement smaller, more<br />
cost-effective motors <strong>in</strong> traditional motor applications<br />
is also <strong>in</strong>fluenc<strong>in</strong>g electronic motor<br />
control techniques for the <strong>in</strong>dustrial sectors. Expensive<br />
<strong>com</strong>puter and power electronics have<br />
been significant obstacles to over<strong>com</strong>e for<br />
motor control applications. Tremendous technology<br />
improvement <strong>in</strong> semiconductor<br />
processes and <strong>in</strong>tegration helps designers face<br />
these challenges, specifically through <strong>in</strong>tegration<br />
that <strong>com</strong>b<strong>in</strong>es analog, flash memory, and<br />
FPGA fabric <strong>in</strong> a monolithic device. For the first<br />
time, eng<strong>in</strong>eers can <strong>com</strong>b<strong>in</strong>e the motor control<br />
analog front-end, high-speed flash look-up<br />
tables and determ<strong>in</strong>istic algorithm process<strong>in</strong>g<br />
capabilities of programmable logic <strong>in</strong>to a<br />
s<strong>in</strong>gle-chip solution.<br />
While the biggest growth segment of electronics<br />
design today is low power, that design imperative<br />
until recently came at a price, which<br />
often <strong>in</strong>cluded design<strong>in</strong>g out performance,<br />
functionality or miss<strong>in</strong>g out on <strong>in</strong>tegration opportunities.<br />
Increas<strong>in</strong>gly, however, those traditional<br />
trade-offs are not so onerous. FPGA vendors<br />
have <strong>in</strong>tegrated microcontroller and microprocessor<br />
cores <strong>in</strong>to their devices. Some of<br />
these approaches feature very low operat<strong>in</strong>g<br />
current and static power, consum<strong>in</strong>g only<br />
24μA <strong>in</strong> static mode and 3μA <strong>in</strong> sleep mode.<br />
The Flash Freeze mode that Actel employs,<br />
which enables easy entry and exit from ultralow-power<br />
modes while reta<strong>in</strong><strong>in</strong>g SRAM and<br />
register data, reduces quiescent current to<br />
20μA. The feature also allows <strong>in</strong>stant on/off cycl<strong>in</strong>g<br />
of the processor core for maximum performance<br />
and m<strong>in</strong>imum power consumption.<br />
This is approximately 200 times less static<br />
power than <strong>com</strong>petitive FPGA offer<strong>in</strong>gs and<br />
delivers more than 10 times the battery life of<br />
the lead<strong>in</strong>g programmable logic devices <strong>in</strong><br />
portable applications.<br />
There is a similar advantage where analog<br />
meets digital. Mixed-signal FPGAs <strong>in</strong>tegrate<br />
programmable logic, RAM, flash and analog<br />
onto a s<strong>in</strong>gle chip, while lower<strong>in</strong>g overall system<br />
power. A flash-based approach to mixed-signal<br />
FPGAs does not require additional configuration<br />
nonvolatile memory <strong>in</strong> order to load the<br />
device configuration data at every system<br />
power-up, which reduces cost and <strong>in</strong>creases security<br />
and system reliability. Increased functionality<br />
can remove several additional <strong>com</strong>ponents<br />
from the board, such as flash memory,<br />
discrete analog ICs, clock sources, EEPROM,<br />
and real-time clocks, thereby reduc<strong>in</strong>g system<br />
cost and board space requirements. ■
■ Power management is be<strong>com</strong><strong>in</strong>g very important<br />
due to multiple factors. For mobile<br />
handheld embedded systems, there is always<br />
pressure to <strong>in</strong>crease battery life and at the same<br />
time offer more features. Battery chemistries are<br />
not improv<strong>in</strong>g at the rate that is needed to fulfil<br />
this requirement, so the pressure is on silicon<br />
vendors to deliver better performance at lower<br />
power. At the same time, to meet the time-tomarket<br />
requirements posed by shr<strong>in</strong>k<strong>in</strong>g design<br />
cycles, there is a need to offer flexible and<br />
programmable devices at lower power.<br />
Moreover, green movements are emphasis<strong>in</strong>g<br />
the need to reduce battery waste, which translates<br />
to embedded systems that require fewer<br />
battery changes. There are also government regulations<br />
(for example: Energy Star) across the<br />
globe to reduce stand-by current <strong>in</strong> appliances.<br />
The next generation of embedded systems is<br />
go<strong>in</strong>g to need extremely low active and sleep<br />
power consumption while simultaneously <strong>in</strong>creas<strong>in</strong>g<br />
the amount of flexibility and programmability<br />
needed to meet time-to-market<br />
requirements.<br />
Apart from lower current consumption, there<br />
is also a need to lower system voltage. A few<br />
years ago, the standard for m<strong>in</strong>imum operat<strong>in</strong>g<br />
voltage was 3.3V. Today, it is 1.8V. Chart<strong>in</strong>g this<br />
trend, it is realistic to extend it <strong>in</strong>to the sub-volt<br />
range for future devices. This opens up the abil-<br />
ity to build SoC-based designs with a s<strong>in</strong>gle AA<br />
or AAA battery (whose end-of-life voltage is<br />
around 0.9V). Although some SoC-based designs<br />
can run at 1.8V today, quite often the analog<br />
performance degrades with such low voltages.<br />
For handheld battery-powered designs<br />
that require good analog performance, systems<br />
that can run at below 1 volt voltage and still<br />
meet the analog performance requirements,<br />
offer the ability to move to a s<strong>in</strong>gle AA or AAA<br />
battery. This translates to lower cost to the<br />
consumer and fewer batteries.<br />
Sub-volt operation can be achieved when the<br />
embedded SoC device has a built-<strong>in</strong> boost converter<br />
able to boost the <strong>in</strong>put voltage (example:<br />
0.9V <strong>in</strong>put voltage) to a higher system level<br />
voltage (example: 3.3V). In this mode, it is important<br />
that the noise from the boost converter<br />
does not affect the performance of analog peripherals.<br />
Figure 1 shows the system level connections<br />
for an <strong>in</strong>tegrated boost converter that<br />
is a part of a PSoC 3 programmable systemon-chip<br />
from Cypress Semiconductor.<br />
Hav<strong>in</strong>g an <strong>in</strong>tegrated boost<br />
converter that can accept<br />
sub-volt <strong>in</strong>put voltages has<br />
the follow<strong>in</strong>g advantages:<br />
ability to run the system<br />
from a s<strong>in</strong>gle AA or AAA<br />
battery, ability to provide a<br />
29<br />
FPGAS,PLDS & ASICS<br />
Flexible power system management<br />
capabilities for embedded systems<br />
By Palani Subbiah, Cypress<br />
This article shows<br />
how programmable logic<br />
devices are well suited to<br />
enable flexible and efficient<br />
power management<br />
functions, especially for<br />
battery-powered embedded<br />
systems.<br />
guaranteed m<strong>in</strong>imum system voltage even<br />
with a vary<strong>in</strong>g supply voltage, and ability to use<br />
the boost output voltage to run other circuitry<br />
<strong>in</strong> the system that needs higher voltage. Example:<br />
LCD glass, sensor circuits, etc. Hav<strong>in</strong>g a<br />
wide supply voltage range that spans from 1.8V<br />
(0.9V with boost enabled) to 5.5V provides<br />
maximum flexibility to the user due to the follow<strong>in</strong>g<br />
reasons: it can span standard battery<br />
voltage ranges for most <strong>com</strong>mon batteries<br />
through their end-of-life voltage as shown <strong>in</strong><br />
table 1, it is <strong>com</strong>patible to legacy system voltages<br />
of 3.3V and 5V, and the upper end of 5.5V provides<br />
marg<strong>in</strong> above 5V for rail-to-rail measurements<br />
of signals from legacy systems.<br />
The wide external supply voltage, while ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g<br />
a stable low core voltage for the silicon<br />
can be ac<strong>com</strong>plished by provid<strong>in</strong>g built-<strong>in</strong><br />
low dropout regulators with<strong>in</strong> the device.<br />
Moreover hav<strong>in</strong>g separate <strong>in</strong>ternal regulators<br />
for digital and analog doma<strong>in</strong>s ensures that<br />
analog performance is not <strong>com</strong>promised due to<br />
noise from the digital power rails. Figure 2<br />
shows the system level connections and <strong>in</strong>ter-<br />
Battery type Start of life voltage End of life voltage<br />
S<strong>in</strong>gle AA/AAA 1.5V 0.9V<br />
Dual AA/AAA 3.0V 1.8V<br />
CR2032 Co<strong>in</strong> Cell 3.0V 2.0V<br />
Table 1. Standard battery voltage ranges for most <strong>com</strong>mon batteries<br />
November 2009
FPGAS,PLDS & ASICS<br />
Figure 1: System level connections for boost<strong>in</strong>g an external low voltage<br />
to a higher <strong>in</strong>ternal voltage<br />
Figure 3. Independent power supply voltages for each I/O bank provides seamless <strong>in</strong>terfac<strong>in</strong>g to<br />
devices that might operate at different voltages.<br />
nal regulators that ac<strong>com</strong>modate a wide supply<br />
voltage range. In figure 2, Vddd and Vdda can<br />
vary from 1.71V to 5.5V while the built-<strong>in</strong><br />
analog and digital regulator ensures that the<br />
core still runs at a stable low voltage. When<br />
properly designed, this system also ensures the<br />
same analog performance across the entire<br />
supply voltage range.<br />
To allow <strong>in</strong>terfac<strong>in</strong>g to other devices <strong>in</strong> the system<br />
that might have different system voltages,<br />
an SoC needs to have separate I/O power rails<br />
that can be <strong>in</strong>dependently set to any voltage<br />
with<strong>in</strong> a wide voltage range. An SoC that has 4<br />
I/O banks, with each I/O bank able to be driven<br />
with any voltage from 1.8V to 5V, provides<br />
seamless <strong>in</strong>terfac<strong>in</strong>g to other devices on the<br />
PCB as shown <strong>in</strong> figure 3. While there cont<strong>in</strong>ues<br />
to be a myth that programmable systems<br />
are power hungry, well-thought-out programmable<br />
SoCs can have world class power numbers<br />
that match stand-alone MCUs. Keep<strong>in</strong>g the<br />
end customer application <strong>in</strong> m<strong>in</strong>d, the power<br />
modes that are desirable. Active mode as shown<br />
<strong>in</strong> table 1 is the normal operation mode of the<br />
system when it is used actively by the user. A<br />
programmable SoC will allow the capability to<br />
selectively disable unwanted peripherals <strong>in</strong> this<br />
mode. In alternate active mode, a selected<br />
fewer number of peripherals are active. This<br />
providesareducedpoweractivemodethatcan<br />
be entered from the regular active mode. Upon<br />
exit from this mode, the system returns to regular<br />
active mode. An example use case for this<br />
is a situation where an embedded system with<br />
a display cont<strong>in</strong>ues to operate while the display<br />
alone is turned off. When the display needs to<br />
be turned off, the system will enter alternate active,<br />
where the peripherals needed for the display<br />
are turned off.<br />
Sleepisa<strong>com</strong>monlyusedmode<strong>in</strong>batterypowered<br />
embedded systems. This is an extremely<br />
low power mode, where all peripherals<br />
November 2009 30<br />
Figure 2. System level connections for <strong>in</strong>ternal regulators<br />
are <strong>in</strong> low power state, while a real-time clock<br />
can be ma<strong>in</strong>ta<strong>in</strong>ed. This mode is also used for<br />
systems that need to be duty cycled between<br />
active and sleep constantly. An example use case<br />
is a temperature sensor that needs to update its<br />
read<strong>in</strong>g every m<strong>in</strong>ute. The system wakes up<br />
every m<strong>in</strong>ute, takes the read<strong>in</strong>g and goes back<br />
to sleep. This results <strong>in</strong> reduced average power.<br />
Hibernate is the lowest power consumption<br />
mode of the device while memory contents and<br />
configuration can still be ma<strong>in</strong>ta<strong>in</strong>ed. The<br />
ability to wake-up from an I/O source provides<br />
the ability for the user or another device <strong>in</strong> the<br />
system to wake the device up. Hibernate mode<br />
can also be used to elim<strong>in</strong>ate a power switch <strong>in</strong><br />
a handheld device (s<strong>in</strong>ce the device can wakeup<br />
on any button press).<br />
A programmable SoC (PSoC) offer high levels<br />
of <strong>in</strong>tegration and at the same time provides the<br />
user the ability to build their own custom<br />
peripherals us<strong>in</strong>g a highly configurable and<br />
programmable system. Carefully designed programmable<br />
SoCs can offer world-class power<br />
management features that not only meet MCU<br />
power numbers but also offer a configurable<br />
power management system that can also deliver<br />
precise analog performance. Cypress Semiconductor<br />
PSoC 3 and PSoC 5 families are<br />
field-programmable embedded SoCs that have<br />
programmable digital blocks and configurable<br />
analog blocks. These devices are designed to<br />
offer utmost flexibility and programmability to<br />
the user while consum<strong>in</strong>g very low sleep and<br />
active current. It also offers precise analog<br />
performance (16-bit to 20-bit precision). PSoC<br />
Creator is an <strong>in</strong>tegrated development environment<br />
software that can be used to rapidly<br />
develop designs for the PSoC 3 and PSoC 5<br />
families from end to end – all the way from<br />
device selection, configur<strong>in</strong>g/programm<strong>in</strong>g the<br />
digital and analog peripherals, configur<strong>in</strong>g the<br />
power system, firmware development, to debug<br />
and programm<strong>in</strong>g. ■
Low-power FPGA solutions for<br />
■ One of the most important benefits of the<br />
digital era is that all <strong>com</strong>munication media (e.g.<br />
text, images, audio, video and animation) can<br />
be represented <strong>in</strong> a format that is easily handled<br />
by a microprocessor or digital logic. This<br />
makes it possible to create multi-mediaenabled<br />
devices that allow users to easily view<br />
and <strong>in</strong>teract with the application and related<br />
digital media - anywhere and anytime. From<br />
multi-function phones to automotive consoles<br />
or even <strong>in</strong>ternet-enabled fridges, users are acquir<strong>in</strong>g<br />
the taste for be<strong>in</strong>g able to rapidly access<br />
<strong>in</strong>formation and easily control their applications<br />
through a multifunction graphical display.<br />
As the cost of displays is constantly fall<strong>in</strong>g and<br />
customers clearly have a strong preference for<br />
graphical user <strong>in</strong>terfaces, an <strong>in</strong>creas<strong>in</strong>gly wide<br />
range of applications are be<strong>in</strong>g driven to add a<br />
graphics capability to their feature set. This<br />
means that the market base for graphically driven<br />
products is spread<strong>in</strong>g quickly and that there<br />
is grow<strong>in</strong>g demand for many different display<br />
form factors and features (e.g. display resolutions,<br />
<strong>in</strong>put device support and <strong>in</strong>terface standards).<br />
As there is great pressure on product<br />
manufacturers to stay ahead of the <strong>com</strong>petition<br />
by improv<strong>in</strong>g the graphical quality, display<br />
manufacturers are highly motivated to reduce<br />
costs and develop better displays as quickly as<br />
possible. However, the downside of this is a relatively<br />
short lifetime for display <strong>com</strong>ponents.<br />
Traditionally, most microcontroller families<br />
conta<strong>in</strong> only a small number of members<br />
(often only one or two) that can drive a graphics<br />
LCD. This severely limits the choice of<br />
processor device feature set available to the designer<br />
and usually results <strong>in</strong> the design-<strong>in</strong> of a<br />
particular device that is matched only to the<br />
current design specification. This limits the capabilities<br />
of the processor, graphics features and<br />
display support. Two or three years after the release<br />
of a product it is likely that the graphics<br />
display be<strong>in</strong>g used will be<strong>com</strong>e obsolete, the<br />
market will require a higher resolution/colour<br />
depth display and the microcontroller chosen<br />
orig<strong>in</strong>ally will not be able to support the new<br />
display requirement or additional features. As<br />
the choice of graphics-enabled devices is limited,<br />
upgrad<strong>in</strong>g the graphics capabilities usually<br />
<strong>in</strong>volves choos<strong>in</strong>g a device that is based on<br />
different processor architecture. This means<br />
that the software has to be ported to the new<br />
processor and on a graphics or multimediaenabled<br />
device this is usually the largest part of<br />
the work required.<br />
The advent of low-cost and low-power FPGAs<br />
has made it practical to create products that can<br />
deliver an order of magnitude <strong>in</strong>crease <strong>in</strong> flexibility<br />
through the use of programmable logic.<br />
Be<strong>in</strong>g able to change the hardware enables users<br />
to upgrade their products, even after purchase,<br />
but more importantly developers can<br />
FPGAS,PLDS & ASICS<br />
graphics applications featur<strong>in</strong>g LCDs<br />
By Stefano Zammattio, Altera<br />
FPGAs can do more than just<br />
provide a flexible <strong>in</strong>terface for<br />
the display and touchscreen,<br />
they can support a <strong>com</strong>plete<br />
graphics/video system<br />
<strong>com</strong>pletely elim<strong>in</strong>at<strong>in</strong>g the<br />
requirement for a<br />
graphics capability <strong>in</strong> the<br />
external processor.<br />
Figure 1. A high performance FPGA-based embedded system<br />
with graphics accelerator and video support<br />
create their next-generation products without<br />
re-sp<strong>in</strong>n<strong>in</strong>g the circuit boards, or spawn<br />
multiple products from a s<strong>in</strong>gle design. This is<br />
particularly beneficial for products that use<br />
LCDs or similar types of displays. Support for<br />
any type of LCD <strong>in</strong>terface and related <strong>in</strong>put<br />
device can be easily ac<strong>com</strong>plished by modify<strong>in</strong>g<br />
the LCD and <strong>in</strong>put controller <strong>in</strong>terfaces that are<br />
implemented <strong>in</strong> the FPGA logic.<br />
However, the FPGA can do much more than<br />
just provide a flexible <strong>in</strong>terface for the display<br />
and touchscreen, it can support a <strong>com</strong>plete<br />
graphics/video system <strong>com</strong>pletely elim<strong>in</strong>at<strong>in</strong>g<br />
the requirement for a graphics capability <strong>in</strong> the<br />
external processor. This allows the designer to<br />
use any external processor from the whole family<br />
range. In fact, the <strong>com</strong>plete system can operate<br />
us<strong>in</strong>g processors implemented entirely <strong>in</strong><br />
the FPGA logic (e.g. Altera Nios II processor).<br />
Figure 1 shows a full-featured FPGA-based<br />
graphics system that can be used as part of an<br />
automotive or home multimedia centre. The<br />
parallel process<strong>in</strong>g capability of the FPGA<br />
logic makes it easy to implement video and<br />
graphics process<strong>in</strong>g without requir<strong>in</strong>g a heavyduty<br />
processor or high clock speeds. Special<br />
graphics process<strong>in</strong>g features can be implemented<br />
<strong>in</strong>to the LCD controller or <strong>in</strong>to a<br />
graphics accelerator to deliver a whole range of<br />
sophisticated graphical capabilities. IP modules<br />
for graphical acceleration and video process<strong>in</strong>g<br />
31 November 2009
FPGAS,PLDS & ASICS<br />
Figure 2. Examples of effects that benefit<br />
greatly from hardware acceleration <strong>in</strong>clude<br />
alpha blend<strong>in</strong>g and anti-alias<strong>in</strong>g..<br />
are available <strong>com</strong>mercially and can usually be<br />
tailored to suit any application, but the important<br />
th<strong>in</strong>g is that this IP is delivered <strong>in</strong> a format<br />
that allows the use of the Altera system-level<br />
design tool, SOPC builder, a quick and easy way<br />
to create or modify system designs. Examples of<br />
effects that benefit greatly from hardware acceleration<br />
<strong>in</strong>clude alpha blend<strong>in</strong>g, anti-alias<strong>in</strong>g,<br />
draw<strong>in</strong>g and fill<strong>in</strong>g of geometrical shapes, scal<strong>in</strong>g<br />
and colour conversion of graphical elements<br />
and support for scaled fonts (figure 2). TES is<br />
a <strong>com</strong>pany that supplies a range of graphics<br />
hardware acceleration IP solutions, they even<br />
offer a full-blown 3D graphics eng<strong>in</strong>e that can<br />
render 2-3 million triangles per second.<br />
Feature Logic Elements<br />
(LEs)<br />
Basic LCD controller 2 - 3 KLE<br />
Multi-layer controller 4 - 5 KLE<br />
with Alpha<br />
Video Input with basic 2 - 3 KLE<br />
process<strong>in</strong>g<br />
Hardware accelerator for 6 - 8 KLE<br />
basic 2D functions<br />
Full-featured 2D hardware 11 – 13 KLE<br />
accelerator<br />
Flash player 14 – 16 KLE<br />
(Imagem Technologies)<br />
3D graphics accelerator ~75 KLE<br />
(TES)<br />
Table 1. Example logic element requirements<br />
for hardware support of graphics<br />
Another advantage of an FPGA-based system is<br />
the ability to easily add new and novel features<br />
required by an application, for example all the<br />
effects listed already can be added to a basic<br />
graphics eng<strong>in</strong>e. Additionally, features that<br />
would be difficult or nearly impossible us<strong>in</strong>g a<br />
standard microcontroller can be easily added.<br />
For example, multiple channels of stream<strong>in</strong>g<br />
video, picture <strong>in</strong> picture capability, multiple<br />
display support, image enhancement, object<br />
recognition, motion track<strong>in</strong>g, camera distortion<br />
correction, noise filter<strong>in</strong>g, and even support for<br />
play<strong>in</strong>g flash animation files. All these features<br />
have been implemented on Altera FPGAs and<br />
descriptions of them can be found on Altera or<br />
partner websites. Table 1 lists some example<br />
graphics IP <strong>com</strong>ponents and the amount of<br />
Cyclone III FPGA logic resource required to<br />
implement each <strong>in</strong>dividual feature. A m<strong>in</strong>imal<br />
basic graphics system will fit <strong>in</strong>to a Cyclone III<br />
3C5 device (the smallest device <strong>in</strong> the family)<br />
whereas a high performance system similar to<br />
that shown <strong>in</strong> figure 1 will require a 3C16 device<br />
or larger. Memory and DSP requirements<br />
for a simple display are m<strong>in</strong>imal but they do<br />
<strong>in</strong>crease as hardware-accelerated features are<br />
added. Fortunately the ratio of DSP and<br />
memory to logic <strong>in</strong> the Cyclone III family is<br />
well-suitedtothesetypesofapplicationssothat<br />
the amount of available on-chip memory and<br />
DSP resources is usually not a problem.<br />
A HDL graphical reference design that supports<br />
multilayered imag<strong>in</strong>g and video (with multiple<br />
layers and video <strong>in</strong>put similar to that shown <strong>in</strong><br />
figure 1) can be downloaded from the Altera<br />
website and easily implemented on any board<br />
that carries a graphical LCD display. However<br />
if a slightly easier path to FPGA-based graphical<br />
eng<strong>in</strong>e design is needed, ready-made reference<br />
designs with the embedded evaluation and<br />
embedded system development kits (figure 3)<br />
are provided. These reference designs have<br />
been built for fast implementation, easy modification,<br />
and m<strong>in</strong>imal support. The graphics/video<br />
pipel<strong>in</strong>e has been broken down <strong>in</strong>to<br />
logical segments and each implemented as a relatively<br />
simple SOPC builder IP <strong>com</strong>ponent.<br />
This makes it very easy to customise the system<br />
by re-configur<strong>in</strong>g the <strong>com</strong>ponents, modify<strong>in</strong>g<br />
<strong>com</strong>ponent HDL, replac<strong>in</strong>g a <strong>com</strong>ponent with<br />
a different one or add<strong>in</strong>g new <strong>com</strong>ponents like<br />
a graphics acceleration eng<strong>in</strong>e or video<br />
process<strong>in</strong>g block. In order to support a different<br />
display, changes to the LCD <strong>in</strong>terface are<br />
usually required; for example, the width of the<br />
data bus <strong>in</strong>terface, the screen aspect ratio, the<br />
November 2009 32<br />
Figure 3. The Nios II embedded evaluation kit (left) and embedded system development kit -<br />
Cyclone III edition<br />
tim<strong>in</strong>g signals for <strong>in</strong>dicat<strong>in</strong>g the end of a horizontal<br />
l<strong>in</strong>e, or the time taken to restart the l<strong>in</strong>e<br />
draw<strong>in</strong>g at the top of the screen may all need<br />
modification. This is easily achieved by chang<strong>in</strong>g<br />
the parameters of the video synch generator<br />
IP <strong>com</strong>ponent configuration w<strong>in</strong>dow. This<br />
figure also shows the SOPC system design for<br />
the graphics pipel<strong>in</strong>e used <strong>in</strong> these reference designs<br />
– edit<strong>in</strong>g this system just requires a few<br />
simple clicks of the mouse to re-configure, add,<br />
or remove IP <strong>com</strong>ponents. Most (if not all) of<br />
the graphics IP providers deliver their IP as<br />
SOPC builder <strong>com</strong>ponents to take advantage of<br />
the rapid development and ease of implementation<br />
delivered by SOPC builder.<br />
In figure 1 there are two types of connections –<br />
memory-mapped (where there is an address<br />
and a data bus) and stream<strong>in</strong>g (where there is<br />
a po<strong>in</strong>t-to-po<strong>in</strong>t connection between <strong>com</strong>ponents).<br />
Memory-mapped connections are wellsuited<br />
to random access and multiple connections<br />
between a master and several slaves.<br />
Stream<strong>in</strong>g connections are perfect for highspeed<br />
connections between hardware blocks<br />
that make up a process<strong>in</strong>g pipel<strong>in</strong>e. Fortunately<br />
the SOPC builder tool supports both types of<br />
connections and offers a range of adaptor<br />
<strong>com</strong>ponents that enables a mix of different<br />
types of <strong>com</strong>ponent and connections to be easily<br />
used. This <strong>in</strong>cludes adaptors that change the<br />
width and format of the stream<strong>in</strong>g connection<br />
to optimise the performance of the pipel<strong>in</strong>e.<br />
Stream<strong>in</strong>g is particularly well suited to video<br />
support and Altera offers an SOPC builder<br />
<strong>com</strong>patible video IP suite to support video<br />
<strong>in</strong>put, clipp<strong>in</strong>g, scal<strong>in</strong>g and conversion so that<br />
video can be easily displayed as a background,<br />
picture <strong>in</strong> picture, or full-screen display.<br />
F<strong>in</strong>ally, for many applications design<strong>in</strong>g the<br />
graphical <strong>in</strong>terface software is what can actually<br />
consume most of the development time/resource;<br />
fortunately this can be alleviated by the<br />
use of an appropriate graphical application developmenttoolset.ManyRTOSvendorsmarket<br />
graphical libraries to facilitate software development<br />
for graphics, but some tools go much<br />
further than this. They can facilitate the transfer<br />
of graphics from professional graphical tools
to the embedded platform, mak<strong>in</strong>g it easier to<br />
<strong>in</strong>tegrate and modify high quality images and<br />
animations. They may also provide a PCbased<br />
display emulator, so that the GUI can be<br />
thoroughly tested and reviewed before even<br />
go<strong>in</strong>g near the embedded platform. Once the<br />
design is f<strong>in</strong>al, an automated code generator<br />
createsalltheCcoderequiredtodrivethesys-<br />
■ The number of FPGA designs that use embedded<br />
microprocessors cont<strong>in</strong>ues to grow. Accord<strong>in</strong>g<br />
to Dataquest, there are approximately<br />
100,000 FPGA design starts a year, of which<br />
some 30% <strong>in</strong>clude a microprocessor of some<br />
k<strong>in</strong>d. There are several reasons for this trend.<br />
First, data flow applications are more suitable<br />
for programmable hardware, while an embedded<br />
microprocessor is better suited to implement<br />
control flow-based applications. Second,<br />
an embedded processor provides more flexibility<br />
when mak<strong>in</strong>g design changes. F<strong>in</strong>ally,<br />
us<strong>in</strong>g an embedded microprocessor as a soft<br />
core elim<strong>in</strong>ates the risk of processor obsolescence.<br />
Traditionally there have been limitations<br />
associated with embedded FPGA microprocessors,<br />
<strong>in</strong>clud<strong>in</strong>g cost as well as the speed<br />
and performance of the design. With advances<br />
<strong>in</strong> process technology and design techniques<br />
these limitations are be<strong>in</strong>g over<strong>com</strong>e and designers<br />
are now more likely to consider the use<br />
of an embedded FPGA microprocessor <strong>in</strong> their<br />
applications. Historically, off-the-shelf micro-<br />
tem and manage the graphics. This auto-generated<br />
code targets the API of the hardware<br />
graphics eng<strong>in</strong>e so that any hardware optimisations<br />
or changes do not require any application<br />
software changes. The use of graphics resource<br />
databases created by the tools and automated<br />
code generation makes it very easy to<br />
change the GUI functionality and appearance<br />
processors have been significantly less expensive<br />
than their embedded counterparts; however,<br />
nowadays low-cost FPGAs are prov<strong>in</strong>g to be a<br />
cost-effective solution. If a design already uses<br />
an FPGA, the processor can be <strong>in</strong>tegrated <strong>in</strong>to<br />
the fabric of the exist<strong>in</strong>g FPGA, sav<strong>in</strong>g the cost<br />
of a discrete device or a new FPGA. Design<br />
cycle time is also an important criterion. How<br />
quickly can the hardware associated with the<br />
microprocessor sub-system be architected and<br />
implemented? How long will it take to write,<br />
test and debug the code that runs on the microprocessor?<br />
Over the last few years, development<br />
software for embedded microprocessors<br />
has improved greatly <strong>in</strong> its overall functionality<br />
and ease of use. As a result, a design can now<br />
be runn<strong>in</strong>g and tested <strong>in</strong> a matter of m<strong>in</strong>utes.<br />
Time-to-market is reduced because it is much<br />
quicker and simpler to implement functionality<br />
<strong>in</strong> software than <strong>in</strong> hardware. Performance<br />
has historically been better us<strong>in</strong>g off-the-shelf<br />
microprocessors. With improved technology,<br />
however, FPGAs have advanced significantly <strong>in</strong><br />
FPGAS,PLDS & ASICS<br />
(e.g. through the use of sk<strong>in</strong>s). Clearly the flexibility<br />
of low-cost FPGAs like Altera Cyclone III<br />
has a lot to offer the developer who wants to<br />
add a scalable, flexible, and long-lifetime graphics<br />
feature to their product. So next time you<br />
watch the tear-down of a product that <strong>in</strong>cludes<br />
a graphical display, do not be surprised if an<br />
FPGA is found at the heart of the system! ■<br />
Highly configurable embedded 32-bit<br />
RISC processor for FPGA applications<br />
By Alexander Hahn, Lattice<br />
Off-the-shelf microprocessors<br />
have traditionally given better<br />
performance, but with<br />
improved technology FPGAs<br />
have be<strong>com</strong>e <strong>in</strong>creas<strong>in</strong>gly<br />
<strong>com</strong>petitive and embedded<br />
processors are now attractive<br />
<strong>in</strong> many designs. This article<br />
demonstrates their advantages<br />
by exam<strong>in</strong><strong>in</strong>g the<br />
LatticeMico32.<br />
A typical embedded RISC<br />
processor sub-system<br />
their feature sets and <strong>in</strong> overall system speeds.<br />
With FPGAs now able to handle greater bandwidth,<br />
embedded processors have be<strong>com</strong>e attractive<br />
choices for many designs. Furthermore,<br />
due to close <strong>in</strong>teraction with other dedicated<br />
blocks of the FPGA and the extensibility of a<br />
soft IP core to provide a system <strong>in</strong>terface, an onchip<br />
processor can now provide a superior design<br />
solution <strong>in</strong> terms of both performance and<br />
throughput. The advantages of us<strong>in</strong>g an embedded<br />
soft processor be<strong>com</strong>e clear when exam<strong>in</strong><strong>in</strong>g<br />
a specific processor such as the LatticeMico32.<br />
Let us look at a typical embedded<br />
processor sub-system, for example the LatticeMico32<br />
soft processor. The processor needs<br />
some capabilities to <strong>com</strong>municate with the outside<br />
world; therefore the core is typically connected<br />
to an on-chip bus system, <strong>in</strong> this case a<br />
Wishbone open source bus. Then there is the<br />
need for a memory system, which holds the<br />
program code of the processor, as well as the<br />
data used by the processor core. For external<br />
<strong>com</strong>munications there may be a variety of<br />
33 November 2009
FPGAS,PLDS & ASICS<br />
Figure 2. LatticeMico32 – a configurable<br />
RISC processor core<br />
<strong>in</strong>terfaces <strong>in</strong> a typical system, rang<strong>in</strong>g from simple<br />
<strong>com</strong>munications <strong>in</strong>terfaces and connections<br />
to more <strong>com</strong>plex protocols up to dedicated<br />
hardware blocks <strong>in</strong> the application. The processor<br />
bus architecture now needs to allow connections<br />
both to peripherals and the memory<br />
system. A typical system is illustrated <strong>in</strong> figure 1.<br />
Let us look at the processor core itself. The LatticeMico32<br />
is a RISC architecture microprocessor<br />
based on Harvard-style bus organization<br />
(figure 2). The RISC architecture provides<br />
a simpler <strong>in</strong>struction set and faster performance.<br />
The Harvard style bus architecture<br />
provides separate <strong>in</strong>struction and data buses,<br />
which enable s<strong>in</strong>gle-cycle <strong>in</strong>struction execution.<br />
The processor provides 32 general-purpose registers<br />
and can handle up to 32 external <strong>in</strong>ter-<br />
Figure 3. Arbitration schemes<br />
Figure 4: Creat<strong>in</strong>g a custom peripheral <strong>com</strong>ponent<br />
rupts. Customization of the processor allows <strong>in</strong>sertion<br />
of multiplier or barrel shifter as well as<br />
different debug functionality. The Mico32 can<br />
be targeted for various memory systems, us<strong>in</strong>g<br />
<strong>in</strong>l<strong>in</strong>e memories both for <strong>in</strong>struction and data.<br />
Inl<strong>in</strong>e memories can build up a native Harvard<br />
architecture and allow s<strong>in</strong>gle-cycle access to <strong>in</strong>structions<br />
and data. For larger memory requirements,<br />
the processor connects via an arbiter<br />
to other memory modules or <strong>in</strong>terfaces.<br />
This can be based on on-chip memories implemented<br />
<strong>in</strong> the memory resources of the<br />
FPGA, or <strong>in</strong>terfaces to external memories such<br />
as SSRAM, flash or DRAM. Appropriate <strong>in</strong>terface<br />
modules handl<strong>in</strong>g all the access protocol to<br />
the external memories are provided by the<br />
MSB. Optional <strong>in</strong>struction and data caches are<br />
available and can be configured with various<br />
options (cache size, cache l<strong>in</strong>e size etc).<br />
The processor connects to a wide variety of peripheral<br />
<strong>com</strong>ponents via an open source Wishbone<br />
bus <strong>in</strong>terface. A graphical user <strong>in</strong>terface allows<br />
easy and fast creation of processor platforms<br />
for fast turnaround cycles. Besides standard<br />
memory controllers this may <strong>in</strong>clude <strong>in</strong>terfaces<br />
not only for I²C, general purpose IOs,<br />
timer, UART and SPI, but also more <strong>com</strong>plex<br />
modules such as a PCI <strong>in</strong>terface or a TriSpeed<br />
Ethernet MAC. A direct memory access (DMA)<br />
November 2009 34<br />
controller is available to add separate masters to<br />
the Wishbone bus and unload the processor<br />
from data transfer activities. This also allows<br />
DMA-capable peripherals to efficiently transfer<br />
their data directly <strong>in</strong>to the memory system,<br />
sav<strong>in</strong>g bandwidth on the on-chip bus.<br />
In addition to the peripheral <strong>com</strong>ponents and<br />
DMA, the user can customize the arbitration<br />
scheme. The bus structure generator supports<br />
both master side and slave side bus arbitration.<br />
Master side bus arbitration, if it can meet system<br />
performance requirements, provides a<br />
simple low cost solution. If there are multiple<br />
bus masters and multiple slave blocks <strong>in</strong> a design,<br />
master side bus arbitration restricts <strong>com</strong>munication<br />
to a s<strong>in</strong>gle bus master at any one<br />
time. In many designs, slave side arbitration improves<br />
performance by allow<strong>in</strong>g two or more<br />
bus masters to <strong>com</strong>municate with separate slave<br />
devices simultaneously. Figure 3 shows the<br />
available arbitration schemes.<br />
Users can also create their own Wishbone busbased<br />
peripheral <strong>com</strong>ponents, which then automatically<br />
connect to the bus architecture via<br />
their <strong>in</strong>tegration <strong>in</strong>to the MSB. As a result, the<br />
LatticeMico32 architecture provides two possibilities.<br />
Firstly, one can create a custom <strong>com</strong>ponent<br />
and attach this to the list of available<br />
<strong>com</strong>ponents <strong>in</strong> the MSB (figure 4). Secondly,<br />
one can create so-called Passthru <strong>com</strong>ponents,<br />
which can export a Wishbone-based peripheral<br />
<strong>in</strong>terface to the outside core, so the user can<br />
add any arbitrary logic block from other parts<br />
of the FPGA. These configuration options enable<br />
customization of the LatticeMico32 for different<br />
applications. The bandwidth ranges<br />
from small and area-optimized controllers<br />
with on- or off-chip memories to fully featured<br />
platforms with multiple <strong>in</strong>terfaces and access to<br />
larger memory address ranges (possibly offchip).<br />
Hav<strong>in</strong>g access to other logic modules<br />
from the FPGA also allows close <strong>in</strong>teraction between<br />
the processor system and the dedicated<br />
modules of the FPGA for further performance<br />
improvements. Traditional <strong>com</strong>plex access<br />
mechanisms us<strong>in</strong>g external controllers <strong>in</strong> parallel<br />
to the FPGA are elim<strong>in</strong>ated.<br />
Because the processor code is readable Verilog<br />
RTL code, the user can easily identify function<br />
blocks of the IP, such as <strong>in</strong>struction fetch unit,<br />
<strong>in</strong>struction decode or the ALU and the various<br />
pipel<strong>in</strong>e stages. Therefore those can also be<br />
modified and enhanced by custom <strong>in</strong>structions.<br />
A user can also implement opcode. The LatticeMico32<br />
therefore provides a spare opcode<br />
field <strong>in</strong> the <strong>in</strong>struction word. A custom <strong>in</strong>struction<br />
can be created follow<strong>in</strong>g some basic<br />
steps: Enhance Instruction decoder. This is a<br />
simple case function that extracts an <strong>in</strong>ternal<br />
opcode and generates all the necessary control<br />
signals required to <strong>in</strong>tegrate this <strong>com</strong>mand <strong>in</strong>to
the LatticeMico32. Write functional implementation<br />
and <strong>in</strong>tegrate this <strong>in</strong>to the LatticeMico32<br />
ALU. In case of multi-cycle <strong>com</strong>mands,<br />
create the necessary stall signals to<br />
properly handle the processor pipel<strong>in</strong>e. If other<br />
dedicated logic is required (such as additional<br />
special purpose registers), this can be added<br />
separately to the core.<br />
Extend<strong>in</strong>g the processor core by custom <strong>in</strong>structions<br />
and add<strong>in</strong>g custom peripherals is a<br />
very powerful way to tailor the processor core<br />
towards the performance requirements of the<br />
system. Often, some dedicated functionality can<br />
be implemented better <strong>in</strong> hardware than <strong>in</strong><br />
software. Or parallelism can ga<strong>in</strong> additional<br />
performance. Such mechanisms allow a seamless<br />
<strong>in</strong>tegration of those hardware acceleration<br />
modules <strong>in</strong>to the processor architecture. This<br />
ma<strong>in</strong>ta<strong>in</strong>s the capability to handle access to<br />
these parts <strong>in</strong> the same fashion as normal software<br />
code or the use of standard peripherals.<br />
For applications requir<strong>in</strong>g data/signal process<strong>in</strong>g<br />
capabilities, often a <strong>com</strong>b<strong>in</strong>ation of RISC<br />
processor functionality and DSP is required to<br />
achieve system performance and throughput.<br />
Add<strong>in</strong>g extensions and custom <strong>com</strong>ponents can<br />
also <strong>in</strong>clude signal process<strong>in</strong>g units. These can<br />
be implemented very efficiently <strong>in</strong> hardware,<br />
us<strong>in</strong>g dedicated DSP build<strong>in</strong>g blocks such as<br />
multiply/accumulate, which are available <strong>in</strong><br />
hardware on a variety of FPGAs.<br />
The LatticeMico32 System <strong>in</strong>cludes three <strong>in</strong>tegrated<br />
tools. The MicoSystem Builder (MSB)<br />
generates platform descriptions and the associated<br />
hardware description language (HDL)<br />
code for hardware implementation. Designers<br />
can choose which peripheral <strong>com</strong>ponents to attach<br />
to the microprocessor, as well as specify the<br />
connectivity between them. The C/C++ software<br />
project environment (SPE) calls a <strong>com</strong>piler,<br />
assembler and l<strong>in</strong>ker and enables the development<br />
of code targeted to run on platforms<br />
created with the MSB. It is through the C/C++<br />
SPE that platforms created <strong>in</strong> MSB can be ref-<br />
Configuration Family LUTs EBRs Frequency<br />
vides the ability to debug <strong>in</strong> assembly and watch<br />
the processor registers and memory. Designers<br />
can also observe and control the execution of<br />
the code <strong>in</strong> the physical hardware us<strong>in</strong>g the<br />
Reveal logic analyzer. All tools and IP are fully<br />
<strong>in</strong>tegrated <strong>in</strong>to the ispLEVER FPGA software<br />
design environment, which allows rapid design<br />
creation through the entire FPGA design flow.<br />
The tools also facilitate efficient use of available<br />
FPGA resources. Dur<strong>in</strong>g the build process, the<br />
processor code and its peripherals are created <strong>in</strong><br />
fully readable RTL Verilog source code. Scripts<br />
for synthesis and simulation are provided, and<br />
constra<strong>in</strong>t files take care of the hardware sett<strong>in</strong>gs<br />
and p<strong>in</strong>-out. There are currently three operat<strong>in</strong>g<br />
systems available: uCl<strong>in</strong>ux and U-Boot<br />
from Theobroma Systems, μC/OS-II RTOS<br />
from Micriμm and μITRON RTOS from Toppers/JSP.<br />
The processor core is provided with an open<br />
source licence. The Lattice open IP core licence<br />
agreementwillbeusedwiththeHDLcodethat<br />
is generated by the MSB tool. Most of the<br />
graphical user <strong>in</strong>terfaces will be licensed under<br />
an Eclipse licence, while for the <strong>in</strong>ternal work<strong>in</strong>gs<br />
of the software, such as the <strong>com</strong>piler, assembler,<br />
l<strong>in</strong>ker and debugger, the licens<strong>in</strong>g<br />
scheme will follow the GNU-GPL. Because this<br />
is open source soft IP, the processor IP core can<br />
also be migrated free of charge to other<br />
technologies and implementations.<br />
The processor provides high performance as<br />
well as m<strong>in</strong>imal resource utilization. For designers<br />
who are concerned about resources, the<br />
basicconfigurationusesno<strong>in</strong>structionordata<br />
cache, a s<strong>in</strong>gle-cycle shifter and no multiplier.<br />
For those concerned more with performance,<br />
the full configuration uses 8k bytes of <strong>in</strong>struction<br />
cache, 8k bytes of data cache, a 3-cycle<br />
shifter and a multiplier. For users who need a<br />
<strong>com</strong>promise, the standard configuration is<br />
similar to the full configuration, but without<br />
the 8k bytes of data cache. Table 1 shows<br />
resource utilization and performance for the<br />
LatticeECP3 FPGAs. ■<br />
Basic ECP3 1835 0 112 MHz Includes barrel shifter, no<br />
MULT,<br />
no Caches<br />
Standard ECP3 2189 5 119 MHz Includes barrel shifter, 32<br />
bit MULT, 8k bytes<br />
I-$, no D-Cache<br />
Full ECP3 2435 10 116 MHz Includes barrel shifter, 32<br />
bit MULT,8 k bytes<br />
I-$, 8 k bytes D-$<br />
erenced. Table 1: The LatticeMico32 C/C++ source resource code debugger utilizationpro and performance us<strong>in</strong>g LatticeECP3<br />
FPGAS,PLDS & ASICS<br />
Editors<br />
Jürgen Hübner<br />
phone +49(0)8092-2477413<br />
fax +49(0)8092-2477429<br />
jh@iccmedia.<strong>com</strong><br />
Wolfgang Patelay<br />
wp@iccmedia.<strong>com</strong><br />
Tony Devereux<br />
devrex@teyboyz.freeserve.co.uk<br />
For Reader Inquiries and Address Changes<br />
please contact:<br />
<strong>in</strong>fo@iccmedia.<strong>com</strong><br />
Sales & Market<strong>in</strong>g Director<br />
Manfred Blumoser<br />
phone +49(0)8092-2477411<br />
fax +49(0)8092-2477429<br />
mb@iccmedia.<strong>com</strong><br />
Claudia Melle<strong>in</strong><br />
cm@iccmedia.<strong>com</strong><br />
Christiane Lockner<br />
cl@iccmedia.<strong>com</strong><br />
Sales Office - UK and USA, Benelux,<br />
Scand<strong>in</strong>avia<br />
Blue Sky Communications<br />
Malcolm Cameron<br />
Kent Innovation Centre<br />
Thanet Reach Bus<strong>in</strong>ess Park<br />
Millennium Way<br />
Broadstairs Kent CT10 2QQ UK<br />
phone +44 (0)1843 609357<br />
fax +44 (0)1843 609358<br />
mc@blue-sky-<strong>com</strong>munications.<strong>com</strong><br />
Sales Office - Asia<br />
Jean Cheng, jean@i-media.<strong>com</strong>.tw<br />
Vivian Hung, vivian@i-media.<strong>com</strong>.tw<br />
Innovative Media Information & Services<br />
7F-3, No. 26, Sec. 2, M<strong>in</strong>g-Quan East Rd.<br />
Taipei 104 Taiwan<br />
phone +886 2 2563 1186<br />
Head Office<br />
ICC Media GmbH<br />
Rauwagnerstr. 5<br />
85560 Ebersberg / Germany<br />
Editorial Office UK<br />
36a Blackacre Road<br />
Theydon Bois<br />
Essex, CM16 7LU<br />
Copyright© All rights reserved.<br />
No part of this publication may be reproduced or transmitted<br />
<strong>in</strong> any form or by any means without the prior express written<br />
permission of ICC Media.<br />
Although we make every effort to present up-to-date, accurate<br />
<strong>in</strong>formation, boards&solutions will not be responsible for any<br />
errors or omissions or for any results obta<strong>in</strong>ed from the use of<br />
such <strong>in</strong>formation. The magaz<strong>in</strong>e will not be liable for any loss<br />
caused by the reliance on <strong>in</strong>formation obta<strong>in</strong>ed on this site.<br />
Furthermore, ece does not warrant the accuracy or<br />
<strong>com</strong>pleteness of the <strong>in</strong>formation, text, graphics <strong>in</strong> this magaz<strong>in</strong>e.<br />
The op<strong>in</strong>ions expressed <strong>in</strong> the articles are those of the<br />
authors and not necessarily the op<strong>in</strong>ions of the publisher.<br />
35 November 2009
PRODUCT NEWS<br />
■ ST: ZigBee platform for remote motion<br />
control<br />
STMicroelectronics has <strong>in</strong>troduced Motion-<br />
Bee, a <strong>com</strong>plete, ready-for-use platform that<br />
<strong>com</strong>b<strong>in</strong>es motion sens<strong>in</strong>g with ZigBee wireless<br />
technology <strong>in</strong> a s<strong>in</strong>gle ultra-<strong>com</strong>pact module.<br />
Boast<strong>in</strong>g low power consumption and high level<br />
of <strong>in</strong>tegration, ST’s MotionBee enables system<br />
developers to quickly and cost-effectively build<br />
wireless sensor networks for remote motion<br />
recognition and track<strong>in</strong>g <strong>in</strong> many different application<br />
areas, <strong>in</strong>clud<strong>in</strong>g healthcare, security, <strong>in</strong>dustrial<br />
control and environmental monitor<strong>in</strong>g.<br />
News ID 509<br />
■ Digi launches fleet management telematics<br />
devices<br />
Digi International <strong>in</strong>troduces the ConnectPort<br />
X5 family of <strong>com</strong>pact, ruggedised telematics devices<br />
with optional satellite functionality <strong>in</strong>corporat<strong>in</strong>g<br />
cellular, satellite, GPS, Wi-Fi and<br />
vehicle area network wireless technology <strong>in</strong> one<br />
device. The ConnectPort X5 family is tailored<br />
specifically for the demands of fleet management<br />
applications.<br />
News ID 537<br />
■ Altium: FPGA-based development<br />
board with royalty-free IP<br />
Altium has launched a new addition to its<br />
NanoBoard family of FPGA-based development<br />
boards. The NanoBoard 3000 is a programmable<br />
design environment, supplied <strong>com</strong>plete<br />
with hardware, software, ready-to-use,<br />
royalty-free IP and a dedicated Altium Designer<br />
Soft Design license. Designers have everyth<strong>in</strong>g<br />
they need to explore FPGAs "out of the<br />
box ". They are no longer forced to search the<br />
web for drivers, peripherals or other software,<br />
and then have the hard work of <strong>in</strong>tegrat<strong>in</strong>g all<br />
these elements to make them work together.<br />
News ID 448<br />
■ Atlantik: improved security <strong>in</strong> public<br />
short-distance traffic<br />
Atlantik Elektronik offers solutions for video<br />
transmission to improve the security <strong>in</strong> the<br />
local public transport system. Especially the <strong>in</strong>tegration<br />
of video systems <strong>in</strong> an extensive security<br />
concept is very successful. Although 50<br />
percent of Munich’s <strong>in</strong>terurban tra<strong>in</strong>s are<br />
equipped with video surveillance systems, this<br />
could not prevent the assault of a 50 years old<br />
entrepreneur.<br />
News ID 467<br />
November 2009<br />
■ CMX: TCP/IP stack with a variety of<br />
add-on options<br />
CMX Systems offers the CMX-MicroNet<br />
TCP/IP stack with a variety of Add-On options<br />
for most 8-, 16-, and 32-bit micro<strong>com</strong>puters,<br />
microprocessors and DSP's. CMX-MicroNet is<br />
a TCP/IP stack specially crafted to work with<br />
virtually all processors and features an extremely<br />
small ROM requirement rang<strong>in</strong>g from<br />
5K to 28K and very m<strong>in</strong>imal RAM requirements<br />
of about 500 bytes plus buffers for<br />
packets.<br />
News ID 526<br />
■ PEAK-System enhances CAN monitor<br />
for W<strong>in</strong>dows<br />
PEAK-System Technik has released version 5 of<br />
their PCAN-Explorer for W<strong>in</strong>dows. The<br />
PCAN-Explorer is a universal monitor<strong>in</strong>g software<br />
for display<strong>in</strong>g data traffic on CAN networks.<br />
For a simple and clear allocation of the<br />
<strong>in</strong>dividual messages, these can be identified as<br />
so-called symbols. The VBScript implementation<br />
allows the creation of macros to automate<br />
<strong>com</strong>plex tasks.<br />
News ID 566<br />
■ Artisan: major new version of model-driven<br />
development tool<br />
Artisan Software Tools has launched a major<br />
new version of its model-driven development<br />
tool suite, Artisan Studio Version 7.1 deliver<strong>in</strong>g<br />
new model<strong>in</strong>g features <strong>in</strong>clud<strong>in</strong>g support for<br />
the OMG Unified Profile for DoDAF and<br />
MODAF standard, improved model diagram<br />
presentation through glossUML, all new documentation<br />
generation through Artisan Publisher,<br />
<strong>in</strong>creased extra-large model support<br />
and enhanced UML Activity model<strong>in</strong>g.<br />
News ID 567<br />
■ XMOS and Digi-Key announce global<br />
distribution agreement<br />
XMOS announces a global distribution agreement<br />
with Digi-Key. XMOS' <strong>com</strong>plete range of<br />
event-driven processors and development<br />
boards are <strong>in</strong> stock and ready to ship from Digi-<br />
Key. This <strong>in</strong>cludes XMOS' new XS1-L1chip targeted<br />
at the mass electronics market . The XS1-<br />
L family provides embedded software developers<br />
with an energy-efficient, scalable, multi-core<br />
solution which enables them to build <strong>com</strong>plete<br />
systems <strong>com</strong>b<strong>in</strong><strong>in</strong>g <strong>in</strong>terface, DSP and control<br />
functions entirely <strong>in</strong> software.<br />
News ID 458<br />
36<br />
■ MSC: 32-bit processors with <strong>in</strong>tegrated<br />
s<strong>in</strong>gle/dual e600 core<br />
Two new processors from e2v, available at<br />
MSC, offer the high-performance e600 core for<br />
demand<strong>in</strong>g applications <strong>in</strong>clud<strong>in</strong>g aerospace<br />
anddefence,network<strong>in</strong>gaswellasstorageand<br />
wireless <strong>in</strong>frastructure. The PC8640(D) features<br />
s<strong>in</strong>gle or dual e600 cores runn<strong>in</strong>g at up to 1250<br />
MHz. The PC8641(D) is equipped with s<strong>in</strong>gle<br />
or dual e600 cores runn<strong>in</strong>g at up to 1500 MHz,<br />
operat<strong>in</strong>g over a market lead<strong>in</strong>g extended temperature<br />
range of -55 to + 125 C.<br />
News ID 617<br />
■ ARM: Cortex-A5 processor scales from<br />
handsets to lifestyle <strong>in</strong>ternet devices<br />
ARM launches the ARM Cortex-A5 MPCore<br />
processor, a small, low power ARM multicore<br />
processor capable of deliver<strong>in</strong>g the Internet to a<br />
wide range of devices, from ultra low cost handsets,<br />
feature phones and smart mobile devices,<br />
to pervasive embedded, consumer and <strong>in</strong>dustrial<br />
devices. The Cortex-A5 uniprocessor provides<br />
a migration path for ARM926EJ-S and<br />
ARM1176JZ-S processor licensees.<br />
News ID 627<br />
■ Atmel: megaAVR picoPower MCU<br />
with 128 KB of Flash<br />
Atmel announces the availability of a 128 KB<br />
picoPower megaAVR microcontroller, target<strong>in</strong>g<br />
size-constra<strong>in</strong>ed, low-power applications. The<br />
small 44-p<strong>in</strong> package makes the ATmega1284P<br />
ideal for applications such as wireless and ethernet<br />
nodes, home automation and other code<strong>in</strong>tensive<br />
battery or signal-l<strong>in</strong>e powered products,<br />
<strong>com</strong>b<strong>in</strong>ed with its ultra-low-power consumption,<br />
128 KB of flash and 16 KB RAM.<br />
News ID 521<br />
■ Cypress to highlight new PSoC 3<br />
architecture at X-Fest<br />
Cypress will partner with Avnet for the X-Fest<br />
global series of free technical sem<strong>in</strong>ars to be<br />
held <strong>in</strong> 37 locations around the world from October<br />
2009 through February 2010. Cypress will<br />
demonstrateitsnewlyannouncedPSoC3programmable<br />
system-on-chip architecture. The<br />
new PSoC architectures dramatically <strong>in</strong>crease<br />
performance and extend the world’s only programmable<br />
analog and digital embedded design<br />
platform, deliver<strong>in</strong>g unmatched time-tomarket,<br />
<strong>in</strong>tegration, and flexibility across 8-, 16-<br />
, and 32-bit applications.<br />
News ID 514
■ The Debug Store: Gold Distributor for<br />
Xeltek <strong>in</strong> <strong>Europe</strong><br />
Xeltek has appo<strong>in</strong>ted The Debug Store as its<br />
first Gold Distributor <strong>in</strong> <strong>Europe</strong>. The Gold Distributor<br />
is <strong>com</strong>mitted to keep<strong>in</strong>g Xeltek programmers<br />
and popular adapters <strong>in</strong> stock so customers<br />
have fast access to products. It also offers<br />
detailed advice about the suitability of a<br />
programmer and associated adapter for programm<strong>in</strong>g<br />
the customer’s devices. If the customer<br />
also needs to m<strong>in</strong>imise downtime should<br />
his programmer fail, an extended warranty<br />
service is also available, provid<strong>in</strong>g a loan unit,<br />
delivered the follow<strong>in</strong>g work<strong>in</strong>g day.<br />
News ID 619<br />
■ Xil<strong>in</strong>x: FPGAs <strong>com</strong>pliant with<br />
PCI Express 1.1 spec<br />
Xil<strong>in</strong>x announces that its Spartan-6 FPGA<br />
family is <strong>com</strong>pliant with the PCI Express 1.1<br />
specification, enabl<strong>in</strong>g low-cost implementation<br />
of serial connectivity solutions for consumer,<br />
automotive, wireless, and other pricesensitive<br />
or high volume markets such as <strong>in</strong>-vehicle<br />
<strong>in</strong>fota<strong>in</strong>ment, flat-panel displays, and<br />
video surveillance. PCIe 1.1 is implemented <strong>in</strong><br />
Spartan-6 LXT devices with Xil<strong>in</strong>x GTP serial<br />
transceivers capable of up to 3.125Gbps and the<br />
LogiCORE solution us<strong>in</strong>g the <strong>in</strong>tegrated Endpo<strong>in</strong>t<br />
block for PCI Express. The GTP serial<br />
transceivers are fully characterized across<br />
process, voltage, and temperature.<br />
News ID 540<br />
■ Toshiba: USB 2.0 dual s<strong>in</strong>gle pole double<br />
throw bus switch<br />
Toshiba Electronics <strong>Europe</strong> has expanded its<br />
family of ultra-high-speed CMOS <strong>in</strong>terface ICs<br />
with a m<strong>in</strong>iature, low-power CMOS switch IC.<br />
The TC7USB221 is a USB 2.0 dual s<strong>in</strong>gle pole<br />
double throw bus switch with low ON resistance<br />
and low p<strong>in</strong> capacitance for Hi-Speed USB<br />
operation with data rates up to 480Mbps. A<br />
typical application for the IC would be a multiplexer/demultiplexer<br />
function between two<br />
USB controllers.<br />
News ID 613<br />
■ Inf<strong>in</strong>eon: launch of <strong>Europe</strong>an Technology<br />
Cooperation ‘E3Car’<br />
A large <strong>Europe</strong>an research project to advance<br />
the development of electric vehicles has been<br />
launched under the leadership of Inf<strong>in</strong>eon.<br />
The E3Car (Energy Efficient Electrical Car)<br />
project br<strong>in</strong>gs together 33 automotive <strong>com</strong>panies,<br />
key suppliers, and research facilities<br />
from a total of eleven countries to collaborate<br />
on boost<strong>in</strong>g the efficiency of electrically-driven<br />
vehicles by more than one-third.<br />
News ID 585<br />
■ Tensilica: dataplane processor core<br />
for deeply <strong>Embedded</strong> control<br />
Tensilica <strong>in</strong>troduces the Xtensa 8 customizable processor,<br />
the eighth generation of its low-power dataplane<br />
processor cores. The Xtensa 8 processor 32-bit architecture<br />
core starts at a size of just 15,000 gates, consum<strong>in</strong>g<br />
less than 0.05mm2 <strong>in</strong> 40nm process technology<br />
with power dissipation start<strong>in</strong>g at 12<br />
μW/MHz.Designers us<strong>in</strong>g an Xtensa 8 DPU can select<br />
from an expanded library of pre-verified configuration<br />
options to get the exact functionality they need.<br />
News ID 609<br />
■ Microchip: meter<strong>in</strong>g analogue front-end<br />
samples with up to 64ksps<br />
Microchip announces its next-generation Analogue<br />
Front End for meter<strong>in</strong>g applications. The<br />
MCP3901 AFE features high-accuracy, dual 16-<br />
/24-bit Delta-Sigma ADCs with up to 91dB Signal<br />
to Noise and Distortion; <strong>in</strong>ternal Programmable<br />
Ga<strong>in</strong> Amplifiers and voltage reference;<br />
phase-delay <strong>com</strong>pensation; and a modulator<br />
output block, enabl<strong>in</strong>g more precise<br />
measurements than <strong>com</strong>petitive solutions.<br />
News ID 574<br />
■ Altium and Premier Farnell announce<br />
distribution agreement<br />
Altium has appo<strong>in</strong>ted Premier Farnell as the<br />
web distributor for its new NanoBoard 3000<br />
FPGA-based development board. The agreement<br />
extends to Premier Farnell’s family of<br />
global market<strong>in</strong>g and distribution services.<br />
News ID 454<br />
37<br />
PRODUCT NEWS<br />
■ NI: programmable FPGA to provide<br />
<strong>in</strong>telligent distributed nodes<br />
National Instruments announces new FPGA<br />
capabilities for the NI 9144 expansion chassis.<br />
By download<strong>in</strong>g the NI-Industrial Communications<br />
for EtherCAT 1.1 driver, eng<strong>in</strong>eers can<br />
now run National Instruments LabVIEW<br />
FPGA code directly on the NI 9144 chassis to<br />
execute custom trigger<strong>in</strong>g, <strong>in</strong>l<strong>in</strong>e process<strong>in</strong>g<br />
and control with<strong>in</strong> an application.<br />
News ID 588<br />
■ TI: RF4CE development platform for remote<br />
control applications<br />
Texas Instruments, C.G. Development and<br />
Quanta Microsystems announce a <strong>com</strong>plete,<br />
easy-to-use RF4CE development platform for<br />
advanced RF remote control applications. This<br />
development platform is based on TI’s latest<br />
IEEE 802.15.4 chipset, CC2530, along with TI’s<br />
MSP430 MCUs and related software stacks support<strong>in</strong>g<br />
ZigBee PRO and ZigBee RF4CE.<br />
News ID 559<br />
■ STM: 8-bit MCUs with ultra-low-power<br />
technology<br />
STMicroelectronics has begun volume production<br />
of the first microcontrollers to <strong>com</strong>b<strong>in</strong>e<br />
its high-performance 8-bit architecture with the<br />
<strong>com</strong>pany’s recently announced ultra-low-power<br />
<strong>in</strong>novations to save power <strong>in</strong> active modes as<br />
well as when idle. The STM8L product family<br />
<strong>com</strong>prises 26 devices <strong>in</strong> three l<strong>in</strong>es spann<strong>in</strong>g a<br />
broad spectrum of performance and function.<br />
News ID 441<br />
■ Xil<strong>in</strong>x and ARM: development collaboration<br />
Xil<strong>in</strong>x and ARM collaborate to enable ARM<br />
processor and <strong>in</strong>terconnect technology on Xil<strong>in</strong>x<br />
FPGAs. Xil<strong>in</strong>x is adopt<strong>in</strong>g ARM Cortex processor<br />
IP, us<strong>in</strong>g performance-optimized ARM cell libraries<br />
and embedded memories for their future<br />
programmable platforms. In addition, ARM and<br />
Xil<strong>in</strong>x are work<strong>in</strong>g to def<strong>in</strong>e the next-generation<br />
ARM AMBA <strong>in</strong>terconnect technology that is enhanced<br />
and optimized for FPGA architectures.<br />
News ID 608<br />
November 2009
PRODUCT NEWS<br />
■ Actel: real-time firmware access and<br />
updates for low-power FPGAs<br />
Actel has released its new Firmware Catalogue.<br />
This new tool streaml<strong>in</strong>es the locat<strong>in</strong>g and generat<strong>in</strong>g<br />
of firmware that is <strong>com</strong>patible with Intellectual<br />
Property cores used <strong>in</strong> Actel embedded<br />
processor based low-power IGLOO, ProA-<br />
SIC3 or Fusion mixed-signal FPGA designs.<br />
The Firmware Catalogue is a standalone executable<br />
program that enables the brows<strong>in</strong>g, selection,<br />
and GUI configuration of firmware<br />
drivers, hardware abstraction layers and design<br />
examples.<br />
News ID 496<br />
■ Xil<strong>in</strong>x: design suite supports high<br />
bandwidth Virtex-6 HXT FPGAs<br />
Xil<strong>in</strong>x announces design support for Virtex-6<br />
HXT FPGAs with the 11.3 release of the ISE Design<br />
Suite software. Optimized for 40G/100G<br />
wired tele<strong>com</strong>munications and data <strong>com</strong>munications,<br />
Virtex-6 HXT FPGAs deliver serial <strong>in</strong>terface<br />
technology to designers of ultra-high bandwidth<br />
systems with l<strong>in</strong>e rates <strong>in</strong> excess of 11 Gbps.<br />
News ID 459<br />
■ TI: 200-mA l<strong>in</strong>ear regulators with auto<br />
low-power mode<br />
Texas Instruments <strong>in</strong>troduces a family of 200mA,<br />
low dropout regulators. Auto low-power<br />
mode allows the TPS727xx to achieve less<br />
than 8 uA without an additional mode p<strong>in</strong> and<br />
automatically switches to and from low power<br />
depend<strong>in</strong>g on load current.<br />
News ID 528<br />
■ ADI: supervisory circuits extend battery<br />
life <strong>in</strong> mobile applications<br />
Analog Devices expands its portfolio of supervisory<br />
ICs with new microprocessor supervisory<br />
circuits for monitor<strong>in</strong>g under-voltage<br />
conditions <strong>in</strong> handheld <strong>in</strong>dustrial <strong>in</strong>struments,<br />
tele<strong>com</strong>munications devices, and other portable<br />
applications. The ADM6326, ADM6328,<br />
ADM6346 and ADM6348 supervisory circuits<br />
feature an ultra-low 500-nA supply current that<br />
can extend the battery life of mobile devices.<br />
News ID 439<br />
November 2009<br />
■ NatSemi: wireless basestation IF sampl<strong>in</strong>g<br />
reference design<br />
National Semiconductor announces the availability<br />
of an <strong>in</strong>termediate frequency sampl<strong>in</strong>g<br />
receiver reference design for multi-carrier,<br />
multi-standard wireless basestations address<strong>in</strong>g<br />
GSM/EDGE, WCDMA, LTE and WiMAX standards.<br />
The subsystem reference design kit <strong>in</strong>cludes<br />
reference design board, software,<br />
schematic, bill of materials and Gerber files.<br />
News ID 607<br />
■ Renesas: 200 MHz SuperH MCU<br />
with 3,75MB Flash<br />
Renesas announces the SH72546R SuperH<br />
family microcontroller designed for use <strong>in</strong> automotive<br />
eng<strong>in</strong>e and transmission control systems.<br />
The device <strong>com</strong>b<strong>in</strong>es high-speed operation<br />
of up to 200 MHz with flash memory capacity<br />
of 3.75 MB.<br />
News ID 598<br />
■ MSC: high temperature voltage control<br />
crystal oscillator<br />
MSC offers Vectron’s high temperature voltage<br />
control crystal oscillator VX-400 product platform<br />
for extreme environment applications.<br />
These <strong>in</strong>clude oil and gas exploration markets,<br />
<strong>in</strong>dustrial process control as well as military and<br />
aerospace applications. Specifically designed for<br />
operation <strong>in</strong> such harsh environment applications,<br />
the VX-400 leverages an unique crystal<br />
resonator mount<strong>in</strong>g, as well as its substrate and<br />
<strong>com</strong>ponent attachment schemes to ensure reliable<br />
<strong>com</strong>ponent performance under shock<br />
and vibration.<br />
News ID 444<br />
■ Maxim: 8x8 keypad controller<br />
with 8 GPIOs/LED drivers<br />
Maxim Integrated Products <strong>in</strong>troduces the<br />
MAX7360, a key-switch controller featur<strong>in</strong>g multiple<br />
key press/release detection on up to 64 keys,<br />
plus 8 extra GPIOs/LED drivers and advanced<br />
ESD protection. Individual key codes for each<br />
press and release are stored <strong>in</strong> a FIFO register to<br />
enable monitor<strong>in</strong>g of multiple key-switch events.<br />
News ID 612<br />
38<br />
■ Atlantik: 32-bit stereo DAC for high-end<br />
digital audio devices<br />
Atlantik Elektronik presents the AK4480, a 32bit<br />
stereo DAC with an advanced architecture<br />
enabl<strong>in</strong>g higher quality sound for professional<br />
and high-end digital audio devices. The<br />
AK4480 has three different digital filters: a 32bit<br />
short delay filter which is suitable for<br />
acoustic sounds, a 32-bit sharp roll-off filter for<br />
traditional sounds, and a 32-bit slow roll-off filter<br />
for a soft sound expression.<br />
News ID 601<br />
■ SiLabs: low jitter clock generator<br />
for broadcast video applications<br />
Silicon Laboratories <strong>in</strong>troduces the expansion of<br />
its Any-Rate Precision Clock family with the<br />
Si5324 low jitter, most highly <strong>in</strong>tegrated clock IC<br />
optimized for professional broadcast video applications.<br />
The Si5324 replaces traditional multi<strong>com</strong>ponent<br />
video PLL solutions with a s<strong>in</strong>gle<br />
clock IC deliver<strong>in</strong>g jitter performance of 5 ps pkpk,<br />
provid<strong>in</strong>g significant marg<strong>in</strong> to all exist<strong>in</strong>g<br />
and emerg<strong>in</strong>g video standards <strong>in</strong>clud<strong>in</strong>g 3G-SDI.<br />
News ID 442<br />
Advertisers Index<br />
COMPANY PAGE<br />
ARM Germany 23<br />
Digi-Key 2/39<br />
Express Logic 7<br />
Green Hills Software 5<br />
HCC-<strong>Embedded</strong> 40<br />
Hitex 25<br />
Mentor Graphics 15<br />
MSC 3<br />
PEAK-System-Technik 17<br />
Rutronik 21<br />
Toshiba Electronics <strong>Europe</strong> 27
One Size<br />
Doesn’t Fit All<br />
• File Systems<br />
• USB Stacks<br />
• Bootloaders<br />
• W<strong>in</strong>dows Drivers<br />
• <strong>Embedded</strong> Development<br />
Services<br />
HCC-<strong>Embedded</strong><br />
FILE SYSTEMS WITH A DIFFERENCE<br />
www.hcc-embedded.<strong>com</strong> • <strong>in</strong>fo@hcc-embedded.<strong>com</strong><br />
With HCC, you can choose a file system that’s<br />
right for your application. HCC products run<br />
with the broadest range of CPUs and memory<br />
devices, with or without an operat<strong>in</strong>g system.<br />
THE MOST COMPREHENSIVE PORTFOLIO OF FILE<br />
SYSTEMS FOR EMBEDDED APPLICATIONS<br />
��������