ESL is electronic system level modelling using recent developments whereby transactional models of hardware components can be called directly by device driver code without modelling processor cores or busses. This is especially useful for architectural exploration where a designer can rapidly experiment with different SoC configurations in terms of how many busses, what is connected to which bus and how wide the various busses and caches are.
We look at the motivational history of ESL, looking at how firmware and behavioural models were two types of IP divided from each other despite being generally in a common language: C++. We discuss architectural exploration using mixed-abstraction models.
ESL uses procedure calls between components in a S/W (software) coding style whereas traditional hardware modelling has used shared variables to model nets that connect the components. We need, at times, to convert between these S/W and H/W styles. We will need some transactors. These are small software entities that converts between the two modelling styles.
On the course web site, there is information on two sets of practical experiments.
This practical takes an instruction set simulator of a nominal processor and then sub-class it in two different ways: one to make a conventional net-level model and the other to make an ESL version. The nominal processor is wired up in various different example configurations, some using mixed-abstraction modelling.
We concentrate on the blocking TLM modelling style and then extend this with timing annotations to give performance estimates that vary in accuracy according to the quantum setting.