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.
Similar content being viewed by others
References
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
Bowen JP, He J (2001) An approach to the specification and verification of a hardware compilation scheme. J Supercomput 19(1): 23–29
Dimitrov J (2000) Interval temporal logic (ITL) on hardware–software co-design. In: Proceedings IEE event on hardware–software co-designem, IEE, London
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
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
Fiskio-Lasseter J (1998) A formal description of behavioural Verilog based on axiomatic semantics. Tech. Rep. TR-98-04, University of Oregon
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
Gordon MJC (2002) Relating event and trace semantics of hardware description languages. Computer J 45(1): 27–36
Hansen MR, Zhou C (1997) Duration calculus: logical foundations. Formal Aspects Comput 9(3): 283–330
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
He J (1999) Integrating variants of DC. Tech. Rep. 172, UNU/IIST, P.O. Box 3058, Macau SAR, China
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
He J, Xu Q (2000) An operational semantics of a simulator algorithm. Tech. Rep. 204, UNU/IIST, P.O. Box 3058, Macau SAR, China
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
Hoare CAR, He J (1998) Unifying theories of programming. Prentice Hall International Series in Computer Science, Englewood Cliffs, NJ
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
Hoare CAR, Jifeng H, Sampaio A (1993) Normal form approach to compiler design. Acta Inform 30: 701–739
IEEE (1995) IEEE standard hardware description language based on the Verilog hardware description language, vol IEEE Standard 1364–1995. IEEE
IEEE (2001) IEEE standard hardware description language based on the Verilog hardware description language, vol IEEE Standard 1364–2001. IEEE
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
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
Li Y, He J (2000) Formalising Verilog: operational semantics and bisimulation. Tech. Rep. 217, UNU/IIST, P.O. Box 3058, Macau SAR, China
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
Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems: specification. Springer, Berlin
Manna Z, Pnueli A (1995) Temporal verification of reactive systems: safety. Springer, Berlin
Moszkowski B (1986) Executing temporal logic programs. Cambridge University Press, London
Nissanke N (1997) Realtime systems. Prentice Hall International Series in Computer Science, Englewood Cliffs, NJ
Pace G (1998) Hardware design based on Verilog HDL. PhD thesis, Oxford University Computing Laboratory, UK
Pace G. (1999) Correct hardware compilation with Verilog HDL. Tech. Rep. Chalmers University of Technology, Sweden
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
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
Pandya P, Dang VH (1996) Duration Calculus with weakly monotonic time. Tech. Rep. 122, UNU/IIST, P.O. Box 3058, Macau SAR, China
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
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
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
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
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
Sampaio A (1997) An algebraic approach to compiler design. World Scientific, Cleveland, OH
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
Zhou C, Hansen MR (1996) Chopping a point. In: BCS FACS 7th refinement workshop, Springer-Verlag, Electronic Workshops in Computing
Zhou C, Hoare CAR, Ravn AP (1991) A calculus of durations. Inform Process Lett 40(5): 269–276
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
Zhu H (2005) Linking the semantics of a multithreaded discrete event simulation language. PhD thesis, London South Bank University
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
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
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
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
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
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-008-0069-9