Coder Social home page Coder Social logo

complete-asic-flow-of-i2c-communication-protocol's Introduction

Complete ASIC Flow of I2C Communication Protocol

Project Overview

This project involves the complete ASIC flow for designing an I2C communication protocol. The I2C (Inter-Integrated Circuit) protocol is a multi-master, bi-directional serial bus, designed to facilitate efficient data exchange between devices over short distances. It is particularly useful for applications requiring occasional communication among multiple devices.

This project was conducted as part of the Advanced Digital Design course (CND 211) under the supervision of the CND Team at AUC. The objective was to create a complete layout (GDS) of an I2C protocol using the provided PDK under nominal supply conditions.

Table of Contents

  1. Project Description
  2. Tasks Performed
  3. Assessment Criteria
  4. Directory Structure
  5. Setup and Usage
  6. Contributors

Project Description

The I2C protocol is a robust standard for short-distance communication between devices. It includes features like multi-master capability, collision detection, and arbitration to prevent data corruption. The design process for this project followed the standard ASIC flow, encompassing synthesis, verification, timing analysis, floorplanning, power planning, clock tree synthesis, placement and routing, and the final layout design.

Tasks Performed

  1. Synthesis of the Code: Conversion of the high-level design into a gate-level representation.
  2. Formal Verification: Ensuring the synthesized design matches the high-level specification.
  3. Static Timing Analysis: Verifying the timing of the design to ensure it meets required constraints.
  4. Creating the Floorplan and Power Plan: Defining the layout and power distribution for the design.
  5. Clock Tree Synthesis: Designing the clock distribution network to ensure proper timing.
  6. Placing and Routing the Core: Physically placing the components and routing the connections.
  7. Design and Layout of the Pad Ring: Designing the interface for inputs and outputs.
  8. Signoff and Final Complete Layout: Final verification and preparation of the layout for fabrication.

Assessment Criteria

The project was assessed based on the following criteria:

  • Synthesis of the code
  • Performing static timing analysis
  • Performing Formal Verification
  • Creating the floor plan
  • Creating the power plan
  • Performing clock tree synthesis
  • Placing and routing
  • Design and layout of the pad ring with all the required inputs and outputs
  • Signoff and final complete layout

Directory Structure

.
├── docs/                 # Documentation files
├── src/                  # Source files for I2C design
├── synthesis/            # Synthesis reports and scripts
├── verification/         # Formal verification files and reports
├── timing_analysis/      # Static timing analysis reports
├── floorplan/            # Floorplanning files and scripts
├── power_plan/           # Power planning files and scripts
├── clock_tree/           # Clock tree synthesis files
├── place_and_route/      # Placement and routing files and reports
├── pad_ring/             # Pad ring design files
├── signoff/              # Final layout files and signoff reports
└── README.md             # This readme file

Setup and Usage

  1. Clone the repository:

    git clone https://github.com/habibhossam/Complete-ASIC-Flow-of-I2C-communication-protocol.git
    cd Complete-ASIC-Flow-of-I2C-communication-protocol
  2. Environment Setup: Ensure you have the necessary tools installed for ASIC design, including synthesis, verification, and timing analysis tools. Consult the docs/setup.md for detailed setup instructions.

  3. Running the Flow: Each major step in the ASIC flow has corresponding scripts and instructions in its directory. Follow the README files within each directory for step-by-step instructions.

  4. Generating the Final Layout: After performing all the steps, the final layout (GDS) can be found in the signoff directory. This file is ready for fabrication.

Contributors

complete-asic-flow-of-i2c-communication-protocol's People

Contributors

habibhossam avatar adham-m0 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.