News

Abstractions in the Liberty Simulation Environment (LSE)

This page discusses the Liberty Simulation Environment (LSE) and the abstraction and modeling mechanisms presented here.

Flexible Model Of Concurrency

LSE uses a heterogeneous synchronous reactive model of computation. This model allows components to communicate within a clock cycle or across clock cycles thus not restricting component composition or granularity.

Optimizable/Analyzable Model of Concurrency

The heterogeneous synchronous reactive model allows the generation of a static schedule with a fixed number of invocations per component. This can greatly improve performance of generated simulators versus other equally flexible models of concurrency such as those used in VHDL or Verilog.

Data Abstraction

LSE's specification language, LSS, supports abstract data types and allows users to construct new types from these types, just like other imperative languages such as C. Thus, LSE supports abstract data types for its structural specification. LSE uses an augmented subset of C for the behavioral specification that still maintains the abstract data types.

Control Abstraction

LSE provides extra signals on every connection made between components that allow the system to infer default control semantics for back pressure based stalling. More information is available in this paper.

Parametric Polymorphism

LSE supports parametric polymorphism with full type-inference.

Component Computation Customization

LSE supports customization of components through the use of algorithmic parameters. More information on algorithmic parameters is available in this paper.

Parametric Scalability

LSE supports parametric scalability through the use of multiports. A multiport is an array of ports with the same name and data type that can be indexed via an integer. The number of connections to a multiport determines the total number of requests per cycle that can be made on that port.

Parametric Composition

LSE supports parametric composition via its specification language, the Liberty Structural Specification Language (LSS). LSS allows composite components to control their structure with the same variety of parameters available to primitive components.

Data Collection Abstraction

LSE supports a data collection mechanism that is separate from the model specification. Each component emits events which can be caught by a data collector and processed. Data collector can cooperatively produce statistics. More information regarding data collection will be available online shortly.

Compile-time Knowledge of Structure

LSS has been carefully designed to support a two-phase compilation system that exposes the model structure at compile time while still allowing algorithmic specification of structure. The language also has special evaluation semantics that allow structure to be used to infer parameters that control model substructures. This paper has more details.