07.12.2012 Views

in PDF Format - Embedded-Control-Europe.com

in PDF Format - Embedded-Control-Europe.com

in PDF Format - Embedded-Control-Europe.com

SHOW MORE
SHOW LESS

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 />

��������

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!