# FPGA Quick Start

Do you want to try out the design without installing EDA tools and waiting for a long build??
Then you have come to the right place!

In addition to actually building the [FPGA from scratch](getting_started_fpga.md), this flow also supports booting the FPGA directly from a storage device.

## Golden Bitfile Release

To support the quick start flow, the OpenTitan repository will release known good bitstreams.
The cadence of such releases will vary and largely depend on amount of change from the previous release.
To find a release, please navigate to the OpenTitan [github page `releases` tab](https://github.com/lowRISC/opentitan/releases).
The OpenTitan releases are tagged with the [CalVer convention](https://calver.org), similar to [lowRISC-toolchains](https://github.com/lowRISC/lowrisc-toolchains/releases).


## NexysVideo Quick Start

NexysVideo FPGA boards support the ability to program the FPGA from a USB pen drive or a microSD card (see section 2.3 of [NexysVideo reference manual](https://reference.digilentinc.com/_media/reference/programmable-logic/nexys-video/nexysvideo_rm.pdf).

To do so, please follow the steps below: TODO
