Skip to main content
Log in

From algebraic semantics to denotational semantics for Verilog

  • Original Article
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

This paper considers how the algebraic semantics for Verilog relates with its denotational semantics. Our approach is to derive the denotational semantics from the algebraic semantics. We first present the algebraic laws for Verilog. Every program can be expressed as a guarded choice that can model the execution of a program. In order to investigate the parallel expansion laws, a sequence is introduced, indicating which instantaneous action is due to which exact parallel component. A head normal form is defined for each program by using a locality sequence. We provide a strategy for deriving the denotational semantics based on head normal form. Using this strategy, the denotational semantics for every program can be calculated. Program equivalence can also be explored by using the derived denotational semantics.

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

Access this article

Subscribe and save

Springer+
from $39.99 /Month
  • Starting from 10 chapters or articles per month
  • Access and download chapters and articles from more than 300k books and 2,500 journals
  • Cancel anytime
View plans

Buy Now

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. Bowen JP (2000) Combining operational semantics, logic programming and literate programming in the specification and animation of the Verilog Hardware Description Language. In: Proceedings of IFM 2000: 2nd international conference on integrated formal methods, Springer-Verlag, Lecture Notes in Computer Science, vol 1945, pp 277–296

  2. Bowen JP, He J (2001) An approach to the specification and verification of a hardware compilation scheme. J Supercomput 19(1): 23–29

    Article  MATH  Google Scholar 

  3. Dimitrov J (2000) Interval temporal logic (ITL) on hardware–software co-design. In: Proceedings IEE event on hardware–software co-designem, IEE, London

  4. Dimitrov J (2001) Operational semantics for Verilog. In: Proceedings of the APSEC 2001: 8th Asia-Pacific software engineering conference, IEEE Computer Society Press, pp 161–168

  5. Dimitrov J (2002) Developing semantics of Verilog HDL in formal compositional design of mixed hardware/software system. PhD thesis, Software Technology Research Laboratory, De Montfort University

  6. Fiskio-Lasseter J (1998) A formal description of behavioural Verilog based on axiomatic semantics. Tech. Rep. TR-98-04, University of Oregon

  7. Gordon MJC (1995) The semantic challenge of Verilog HDL. In: Proceedings of the tenth annual IEEE symposium on logic in computer science, IEEE Computer Society Press, pp 136–145

  8. Gordon MJC (2002) Relating event and trace semantics of hardware description languages. Computer J 45(1): 27–36

    Article  Google Scholar 

  9. Hansen MR, Zhou C (1997) Duration calculus: logical foundations. Formal Aspects Comput 9(3): 283–330

    Article  MATH  Google Scholar 

  10. He J (1994) From CSP to hybrid systems. In: Roscoe AW (ed) A classical mind: essays in honour of C. A. R. Hoare. Prentice-Hall International Series in Computer Science, pp 171–189

  11. He J (1999) Integrating variants of DC. Tech. Rep. 172, UNU/IIST, P.O. Box 3058, Macau SAR, China

  12. He J, Xu Q (1999) Advanced features of duration calculus and their application in sequential hybrid programs. In: Millennial Perspectives in Computer Science: Proc. 1999 Oxford-Microsoft Symposium in honour of Sir Tony Hoare, Palgrave, Cornerstones of Computing series, pp 133–148, also published in Formal Aspect of Computing, 15(1):84–99, 2003, and as Technical Report 171, UNU/IIST, Macau SAR, China

  13. He J, Xu Q (2000) An operational semantics of a simulator algorithm. Tech. Rep. 204, UNU/IIST, P.O. Box 3058, Macau SAR, China

  14. He J, Zhu H (2000) Formalising Verilog. In: Proceedings of the ICECS 2000: IEEE international conference on electronics, circuits and systems, IEEE Computer Society Press, pp 412–415

  15. Hoare CAR, He J (1998) Unifying theories of programming. Prentice Hall International Series in Computer Science, Englewood Cliffs, NJ

    Google Scholar 

  16. Hoare CAR, Hayes IJ, He J, Morgan C, Roscoe AW, Sanders JW, Sørensen IH, Spivey JM, Sufrin B (1987) Laws of programming. Commun ACM 38(8): 672–686

    Article  Google Scholar 

  17. Hoare CAR, Jifeng H, Sampaio A (1993) Normal form approach to compiler design. Acta Inform 30: 701–739

    Article  MATH  MathSciNet  Google Scholar 

  18. IEEE (1995) IEEE standard hardware description language based on the Verilog hardware description language, vol IEEE Standard 1364–1995. IEEE

  19. IEEE (2001) IEEE standard hardware description language based on the Verilog hardware description language, vol IEEE Standard 1364–2001. IEEE

  20. Iyoda J, He J (2001) A Prolog prototype for the synthesis of Verilog. Tech. Rep. 237, UNU/IIST, P.O. Box 3058, Macau SAR, China

  21. Iyoda J, Jifeng H (2001) Towards an algebraic synthesis of Verilog. In: Proceedings of the ERSA 2001: the 2001 international conference on engineering of reconfigurable systems and algorithms

  22. Li Y, He J (2000) Formalising Verilog: operational semantics and bisimulation. Tech. Rep. 217, UNU/IIST, P.O. Box 3058, Macau SAR, China

  23. Manna Z, Pnueli A (1981) Verification of concurrent programs: the temporal framework. In: Boyer RS, Moore JS(eds) The correctness problem in computer science. Academic Press, New York, pp 215–273

    Google Scholar 

  24. Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems: specification. Springer, Berlin

    Google Scholar 

  25. Manna Z, Pnueli A (1995) Temporal verification of reactive systems: safety. Springer, Berlin

    Google Scholar 

  26. Moszkowski B (1986) Executing temporal logic programs. Cambridge University Press, London

    Google Scholar 

  27. Nissanke N (1997) Realtime systems. Prentice Hall International Series in Computer Science, Englewood Cliffs, NJ

    Google Scholar 

  28. Pace G (1998) Hardware design based on Verilog HDL. PhD thesis, Oxford University Computing Laboratory, UK

  29. Pace G. (1999) Correct hardware compilation with Verilog HDL. Tech. Rep. Chalmers University of Technology, Sweden

    Google Scholar 

  30. Pace G (2000) The semantics of Verilog using transition system combinators. In: Proceedings of the FMCAD 2000: 3rd international conference on formal methods for computer-aided-design, Austin, Texas, Springer-Verlag, Lecture Notes in Computer Science, vol 1954, pp 405–422

  31. Pace G, He J (1998) Formal reasoning with Verilog HDL. In: Proceedings of FTH 98: formal technique for hardware and hardware-like systems, Maastrand, Sweden

  32. Pandya P, Dang VH (1996) Duration Calculus with weakly monotonic time. Tech. Rep. 122, UNU/IIST, P.O. Box 3058, Macau SAR, China

  33. Qin S, He J (2000) An algebraic approach to hardware/software partitioning. In: Proceedings of the 7th IEEE international conference on electronics, circuits and systems, Lebanon

  34. Qin S, Qiu Z, He J (2001) Constructing hardware/software interface using protocol converters. In: Proceedings of the APAQS 2001: 2nd Asia-Pacific conference on quality software, IEEE Computer Society Press, pp 141–148

  35. Qin S, He J, Qiu Z, Zhang N (2002) Hardware/software partitioning in Verilog. In: Proceedings of the ICFEM 2002: 4th international conference on formal engineering methods, Springer-Verlag. Lecture Notes in Computer Science, vol 2495

  36. Qin S, Chin WN, He J, Qiu Z (2006) From statecharts to Verilog: a formal approach to hardware/software co-specification. Innov Syst Softw Eng 2(1): 17–38

    Article  Google Scholar 

  37. Ravn AP (1995) Design of embedded real-time computing systems (dr. techn. dissertation). Tech. Rep. ID-TR 1995-170, Department of Computer Science, Technical University of Denmark, Bld. 344, DK-2800 Lyngby

  38. Sampaio A (1997) An algebraic approach to compiler design. World Scientific, Cleveland, OH

    MATH  Google Scholar 

  39. Schneider G, Qiwen X (1998) Towards a formal semantics of Verilog using Duration Calculus. In: Proceedings of the 5th international symposium of formal techniques in real-time and fault-tolerant systems, Springer-Verlag, Lecture Notes in Computer Science, vol 1486, pp 282–293

  40. Zhou C, Hansen MR (1996) Chopping a point. In: BCS FACS 7th refinement workshop, Springer-Verlag, Electronic Workshops in Computing

  41. Zhou C, Hoare CAR, Ravn AP (1991) A calculus of durations. Inform Process Lett 40(5): 269–276

    Article  MATH  MathSciNet  Google Scholar 

  42. Zhou C, Ravn AP, Hansen MR (1993) An extended Duration Calculus for hybrid systems. In: Proceedings of the hybrid systems, Springer-Verlag, Lecture Notes in Computer Science, vol 739, pp 36–59

  43. Zhu H (2005) Linking the semantics of a multithreaded discrete event simulation language. PhD thesis, London South Bank University

  44. Zhu H, He J (2000) A semantics of Verilog using Duration Calculus. In: Proceedings of the international conference on software: theory and practice, pp 421–432

  45. Zhu H, Bowen JP, He J (2001a) Deriving operational semantics from denotational semantics for Verilog. In: Proceedings of the APSEC 2001: 8th Asia-Pacific software engineering conference, IEEE Computer Society Press, pp 177–184

  46. Zhu H, Bowen JP, He J (2001b) From operational semantics to denotational semantics for Verilog. In: Proceedings of the CHARME 2001: 11th advanced research working conference on correct hardware design and verification methods, Springer-Verlag, Lecture Notes in Computer Science, vol 2144, pp 449–464

  47. Zhu H, Bowen JP, He J (2002) Soundness, completeness and non-redundancy of operational semantics for Verilog based on denotational semantics. In: Proc. ICFEM 2002: 4th International Conference on Formal Engineering Methods, Springer-Verlag, Lecture Notes in Computer Science, vol 2495, pp 600–612

  48. Zhu H, He J, Bowen JP (2006) From operational semantics to denotational semantics for Verilog. In: Proceedings of the ICECCS 2006: 11th IEEE international conference on engineering of complex computer systems, IEEE Computer Society Press, pp 139–151

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Huibiao Zhu.

Additional information

A short version of this paper appeared in Proc. ICECCS 2006: 11th IEEE International Conference on Engineering of Complex Computer Systems [48]. This work is partially supported by the National Basic Research Program of China (No. 2005CB321904), the National High Technology Research and Development Program of China (No. 2007AA010302) and the National Natural Science Foundation of China (No. 90718004). Jonathan Bowen is a visiting professor at King’s College London and an emeritus professor at London South Bank University.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Zhu, H., He, J. & Bowen, J.P. From algebraic semantics to denotational semantics for Verilog. Innovations Syst Softw Eng 4, 341–360 (2008). https://doi.org/10.1007/s11334-008-0069-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-008-0069-9

Keywords

Profiles

  1. Jonathan P. Bowen