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.
- 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.
- Python 3.7 or higher
- Git
-
Clone the repository:
git clone https://github.com/muditbhargava66/serdes-validation-framework.git
-
Navigate to the project directory:
cd serdes-validation-framework
-
Create and activate a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the dependencies:
pip install -r requirements.txt
Refer to the USAGE.md for detailed usage instructions.
-
Run Data Collection Example:
python examples/data_collection_example.py
-
Run Data Analysis Example:
python examples/data_analysis_example.py
-
Run Instrument Control Example:
python examples/instrument_control_example.py
-
Run Test Sequence Example:
python examples/test_sequence_example.py
Detailed documentation is available in the docs/
folder:
We welcome contributions from the community. Please read our contributing guide to get started.
-
Install development dependencies:
pip install -r requirements-dev.txt
-
Run tests:
python -m unittest discover -s tests
-
Run linter:
ruff check src tests
-
Run Tox for testing across multiple environments:
tox
This project is licensed under the MIT License. See the LICENSE file for more details.
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
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.