Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-642-03034-5_13guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Domain-Specific Language for HW/SW Co-design for FPGAs

Published: 02 July 2009 Publication History

Abstract

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 <em>and</em> 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.

References

[1]
Xilinx: Programmable logic devices, http://www.xilinx.com/ (last accessed March 25, 2009).
[2]
Lee, D., Yannakakis, M.: Principles and Methods of Testing Finite-State Machines - A Survey. Proceedings of the IEEE 84(8), 1090-1123 (1996).
[3]
Sgroi, M., Lavagno, L., Sangiovanni-Vincentelli, A.: Formal Models for Embedded System Design. IEEE Design & Test 17(2), 14-27 (2000).
[4]
Chiodo, M., Giusto, P., Hsieh, H., Jurecska, A., Lavagno, L., Sangiovanni-Vincentelli, A.: A Formal Methodology for Hardware/Software Codesign of Embedded Systems. IEEE Micro. 14, 26-36 (1994).
[5]
Jerraya, A.A., Wolf, W.: Hardware/Software Interface Codesign for Embedded Systems. IEEE Computer 38(2), 63-69 (2005).
[6]
http://www.systemc.org (SystemC Last accessed March 25, 2009).
[7]
Edwards, S.A.: The Challenges of Synthesizing Hardware from C-Like Languages. IEEE Design and Test of Computers 23(5), 375-386 (2006).
[8]
http://www.impulsec.com (ImpulseC Last accessed March 25, 2009).
[9]
http://www.celoxica.com (Celoxica Last accessed March 25, 2009).
[10]
Landin, P.J.: The Next 700 Programming Languages. Communications of the ACM 9(3), 157-166 (1966).
[11]
Mernik, M., Heering, J., Sloane, A.M.: When and How to Develop Domain-Specific Languages. ACM Computing Surveys 37(4), 316-344 (2005).
[12]
Spinellis, D.: Notable Design Patterns for Domain-Specific Languages. Journal of Systems and Software 56(1), 91-99 (2001).
[13]
Harel, D.: Statecharts: A Visual Formalism for Complex Systems. Science of Compututer Programming 8(3), 231-274 (1987).
[14]
Wagner, F.,Wagner, T.,Wolstenholme, P.: Closing the Gap Between Software Modelling and Code. In: IEEE International Conference on the Engineering of Computer-Based Systems, vol. 0, pp. 52 (2004).
[15]
Abdel-Hamid, A., Zaki, M., Tahar, S.: A Tool Converting Finite-State Machine to VHDL. In: Canadian Conference on Electrical and Computer Engineering, May 2004, vol. 4, pp. 1907-1910 (2004).
[16]
http://www.stateworks.com/active/download/ TN2-WhatIsStateWORKS.pdf: What is StateWorks? StateWorks Technical Document
[17]
Wagner, F.: VFSM Executable Specification. In: CompEuro 1992. 'Computer Systems and Software Engineering', Proceedings, May 1992, pp. 226-231 (1992).
[18]
Barnett, M., Börger, E., Gurevich, Y., Schulte, W., Veanes, M.: Using Abstract State Machines at Microsoft: A Case Study. In: Gurevich, Y., Kutter, P.W., Odersky, M., Thiele, L. (eds.) ASM 2000. LNCS, vol. 1912, pp. 367-379. Springer, Heidelberg (2000).
[19]
Glsser, U., Gurevich, Y., Veanes, M.: High-Level Executable Specification of the Universal Plug and Play Architecture. In: Hawaii International Conference on System Sciences, vol. 9, p. 283 (2002).
[20]
http://www.xilinx.com/itp/xilinx10/books/docs/xst/xst.pdf: Xilinx XST User Guide - Finite State Machine HDL Coding Techniques, pp. 239-245 (last accessed March 25, 2009).
[21]
http://www.altera.com/literature/hb/qts/qts_qii51007.pdf: Altera Quartus II Handbook - Recommended HDL Coding Styles, ch. 6, pp. 51-57 (last accessed March 25, 2009).
[22]
Hoare, C.A.R.: Communicating Sequential Processes. Communications of the ACM 21(8), 666-677 (1978).
[23]
http://www.xilinx.com/support/documentation/ip_documentation/ fsl_v20.pdf: FSL Bus Product Specification. Fast Simplex Link (FSL) Bus (v2.11a) Data Sheet.
[24]
http://www.haskell.org (Haskell Community Website Last accessed March 25, 2009).
[25]
http://legacy.cs.uu.nl/daan/parsec.html (Parsec, A Monadic Parser Library For Haskell Last accessed March 25, 2009).
[26]
http://www.graphviz.org/ (Graphviz - DOT and DOTTY Last accessed March 25, 2009).
[27]
Ertl, M.A., Gregg, D.: The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures. In: Sakellariou, R., Keane, J.A., Gurd, J.R., Freeman, L. (eds.) Euro-Par 2001. LNCS, vol. 2150, pp. 403-412. Springer, Heidelberg (2001).
[28]
http://www.xilinx.com/support/documentation/ sw_manuals/mb_ref_guide.pdf: MicroBlaze Processor Reference Guide. Xilinx Datasheet.
[29]
Greaves, D., Singh, S.: Exploiting System-Level Concurrency Abstractions for Hardware Descriptions. ACM Transactions on Reconfigurable Technology and Systems 5(N), 1-29 (2008).
[30]
Lickly, B., Liu, I., Kim, S., Patel, H.D., Edwards, S.A., Lee, E.A.: Predictable Programming on a Precision Timed Architecture. In: Proceedings of International Conference on Compilers, Architecture, and Synthesis from Embedded Systems (October 2008).
[31]
Andrews, D., Sass, R., Anderson, E., Agron, J., Peck, W., Stevens, J., Baijot, F., Komp, E.: Achieving Programming Model Abstractions For Reconfigurable Computing. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 16(1), 34-44 (2008).
[32]
Agron, J., Peck, W., Anderson, E., Andrews, D., Komp, E., Sass, R., Baijot, F., Stevens, J.: Run-Time Services for Hybrid CPU/FPGA Systems On Chip. In: Proceedings of the 27th IEEE International Real-Time Systems Symposium (RTSS) (December 2006).

Cited By

View all
  • (2021)Programming and Synthesis for Software-defined FPGA Acceleration: Status and Future ProspectsACM Transactions on Reconfigurable Technology and Systems10.1145/346966014:4(1-39)Online publication date: 13-Sep-2021
  • (2019)Type-Driven Automated Program Transformations and Cost Modelling for Optimising Streaming Programs on FPGAsInternational Journal of Parallel Programming10.1007/s10766-018-0572-z47:1(114-136)Online publication date: 1-Feb-2019
  • (2016)Leveraging Software Product Lines Engineering in the development of external DSLsComputer Languages, Systems and Structures10.1016/j.cl.2016.09.00446:C(206-235)Online publication date: 1-Nov-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
DSL '09: Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
July 2009
409 pages
ISBN:9783642030338
  • Editor:
  • Walid Mohamed Taha

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 02 July 2009

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Programming and Synthesis for Software-defined FPGA Acceleration: Status and Future ProspectsACM Transactions on Reconfigurable Technology and Systems10.1145/346966014:4(1-39)Online publication date: 13-Sep-2021
  • (2019)Type-Driven Automated Program Transformations and Cost Modelling for Optimising Streaming Programs on FPGAsInternational Journal of Parallel Programming10.1007/s10766-018-0572-z47:1(114-136)Online publication date: 1-Feb-2019
  • (2016)Leveraging Software Product Lines Engineering in the development of external DSLsComputer Languages, Systems and Structures10.1016/j.cl.2016.09.00446:C(206-235)Online publication date: 1-Nov-2016
  • (2009)Model-Driven Engineering from Modular Monadic SemanticsProceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages10.1007/978-3-642-03034-5_2(20-44)Online publication date: 2-Jul-2009

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media