Skip to content

An automated system validation framework to test high-speed SerDes protocols (e.g., Ethernet, PCIe) using open-source tools and technologies. The framework includes test sequences, data collection, and result analysis capabilities.

License

Notifications You must be signed in to change notification settings

muditbhargava66/serdes-validation-framework

Repository files navigation

SerDes Validation Framework

Banner

CI Lint License: MIT Python

This project provides a comprehensive framework for validating high-speed SerDes protocols. It includes tools for data collection, data analysis, instrument control, and running test sequences.

Features

  • Automated Data Collection: Gather data from lab instruments seamlessly.
  • Data Analysis and Visualization: Analyze and visualize collected data with ease.
  • Instrument Control via GPIB: Control lab instruments using the General Purpose Interface Bus (GPIB).
  • Customizable Test Sequences: Define and run customizable test sequences.

Installation

Prerequisites

  • Python 3.7 or higher
  • Git

Steps

  1. Clone the repository:

    git clone https://github.com/muditbhargava66/serdes-validation-framework.git
  2. Navigate to the project directory:

    cd serdes-validation-framework
  3. Create and activate a virtual environment (optional but recommended):

    python -m venv venv
    source venv/bin/activate   # On Windows, use `venv\Scripts\activate`
  4. Install the dependencies:

    pip install -r requirements.txt

Usage

Refer to the USAGE.md for detailed usage instructions.

Quick Start

  1. Run Data Collection Example:

    python examples/data_collection_example.py
  2. Run Data Analysis Example:

    python examples/data_analysis_example.py
  3. Run Instrument Control Example:

    python examples/instrument_control_example.py
  4. Run Test Sequence Example:

    python examples/test_sequence_example.py

Documentation

Detailed documentation is available in the docs/ folder:

Contributing

We welcome contributions from the community. Please read our contributing guide to get started.

Development Setup

  1. Install development dependencies:

    pip install -r requirements-dev.txt
  2. Run tests:

    python -m unittest discover -s tests
  3. Run linter:

    ruff check src tests
  4. Run Tox for testing across multiple environments:

    tox

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Project Structure

serdes-validation-framework/
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   └── workflows/
│       ├── ci.yml
│       ├── lint.yml
├── docs/
│   ├── api/
│   │   ├── index.md
│   │   └── usage.md
│   ├── images/
│   ├── tutorials/
│   │   └── getting_started.md
│   ├── CONTRIBUTING.md
│   ├── INSTALL.md
│   ├── USAGE.md
├── examples/
│   ├── test_sequence_example.py
│   ├── data_analysis_example.py
├── scripts/
│   ├── data_collection.py
│   ├── data_analysis.py
│   ├── instrument_control.py
│   ├── test_sequence.py
├── src/
│   ├── serdes_validation_framework/
│   │   ├── __init__.py
│   │   ├── data_collection/
│   │   │   ├── __init__.py
│   │   │   ├── data_collector.py
│   │   ├── data_analysis/
│   │   │   ├── __init__.py
│   │   │   ├── analyzer.py
│   │   ├── instrument_control/
│   │   │   ├── __init__.py
│   │   │   ├── controller.py
│   │   ├── test_sequence/
│   │   │   ├── __init__.py
│   │   │   ├── sequencer.py
├── tests/
│   ├── test_data_collection.py
│   ├── test_data_analysis.py
│   ├── test_instrument_control.py
│   ├── test_test_sequence.py
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
└── tox.ini

Community and Support

For any questions, issues, or contributions, please open an issue on the GitHub repository.


Enjoy using the SerDes Validation Framework! Contributions and feedback are always welcome.


About

An automated system validation framework to test high-speed SerDes protocols (e.g., Ethernet, PCIe) using open-source tools and technologies. The framework includes test sequences, data collection, and result analysis capabilities.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages