| ### Create a new simulation project | ### Create a new simulation project | ||||
| What is a _simulation project_ ? It is a project to simulate the traces of _one_ binary program. It includes | |||||
| - A Python class which enable to generate traces in Python; | |||||
| What is a _simulation project_ ? It is a project to simulate the power traces of _one_ binary program. It includes | |||||
| - A Python class to manage the project; | |||||
| - The C program which will be compile to have the binary program for the analysis; | - The C program which will be compile to have the binary program for the analysis; | ||||
| - A linker script where the configuration of the simulated device are defined. | - A linker script where the configuration of the simulated device are defined. | ||||
| - Eventually output some data with ```printbyte```. | - Eventually output some data with ```printbyte```. | ||||
| - Indicate to ELMO tool that the simulation is finished with ```endprogram```. | - Indicate to ELMO tool that the simulation is finished with ```endprogram```. | ||||
| The file ```projectclass.py``` contains a subclass of ```SimulationProject```. It contains the description of the ```project.c``` file for the ELMO tool, in order to correctly realise the simulation. | |||||
| The file ```projectclass.py``` contains a subclass of ```SimulationProject```. It is the description of the ```project.c``` file for the ELMO tool, in order to correctly realise the simulation. It also provides methods to manage the simulation (see following sections). | |||||
| - The classmethod ```get_binary_path(cl)``` must return the relative path of the leakage binary (```project.c``` correctly compiled). | - The classmethod ```get_binary_path(cl)``` must return the relative path of the leakage binary (```project.c``` correctly compiled). | ||||
| - The method ```set_input_for_each_challenge(self, input, challenge)``` must write a ```challenge``` in ```input``` using the function ```write```. | - The method ```set_input_for_each_challenge(self, input, challenge)``` must write a ```challenge``` in ```input``` using the function ```write```. | ||||