Statecharts: A visual formalism for complex systems
Science of Computer Programming
Communicating sequential processes
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Notable design patterns for domain-specific languages
Journal of Systems and Software
Formal Models for Embedded System Design
IEEE Design & Test
The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures
Euro-Par '01 Proceedings of the 7th International Euro-Par Conference Manchester on Parallel Processing
Using Abstract State Machines at Microsoft: A Case Study
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
High-Level Executable Specification of the Universal Plug and Play Architecture
HICSS '02 Proceedings of the 35th Annual Hawaii International Conference on System Sciences (HICSS'02)-Volume 9 - Volume 9
Closing the Gap Between Software Modelling and Code
ECBS '04 Proceedings of the 11th IEEE International Conference and Workshop on Engineering of Computer-Based Systems
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
The Challenges of Synthesizing Hardware from C-Like Languages
IEEE Design & Test
Run-Time Services for Hybrid CPU/FPGA Systems on Chip
RTSS '06 Proceedings of the 27th IEEE International Real-Time Systems Symposium
Achieving programming model abstractions for reconfigurable computing
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Predictable programming on a precision timed architecture
CASES '08 Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Hi-index | 0.00 |
This article describes FSMLanguage, a domain-specific language for HW/SW co-design targeting platform FPGAs. Modern platform FPGAs provide a wealth of configurable logic in addition to embedded processors, distributed RAM blocks, and DSP slices in order to help facilitate building HW/SW co-designed systems. A technical challenge in building such systems is that the practice of designing software and hardware requires different areas of expertise and different description domains, i.e. languages and vocabulary. FSMLanguage attempts to unify these domains by defining a way to describe HW/SW co-designed systems in terms of sets of finite-state machines --- a concept that is reasonably familiar to both software programmers and hardware designers. FSMLanguage is a domain-specific language for describing the functionality of a finite-state machine in such a way that its implementation can be re-targeted to software or hardware in an efficient manner. The efficiency is achieved by exploiting the resources found within modern platform FPGAs --- namely the distributed RAM blocks, soft-core processors, and the ability to construct dedicated communication channels between FSMs in the reconfigurable fabric. The language and its compiler promote uniformity in the description of a HW/SW co-designed system, which allows a system designer to make partitioning and implementation strategy decisions later in the design cycle.