HOME PRODUCTS TUTORIALS COMMENTARY CONTACT
articles
blogs
testimonials
FSMs for Hardware Engineers
You and many of your fellow hardware engineers are probably more knowledgeable of Finite State Machines than  engineers of other disciplines. You likely had courseware in sequential circuit design and are adept at using the concepts of Mealy and Moore. You know how to use combinatorial logic with J-K flip-flops and that Karnaugh maps are indispensible to organizing logic. Congratulations...but you should no longer hide the secret of your specialty. The power of Finite State Machines can benefit your software engineering compatriots as well. Or, like the hardware engineers that pioneered much of the embedded systems industry, you can now easily design an entire software system yourself, using your inherent expertise and the Staccato™ Software Design Method and Architecture for Embedded Systems.

You might know a few 'old salt' EE's that programmed one of the early 8-bit micros using assembly language. Yes, there was a time when EE's did it all because they could. Some enjoyed programming, many preferred their gates, flip-flops and Karnaugh maps. Somehow, though, FSMs remained in the domain of hardware engineering until only recently, relatively speaking, that UML Statecharts made FSM concepts available to the entire software community, be it primarily for modeling systems. As to be expected though, Mealy and Moore machines were considered by 'the software gurus' as insufficient, and attempted to solve their primitiveness by mixing in their own object-oriented concepts and voila! ... Finite State Machines for everyone! ... just add OOP and an RTOS and a 60 terahertz processor and basically, problem solved. Well, that never really happened. Maybe because what hardware engineers have been using to design sequential circuits for years, really is applicable in its near original form to embedded software engineering.

So hardware engineers, don't think for a minute that today's embedded systems software absolutely needs an RTOS and that if you want to use Finite State Machine concepts, you must use one of the few Statechart-based products. All that is really needed is Staccato™ and an ANSI-C Compiler (and a much, much slower processor). Whether it's a work project or a C-language programming hobby, structured software design methods and the use of Finite State Machine logic is available to you (and with IEEE-CEU Certified Training). So, encourage your embedded systems team to rethink current methods and consider learning and using FSM-based software for your next project.

Oh, and thanks for the amazing chips you have provided us with over the past few decades. That alone speaks volumes about what software engineers could be learning from hardware folks.

 

© 2010 Mapletech Productions LLC, All Rights Reserved