The analysis of the case studies led naturally into the discussion on language issues. The following list of desirable NGHDL concepts was compiled:
Predicates
-higher-order predicates
-induction
-repetition
-regular-like expressions
Functions
-higher-order functions
-recursion/fixpoints
-recursive definition vs. explicit fixpoint operator
-induction
-repetition
-tabular definitions (definition by cases)
-handling totality
Types
-polymorphism
-subtypes
-dependent types
-static typing
Time
-axioms for time domains (e.g. Archimedian property)
-intervals/durations
-time abstraction
-retiming
-discrete/continuous
-temporal operators
Signals (Streams Waveforms)
-stable behaviour vs. changes
-delays
-discrete/continuous
States
-transition systems
Parallel Composition
-synchronous
-asynchronous
Data Structures
-basic set of predefined types
-type constructors
-algebraic laws
-induction
Aspects of Modeling
-space/layout
-current/voltage
-causality
Aspects of Design
-refinement
-reasoning (verification/deductive design)
-specification
-specification techniques
-design methodology
-synthesis
-specialisation
Concepts in the Large
-notion of component (module)
-interfaces as objects (signatures of components)
-relation interface/behaviour
-composition (sequential, parallel, feedback)
-parameterisation/specialisation
-abstraction/representation
User Support
-executability
-animatability
-prototyping
-simulation
-exit to VHDL-like languages