Nick Martin, the founder of EDA’s most unconventional company, Altium, Ltd., is not afraid of being different. Since 1985 when the company (formerly known as Protel) released its first EDA tool, Nick and his growing band of nerdy rebels have been challenging the status quo in electronic design automation. The company has always had the philosophy of giving the individual engineer the tools he or she needs to get their job done, without the barriers of cost and access posed by traditional EDA.
Nick’s vision has always extended beyond the here and now. The self-appointed vanguard of the constantly moving target of innovation has capitalized on the company’s unique circumstances and culture to produce products and services that track dangerously close to that bleeding-edge of engineering design – where the concepts embodied by the design tool flow are just a little ahead of the mainstream engineering crowd, but well within view of forward-thinking designers.
When other EDA comanies were offering expensive PCB design systems based on high-end engineering workstations, Nick and his troupe of troublemakers were selling PC-based tools for a tiny fraction of the cost – enabling an entire class of electronics designers to take advantage of the power of layout automation. When FPGAs began to explode as system-on-chip platforms for the masses, Altium came to life with the industry’s only end-to-end design flow designed specifically to take advantage of the flexiblility of FPGA-based embedded systems.
Now, Altium is jumping yet another step into the future, bundling up capabilities to connect our embedded designs to the cloud. With the recent acquisition of Morfik, Altium is readying an integrated, soup-to-nuts design tool flow that includes support for creating and deploying cloud-based embedded applications.
If you haven’t heard of Morfik, it’s no surprise. Morfik Technology is an Australian company that developed Morfik, which is a platform for developing cloud-based AJAX (Asynchronous Javascript and XML) applications using a proprietary IDE (integrated development environment) that is comprised of graphical tools and specialized compilers for creating cloud-based applications in a WYSIWYG style. Applications can be developed using high-level languages like Java, C#, BASIC, or Object Pascal (Yes, I hear those comments about which one(s) of those you actually consider to be “high-level” languages; you can direct those to the box at the bottom of the article.)
What does this have to do with FPGA or embedded system design?
Until recently – absolutely nothing. However, when Altium announced that they were acquiring Morfik, the electronic industry analysts immediately told us they understood. Very little.
We all can see the trend of conventional software migrating to the cloud. For a wide range of applications, the benefits of cloud-based computing are compelling. For embedded systems – cloud-based applications make even more sense for a variety of reasons. First, many mobile/embedded devices are at a high risk of being lost or damaged. Having the data for those applications remotely hosted mitigates that risk. Second, many embedded systems are lean on processing power and storage. Cloud computing gives the advantage of more computing power and more storage remotely located. Finally, many embedded applications require connectivity, and cloud-based applications bring along the ability to network almost for free. The more work you can do in the cloud, the smaller the requirements on your embedded system. That can pay dividends in lower BOM cost, lower power consumption (and therefore longer battery life and/or less weight and heat), greater functionality, and improved field-upgrade capabilities.
Developing AJAX applications is not trivial, however, and the infrastructure and expertise necessary is considerable. Morfik’s role is to simplify that process by allowing us to develop our GUI in a WYSIWYG style and to flesh out the capabilities of our application in familiar high-level languages. The result is a dramatic lowering of the bar for deploying an application. In non-embedded deployments, the client-side code typically runs in a web browser, but in embedded applications, the client possibilities will necessarily be more flexible. Our embedded systems can break the client role out of the confines of PC-based browsers into a world of connected devices. While we may not see any reason our vacuum cleaner needs to be connected to a cloud-based computing structure, a company that makes robotic vacuum devices might feel differently. The possibilities of connected, cloud-based applications extending into embedded systems are as large and diverse as our collective engineering imaginations.
Altium’s acquisition of Morfik is designed to bring cloud-based application development into the Altium Designer embedded system design flow. According to the company, we’ll be seeing some Morfik capabilities in the very next release of Altium Designer, with enhanced capabilities to follow in future releases. Where are we headed with this? “Imagine you’re developing an application for something like an exercise bike to be used at a fitness club,” explains Aram Mirkazemi, co-founder and principal architect of Morfik. “Each bike would need to be able to monitor certain things during a workout session and keep track of which client the data belonged to. The data would need to be communicated to a central repository, and clients would need web-based access to track their progress.” Clearly, just from the description of the problem we can see the benefits of running an application like this in the cloud. The part of the application deployed in firmware to the individual bikes should be as light as possible, with the real work and the real potential for future upgrades offloaded to a central server or appliance.
Altium’s vision of design for the future revolves around a hub of FPGA-based embedded systems – where both hardware and software are both programmable and re-programmable. This approach allows the use of mix-and-match IP of a variety of types – hardware IP blocks for peripherals and custom hardware functions, accompanying software/driver IP to reduce the effort required to enable the hardware IP, and robust application-level and building-block-level IP and reference designs/applications.
In reality, most of the world’s designers are a step or two behind the vision that Altium is pushing with their latest tools. It’s not clear what fraction of Altium’s user base has embraced and is using the entire vision of the Altium Designer platform – including integrated hardware/software design of FPGA-based embedded systems, and even deployment of those systems in low-volume applications using standardized boards. We suspect that a large number of engineers and development teams buy the vision but still use the system primarily as “good old Protel” PCB layout. From an engineering perspective, however, it’s refreshing to have your design tools be a step or two ahead of your design methodology, rather than constantly lagging behind. Nothing is more frustrating than requiring a capability to complete your vision in a project, only to have to find a work-around because your design tools are still months to years from supporting the feature you need.