Project Title: Simulation of Multi-Slave I2C Communication Protocol
Author: Sreekrishna K S
Software Used: eSim (FOSSEE), Ngspice, KiCad

Description:
This project simulates the physical layer of the I2C communication protocol using a Mixed-Signal architecture. It demonstrates:
1. Master-Slave communication using Open-Drain logic (NMOS + Pull-up resistors).
2. Multi-Slave Addressing (Slave 1 at 0x50, Slave 2 at 0x60).
3. Data Transmission verification (sending 0xAA and 0x55 payloads).
4. Protocol Start, Stop, ACK, and Idle states.

Files Included:
- Abstract_Sreekrishna_K_S.pdf : Final Project Report with waveforms and verification.
- I2C_Protocol_Simulation.proj : Main eSim project file.
- I2C_Protocol_Simulation.sch  : KiCad Schematic file.
- I2C_Protocol_Simulation.cir  : Ngspice Netlist.
- Simulation.csv               : Raw simulation data export.
- Simulation.png               : Graph output image.
- Simulation.wbk               : Simulation waveform configuration file.

Simulation Parameters:
- Analysis Type: Transient (TRAN)
- Stop Time: 900u  (Required to see full data transmission for both slaves)
- Step Time: 5n    (Recommended to eliminate voltage dip artifacts)

How to Run:
1. Open eSim.
2. Load the project "I2C_Protocol_Simulation".
3. Open the Schematic and click "Export Netlist" (Spice).
4. Click "Convert KiCad to Ngspice" (Simulate).
5. In the Simulator window, verify the 'Sim Parameters' match the values above.
6. Add signals "v(Master_SCL)" and "v(Master_SDA)" to visualize the transaction.