Skip to main content
Log in

Verification of FPGA Layout Generators in Higher-Order Logic

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

Manual placement of components is often used in FPGA circuit design in order to achieve better results than would be generated by automatic place and route algorithms. However, explicit placement of basic elements in parametrized hardware descriptions is tedious and error-prone. We describe a framework for the description and verification of parametrized hardware libraries with layout information, supporting both placing components with explicit symbolic coordinates and ‘neighboring’ placement directives such as A beside B. The correctness of generated layouts is established by proof in higher-order logic, automated by using the Isabelle theorem prover. We have developed an extensive library of theorems describing properties of layouts that are combined by our compiler and the theorem prover to achieve a high level of automation in the verification of complete circuit layouts, making formal verification of circuit layouts practical with minimal user effort. Our system has been used to verify layout descriptions for a range of circuits that have been mapped to Xilinx FPGAs.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. IEEE: IEEE standard VHDL language reference manual, IEEE Std. pp. 1076–1987. New York (1998)

  2. DS031: Virtex-II platform FPGAs: complete data sheet, Xilinx, Inc., San Jose, California (2005)

  3. Aagaard, M., Leeser, M., Windley, P.: Towards a super duper hardware tactic. In: HUG’93, vol. 780 of LNCS, pp. 400–412. Springer, Berlin Heidelberg New York (1993)

    Google Scholar 

  4. Aggoun, A., Beldiceanu, N.: Extending CHIP in order to solve complex scheduling and placement problems. J. Math. Comput. Model. 17(7), 57–73 (1993)

    Article  Google Scholar 

  5. Andraka, R.: A survey of CORDIC algorithms for FPGA based computers. In: Proceedings FPGA ’98: 6th ACM/SIGDA International Symposium on Field Programmable Gate Arrays, pp. 191–200. New York (1998)

  6. Beldiceanu, N., Carlsson, M.: Sweep as a generic pruning technique applied to the non-overlapping rectangles constraint. In: Walsh, T. (ed.) Proceedings Constraint Programming 2001, vol. 2239 of LNCS, pp. 377–391. Springer, Berlin Heidelberg New York (2001)

    Google Scholar 

  7. Bjesse, P., Claessen, K., Sheeran, M., Singh, S.: Lava: hardware design in Haskell. In: Proceedings ICFP ’98: 3rd ACM SIGPLAN International Conference on Functional Programming, pp. 174–184. New York (1998)

  8. Boulton, R., Gordon, A., Gordon, M., Harrison, J., Herbert, J., Tassel, J.V.: Experience with embedding hardware description languages in HOL. In: Stavridou, V., Melham, T.F., Boute, R.T. (eds.) IFIP TC10/WG 10.2 International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience, pp. 129–156. North-Holland, Amsterdam, The Netherlands (1992)

    Google Scholar 

  9. Boyer, R.S., Moore, J.S.: A Computational Logic. Academic, New York (1979)

    MATH  Google Scholar 

  10. Cyrluk, D., Rajan, S., Shankar, N., Srivas, M.K.: Effective theorem proving for hardware verification. In: Proceedings TPCD’94: 2nd International Conference on Theorem Provers in Circuit Design, pp. 203–222. Bad Herrenalb, Germany (1994)

    Google Scholar 

  11. Damas, L., Milner, R.: Principal type-schemes for functional programs. In: Proceedings POPL ’82: 9th ACM Symposium on Principles of Programming Languages, pp. 207–212. New York (1982)

  12. Guo, S., Luk, W.: An integrated system for developing regular array designs. J. Systems Archit. 47(3–4), 315–337 (2001)

    Article  Google Scholar 

  13. Hindley, R.: The principal type scheme of an object in combinatory logic. Trans. Am. Math. Soc. 146, 29–60 (1969)

    Article  MathSciNet  Google Scholar 

  14. Jones, G., Sheeran, M.: Circuit design in Ruby. In: Staunstrup, J. (ed.) Formal Methods for VLSI Design, pp. 13–70. North-Holland, Amsterdam, The Netherlands (1990)

    Google Scholar 

  15. Kaufmann, M., Moore, J.S.: An Industrial Strength Theorem Prover for a Logic Based on Common Lisp. IEEE Trans. Softw. Eng. 23(4), 203–213 (1997)

    Article  Google Scholar 

  16. Luk, W., McKeever, S.: Pebble: a language for parameterised and reconfigurable hardware design. In: Hartenstein, R.W., Keevallik, A. (eds.) Proceedings FPL’98: Field-Programmable Logic and Applications, vol. 1482 of LNCS, pp. 9–18. Springer, Berlin Heidelberg New York (1998)

    Google Scholar 

  17. Matthews, J., Launchbury, J.: Elementary microarchitecture algebra. In: Proceedings CAV’99: Computer Aided Verification, vol. 1633 of LNCS, pp. 288–300. Springer, Berlin Heidelberg New York (1999)

    Google Scholar 

  18. McKeever, S., Luk, W., Derbyshire, A.: Compiling hardware descriptions with relative placement information for parameterised libraries. In: Aagaard, M., O’Leary, J. (eds.) Proceedings FMCAD 2002: 4th International Conference on Formal Methods in Computer-Aided Design, vol. 2517 of LNCS, pp. 342–359. Springer, Berlin Heidelberg New York (2002)

    Google Scholar 

  19. McKeever, S., Luk, W., Derbyshire, A.: Towards verifying parametrised hardware libraries with relative placement information. In: Proceedings HICSS ’03: 36th Hawaii International Conference on System Sciences, p. 10. Washington, District of Columbia (2003)

  20. Melham, T.: Higher Order Logic and Hardware Verification, Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge, UK (1993)

    Google Scholar 

  21. Milner, R.: A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 348–375 (1978)

    Article  MathSciNet  Google Scholar 

  22. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL: A Proof Assistant for Higher-Order Logic, vol. 2283 of LNCS. Springer, Berlin Heidelberg New York (2002)

    Google Scholar 

  23. Paulson, L.C.: Isabelle: A Generic Theorem Prover, vol. 828 of LNCS. Springer, Berlin Heidelberg New York (1994)

    Google Scholar 

  24. Pell, O., Luk, W.: Quartz: a framework for correct and efficient reconfigurable design. In: Proceedings RECONFIG’05: International Conference on Reconfigurable Computing and FPGAs. IEEE Computer Society Press, Los Alamitos, California (2005a).

    Google Scholar 

  25. Pell, O., Luk, W.: Resolving quartz overloading. In: Borrione, D., Paul, W. (eds.) Proceedings CHARME’05: 13th Conference on Correct Hardware Design and Verification Methods, vol. 3725 of LNCS, pp. 380–383. Springer, Berlin Heidelberg New York (2005b)

    Chapter  Google Scholar 

  26. Rasmussen, O.: An embedding of Ruby in Isabelle. In: Slaney, J.K. (ed.) Proceedings CADE: 13th International Conference on Automated Deduction, vol. 1104 of LNCS, pp. 186–200. Springer, Berlin Heidelberg New York (1996)

    Google Scholar 

  27. Singh, S.: Death of the RLOC? In: Proceedings FCCM’00: 8th IEEE Symposium on Field-Programmable Custom Computing Machines, pp. 145–152. Washington, District of Columbia (2000)

  28. Thomes, D.E., Moorby, P.: The Verilog Hardware Description Language. Kluwer, Norwell, Massachusetts 3rd edn. (1996)

    Google Scholar 

  29. Wadler, P., Blott, S.: How to make ad hoc polymorphism less ad hoc. In: Proceedings POPL ’89: 16th ACM Symposium on Principles of Programming Languages, pp. 60–76. New York (1989)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Oliver Pell.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Pell, O. Verification of FPGA Layout Generators in Higher-Order Logic. J Autom Reasoning 37, 117–152 (2006). https://doi.org/10.1007/s10817-006-9039-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-006-9039-9

Key words

Navigation