domain specific model computation using a lattice of coalgebras jennifer streb, garrin kimmell,...
TRANSCRIPT
Domain Specific Model Computation Using a Lattice of
CoalgebrasJennifer Streb, Garrin Kimmell, Nicolas
Frisby, and Perry AlexanderThe University of Kansas / ITTC
The SLDL “Revolution”
• Silicon devices with 100,000,000 plus gates
• Affectionally known as a “sea of gates”
• Design abstractions unchanged since RTL
• Simulation is becoming overwhelmed
• Systems growing exponentially, simulation power sub-linearly
• Parallelization is not working
• Heterogeneous, reconfigurable fabrics
• ASIC, FPGA, Analog, MEMS
• New materials
• Unpredictable interactions between components
• Classic system-level design problem!
The last thing we need is another language...
• Software Approaches• C/C++, SystemC, SpecC
• UML, SysML, XML
• Java, JBITS
• VHDL and Verilog Approaches• Verilog, Superlog, SystemVerilog, Verilog-A
• VHDL, VHDL 200x, VHDL-AMS, VHDL+, VHDL++, SUAVE
• New languages• BlueSpec, Lava, SAFL, Rosetta
• e, Sugar,<+>
• Solving tomorrow’s problems with yesterday’s technology...
... but we could sure use a new semantics
• Constraints and Performance Requirements
• Timing, Power, Area, Packaging
• Formal Semantics
• Precise, mathematical definition of a specification’s meaning
• Support for heterogeneity
• Digital, analog, MEMS, optical on the same substrate
• Complexity management
• True abstract specification tools
• Decrease reliance on simulation
• Enable static and formal analysis tools
• Don’t actually change anything...
The Rosetta Language and Semantics
• Support for concurrent, system-level design
• Domains for multiple models of computation
• Facet Algebra for composition of heterogeneous specifications
• Interactions for understanding cross-domain implications
• Formal Semantics
• Set theoretic, dependent type system with support for reflection
• Coalgebraic facet models
• Category theoretic model composition
• Heterogeneous, extensible domain system
• Model-of-computation definitions
• Lattice-based organization
• Elaboration of new syntax
Coalgebras for Model Semantics
• Ideal for non-terminating stateful systems
• Observations on abstract state
• Catamorphism defines operational behavior
• Well-defined transformation semantics
• Pullbacks and pushouts for specification composition
• Functors for specification transformation
• Hold state abstract and define multiple observations
AbstractState
Observations
Product
SharedSpecification
state_based signal_based
The Domain Lattice
static
continuous discrete
discrete_time
finite_state
continuous_time
frequency
RF digital sequential-machine
Unit-of-Semantics
Model-of-Computation
EngineeringDomains
CSP trace_based
synchronous
A Domain is a common vocabulary for specification
The Domain Lattice is a collection of interrelated domains
Functors in the Domain Lattice
static
continuous discrete
discrete-time
finite-state
continuous-time
frequency
RF digital sequential-machine
state-based signal-based Extensions
CSP trace-based
synchronous
Homomorphisms
General FunctorsAbstraction, Concretization
A Functor moves information between domains
• Establish soundness of abstractions and concretizations
• Sound integration of new domains
• Sound integration of synthesis and analysis tools
• (state_based,,Γ,static) is a Galois connection
• is the abstraction function
• Γ is the concretization function
• We can calculate when Γ is an extension
• No isomorphism unless ⋅ΓandΓ⋅
Correctness using Galois Connections
domain state_based::static is state_type::type; s::state_type; next(x::state_type)::state_type;beginend domain state_based;
domain security::state_based is riskType::type is posreal; p,nominal::riskType; activityType::subtype(real) is sel(x::real | x>=0.0 and x=<1.0); activity::activityTypebegin p’=activity*nominal+latent;end domain security;
Γ
Random Thoughts...
• Ignore the HDL community at your own peril...
• Timing is everything...
• Orthogonality is great, but not realistic...
• Formal semantics has saved us repeatedly...
• Are you interested in standards?
Current Status
• Rosetta Language Definition
• Standard in preparation for IEEE (currently 70% complete)
• Alexander, P., System Level Design with Rosetta, Morgan Kaufmann, Nov 2006
• Alexander, P., System Level Semantics and Rosetta, Morgan Kaufmann, Oct 2007 (in progress)
• http://www.sldl.org
• More Information
• Jacobs & Rutten, A Tutorial on (Co)Algebras and (Co)Induction, EATCS Bulletin 62, 1997
• Ehrig & Mahr, Fundamental of Algebraic Specification I: Equations and Initial Algebra Semantics, Springer-Verlag, 1985
• Davey & Priestly, Introduction to Lattices and Order, Cambridge University Press, 2002