ilang
1.1.4
ILAng: A Modeling and Verification Platform for SoCs
|
![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | Wrapper of the abstract parser so it is okay to do crazy stuff |
![]() ![]() ![]() ![]() | Type of term info that needs to be carried |
![]() ![]() ![]() ![]() | Class for parsing invariant |
![]() ![]() ![]() ![]() | This a base class, should not be instantiated |
![]() ![]() ![]() ![]() | This a base class, should not be instantiated |
![]() ![]() ![]() ![]() | String iterator |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | Type Bool or (_ BitVec) |
![]() ![]() ![]() ![]() | And item in declare-datatype |
![]() ![]() ![]() ![]() | Argument used in a function def |
![]() ![]() ![]() ![]() | Function |
![]() ![]() ![]() ![]() | Class that holds the whole file |
![]() ![]() ![]() ![]() | To parse an smt file this will only work on the yosys's generated smt and not on the assembled CHC |
![]() ![]() ![]() | The class for the Abstract Syntax Tree. An Ast object can be an expression or function definition (interpreted or uninterpreted) |
![]() ![]() ![]() | The class for expression, which is the basic type for variables, constraints, state update expressions, etc |
![]() ![]() ![]() | The function object for hashing Expr. The hash value is the id of the symbol, which is supposed to be unique |
![]() ![]() ![]() | Expression for constant values (bool, bv, or memory). Constant should be terminating nodes in the AST |
![]() ![]() ![]() | Expression for operations, e.g. AND, OR, ADD, etc. Operations are non-terminating nodes in the AST |
![]() ![]() ![]() | The wrapper for unary negate operation "-" |
![]() ![]() ![]() | The wrapper for unary not operation "!". (bool only) |
![]() ![]() ![]() | The wrapper for unary bit-wise complement "~". (bv only) |
![]() ![]() ![]() | The wrapper for binary logical AND operation "&" |
![]() ![]() ![]() | The wrapper for binary logical OR operation "|" |
![]() ![]() ![]() | The wrapper for binary logical XOR operation "^" |
![]() ![]() ![]() | The wrapper for left shifting a bit-vector |
![]() ![]() ![]() | The wrapper for arithmetic right shifting a bit-vector |
![]() ![]() ![]() | The wrapper for logical right shifting a bit-vector |
![]() ![]() ![]() | The wrapper for unsigned addition |
![]() ![]() ![]() | The wrapper for unsigned subtraction |
![]() ![]() ![]() | The wrapper for unsigned division |
![]() ![]() ![]() | The wrapper for signed remainder |
![]() ![]() ![]() | The wrapper for unsigned remainder |
![]() ![]() ![]() | The wrapper for signed remainder |
![]() ![]() ![]() | The wrapper for unsigned multiplication |
![]() ![]() ![]() | The class wrapper for binary comparison EQ "==" |
![]() ![]() ![]() | The class wrapper for binary comparison signed less than "<" |
![]() ![]() ![]() | The class wrapper for binary comparison signed greater than ">" |
![]() ![]() ![]() | The class wrapper for binary comparison unsigned less than |
![]() ![]() ![]() | The class wrapper for binary comparison unsigned greater than |
![]() ![]() ![]() | The class wrapper for memory load |
![]() ![]() ![]() | The class wrapper for memory store |
![]() ![]() ![]() | The class wrapper for bitvector concatenation |
![]() ![]() ![]() | The class wrapper for bitvector extraction |
![]() ![]() ![]() | The class wrapper for zero-extend |
![]() ![]() ![]() | The class wrapper for sign-extend |
![]() ![]() ![]() | The class wrapper for left-rotate |
![]() ![]() ![]() | The class wrapper for right-rotate |
![]() ![]() ![]() | The class wrapper for apply uninterpreted function |
![]() ![]() ![]() | The class wrapper for logical imply |
![]() ![]() ![]() | The class wrapper for if-then-else |
![]() ![]() ![]() | Expression for variables (bool, bv, or mem). Variable should be the terminating nodes in the AST |
![]() ![]() ![]() | The class for uninterpreted function |
![]() ![]() ![]() | The function object for hashing Func. The hash value is the id of the symbol, which is supposed to be unique |
![]() ![]() ![]() | The class for sort (type for expr, and the range/domain of functions) |
![]() ![]() ![]() | The class of Boolean Sort |
![]() ![]() ![]() | The class of bit-vector Sort |
![]() ![]() ![]() | The class of memory (array) Sort |
![]() ![]() ![]() | The base type for constant value |
![]() ![]() ![]() | The container for representing Boolean values |
![]() ![]() ![]() | The container for representing Bitvector values |
![]() ![]() ![]() | The container for representing memory (array) values |
![]() ![]() ![]() | Simplifier for AST trees by sharing nodes based on the hash value |
![]() ![]() ![]() | The class for the Instruction. An Instr object contains: |
![]() ![]() ![]() | The class of Instruction-Level Abstraction (ILA). An ILA contains: |
![]() ![]() ![]() | The basest type in the ILA structure. It can be either Ast, Instr, or InstrLvlAbs |
![]() ![]() ![]() | The symbol is the name and ID of an object. Every object has an unique symbol |
![]() ![]() ![]() | Instruction transition edge, includeing: |
![]() ![]() ![]() | Node for instruction-transition node, each node represent an instruction |
![]() ![]() ![]() | Instruction Sequencing does: |
![]() ![]() ![]() | Function object for rewriting Expr |
![]() ![]() ![]() | Function object for rewriting ILA tree |
![]() ![]() ![]() | Function object for flatten ILA tree |
![]() ![]() ![]() | Base class for unrolling ILA execution in different settings |
![]() ![]() ![]() | Application class for unrolling a path of instruction sequence |
![]() ![]() ![]() | Application class for unrolling the ILA as a monolithic transition system |
![]() ![]() ![]() | Base class for unrolling ILA execution in different settings |
![]() ![]() ![]() | Application class for unrolling a sequence of instructions |
![]() ![]() ![]() | Simplified bounded model checking engine for ILAs |
![]() ![]() ![]() | Refinement mapping defines how to map micro-architectural states to architectural states for comparison |
![]() ![]() ![]() | Relation mapping defines how arch states of two models are mapped, i.e., state mapping |
![]() ![]() ![]() | Compositional refinement relation defines a unit (element for the composition) of refinement relation, which specifies |
![]() ![]() ![]() | Generator for commutating diagram-based equivalence checking |
![]() ![]() ![]() | The wrapper of Sort (type for different AST nodes) |
![]() ![]() ![]() | The wrapper of Expr (e.g. state var, var relation, constant, etc) |
![]() ![]() ![]() | The wrapper of Func (uninterpreted function) |
![]() ![]() ![]() | The wrapper of Instr (instruction) |
![]() ![]() ![]() | The wrapper of InstrLvlAbs (ILA) |
![]() ![]() ![]() | The wrapper of generating z3::expr for verification |
![]() ![]() ![]() | Class of finding variable uses. So that we don't need to create pi variables for unused state variables. FIXME: currently there is no need to make a class for it, but in the future it is possible to use a hash table to avoid traverse the same sub-tree twice |
![]() ![]() ![]() | Class of traversing to avoid nested memory access in address |
![]() ![]() ![]() | Class of traversing to find the application of functions in an AST |
![]() ![]() ![]() | Base class for unrolling multiple ILAs. There are two ways of unrolling: ordered and unordered. Ordered unrolling assumes an ordered program template, despite that some may not exist in the final outcome. By default the state with the same name among ILAs is considered as the same shared state |
![]() ![]() ![]() | Class to remove and restore the host info This is useful as we want the ast with the same name generates the same z3 expr. This framework is based on an assumption that if we call z3 to create the variable of the same name multiple times they refer to the same one internally. FIXME: Need to check this assumption if we want to support other SMT solvers! |
![]() ![]() ![]() | The class for trace step (an instance of instruction) As in the unrolling, there may be multiple instances of the same instructions, so we have the trace steps |
![]() ![]() ![]() | The base class for memory models |
![]() ![]() ![]() | Class of TSO trace step |
![]() ![]() ![]() | Class of TSO |
![]() ![]() ![]() | Class of TSO trace step |
![]() ![]() ![]() | Class of TSO |
![]() ![]() ![]() | The class for converting an abstraction from the synthesis engine to an ILA model |
![]() ![]() ![]() | The class for serializing an ILA model to JSON format |
![]() ![]() ![]() | Class wrapper for the ILA portable Ser/Des interface |
![]() ![]() ![]() | The class for deserializing an ILA model from JSON format |
![]() ![]() ![]() | A class to generate SystemC simulator model from ILA model Example Use: |
![]() ![]() ![]() ![]() | TODO |
![]() ![]() ![]() ![]() | TODO |
![]() ![]() ![]() | The ILAtor class - for CMake-based SystemC simulator generation |
![]() ![]() ![]() | A templated class for wrapping z3 and smt-switch to provide a unified interface for different application, e.g., unroller |
![]() ![]() ![]() | The class for generating z3 expression from an ILA |
![]() ![]() ![]() | A pseudo-iterator for the key-search vector |
![]() ![]() ![]() | The container that support key search and index access |
![]() ![]() ![]() | A map for sets |
![]() ![]() ![]() | Result from executing |
![]() ![]() ![]() | A one-time class for initializing GLog |
![]() ![]() ![]() | The wrapper for enabling and disabling debug tags |
![]() ![]() ![]() | Class to convert port to signal info |
![]() ![]() ![]() | Class to convert reg to signal info |
![]() ![]() ![]() | Class to convert wire to signal info |
![]() ![]() ![]() | Class for Verilog analysis |
![]() ![]() ![]() | VerilogAnalyzerBase should never be instantiated, only used as a pointer type in class VerilogInfo |
![]() ![]() ![]() | Class to hold signal info |
![]() ![]() ![]() | The class that invoke the analyzer |
![]() ![]() ![]() | The class to convert a constant expr to an integer number |
![]() ![]() ![]() | Base class of VerilogGenerator |
![]() ![]() ![]() ![]() | Type of app func |
![]() ![]() ![]() ![]() | This is type of an individual write |
![]() ![]() ![]() ![]() | This is the write and its associated condition |
![]() ![]() ![]() ![]() | Type of read port |
![]() ![]() ![]() ![]() | Type of ite update unknown |
![]() ![]() ![]() ![]() | Structure to configure the verilog generator |
![]() ![]() ![]() ![]() | Type of write port |
![]() ![]() ![]() | Class of Verilog Generator |
![]() ![]() ![]() | Struct to store abstract memory |
![]() ![]() ![]() | Design statistics information |
![]() ![]() ![]() | Used in Verilog Verification Target Generation for dealing with interface directives |
![]() ![]() ![]() | Class to handle state-mapping directives in the refinement relations |
![]() ![]() ![]() | Class to extract counterexample from a vcd file |
![]() ![]() ![]() | Invariant object, it needs smt-info to parse |
![]() ![]() ![]() | Class to hold supplementary information |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | Class for modification to verilog |
![]() ![]() ![]() | VlgVerifTgtGenBase: do nothing, should not instantiate |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | Verilog Target Generation Configuration |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | Class to store (and generate) the problem for cosa |
![]() ![]() ![]() | Class to interface w. COSA |
![]() ![]() ![]() | Generating a target (just the invairant or for an instruction) |
![]() ![]() ![]() | |
![]() ![]() ![]() | Verilog Verification Target Generator – for JasperGold Unlike for cosa, we don't need a separate file although we do have some .. |
![]() ![]() ![]() | Class to store (and generate) the problem for Relchc (Z3) |
![]() ![]() ![]() | Class to interface w. Relchc Z3 |
![]() ![]() ![]() | Class to store (and generate) the problem for Yosys |
![]() ![]() ![]() | Class to interface w. Yosys |