Skip to content

This project implements fault simulation in digital circuits using Python. It efficiently detects faults using serial and parallel simulation methods, helping verify circuit reliability. Serial simulation checks faults one by one, while parallel simulation analyzes multiple faults simultaneously, improving speed and accuracy.

License

Notifications You must be signed in to change notification settings

Nehagolani19/Serial-and-Parallel-fault-simulation-using-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Serial Fault Simulation using Python

This project implements a Serial Fault Simulation Tool in Python, focusing on evaluating fault coverage in gate-level digital circuits. The simulation helps analyze the effectiveness of test patterns in detecting structural faults such as stuck-at faults using ISCAS-format netlists.


📘 Project Summary

  • Title: Serial Fault Simulation

  • Technology: Python (NumPy, CSV processing)

  • Authors:

    • Neha Golani (22BEC042)
    • Ditsa Patel (22BEC036)
  • Institution: Nirma University, Institute of Technology

  • Submitted for: Digital Testing and Verification Coursework


⚙️ Features

  • 🧪 Reads and processes ISCAS-format gate-level netlists
  • 🔁 Injects stuck-at-0 and stuck-at-1 faults
  • 🧠 Compares faulty vs. fault-free simulation to detect faults
  • 📊 Computes and reports fault coverage metrics
  • 🛠️ Implements fault equivalence and controllability analysis

🔬 Simulation Workflow

1. Initialization

  • Load ISCAS netlist (iscas.txt)
  • Define all possible faults (e.g., net_sa0, net_sa1)
  • Load predefined test patterns

2. Golden Run

  • Simulate the fault-free circuit
  • Store outputs as reference for fault detection

3. Fault Injection & Detection

  • Inject each fault one at a time
  • Run the circuit again with the same input
  • If output differs from golden run → fault detected

4. Result Aggregation

  • Compute:
    • Number of faults detected per pattern
    • Total fault coverage
    • Ineffective patterns that detect no new faults

📂 Files

  • iscas.txt — ISCAS-formatted circuit netlist
  • fault_simulation.py — Python script implementing fault simulation logic
  • Fault_simulation_Report.pdf — Project report including code, results, and analysis

📊 Key Outputs

  • Remaining Fault List: List of uncollapsed structural faults
  • Detected Faults: List and count of faults detected for each test pattern
  • ISCAS Dictionary: Internal signal mapping for each simulation run
  • Summary Statistics: Fault coverage rate, effective input vectors

📚 Concepts Applied

  • Serial Fault Simulation
  • Fault Equivalence
  • Controllability and Observability
  • Test Pattern Evaluation
  • Design for Testability (DFT)

🎯 Applications

  • Test pattern validation for digital ICs
  • Design and debug of ATPG systems
  • Academic exploration of fault modeling and simulation
  • Teaching tool for digital design testing

📄 License

This project is licensed under the MIT License .

About

This project implements fault simulation in digital circuits using Python. It efficiently detects faults using serial and parallel simulation methods, helping verify circuit reliability. Serial simulation checks faults one by one, while parallel simulation analyzes multiple faults simultaneously, improving speed and accuracy.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages