Bachelor's Thesis
MASIC
MASIC is a complete computer system designed and built entirely from scratch over 4 years of development. The project encompasses the design of an original computer architecture, the implementation of a functional CPU, the development of software tools and the construction of dedicated hardware peripherals.
The goal of the project was to gain an in-depth understanding of how a modern computer is built by addressing every layer of the system: architecture, digital electronics, systems programming, development tools and hardware/software validation.
Back to ProjectsProject Overview
MASIC integrates an original 8-bit CPU with 16-bit addressing, a microprogrammed control unit, a custom video adapter, an assembler, an emulator and a software environment designed specifically for the platform.
The project required combining knowledge of computer architecture, digital electronics, low-level programming, compiler design, tool development and complex systems verification.
MASIC constitutes a complete technology ecosystem designed, implemented and validated end to end.
CPU and Architecture
An original CPU capable of running real software on physical hardware was designed and implemented. The architecture incorporates a custom ISA, a microprogrammed control unit, multiple addressing modes, a vectored interrupt system, subroutine support and a hardware stack.
The use of a microprogrammed control unit allowed the architecture to evolve iteratively, facilitating debugging, analysis of the processor's internal behaviour and experimentation with new functionalities.
This development required knowledge of processor design, sequential and combinational logic, architectural modelling, digital system debugging and validation on real hardware.
Video Adapter
A dedicated video peripheral capable of autonomously generating a VGA signal was developed, completely offloading video generation tasks from the CPU.
The design required implementing precise timing circuits, synchronization signal generation and a custom hardware interface integrated with the system's memory and I/O architecture, applying real-time systems design principles.
The result was a robust and functional subsystem that demonstrates the ability to design and validate complete digital systems that interact with external hardware in real time.
Assembler
MASIC includes a custom assembler developed specifically for the architecture. The tool provides symbolic labels, expression evaluation and a system of parameterized and nested macros to facilitate low-level software development.
The project involved designing and implementing a complete software tool, from language specification to machine code generation, applying principles of compiler design, text processing and command-line tool development.
The assembler demonstrates the ability to transform a theoretical architectural specification into a usable and maintainable development environment.
Emulator
An emulator capable of reproducing the behaviour of the complete system in software was developed, enabling programs to be executed and the architecture to be validated without relying on physical hardware.
The emulator models the CPU, memory map and system peripherals, providing an experimentation and debugging environment that enabled the parallel development of hardware and software.
Building this tool required system modelling, low-level programming, validation mechanism design and a deep understanding of hardware/software interaction.
Demonstrated abilities
MASIC is an end-to-end engineering project that demonstrates the ability to tackle complex problems, learn technologies independently and design complete solutions that integrate hardware and software.
The main areas covered include computer architecture, digital electronics, processor design, systems programming, tool development, system modelling and verification, complex problem solving, real-time systems and long-term technical project management.