Abstract
There is no such thing as high assurance without high assurance hardware. High assurance hardware is essential, because any and all high assurance systems ultimately depend on hardware that conforms to, and does not undermine, critical system properties and invariants. And yet, high assurance hardware development is stymied by the conceptual gap between formal methods and hardware description languages used by engineers. This paper presents ReWire, a functional programming language providing a suitable foundation for formal verification of hardware designs, and a compiler for that language that translates high-level, semantics-driven designs directly into working hardware. ReWire's design and implementation are presented, along with a case study in the design of a secure multicore processor, demonstrating both ReWire's expressiveness as a programming language and its power as a framework for formal, high-level reasoning about hardware systems.
- PicoBlaze 8-bit Embedded Microcontroller User Guide. Xilinx, Inc., 2011.Google Scholar
- C. Baaij and J. Kuper. Using rewriting to synthesize functional languages to digital circuits. In Trends in Fun. Prog., volume 8322 of LNCS, pages 17--33, 2014.Google Scholar
- P. Bjesse, K. Claessen, and M. Sheeran. Lava: Hardware design in Haskell. In ICFP '98, pages 174--184, 1998. Google Scholar
Digital Library
- D. Cock, G. Klein, and T. Sewell. Secure microkernels, state monads and scalable refinement. In Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics, TPHOLs '08, pages 167--182, 2008. Google Scholar
Digital Library
- S. A. Edwards. The challenges of synthesizing hardware from C-like languages. IEEE Design and Test of Computers, 23(5):375--386, 2006. Google Scholar
Digital Library
- S. A. Edwards. A finer functional Fibonacci on a fast FPGA. Technical Report CUCS-005-13, Department of Computer Science, Columbia University, February 2013.Google Scholar
- A. Erosa and L. J. Hendren. Taming control flow: A structured approach to eliminating goto statements. In In Proceedings of 1994 IEEE International Conference on Computer Languages, pages 229--240. IEEE Computer Society Press, 1994.Google Scholar
Cross Ref
- A. Fox and M. O. Myreen. A trustworthy monadic formalization of the ARMv7 instruction set architecture. In Proceedings of the First International Conference on Interactive Theorem Proving, ITP'10, pages 243--258, 2010. Google Scholar
Digital Library
- N. George, H. Lee, D. Novo, T. Rompf, K. Brown, A. Sujeeth, M. Odersky, K. Olukotun, and P. Ienne. Hardware system synthesis from domain-specific languages. In Proc. of 24th Int. Conf. on Field Prog. Logic and App. (FPL '14).Google Scholar
- A. Gill. Declarative FPGA circuit synthesis using Kansas Lava. In ERSA '11, 2011.Google Scholar
- A. Gill. Domain-specific languages and code synthesis using Haskell. ACM Queue, 12(4):30:30--30:43, Apr. 2014. Google Scholar
Digital Library
- C. E. Giménez. Un Calcul De Constructions Infinies Et Son Application A La Verification De Systemes Communicants. PhD thesis, L'École Normale Supérieure de Lyon, 1996.Google Scholar
- J. A. Goguen and J. Meseguer. Security policies and security models. In Proc. of the 1982 Symposium on Security and Privacy (SSP '82), pages 11--20. IEEE Computer Society Press, 1990.Google Scholar
- S. Goncharov and L. Schröder. A coinductive calculus for asynchronous side-effecting processes. In Proceedings of the 18th International Conference on Fundamentals of Computation Theory, pages 276--287, 2011. Google Scholar
Digital Library
- W. L. Harrison and J. Hook. Achieving information flow security through monadic control of effects. Journal of Computer Security, 17(5):599--653, 2009. Google Scholar
Digital Library
- W. L. Harrison and A. Procter. Cheap (but functional) threads. 44 pages. Accepted for publication in Higher-Order and Symbolic Computation.Google Scholar
- W. L. Harrison, A. Procter, and G. Allwein. The confinement problem in the presence of faults. In Proceedings of the 14th International Conference on Formal Engineering Methods, ICFEM'12, pages 182--197, 2012. Google Scholar
Digital Library
- M. P. Jones. Typing Haskell in Haskell. In Proceedings of the 1999 Haskell Workshop, pages 68--78, Paris, France, 21--24 Oct. 1999.Google Scholar
- H. Lee, K. Brown, A. Sujeeth, H. Chafi, T. Rompf, M. Odersky, and K. Olukotun. Implementing domain-specific languages for heterogeneous parallel computing. IEEE Micro, 31(5):42--53, Sept. 2011. ISSN 0272-1732. Google Scholar
Digital Library
- X. Li, M. Tiwari, J. K. Oberg, V. Kashyap, F. T. Chong, T. Sherwood, and B. Hardekopf. Caisson: a hardware description language for secure information flow. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '11, pages 109--120, New York, NY, USA, 2011. ACM. Google Scholar
Digital Library
- S. Liang. Modular Monadic Semantics and Compilation. PhD thesis, Yale University, 1998. Google Scholar
Digital Library
- E. Moggi. Notions of computation and monads. Information and Computation, 93(1):55--92, July 1991. Google Scholar
Digital Library
- G. J. Popek and R. P. Goldberg. Formal requirements for virtualizable third generation architectures. Commun. ACM, 17(7):412--421, July 1974. Google Scholar
Digital Library
- A. Procter. Semantics-Driven Design and Implementation of High-Assurance Hardware. PhD thesis, University of Missouri, 2014.Google Scholar
- A. Procter, W. L. Harrison, I. Graves, M. Becchi, and G. Allwein. Online supplement accompanying "Semantics-driven hardware design, implementation, and verification with ReWire". URL http://adamprocter.com/lctes15.Google Scholar
- A. Procter, W. L. Harrison, I. Graves, M. Becchi, and G. Allwein. Semantics-directed machine architecture in ReWire. In Proceedings of the International Conference on Field-Programmable Technology (ICFPT'13), pages 446--449, December 2013.Google Scholar
Cross Ref
- J. Reynolds. Definitional interpreters for higher order programming languages. ACM Conference Proceedings, pages 717--740, 1972. Google Scholar
Digital Library
- J. Rushby. Design and verification of secure systems. In Proceedings of the ACM Symposium on Operating System Principles, volume 15, pages 12--21, 1981. Google Scholar
Digital Library
- I. Sander and A. Jantsch. System modeling and transformational design refinement in ForSyDe. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 23(1):17--32, 2004. Google Scholar
Digital Library
- S. Sarkar, P. Sewell, F. Z. Nardelli, S. Owens, T. Ridge, T. Braibant, M. O. Myreen, and J. Alglave. The semantics of x86-CC multiprocessor machine code. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '09, pages 379--391, 2009. Google Scholar
Digital Library
- W. Taha and T. Sheard. MetaML and multi-stage programming with explicit annotations. Theoretical Computer Science, 248(12):211--242, 2000. Google Scholar
Digital Library
- D. Volpano, C. Irvine, and G. Smith. A sound type system for secure flow analysis. Journal of Computer Security, 4(2--3):167--187, 1996. Google Scholar
Digital Library
- M. Wilding, D. Greve, R. Richards, and D. Hardin. Formal verification of partition management for the AAMP7G microprocessor. In D. S. Hardin, editor, Design and Verification of Microprocessor Systems for High-Assurance Applications, pages 175--191. 2010.Google Scholar
Cross Ref
Index Terms
Semantics Driven Hardware Design, Implementation, and Verification with ReWire
Recommendations
Semantics Driven Hardware Design, Implementation, and Verification with ReWire
LCTES'15: Proceedings of the 16th ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2015 CD-ROMThere is no such thing as high assurance without high assurance hardware. High assurance hardware is essential, because any and all high assurance systems ultimately depend on hardware that conforms to, and does not undermine, critical system properties ...
Semantics and verification of a language for modelling hardware architectures
Formal methods and hybrid real-time systemsIn this paper we consider a high-level hardware description language Gezel, from which hardware can be synthesized through a translation to VHDL. The language is equipped with a simulator and supports exploration of hardware designs. The language has no ...
AES Embedded Hardware Implementation
AHS '07: Proceedings of the Second NASA/ESA Conference on Adaptive Hardware and SystemsThe paper presents a parallel reconfigurable hardware implementation of the AES cryptographic algorithm developed for an embedded application. This new methodology directly maps a design described in a high level language, Handel-C, to FPGA platforms. ...







Comments