Automated Test Portal

This page contains instructions for using the VDF FPGA Automated Test Portal.

Register as a contestant

Complete and e-mail in the official FPGA+Competition+Entry+Form as well as the information required for the test portal as described in Offered+Resources.

Set up

The portal is triggered by a push to the “vdf-portal” branch in a shared GitHub repository. Therefore you must share a GitHub repository and configure it with a WebHook into the test portal infrastructure on AWS.

Set up the build target in the git repository

The build target is configured by the vdf_portal_config.json file in the repository root path. We recommend pulling from the official repository ( to populate this file and update the Makefile targets for the test portal. If for some reason this is not practical please contact to discuss what changes are needed and how to best proceed.

Build Targets

Three targets are supported. It is recommended you step through these in order as they take increasing amounts of time to finish.

  1. "liveness" - <5min - test the tool flow and infrastructure

  2. "hw_emu" - ~10 min - run hardware emulation

  3. "synthesis" - 2-5 hours - run hardware emulation, synthesis, and bitstream generation

For all targets you should expect two emails, one when the job starts and one when it finishes. The second email will include instructions for retrieving the encrypted results.


Send your first job, create the ‘vdf-portal’ branch

  1. Edit vdf_portal_config.json, set target to to "liveness".

  2. Commit the vdf_portal_config.json file:

    • git commit vdf_portal_config.json

  3. Create the 'vdf-portal' branch:

    • git checkout -b vdf-portal

  4. Push the branch

    • git push origin vdf-portal

    • It is ok if you are told there are 0 deltas. The important message to look for is:

    • * [new branch] vdf-portal -> vdf-portal

  5. At this point you can change back to the master branch (or any other branch) and continue editing:

    • git checkout master


You should get two email messages, one when the job starts and one when it finishes.

For the "liveness" target look for info.txt in the results with information about the build.

Send subsequent jobs

This assumes work is done on the "master" branch but any branch will work. Just substitute your branch name for "master".

  1. On "master", make desired changes

  2. Change the target in vdf_portal_config.json to desired target (see above)

  3. Commit the changes using git commit

  4. Push the changes from the master branch to the vdf-portal branch. Note "-f" may be required if you push to this branch from multiple source branches. git push origin master:vdf-portal -f

  5. Note that each team can have only one outstanding job at a time. Any pushes that occur while a job is running will be ignored.