Contributing Guideο
How to contribute to the VHDL Digital Design Samples project.
Getting Startedο
Fork the repository on GitHub
Clone your fork locally
Set up the development environment
Create a feature branch for your changes
Make your changes following the coding standards
Test your changes thoroughly
Submit a pull request
Development Setupο
# Clone your fork
git clone https://github.com/shishir-dey/vhdl-samples.git
cd vhdl-samples
# Install GHDL
make install # macOS
# or sudo apt-get install ghdl # Ubuntu
# Install documentation dependencies (optional)
make docs-install
# Run tests to verify setup
make test
Coding Standardsο
VHDL Code Style:
Use lowercase with underscores for entity names
Use PascalCase for architecture names
Follow consistent indentation (2 spaces)
Include comprehensive comments
File Organization:
Place source files in appropriate
src/
subdirectoriesCreate corresponding test files in
test/
subdirectoriesFollow existing naming conventions
Testing Requirements:
Every new component must have a testbench
Tests should be comprehensive and self-checking
Use assertions for automatic verification
Submitting Changesο
Create a feature branch:
git checkout -b feature/new-component
Make your changes with clear, descriptive commits
Run tests:
make test
to ensure nothing breaksUpdate documentation if needed
Push to your fork:
git push origin feature/new-component
Open a pull request with a clear description
Pull Request Guidelinesο
Good Pull Requests:
Have a clear, descriptive title
Include a detailed description of changes
Reference any related issues
Include tests for new functionality
Update documentation when needed
Pass all existing tests
Review Process:
Maintainers will review your PR
Address any feedback promptly
Be patient - reviews may take time
Keep your PR up to date with the main branch
Types of Contributionsο
New Components:
Logic gates and basic circuits
Combinational logic designs
Sequential logic implementations
Complex digital systems
Documentation:
Component documentation
Tutorial improvements
API documentation
Example code
Testing:
New testbenches for existing components
Improved test coverage
Performance benchmarks
CI/CD improvements
Bug Fixes:
VHDL syntax errors
Simulation issues
Documentation corrections
Build system improvements
Code of Conductο
Be respectful and constructive in all interactions. This is an educational project aimed at helping people learn VHDL.