asm | ||
compilateur | ||
cross-Compiler | ||
interpreter | ||
tests | ||
vhdl | ||
.gitignore | ||
license | ||
out | ||
Projet_Système_Aurélia_LEJEUNE_Raphaël_LACROIX_.pdf | ||
README.md |
Projet-Systemes-Informatiques
LEJEUNE AURÉLIA - LACROIX RAPHAËL
This project was carried out as part of our computer engineering training. The aim of this project is to design a C compiler and a microprocessor, the former being thought with the latter in mind.
The compiler is based on a simplified version of the C language. It supports basic arithmetic operations (addition, subtraction, integer division, multiplication), Boolean operations, while loops and complex conditions. It has been coded using Lex, Yacc and C. The resulting assembly code and object code can be produced using the cross-assembler (itself coded in Python). An interpreter is available in a GUI version to follow assembly code execution step by step in memory.
Compilation
$ make vhdl
: compiles and run the compiler then convert its binary into VHDL format$ make cli-inter
: compiles and run the compiler then interprets its binary (GUI)$ make gui-inter
:compiles and run the compiler then interprets its binary
Microprocessor
The VHDL folder contains all the files needed to build our microprocessor. It also contains two test files, test_alu
and test_cpu
, for testing all ALU operations and simulating program execution, respectively.