Skip to main content

Hardware Compilation Using SSA

  • Chapter
  • First Online:
SSA-based Compiler Design
  • 1404 Accesses

Abstract

This chapter describes the use of SSA-based high-level program representations for the realization of the corresponding computations using hardware digital circuits. We begin by highlighting the benefits of using a compiler SSA-based intermediate representation in this hardware mapping process, using an illustrative example.

The subsequent sections describe hardware translation schemes for discrete hardware logic structures or datapaths of hardware circuits and outline several compiler transformations that benefit from SSA. We conclude with a brief survey of various hardware compilation efforts from both academia and industry that have adopted SSA-based internal representations.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

eBook
USD 12.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    It may be apparent that the original computation lacks any temporal specification in terms of the relative order in which data-independent operations can be carried out. Implementation variants exploit this property.

  2. 2.

    A 2 × 1 multiplexer is a combinatorial circuit with two data inputs, a single output and a control input, where the control input selects which of the two data inputs is transmitted to the output.

  3. 3.

    As a first approach, these registers are virtual, and then, after synthesis, some of them are materialized to physical registers in a process similar to register allocation in software-oriented compilation.

  4. 4.

    Speculation is also possible in the temporal mode by activating the inputs and execution of multiple hardware blocks and is only limited by the available storage bandwidth to restore the input context in each block, which, in the spatial approach, is trivial.

  5. 5.

    Under the scenarios of a spatial mapping and with the common disclaimers about static control-flow analysis.

  6. 6.

    As with any SSA representation, variable names fulfil the referential transparency .

  7. 7.

    An important issue in security-related aspects of the execution.

  8. 8.

    A typical k-input LUT will include an arbitrary combinatorial functional block of those k inputs followed by an optional register element (e.g., Flip-Flop).

References

  1. Böhm, W., et al. (2002). Mapping a single assignment programming language to reconfigurable systems. The Journal of Supercomputing, 21(2), 117–130.

    Article  MATH  Google Scholar 

  2. Carter, L., et al. (1999). Predicated static single assignment. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. PACT ’99 (p. 245).

    Google Scholar 

  3. de Ferrière, F. (2007). Improvements to the Psi-SSA representation. In Proceedings of the International Workshop on Software & Compilers for Embedded Systems. SCOPES ’07 (pp. 111–121).

    Google Scholar 

  4. Hagiescu, A., et al. (2009). A computing origami: Folding streams in FPGAs. In Proceedings of the Design Automation Conference. DAC ’09 (pp. 282–287).

    Google Scholar 

  5. Hormati, A., et al. (2008). Optimus: Efficient realization of streaming applications on FPGAs. In Proceedings of the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems. CASES ’08, pp. 41–50.

    Google Scholar 

  6. Metzgen, P., & Nancekievill, D. (2005). Multiplexer restructuring for FPGA implementation cost reduction. In Proceedings of the Design Automation Conference. DAC ’05 (pp. 421–426).

    Google Scholar 

  7. Stoutchinin, A., & de Ferrière, F. (2001). Efficient static single assignment form for predication. In Proceedings of the International Symposium on Microarchitecture. MICRO 34 (pp. 172–181).

    Google Scholar 

  8. Verma, A. K., Brisk, P., & Ienne, P. (2008). Dataflow transformations to maximize the use of carry-save representation in arithmetic circuits. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 27(10), 1761–1774.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pedro C. Diniz .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Diniz, P.C., Brisk, P. (2022). Hardware Compilation Using SSA. In: Rastello, F., Bouchez Tichadou, F. (eds) SSA-based Compiler Design. Springer, Cham. https://doi.org/10.1007/978-3-030-80515-9_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-80515-9_23

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-80514-2

  • Online ISBN: 978-3-030-80515-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics