Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
86 tokens/sec
GPT-4o
11 tokens/sec
Gemini 2.5 Pro Pro
52 tokens/sec
o3 Pro
5 tokens/sec
GPT-4.1 Pro
3 tokens/sec
DeepSeek R1 via Azure Pro
33 tokens/sec
2000 character limit reached

Correct and Compositional Hardware Generators (2401.02570v1)

Published 4 Jan 2024 in cs.PL and cs.AR

Abstract: Hardware generators help designers explore families of concrete designs and their efficiency trade-offs. Both parameterized hardware description languages (HDLs) and higher-level programming models, however, can obstruct composability. Different concrete designs in a family can have dramatically different timing behavior, and high-level hardware generators rarely expose a consistent HDL-level interface. Composition, therefore, is typically only feasible at the level of individual instances: the user generates concrete designs and then composes them, sacrificing the ability to parameterize the combined design. We design Parafil, a system for correctly composing hardware generators. Parafil builds on Filament, an HDL with strong compile-time guarantees, and lifts those guarantees to generators to prove that all possible instantiations are free of timing bugs. Parafil can integrate with external hardware generators via a novel system of output parameters and a framework for invoking generator tools. We conduct experiments with two other generators, FloPoCo and Google's XLS, and we implement a parameterized FFT generator to show that Parafil ensures correct design space exploration.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (42)
  1. IEEE Standard for Verilog Hardware Description Language. IEEE Std 1364-2005 (Revision of IEEE Std 1364-2001), 2006.
  2. Cλ𝜆\lambdaitalic_λaSH: Structural descriptions of synchronous hardware using Haskell. In Euromicro Conference on Digital System Design: Architectures, Methods and Tools, 2010.
  3. Chisel: constructing hardware in a Scala embedded language. In Design Automation Conference (DAC), 2012.
  4. Experience with embedding hardware description languages in HOL. In Proceedings of the IFIP TC10/WG 10.2 International Conference on Theorem Provers in Circuit Design (TPCD): Theory, Practice and Experience, 1993.
  5. The essence of bluespec: a core language for rule-based hardware design. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2020.
  6. Cadence Inc. Jasper Gold FPV App, 2022.
  7. LegUp: High-level synthesis for FPGA-based processor/accelerator systems. In International Symposium on Field-Programmable Gate Arrays (FPGA), 2011.
  8. Edmund M Clarke. Model checking. In International Conference on Foundations of Software Technology and Theoretical Computer Science, pages 54–56. Springer, 1997.
  9. A Pythonic approach for rapid hardware prototyping and instrumentation. In International Conference on Field-Programmable Logic and Applications (FPL), 2017.
  10. An algorithm for the machine calculation of complex fourier series. Mathematics of computation, 1965.
  11. Designing custom arithmetic data paths with flopoco. IEEE Design & Test of Computers, 2011.
  12. Type-directed scheduling of streaming accelerators. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2020.
  13. Gemmini: An agile systolic array generator enabling systematic evaluations of deep-learning architectures. arXiv preprint arXiv:1911.09925, 2019.
  14. Google Inc. Add capability to reuse expensive resources, 2023.
  15. Google Inc. XLS: Accelerated Hardware Design, 2023.
  16. Darkroom: Compiling high-level image processing code into hardware pipelines. 2014.
  17. Formal verification of high-level synthesis. In ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA), 2021.
  18. Paul Hudak. Modular domain specific languages and tools. In International Conference on Software Reuse (ICSR), 1998.
  19. Jane Street. HardCaml: Register transfer level hardware design in OCaml, 2022.
  20. Spatial: A language and compiler for application accelerators. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2018.
  21. Hygienic macro expansion. In ACM Conference on LISP and Functional Programming, 1986.
  22. HeteroCL: A multi-paradigm programming infrastructure for software-defined reconfigurable computing. In International Symposium on Field-Programmable Gate Arrays (FPGA), 2019.
  23. PyMTL: A unified framework for vertically integrated computer architecture research. In IEEE/ACM International Symposium on Microarchitecture (MICRO), 2014.
  24. CoSA: Integrated Verification for Agile Hardware Design. In Formal Methods in Computer-Aided Design (FMCAD), 2018.
  25. Computer generation of hardware for linear digital signal processing transforms. ACM Transactions on Design Automation of Electronic Systems, 2012.
  26. VM Milovanović and ML Petrović. A highly parametrizable chisel HCL generator of single-path delay feedback FFT processors. In International Conference on Microelectronics (MIEL). IEEE, 2019.
  27. Quantifying the cost and benefit of latency insensitive communication on FPGAs. In International Symposium on Field-Programmable Gate Arrays (FPGA), 2014.
  28. Predictable accelerator design with time-sensitive affine types. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2020.
  29. Modular hardware design with timeline types. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2023.
  30. Modular hardware design with timeline types. arXiv preprint arXiv:2304.10646, 2023.
  31. Rishiyur Nikhil. Bluespec System Verilog: Efficient, correct RTL from high level specifications. In Conference on Formal Methods and Models for Co-Design (MEMOCODE), 2004.
  32. Formal verification of the stall invariant property for latency-insensitive rtl modules. In Conference on Formal Methods and Models for Co-Design, 2023.
  33. Marshall C. Pease. An adaptation of the fast fourier transform for parallel processing. Journal of the ACM, 1968.
  34. Bambu: A modular framework for the high level synthesis of memory-intensive applications. In International Conference on Field-Programmable Logic and Applications (FPL), 2013.
  35. Dfiant: A dataflow hardware description language. In International Conference on Field-Programmable Logic and Applications (FPL). IEEE, 2017.
  36. Warehouse-scale video acceleration: co-design and deployment in the wild. In ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2021.
  37. Lightweight modular staging: A pragmatic approach to runtime code generation and compiled DSLs. In International Conference on Generative Programming and Component Engineering (GPCE), 2010.
  38. Avoiding game over: Bringing design to the next level. In Design Automation Conference (DAC), 2012.
  39. Multi-stage programming with explicit annotations. In ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM), 1997.
  40. Muralidaran Vijayaraghavan et al. Bounded dataflow networks and latency-insensitive circuits. In Conference on Formal Methods and Models for Co-Design. IEEE, 2009.
  41. A practical guide for SystemVerilog assertions. Springer Science & Business Media, 2005.
  42. AutoPilot: A platform-based ESL synthesis system. In High-Level Synthesis, pages 99–112. 2008.

Summary

We haven't generated a summary for this paper yet.