2026-02-12 17:26:28 +01:00
<!DOCTYPE html>
2026-02-16 11:10:48 +01:00
< html lang = "en" data-content_root = "../" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / > < meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > Gowin notes — openFPGALoader: universal utility for programming FPGA latest documentation< / title >
< link rel = "stylesheet" type = "text/css" href = "../_static/pygments.css?v=5ecbeea2" / >
< link rel = "stylesheet" type = "text/css" href = "../_static/basic.css?v=b08954a9" / >
< link rel = "stylesheet" type = "text/css" href = "../_static/alabaster.css?v=27fed22d" / >
< script src = "../_static/documentation_options.js?v=c6e86fd7" > < / script >
< script src = "../_static/doctools.js?v=fd6eb6e6" > < / script >
< script src = "../_static/sphinx_highlight.js?v=6ffebe34" > < / script >
2026-02-12 17:26:28 +01:00
< link rel = "index" title = "Index" href = "../genindex.html" / >
< link rel = "search" title = "Search" href = "../search.html" / >
< link rel = "next" title = "Intel notes" href = "intel.html" / >
2026-02-16 11:10:48 +01:00
< link rel = "prev" title = "Efinix notes" href = "efinix.html" / >
< link rel = "stylesheet" href = "../_static/custom.css" type = "text/css" / >
2026-02-12 17:26:28 +01:00
2026-02-16 11:10:48 +01:00
2026-02-12 17:26:28 +01:00
2026-02-16 11:10:48 +01:00
< / head > < body >
2026-02-12 17:26:28 +01:00
2026-02-16 11:10:48 +01:00
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
2026-02-12 17:26:28 +01:00
2026-02-16 11:10:48 +01:00
< div class = "body" role = "main" >
2026-02-12 17:26:28 +01:00
< section id = "gowin-notes" >
< span id = "gowin" > < / span > < h1 > Gowin notes< a class = "headerlink" href = "#gowin-notes" title = "Link to this heading" > ¶< / a > < / h1 >
< section id = "gowin-gw1n" >
< h2 > GOWIN GW1N< a class = "headerlink" href = "#gowin-gw1n" title = "Link to this heading" > ¶< / a > < / h2 >
< div class = "admonition note" >
< p class = "admonition-title" > Note< / p >
< ul class = "simple" >
< li > < p > Trenz TEC0117< / p > < / li >
< li > < p > Sipeed Tang Nano< / p > < / li >
< li > < p > Sipeed Tang Nano 4K< / p > < / li >
< li > < p > Honeycomb< / p > < / li >
< li > < p > RUNBER< / p > < / li >
< / ul >
< / div >
< p > < code class = "docutils literal notranslate" > < span class = "pre" > .fs< / span > < / code > file is the default format generated by < em > Gowin IDE< / em > , so nothing special must be done to generates this file.< / p >
< p > Since the same file is used for SRAM and Flash a CLI argument is used to specify the destination.< / p >
< section id = "flash-sram" >
< h3 > Flash SRAM< a class = "headerlink" href = "#flash-sram" title = "Link to this heading" > ¶< / a > < / h3 >
< p > with < code class = "docutils literal notranslate" > < span class = "pre" > -m< / span > < / code > :< / p >
< div class = "highlight-bash notranslate" > < div class = "highlight" > < pre > < span > < / span > openFPGALoader< span class = "w" > < / span > -m< span class = "w" > < / span > -b< span class = "w" > < / span > BOARD_NAME< span class = "w" > < / span > impl/pnr/*.fs
< / pre > < / div >
< / div >
< p > where < code class = "docutils literal notranslate" > < span class = "pre" > BOARD_NAME< / span > < / code > is:< / p >
< ul class = "simple" >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tec0117< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tangnano< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tangnano1k< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tangnano4k< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tangnano9k< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tangnano20k< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tangprimer20k< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > runber< / span > < / code > < / p > < / li >
< / ul >
< / section >
< section id = "flash" >
< h3 > Flash< a class = "headerlink" href = "#flash" title = "Link to this heading" > ¶< / a > < / h3 >
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< p > Only with Trenz TEC0117 and runber.< / p >
< / div >
< p > with < code class = "docutils literal notranslate" > < span class = "pre" > -f< / span > < / code > , file load:< / p >
< div class = "highlight-bash notranslate" > < div class = "highlight" > < pre > < span > < / span > openFPGALoader< span class = "w" > < / span > -f< span class = "w" > < / span > -b< span class = "w" > < / span > BOARD_NAME< span class = "w" > < / span > impl/pnr/*.fs
< / pre > < / div >
< / div >
< p > where < code class = "docutils literal notranslate" > < span class = "pre" > BOARD_NAME< / span > < / code > is:< / p >
< ul class = "simple" >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > tec0117< / span > < / code > < / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > runber< / span > < / code > < / p > < / li >
< / ul >
< p > It’ s possible to flash external SPI Flash (connected to MSPI) in bscan mode by using < code class = "docutils literal notranslate" > < span class = "pre" > --external-flash< / span > < / code > instead of
< code class = "docutils literal notranslate" > < span class = "pre" > -f< / span > < / code > .< / p >
< div class = "admonition note" >
< p class = "admonition-title" > Note< / p >
< p > Gowin’ s FPGA may fails to be detected if < strong > JTAGSEL_N< / strong > (pin 08 for < em > GW1N-4K< / em > ) is used as a GPIO.
To recover you have to pull down this pin (before power up) to recover JTAG interface (< em > UG292 - JTAGSELL_N section< / em > ).< / p >
< / div >
< / section >
< section id = "user-flash" >
< h3 > User Flash< a class = "headerlink" href = "#user-flash" title = "Link to this heading" > ¶< / a > < / h3 >
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< p > User Flash support is based on reverse engineering of the JTAG protocol. This functionality should be considered
experimental as it hasn’ t been thoroughly tested, and may in some circumstances destroy your device.< / p >
< / div >
< p > Gowin FPGA come with extra flash space that can be read and written from the programmable logic (“User Flash”). This
flash section can also be programmed via the JTAG interface:< / p >
< div class = "highlight-bash notranslate" > < div class = "highlight" > < pre > < span > < / span > openFPGALoader< span class = "w" > < / span > --write-flash< span class = "w" > < / span > /path/to/bitstream.fs< span class = "w" > < / span > --user-flash< span class = "w" > < / span > /path/to/flash.bin
< / pre > < / div >
< / div >
< / section >
< / section >
< / section >
< / div >
2026-02-16 11:10:48 +01:00
< / div >
< / div >
< div class = "sphinxsidebar" role = "navigation" aria-label = "Main" >
< div class = "sphinxsidebarwrapper" >
< h1 class = "logo" > < a href = "../index.html" > openFPGALoader: universal utility for programming FPGA< / a > < / h1 >
< search id = "searchbox" style = "display: none" role = "search" >
< div class = "searchformwrapper" >
< form class = "search" action = "../search.html" method = "get" >
< input type = "text" name = "q" aria-labelledby = "searchlabel" autocomplete = "off" autocorrect = "off" autocapitalize = "off" spellcheck = "false" placeholder = "Search" / >
< input type = "submit" value = "Go" / >
< / form >
2026-02-12 17:26:28 +01:00
< / div >
2026-02-16 11:10:48 +01:00
< / search >
< script > document . getElementById ( 'searchbox' ) . style . display = "block" < / script > < h3 > Navigation< / h3 >
< p class = "caption" role = "heading" > < span class = "caption-text" > User Guide< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "../guide/first-steps.html" > First steps with openFPGALoader< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../guide/install.html" > Installing openFPGALoader< / a > < / li >
2026-02-16 15:31:48 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../guide/troubleshooting.html" > Troubleshooting< / a > < / li >
2026-02-16 11:10:48 +01:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../guide/advanced.html" > Advanced usage of openFPGALoader< / a > < / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Compatibility< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "../compatibility/fpga.html" > FPGAs< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../compatibility/board.html" > Boards< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../compatibility/cable.html" > Cables< / a > < / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Vendors< / span > < / p >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference internal" href = "anlogic.html" > Anlogic notes< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "colognechip.html" > Cologne Chip notes< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "efinix.html" > Efinix notes< / a > < / li >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > Gowin notes< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "#gowin-gw1n" > GOWIN GW1N< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#flash-sram" > Flash SRAM< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#flash" > Flash< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#user-flash" > User Flash< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "intel.html" > Intel notes< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "lattice.html" > Lattice notes< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "xilinx.html" > Xilinx notes< / a > < / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Development< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "../todo.html" > To Do< / a > < / li >
< / ul >
< div class = "relations" >
< h3 > Related Topics< / h3 >
< ul >
< li > < a href = "../index.html" > Documentation overview< / a > < ul >
< li > Previous: < a href = "efinix.html" title = "previous chapter" > Efinix notes< / a > < / li >
< li > Next: < a href = "intel.html" title = "next chapter" > Intel notes< / a > < / li >
< / ul > < / li >
< / ul >
< / div >
2026-02-12 17:26:28 +01:00
< / div >
< / div >
2026-02-16 11:10:48 +01:00
< div class = "clearer" > < / div >
< / div >
< div class = "footer" >
© 2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by < a href = "https://www.sphinx-doc.org/" > Sphinx 9.1.0< / a >
& < a href = "https://alabaster.readthedocs.io" > Alabaster 1.0.0< / a >
|
< a href = "../_sources/vendors/gowin.rst.txt"
rel="nofollow">Page source< / a >
< / div >
< / body >
2026-02-12 17:26:28 +01:00
< / html >