Get Involved

A first step might be to use and explore PoC and it’s infrastructure in an own project. Moreover, we encurage to read our online help which covers all aspects from quickstart example up to detailed IP core documentation. While using PoC, you might discover issues or missing feature. Please report them as listed below. If you have an interresting project, please send us feedback or get listed on our Who uses PoC? page.

If you are more familiar with PoC and it’s components, you might start asking youself how components internally work. Please read our more advanced topics in the online help, read our inline source code comments or start a discussion on Gitter to ask us directly.

Now you should be very familiar with our work and you might be interessted in developing own components and contribute them to the main repository. See the next section for detailed instructions on the Git fork, commit, push and pull-request flow.

PoC ships some third-party libraries. If you are interessted in getting your library or components shipped as part of PoC or as a third-party components, please contact us.

Report a Bug

Please report issues of any kind in our Git provider’s issue tracker. This allows us to categorize issues into groups and assign developers to them. You can track the issue’s state and see how it’s getting solved. All enhancements and feature requests are tracked on GitHub at GitHub Issues.

Feature Request

Please report missing features of any kind. We are allways looking forward to provide a full feature set. Please use our Git provider’s issue tracker to report enhancements and feature requests, so you can track the request’s status and implementation. All enhancements and feature requests are tracked on GitHub at GitHub Issues.

Talk to us on Gitter

You can chat with us on Gitter in our Giiter Room VLSI-EDA/PoC. You can use Gitter for free with your existing GitHub or Twitter account.

Contributers License Agreement

We require all contributers to sign a Contributor License Agreement (CLA). If you don’t know whatfore a CLA is needed and how it prevents legal issues on both sides, read this short blog post. PoC uses the Apache Contributor License Agreement to match the Apache License 2.0.

So to get started, sign the Contributor License Agreement (CLA) at You can authenticate yourself with an existing GitHub account.

Contribute to PoC

Contibuting source code via Git is very easy. We don’t provide direct write access to our repositories. Git offers the fork and pull-request philosophy, which means: You clone a repository, provide your changes in your own repository and notify us about outstanding changes via a pull-requests. We will then review your proposed changes and integrate them into our repository.

Steps 1 to 5 are done only once for setting up a forked repository.

1. Fork the PoC Repository

Git repositories can be cloned on a Git provider’s server. This procedure is called forking. This allows Git providers to track the repository’s network, check if repositories are related to each other and notify if pull-requests are available.

Fork our repository VLSI-EDA/PoC on GitHub into your or your’s Git organisation’s account. In the following the forked repository is referenced as <username>/PoC.

2. Clone the new Fork

Clone this new fork to your machine. See Downloading via Git clone for more details on how to clone PoC. If you have already cloned PoC, then you can setup the new fork as an additional remote. You should set VLSI-EDA/PoC as fetch target and the new fork <username>/PoC as push target.

Shell Commands for Cloning:

cd GitRoot
git clone --recursive "ssh://<username>/PoC.git" PoC
cd PoC
git remote rename origin github
git remote add upstream "ssh://"
git fetch --prune --tags

Shell Commands for Editing an existing Clone:

cd PoCRoot
git remote rename github upstream
git remote add github "ssh://<username>/PoC.git"
git fetch --prune --tags

These commands work for Git submodules too.

3. Checkout a Branch

Checkout the master or release branch and maybe stash outstanding changes.

cd PoCRoot
git checkout release

4. Setup PoC for Developers

Run PoC’s configuration routines and setup the developer tools.

cd PoCRoot
.\PoC.ps1 configure git

5. Create your own master Branch

Each developer has his own master branch. So create one and check it out.

cd PoCRoot
git branch <username>/master
git checkout <username>/master
git push github <username>/master

If PoC’s branches are moving forward, you can update your own master branch by merging changes into your branch.

6. Create your Feature Branch

Each new feature or bugfix is developed on a feature branch. Examples for branch names:

Branch name Description
bugfix-utils Fixes a bug in utils.vhdl.
docs-spelling Fixes the documentation.
spi-controller A new SPI controller implementation.
cd PoCRoot
git branch <username>/<feature>
git checkout <username>/<feature>
git push github <username>/<feature>

7. Commit and Push Changes

Commit your porposed changes onto your feature branch and push all changes to GitHub.

cd PoCRoot
# git add ....
git commit -m "Fixed a bug in function bounds() in utils.vhdl."
git push github <username>/<feature>

8. Create a Pull-Request

Go to your forked repository and klick on “Compare and Pull-Request” or go to our PoC repository and create a new pull request.

If this is your first Pull-Request, you need to sign our Contributers License Agreement (CLA).

9. Keep your master up-to-date



Give us Feedback

Please send us feedback about the PoC documentation, our IP cores or your user story on how you use PoC.

List of Contributers

Contributor [1] Contact E-Mail
Genßler, Paul
Köhler, Steffen
Lehmann, Patrick [2];
Preußer, Thomas B. [2];
Reichel, Peter;
Schirok, Jan
Voß, Jens
Zabel, Martin [2]


[1]In alphabetical order.
[2](1, 2, 3) Maintainer.