The SL2 language itself is a
high-level description of the collection of hardware
resources (registers, memories and operators) without a
description on how they are connected. The connections
between these resources are implicitly described by the
instructions. The instructions also contain the
disassembly text that are made visible in the disassembly window of the debug
environment.
The SL2 language together with
the SL2 Compiler is a very efficient
technology to build and maintain a variety of
simulation models of processor cores and peripherals.
There are more languages to
describe the behavior of a processor. When these
languages describe a cycle-accurate model, it is
often required to divide every
instruction in parts and describe each part of the
instruction in each stage of the pipeline, separately.
This requires a lot of detailed modeling
on a lower level, which consumes more valuable time than using SL2.
SL2 is not an extension to C++, it is a modeling
language.
SL2 is unique, because the
instruction is executed as a whole and the behavior
within the pipeline is defined by the storage elements.
SL2 supports an easy method to define at what time the
actual storage elements will get the updated value.
Besides that,
it makes the ISS much faster, it also provides an easier programming model for
the SW engineer, as a halted instruction is always fully
executed and the fact that the execution will be valid
in the future, is made visible within the
simulator. |