deploy: 916af57d283b7e861dc721632e79a59abc1dd8b5

This commit is contained in:
trabucayre 2026-02-16 10:10:48 +00:00
parent 3e69beea2a
commit 6dc9366859
77 changed files with 4827 additions and 5241 deletions

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1 # Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 5ee66292091ff32fcf1050388dd8a28f config: 83bd936c301cd0b925123da4791576cd
tags: 645f666f9bcd5a90fca523b33c5a78b7 tags: 645f666f9bcd5a90fca523b33c5a78b7

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
.doctrees/index.doctree Normal file

Binary file not shown.

BIN
.doctrees/todo.doctree Normal file

Binary file not shown.

BIN
.doctrees/vendors/anlogic.doctree vendored Normal file

Binary file not shown.

BIN
.doctrees/vendors/colognechip.doctree vendored Normal file

Binary file not shown.

BIN
.doctrees/vendors/efinix.doctree vendored Normal file

Binary file not shown.

BIN
.doctrees/vendors/gowin.doctree vendored Normal file

Binary file not shown.

BIN
.doctrees/vendors/intel.doctree vendored Normal file

Binary file not shown.

BIN
.doctrees/vendors/lattice.doctree vendored Normal file

Binary file not shown.

BIN
.doctrees/vendors/xilinx.doctree vendored Normal file

Binary file not shown.

View File

@ -7,7 +7,7 @@ Linux
===== =====
Debian/Ubuntu Debian/Ubuntu
---------- -------------
openFPGALoader is available in the default repositories: openFPGALoader is available in the default repositories:
@ -194,6 +194,70 @@ Alternatively, if you want to build it by hand:
Windows Windows
======= =======
MSYS2 (Native Build)
--------------------
openFPGALoader can be installed via MSYS2:
.. code-block:: bash
pacman -S mingw-w64-ucrt-x86_64-openFPGALoader
Cross-compilation from Linux
----------------------------
openFPGALoader can be cross-compiled for Windows from Linux using MinGW-w64.
The build system will automatically download and build the required dependencies
(libusb, libftdi).
**Prerequisites (Debian/Ubuntu):**
.. code-block:: bash
sudo apt install \
mingw-w64 \
cmake \
pkg-config \
p7zip-full
**Prerequisites (Fedora/RHEL/Rocky):**
.. code-block:: bash
sudo dnf install \
mingw64-gcc \
mingw64-gcc-c++ \
mingw64-zlib \
mingw64-zlib-static \
cmake \
p7zip \
p7zip-plugins
**Build:**
.. code-block:: bash
git clone https://github.com/trabucayre/openFPGALoader
cd openFPGALoader
mkdir build-win64
cd build-win64
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-x86_64-w64-mingw32.cmake ..
cmake --build . --parallel
The resulting ``openFPGALoader.exe`` will be a statically-linked executable
that only depends on standard Windows system DLLs (KERNEL32, msvcrt, WS2_32).
**Optional: Strip debug symbols to reduce size:**
.. code-block:: bash
x86_64-w64-mingw32-strip openFPGALoader.exe
**Cross-compilation options:**
- ``-DCROSS_COMPILE_DEPS=OFF`` - Disable automatic dependency download (use system libraries)
- ``-DENABLE_CMSISDAP=ON`` - Enable CMSIS-DAP support (requires manually providing hidapi)
Common Common
====== ======

View File

@ -1,7 +1,7 @@
.. _troubleshooting: .. _troubleshooting:
Troubleshooting Troubleshooting Guide
############### #####################
I installed openFPGALoader but it says `command not found` when I try to launch it I installed openFPGALoader but it says `command not found` when I try to launch it
================================================================================== ==================================================================================

View File

@ -41,11 +41,11 @@ bin file load
openFPGALoader --cable jlink_base -m /somewhere/project/outflow/*.bin openFPGALoader --cable jlink_base -m /somewhere/project/outflow/*.bin
hex file flash hex file flash
------------- --------------
Example for ti60f225. Example for ti60f225.
NOTE: JTAG chains with more than one device (eg --index-chain) are currently not supported for writing to SPI flash NOTE: JTAG chains with more than one device (eg --index-chain) are currently not supported for writing to SPI flash
.. code-block:: bash .. code-block:: bash
openFPGALoader --cable jlink_base --fpga-part ti60f225 -f /somewhere/project/outflow/*.hex openFPGALoader --cable jlink_base --fpga-part ti60f225 -f /somewhere/project/outflow/*.hex

663
_static/alabaster.css Normal file
View File

@ -0,0 +1,663 @@
/* -- page layout ----------------------------------------------------------- */
body {
font-family: Georgia, serif;
font-size: 17px;
background-color: #fff;
color: #000;
margin: 0;
padding: 0;
}
div.document {
width: 940px;
margin: 30px auto 0 auto;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 220px;
}
div.sphinxsidebar {
width: 220px;
font-size: 14px;
line-height: 1.5;
}
hr {
border: 1px solid #B1B4B6;
}
div.body {
background-color: #fff;
color: #3E4349;
padding: 0 30px 0 30px;
}
div.body > .section {
text-align: left;
}
div.footer {
width: 940px;
margin: 20px auto 30px auto;
font-size: 14px;
color: #888;
text-align: right;
}
div.footer a {
color: #888;
}
p.caption {
font-family: inherit;
font-size: inherit;
}
div.relations {
display: none;
}
div.sphinxsidebar {
max-height: 100%;
overflow-y: auto;
}
div.sphinxsidebar a {
color: #444;
text-decoration: none;
border-bottom: 1px dotted #999;
}
div.sphinxsidebar a:hover {
border-bottom: 1px solid #999;
}
div.sphinxsidebarwrapper {
padding: 18px 10px;
}
div.sphinxsidebarwrapper p.logo {
padding: 0;
margin: -10px 0 0 0px;
text-align: center;
}
div.sphinxsidebarwrapper h1.logo {
margin-top: -10px;
text-align: center;
margin-bottom: 5px;
text-align: left;
}
div.sphinxsidebarwrapper h1.logo-name {
margin-top: 0px;
}
div.sphinxsidebarwrapper p.blurb {
margin-top: 0;
font-style: normal;
}
div.sphinxsidebar h3,
div.sphinxsidebar h4 {
font-family: Georgia, serif;
color: #444;
font-size: 24px;
font-weight: normal;
margin: 0 0 5px 0;
padding: 0;
}
div.sphinxsidebar h4 {
font-size: 20px;
}
div.sphinxsidebar h3 a {
color: #444;
}
div.sphinxsidebar p.logo a,
div.sphinxsidebar h3 a,
div.sphinxsidebar p.logo a:hover,
div.sphinxsidebar h3 a:hover {
border: none;
}
div.sphinxsidebar p {
color: #555;
margin: 10px 0;
}
div.sphinxsidebar ul {
margin: 10px 0;
padding: 0;
color: #000;
}
div.sphinxsidebar ul li.toctree-l1 > a {
font-size: 120%;
}
div.sphinxsidebar ul li.toctree-l2 > a {
font-size: 110%;
}
div.sphinxsidebar input {
border: 1px solid #CCC;
font-family: Georgia, serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox {
margin: 1em 0;
}
div.sphinxsidebar .search > div {
display: table-cell;
}
div.sphinxsidebar hr {
border: none;
height: 1px;
color: #AAA;
background: #AAA;
text-align: left;
margin-left: 0;
width: 50%;
}
div.sphinxsidebar .badge {
border-bottom: none;
}
div.sphinxsidebar .badge:hover {
border-bottom: none;
}
/* To address an issue with donation coming after search */
div.sphinxsidebar h3.donation {
margin-top: 10px;
}
/* -- body styles ----------------------------------------------------------- */
a {
color: #004B6B;
text-decoration: underline;
}
a:hover {
color: #6D4100;
text-decoration: underline;
}
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: Georgia, serif;
font-weight: normal;
margin: 30px 0px 10px 0px;
padding: 0;
}
div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
div.body h2 { font-size: 180%; }
div.body h3 { font-size: 150%; }
div.body h4 { font-size: 130%; }
div.body h5 { font-size: 100%; }
div.body h6 { font-size: 100%; }
a.headerlink {
color: #DDD;
padding: 0 4px;
text-decoration: none;
}
a.headerlink:hover {
color: #444;
background: #EAEAEA;
}
div.body p, div.body dd, div.body li {
line-height: 1.4em;
}
div.admonition {
margin: 20px 0px;
padding: 10px 30px;
background-color: #EEE;
border: 1px solid #CCC;
}
div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fafafa;
}
div.admonition p.admonition-title {
font-family: Georgia, serif;
font-weight: normal;
font-size: 24px;
margin: 0 0 10px 0;
padding: 0;
line-height: 1;
}
div.admonition p.last {
margin-bottom: 0;
}
dt:target, .highlight {
background: #FAF3E8;
}
div.warning {
background-color: #FCC;
border: 1px solid #FAA;
}
div.danger {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.error {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.caution {
background-color: #FCC;
border: 1px solid #FAA;
}
div.attention {
background-color: #FCC;
border: 1px solid #FAA;
}
div.important {
background-color: #EEE;
border: 1px solid #CCC;
}
div.note {
background-color: #EEE;
border: 1px solid #CCC;
}
div.tip {
background-color: #EEE;
border: 1px solid #CCC;
}
div.hint {
background-color: #EEE;
border: 1px solid #CCC;
}
div.seealso {
background-color: #EEE;
border: 1px solid #CCC;
}
div.topic {
background-color: #EEE;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre, tt, code {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
font-size: 0.9em;
}
.hll {
background-color: #FFC;
margin: 0 -12px;
padding: 0 12px;
display: block;
}
img.screenshot {
}
tt.descname, tt.descclassname, code.descname, code.descclassname {
font-size: 0.95em;
}
tt.descname, code.descname {
padding-right: 0.08em;
}
img.screenshot {
-moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #EEE;
}
table.docutils {
border: 1px solid #888;
-moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #EEE;
}
table.docutils td, table.docutils th {
border: 1px solid #888;
padding: 0.25em 0.7em;
}
table.field-list, table.footnote {
border: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
table.footnote {
margin: 15px 0;
width: 100%;
border: 1px solid #EEE;
background: #FDFDFD;
font-size: 0.9em;
}
table.footnote + table.footnote {
margin-top: -15px;
border-top: none;
}
table.field-list th {
padding: 0 0.8em 0 0;
}
table.field-list td {
padding: 0;
}
table.field-list p {
margin-bottom: 0.8em;
}
/* Cloned from
* https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
*/
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
table.footnote td.label {
width: .1px;
padding: 0.3em 0 0.3em 0.5em;
}
table.footnote td {
padding: 0.3em 0.5em;
}
dl {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding: 0;
}
dl dd {
margin-left: 30px;
}
blockquote {
margin: 0 0 0 30px;
padding: 0;
}
ul, ol {
/* Matches the 30px from the narrow-screen "li > ul" selector below */
margin: 10px 0 10px 30px;
padding: 0;
}
pre {
background: unset;
padding: 7px 30px;
margin: 15px 0px;
line-height: 1.3em;
}
div.viewcode-block:target {
background: #ffd;
}
dl pre, blockquote pre, li pre {
margin-left: 0;
padding-left: 30px;
}
tt, code {
background-color: #ecf0f3;
color: #222;
/* padding: 1px 2px; */
}
tt.xref, code.xref, a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fff;
}
a.reference {
text-decoration: none;
border-bottom: 1px dotted #004B6B;
}
a.reference:hover {
border-bottom: 1px solid #6D4100;
}
/* Don't put an underline on images */
a.image-reference, a.image-reference:hover {
border-bottom: none;
}
a.footnote-reference {
text-decoration: none;
font-size: 0.7em;
vertical-align: top;
border-bottom: 1px dotted #004B6B;
}
a.footnote-reference:hover {
border-bottom: 1px solid #6D4100;
}
a:hover tt, a:hover code {
background: #EEE;
}
@media screen and (max-width: 940px) {
body {
margin: 0;
padding: 20px 30px;
}
div.documentwrapper {
float: none;
background: #fff;
margin-left: 0;
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
}
div.sphinxsidebar {
display: block;
float: none;
width: unset;
margin: 50px -30px -20px -30px;
padding: 10px 20px;
background: #333;
color: #FFF;
}
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
div.sphinxsidebar h3 a {
color: #fff;
}
div.sphinxsidebar a {
color: #AAA;
}
div.sphinxsidebar p.logo {
display: none;
}
div.document {
width: 100%;
margin: 0;
}
div.footer {
display: none;
}
div.bodywrapper {
margin: 0;
}
div.body {
min-height: 0;
min-width: auto; /* fixes width on small screens, breaks .hll */
padding: 0;
}
.hll {
/* "fixes" the breakage */
width: max-content;
}
.rtd_doc_footer {
display: none;
}
.document {
width: auto;
}
.footer {
width: auto;
}
.github {
display: none;
}
ul {
margin-left: 0;
}
li > ul {
/* Matches the 30px from the "ul, ol" selector above */
margin-left: 30px;
}
}
/* misc. */
.revsys-inline {
display: none!important;
}
/* Hide ugly table cell borders in ..bibliography:: directive output */
table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
border: none;
/* Below needed in some edge cases; if not applied, bottom shadows appear */
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
/* relbar */
.related {
line-height: 30px;
width: 100%;
font-size: 0.9rem;
}
.related.top {
border-bottom: 1px solid #EEE;
margin-bottom: 20px;
}
.related.bottom {
border-top: 1px solid #EEE;
}
.related ul {
padding: 0;
margin: 0;
list-style: none;
}
.related li {
display: inline;
}
nav#rellinks {
float: right;
}
nav#rellinks li+li:before {
content: "|";
}
nav#breadcrumbs li+li:before {
content: "\00BB";
}
/* Hide certain items when printing */
@media print {
div.related {
display: none;
}
}
img.github {
position: absolute;
top: 0;
border: 0;
right: 0;
}

476
_static/base-stemmer.js Normal file
View File

@ -0,0 +1,476 @@
// @ts-check
/**@constructor*/
BaseStemmer = function() {
/** @protected */
this.current = '';
this.cursor = 0;
this.limit = 0;
this.limit_backward = 0;
this.bra = 0;
this.ket = 0;
/**
* @param {string} value
*/
this.setCurrent = function(value) {
this.current = value;
this.cursor = 0;
this.limit = this.current.length;
this.limit_backward = 0;
this.bra = this.cursor;
this.ket = this.limit;
};
/**
* @return {string}
*/
this.getCurrent = function() {
return this.current;
};
/**
* @param {BaseStemmer} other
*/
this.copy_from = function(other) {
/** @protected */
this.current = other.current;
this.cursor = other.cursor;
this.limit = other.limit;
this.limit_backward = other.limit_backward;
this.bra = other.bra;
this.ket = other.ket;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.in_grouping = function(s, min, max) {
/** @protected */
if (this.cursor >= this.limit) return false;
var ch = this.current.charCodeAt(this.cursor);
if (ch > max || ch < min) return false;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false;
this.cursor++;
return true;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_in_grouping = function(s, min, max) {
/** @protected */
while (this.cursor < this.limit) {
var ch = this.current.charCodeAt(this.cursor);
if (ch > max || ch < min)
return true;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0)
return true;
this.cursor++;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.in_grouping_b = function(s, min, max) {
/** @protected */
if (this.cursor <= this.limit_backward) return false;
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) return false;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false;
this.cursor--;
return true;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_in_grouping_b = function(s, min, max) {
/** @protected */
while (this.cursor > this.limit_backward) {
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) return true;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return true;
this.cursor--;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.out_grouping = function(s, min, max) {
/** @protected */
if (this.cursor >= this.limit) return false;
var ch = this.current.charCodeAt(this.cursor);
if (ch > max || ch < min) {
this.cursor++;
return true;
}
ch -= min;
if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) == 0) {
this.cursor++;
return true;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_out_grouping = function(s, min, max) {
/** @protected */
while (this.cursor < this.limit) {
var ch = this.current.charCodeAt(this.cursor);
if (ch <= max && ch >= min) {
ch -= min;
if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) != 0) {
return true;
}
}
this.cursor++;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.out_grouping_b = function(s, min, max) {
/** @protected */
if (this.cursor <= this.limit_backward) return false;
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) {
this.cursor--;
return true;
}
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) {
this.cursor--;
return true;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_out_grouping_b = function(s, min, max) {
/** @protected */
while (this.cursor > this.limit_backward) {
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch <= max && ch >= min) {
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) != 0) {
return true;
}
}
this.cursor--;
}
return false;
};
/**
* @param {string} s
* @return {boolean}
*/
this.eq_s = function(s)
{
/** @protected */
if (this.limit - this.cursor < s.length) return false;
if (this.current.slice(this.cursor, this.cursor + s.length) != s)
{
return false;
}
this.cursor += s.length;
return true;
};
/**
* @param {string} s
* @return {boolean}
*/
this.eq_s_b = function(s)
{
/** @protected */
if (this.cursor - this.limit_backward < s.length) return false;
if (this.current.slice(this.cursor - s.length, this.cursor) != s)
{
return false;
}
this.cursor -= s.length;
return true;
};
/**
* @param {Among[]} v
* @return {number}
*/
this.find_among = function(v)
{
/** @protected */
var i = 0;
var j = v.length;
var c = this.cursor;
var l = this.limit;
var common_i = 0;
var common_j = 0;
var first_key_inspected = false;
while (true)
{
var k = i + ((j - i) >>> 1);
var diff = 0;
var common = common_i < common_j ? common_i : common_j; // smaller
// w[0]: string, w[1]: substring_i, w[2]: result, w[3]: function (optional)
var w = v[k];
var i2;
for (i2 = common; i2 < w[0].length; i2++)
{
if (c + common == l)
{
diff = -1;
break;
}
diff = this.current.charCodeAt(c + common) - w[0].charCodeAt(i2);
if (diff != 0) break;
common++;
}
if (diff < 0)
{
j = k;
common_j = common;
}
else
{
i = k;
common_i = common;
}
if (j - i <= 1)
{
if (i > 0) break; // v->s has been inspected
if (j == i) break; // only one item in v
// - but now we need to go round once more to get
// v->s inspected. This looks messy, but is actually
// the optimal approach.
if (first_key_inspected) break;
first_key_inspected = true;
}
}
do {
var w = v[i];
if (common_i >= w[0].length)
{
this.cursor = c + w[0].length;
if (w.length < 4) return w[2];
var res = w[3](this);
this.cursor = c + w[0].length;
if (res) return w[2];
}
i = w[1];
} while (i >= 0);
return 0;
};
// find_among_b is for backwards processing. Same comments apply
/**
* @param {Among[]} v
* @return {number}
*/
this.find_among_b = function(v)
{
/** @protected */
var i = 0;
var j = v.length
var c = this.cursor;
var lb = this.limit_backward;
var common_i = 0;
var common_j = 0;
var first_key_inspected = false;
while (true)
{
var k = i + ((j - i) >> 1);
var diff = 0;
var common = common_i < common_j ? common_i : common_j;
var w = v[k];
var i2;
for (i2 = w[0].length - 1 - common; i2 >= 0; i2--)
{
if (c - common == lb)
{
diff = -1;
break;
}
diff = this.current.charCodeAt(c - 1 - common) - w[0].charCodeAt(i2);
if (diff != 0) break;
common++;
}
if (diff < 0)
{
j = k;
common_j = common;
}
else
{
i = k;
common_i = common;
}
if (j - i <= 1)
{
if (i > 0) break;
if (j == i) break;
if (first_key_inspected) break;
first_key_inspected = true;
}
}
do {
var w = v[i];
if (common_i >= w[0].length)
{
this.cursor = c - w[0].length;
if (w.length < 4) return w[2];
var res = w[3](this);
this.cursor = c - w[0].length;
if (res) return w[2];
}
i = w[1];
} while (i >= 0);
return 0;
};
/* to replace chars between c_bra and c_ket in this.current by the
* chars in s.
*/
/**
* @param {number} c_bra
* @param {number} c_ket
* @param {string} s
* @return {number}
*/
this.replace_s = function(c_bra, c_ket, s)
{
/** @protected */
var adjustment = s.length - (c_ket - c_bra);
this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket);
this.limit += adjustment;
if (this.cursor >= c_ket) this.cursor += adjustment;
else if (this.cursor > c_bra) this.cursor = c_bra;
return adjustment;
};
/**
* @return {boolean}
*/
this.slice_check = function()
{
/** @protected */
if (this.bra < 0 ||
this.bra > this.ket ||
this.ket > this.limit ||
this.limit > this.current.length)
{
return false;
}
return true;
};
/**
* @param {number} c_bra
* @return {boolean}
*/
this.slice_from = function(s)
{
/** @protected */
var result = false;
if (this.slice_check())
{
this.replace_s(this.bra, this.ket, s);
result = true;
}
return result;
};
/**
* @return {boolean}
*/
this.slice_del = function()
{
/** @protected */
return this.slice_from("");
};
/**
* @param {number} c_bra
* @param {number} c_ket
* @param {string} s
*/
this.insert = function(c_bra, c_ket, s)
{
/** @protected */
var adjustment = this.replace_s(c_bra, c_ket, s);
if (c_bra <= this.bra) this.bra += adjustment;
if (c_bra <= this.ket) this.ket += adjustment;
};
/**
* @return {string}
*/
this.slice_to = function()
{
/** @protected */
var result = '';
if (this.slice_check())
{
result = this.current.slice(this.bra, this.ket);
}
return result;
};
/**
* @return {string}
*/
this.assign_to = function()
{
/** @protected */
return this.current.slice(0, this.limit);
};
};

View File

@ -1,12 +1,5 @@
/* /*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme. * Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/ */
/* -- main layout ----------------------------------------------------------- */ /* -- main layout ----------------------------------------------------------- */
@ -115,15 +108,11 @@ img {
/* -- search page ----------------------------------------------------------- */ /* -- search page ----------------------------------------------------------- */
ul.search { ul.search {
margin: 10px 0 0 20px; margin-top: 10px;
padding: 0;
} }
ul.search li { ul.search li {
padding: 5px 0 5px 20px; padding: 5px 0;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
} }
ul.search li a { ul.search li a {
@ -222,7 +211,7 @@ table.modindextable td {
/* -- general body styles --------------------------------------------------- */ /* -- general body styles --------------------------------------------------- */
div.body { div.body {
min-width: 360px; min-width: inherit;
max-width: 800px; max-width: 800px;
} }
@ -752,14 +741,6 @@ abbr, acronym {
cursor: help; cursor: help;
} }
.translated {
background-color: rgba(207, 255, 207, 0.2)
}
.untranslated {
background-color: rgba(255, 207, 207, 0.2)
}
/* -- code displays --------------------------------------------------------- */ /* -- code displays --------------------------------------------------------- */
pre { pre {

View File

@ -1 +0,0 @@
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1f1f;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#262626;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #404040}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

1
_static/custom.css Normal file
View File

@ -0,0 +1 @@
/* This file intentionally left blank. */

View File

@ -1,12 +1,5 @@
/* /*
* doctools.js
* ~~~~~~~~~~~
*
* Base JavaScript utilities for all Sphinx HTML documentation. * Base JavaScript utilities for all Sphinx HTML documentation.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/ */
"use strict"; "use strict";
@ -66,7 +59,7 @@ const Documentation = {
Object.assign(Documentation.TRANSLATIONS, catalog.messages); Object.assign(Documentation.TRANSLATIONS, catalog.messages);
Documentation.PLURAL_EXPR = new Function( Documentation.PLURAL_EXPR = new Function(
"n", "n",
`return (${catalog.plural_expr})` `return (${catalog.plural_expr})`,
); );
Documentation.LOCALE = catalog.locale; Documentation.LOCALE = catalog.locale;
}, },
@ -96,7 +89,7 @@ const Documentation = {
const togglerElements = document.querySelectorAll("img.toggler"); const togglerElements = document.querySelectorAll("img.toggler");
togglerElements.forEach((el) => togglerElements.forEach((el) =>
el.addEventListener("click", (event) => toggler(event.currentTarget)) el.addEventListener("click", (event) => toggler(event.currentTarget)),
); );
togglerElements.forEach((el) => (el.style.display = "")); togglerElements.forEach((el) => (el.style.display = ""));
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
@ -105,14 +98,15 @@ const Documentation = {
initOnKeyListeners: () => { initOnKeyListeners: () => {
// only install a listener if it is really needed // only install a listener if it is really needed
if ( if (
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
) )
return; return;
document.addEventListener("keydown", (event) => { document.addEventListener("keydown", (event) => {
// bail for input elements // bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName))
return;
// bail with special keys // bail with special keys
if (event.altKey || event.ctrlKey || event.metaKey) return; if (event.altKey || event.ctrlKey || event.metaKey) return;

1066
_static/english-stemmer.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 250 250" fill="#fff">
<path d="M0 0l115 115h15l12 27 108 108V0z" fill="#151513"/>
<path d="M128 109c-15-9-9-19-9-19 3-7 2-11 2-11-1-7 3-2 3-2 4 5 2 11 2 11-3 10 5 15 9 16"/>
<path d="M115 115s4 2 5 0l14-14c3-2 6-3 8-3-8-11-15-24 2-41 5-5 10-7 16-7 1-2 3-7 12-11 0 0 5 3 7 16 4 2 8 5 12 9s7 8 9 12c14 3 17 7 17 7-4 8-9 11-11 11 0 6-2 11-7 16-16 16-30 10-41 2 0 3-1 7-5 11l-12 11c-1 1 1 5 1 5z"/>
</svg>

After

Width:  |  Height:  |  Size: 490 B

View File

@ -1 +0,0 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}});

View File

@ -1,4 +0,0 @@
/**
* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document);

View File

@ -1,4 +0,0 @@
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,83 +3,82 @@ td.linenos .normal { color: inherit; background-color: transparent; padding-left
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #49483e } .highlight .hll { background-color: #ffffcc }
.highlight { background: #232629; color: #cccccc } .highlight { background: #f8f8f8; }
.highlight .c { color: #777777; font-style: italic } /* Comment */ .highlight .c { color: #8F5902; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .err { color: #A40000; border: 1px solid #EF2929 } /* Error */
.highlight .esc { color: #cccccc } /* Escape */ .highlight .g { color: #000 } /* Generic */
.highlight .g { color: #cccccc } /* Generic */ .highlight .k { color: #004461; font-weight: bold } /* Keyword */
.highlight .k { color: #7686bb; font-weight: bold } /* Keyword */ .highlight .l { color: #000 } /* Literal */
.highlight .l { color: #cccccc } /* Literal */ .highlight .n { color: #000 } /* Name */
.highlight .n { color: #cccccc } /* Name */ .highlight .o { color: #582800 } /* Operator */
.highlight .o { color: #cccccc } /* Operator */ .highlight .x { color: #000 } /* Other */
.highlight .x { color: #cccccc } /* Other */ .highlight .p { color: #000; font-weight: bold } /* Punctuation */
.highlight .p { color: #cccccc } /* Punctuation */ .highlight .ch { color: #8F5902; font-style: italic } /* Comment.Hashbang */
.highlight .ch { color: #777777; font-style: italic } /* Comment.Hashbang */ .highlight .cm { color: #8F5902; font-style: italic } /* Comment.Multiline */
.highlight .cm { color: #777777; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #8F5902 } /* Comment.Preproc */
.highlight .cp { color: #777777; font-style: italic } /* Comment.Preproc */ .highlight .cpf { color: #8F5902; font-style: italic } /* Comment.PreprocFile */
.highlight .cpf { color: #777777; font-style: italic } /* Comment.PreprocFile */ .highlight .c1 { color: #8F5902; font-style: italic } /* Comment.Single */
.highlight .c1 { color: #777777; font-style: italic } /* Comment.Single */ .highlight .cs { color: #8F5902; font-style: italic } /* Comment.Special */
.highlight .cs { color: #777777; font-style: italic } /* Comment.Special */ .highlight .gd { color: #A40000 } /* Generic.Deleted */
.highlight .gd { color: #cccccc } /* Generic.Deleted */ .highlight .ge { color: #000; font-style: italic } /* Generic.Emph */
.highlight .ge { color: #cccccc } /* Generic.Emph */ .highlight .ges { color: #000 } /* Generic.EmphStrong */
.highlight .ges { color: #cccccc } /* Generic.EmphStrong */ .highlight .gr { color: #EF2929 } /* Generic.Error */
.highlight .gr { color: #cccccc } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gh { color: #cccccc } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .gi { color: #cccccc } /* Generic.Inserted */ .highlight .go { color: #888 } /* Generic.Output */
.highlight .go { color: #cccccc } /* Generic.Output */ .highlight .gp { color: #745334 } /* Generic.Prompt */
.highlight .gp { color: #ffffff } /* Generic.Prompt */ .highlight .gs { color: #000; font-weight: bold } /* Generic.Strong */
.highlight .gs { color: #cccccc } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gu { color: #cccccc } /* Generic.Subheading */ .highlight .gt { color: #A40000; font-weight: bold } /* Generic.Traceback */
.highlight .gt { color: #cccccc } /* Generic.Traceback */ .highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */
.highlight .kc { color: #7686bb; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */
.highlight .kd { color: #7686bb; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */
.highlight .kn { color: #7686bb; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */
.highlight .kp { color: #7686bb; font-weight: bold } /* Keyword.Pseudo */ .highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */
.highlight .kr { color: #7686bb; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */
.highlight .kt { color: #7686bb; font-weight: bold } /* Keyword.Type */ .highlight .ld { color: #000 } /* Literal.Date */
.highlight .ld { color: #cccccc } /* Literal.Date */ .highlight .m { color: #900 } /* Literal.Number */
.highlight .m { color: #4FB8CC } /* Literal.Number */ .highlight .s { color: #4E9A06 } /* Literal.String */
.highlight .s { color: #51cc99 } /* Literal.String */ .highlight .na { color: #C4A000 } /* Name.Attribute */
.highlight .na { color: #cccccc } /* Name.Attribute */ .highlight .nb { color: #004461 } /* Name.Builtin */
.highlight .nb { color: #cccccc } /* Name.Builtin */ .highlight .nc { color: #000 } /* Name.Class */
.highlight .nc { color: #cccccc } /* Name.Class */ .highlight .no { color: #000 } /* Name.Constant */
.highlight .no { color: #cccccc } /* Name.Constant */ .highlight .nd { color: #888 } /* Name.Decorator */
.highlight .nd { color: #cccccc } /* Name.Decorator */ .highlight .ni { color: #CE5C00 } /* Name.Entity */
.highlight .ni { color: #cccccc } /* Name.Entity */ .highlight .ne { color: #C00; font-weight: bold } /* Name.Exception */
.highlight .ne { color: #cccccc } /* Name.Exception */ .highlight .nf { color: #000 } /* Name.Function */
.highlight .nf { color: #6a6aff } /* Name.Function */ .highlight .nl { color: #F57900 } /* Name.Label */
.highlight .nl { color: #cccccc } /* Name.Label */ .highlight .nn { color: #000 } /* Name.Namespace */
.highlight .nn { color: #cccccc } /* Name.Namespace */ .highlight .nx { color: #000 } /* Name.Other */
.highlight .nx { color: #e2828e } /* Name.Other */ .highlight .py { color: #000 } /* Name.Property */
.highlight .py { color: #cccccc } /* Name.Property */ .highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */
.highlight .nt { color: #cccccc } /* Name.Tag */ .highlight .nv { color: #000 } /* Name.Variable */
.highlight .nv { color: #7AB4DB; font-weight: bold } /* Name.Variable */ .highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */
.highlight .ow { color: #cccccc } /* Operator.Word */ .highlight .pm { color: #000; font-weight: bold } /* Punctuation.Marker */
.highlight .pm { color: #cccccc } /* Punctuation.Marker */ .highlight .w { color: #F8F8F8 } /* Text.Whitespace */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #900 } /* Literal.Number.Bin */
.highlight .mb { color: #4FB8CC } /* Literal.Number.Bin */ .highlight .mf { color: #900 } /* Literal.Number.Float */
.highlight .mf { color: #4FB8CC } /* Literal.Number.Float */ .highlight .mh { color: #900 } /* Literal.Number.Hex */
.highlight .mh { color: #4FB8CC } /* Literal.Number.Hex */ .highlight .mi { color: #900 } /* Literal.Number.Integer */
.highlight .mi { color: #4FB8CC } /* Literal.Number.Integer */ .highlight .mo { color: #900 } /* Literal.Number.Oct */
.highlight .mo { color: #4FB8CC } /* Literal.Number.Oct */ .highlight .sa { color: #4E9A06 } /* Literal.String.Affix */
.highlight .sa { color: #51cc99 } /* Literal.String.Affix */ .highlight .sb { color: #4E9A06 } /* Literal.String.Backtick */
.highlight .sb { color: #51cc99 } /* Literal.String.Backtick */ .highlight .sc { color: #4E9A06 } /* Literal.String.Char */
.highlight .sc { color: #51cc99 } /* Literal.String.Char */ .highlight .dl { color: #4E9A06 } /* Literal.String.Delimiter */
.highlight .dl { color: #51cc99 } /* Literal.String.Delimiter */ .highlight .sd { color: #8F5902; font-style: italic } /* Literal.String.Doc */
.highlight .sd { color: #51cc99 } /* Literal.String.Doc */ .highlight .s2 { color: #4E9A06 } /* Literal.String.Double */
.highlight .s2 { color: #51cc99 } /* Literal.String.Double */ .highlight .se { color: #4E9A06 } /* Literal.String.Escape */
.highlight .se { color: #51cc99 } /* Literal.String.Escape */ .highlight .sh { color: #4E9A06 } /* Literal.String.Heredoc */
.highlight .sh { color: #51cc99 } /* Literal.String.Heredoc */ .highlight .si { color: #4E9A06 } /* Literal.String.Interpol */
.highlight .si { color: #51cc99 } /* Literal.String.Interpol */ .highlight .sx { color: #4E9A06 } /* Literal.String.Other */
.highlight .sx { color: #51cc99 } /* Literal.String.Other */ .highlight .sr { color: #4E9A06 } /* Literal.String.Regex */
.highlight .sr { color: #51cc99 } /* Literal.String.Regex */ .highlight .s1 { color: #4E9A06 } /* Literal.String.Single */
.highlight .s1 { color: #51cc99 } /* Literal.String.Single */ .highlight .ss { color: #4E9A06 } /* Literal.String.Symbol */
.highlight .ss { color: #51cc99 } /* Literal.String.Symbol */ .highlight .bp { color: #3465A4 } /* Name.Builtin.Pseudo */
.highlight .bp { color: #cccccc } /* Name.Builtin.Pseudo */ .highlight .fm { color: #000 } /* Name.Function.Magic */
.highlight .fm { color: #6a6aff } /* Name.Function.Magic */ .highlight .vc { color: #000 } /* Name.Variable.Class */
.highlight .vc { color: #7AB4DB; font-weight: bold } /* Name.Variable.Class */ .highlight .vg { color: #000 } /* Name.Variable.Global */
.highlight .vg { color: #BE646C; font-weight: bold } /* Name.Variable.Global */ .highlight .vi { color: #000 } /* Name.Variable.Instance */
.highlight .vi { color: #7AB4DB; font-weight: bold } /* Name.Variable.Instance */ .highlight .vm { color: #000 } /* Name.Variable.Magic */
.highlight .vm { color: #7AB4DB; font-weight: bold } /* Name.Variable.Magic */ .highlight .il { color: #900 } /* Literal.Number.Integer.Long */
.highlight .il { color: #4FB8CC } /* Literal.Number.Integer.Long */

View File

@ -1,12 +1,5 @@
/* /*
* searchtools.js
* ~~~~~~~~~~~~~~~~
*
* Sphinx JavaScript utilities for the full-text search. * Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/ */
"use strict"; "use strict";
@ -20,7 +13,7 @@ if (typeof Scorer === "undefined") {
// and returns the new score. // and returns the new score.
/* /*
score: result => { score: result => {
const [docname, title, anchor, descr, score, filename] = result const [docname, title, anchor, descr, score, filename, kind] = result
return score return score
}, },
*/ */
@ -47,6 +40,15 @@ if (typeof Scorer === "undefined") {
}; };
} }
// Global search result kind enum, used by themes to style search results.
// prettier-ignore
class SearchResultKind {
static get index() { return "index"; }
static get object() { return "object"; }
static get text() { return "text"; }
static get title() { return "title"; }
}
const _removeChildren = (element) => { const _removeChildren = (element) => {
while (element && element.lastChild) element.removeChild(element.lastChild); while (element && element.lastChild) element.removeChild(element.lastChild);
}; };
@ -57,6 +59,15 @@ const _removeChildren = (element) => {
const _escapeRegExp = (string) => const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
const _escapeHTML = (text) => {
return text
.replaceAll("&", "&amp;")
.replaceAll("<", "&lt;")
.replaceAll(">", "&gt;")
.replaceAll('"', "&quot;")
.replaceAll("'", "&apos;");
};
const _displayItem = (item, searchTerms, highlightTerms) => { const _displayItem = (item, searchTerms, highlightTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
@ -64,9 +75,13 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
const contentRoot = document.documentElement.dataset.content_root; const contentRoot = document.documentElement.dataset.content_root;
const [docName, title, anchor, descr, score, _filename] = item; const [docName, title, anchor, descr, score, _filename, kind] = item;
let listItem = document.createElement("li"); let listItem = document.createElement("li");
// Add a class representing the item's type:
// can be used by a theme's CSS selector for styling
// See SearchResultKind for the class names.
listItem.classList.add(`kind-${kind}`);
let requestUrl; let requestUrl;
let linkUrl; let linkUrl;
if (docBuilder === "dirhtml") { if (docBuilder === "dirhtml") {
@ -85,25 +100,30 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
let linkEl = listItem.appendChild(document.createElement("a")); let linkEl = listItem.appendChild(document.createElement("a"));
linkEl.href = linkUrl + anchor; linkEl.href = linkUrl + anchor;
linkEl.dataset.score = score; linkEl.dataset.score = score;
linkEl.innerHTML = title; linkEl.innerHTML = _escapeHTML(title);
if (descr) { if (descr) {
listItem.appendChild(document.createElement("span")).innerHTML = listItem.appendChild(document.createElement("span")).innerHTML =
" (" + descr + ")"; ` (${_escapeHTML(descr)})`;
// highlight search terms in the description // highlight search terms in the description
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js if (SPHINX_HIGHLIGHT_ENABLED)
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
} highlightTerms.forEach((term) =>
else if (showSearchSummary) _highlightText(listItem, term, "highlighted"),
);
} else if (showSearchSummary)
fetch(requestUrl) fetch(requestUrl)
.then((responseData) => responseData.text()) .then((responseData) => responseData.text())
.then((data) => { .then((data) => {
if (data) if (data)
listItem.appendChild( listItem.appendChild(
Search.makeSearchSummary(data, searchTerms) Search.makeSearchSummary(data, searchTerms, anchor),
); );
// highlight search terms in the summary // highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js if (SPHINX_HIGHLIGHT_ENABLED)
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
highlightTerms.forEach((term) =>
_highlightText(listItem, term, "highlighted"),
);
}); });
Search.output.appendChild(listItem); Search.output.appendChild(listItem);
}; };
@ -112,12 +132,14 @@ const _finishSearch = (resultCount) => {
Search.title.innerText = _("Search Results"); Search.title.innerText = _("Search Results");
if (!resultCount) if (!resultCount)
Search.status.innerText = Documentation.gettext( Search.status.innerText = Documentation.gettext(
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.",
); );
else else
Search.status.innerText = _( Search.status.innerText = Documentation.ngettext(
`Search finished, found ${resultCount} page(s) matching the search query.` "Search finished, found one page matching the search query.",
); "Search finished, found ${resultCount} pages matching the search query.",
resultCount,
).replace("${resultCount}", resultCount);
}; };
const _displayNextItem = ( const _displayNextItem = (
results, results,
@ -131,12 +153,28 @@ const _displayNextItem = (
_displayItem(results.pop(), searchTerms, highlightTerms); _displayItem(results.pop(), searchTerms, highlightTerms);
setTimeout( setTimeout(
() => _displayNextItem(results, resultCount, searchTerms, highlightTerms), () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
5 5,
); );
} }
// search finished, update title and status message // search finished, update title and status message
else _finishSearch(resultCount); else _finishSearch(resultCount);
}; };
// Helper function used by query() to order search results.
// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
// Order the results by score (in opposite order of appearance, since the
// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
const _orderResultsByScoreThenName = (a, b) => {
const leftScore = a[4];
const rightScore = b[4];
if (leftScore === rightScore) {
// same score: sort alphabetically
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
};
/** /**
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
@ -147,9 +185,10 @@ const _displayNextItem = (
* This is the same as ``\W+`` in Python, preserving the surrogate pair area. * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
*/ */
if (typeof splitQuery === "undefined") { if (typeof splitQuery === "undefined") {
var splitQuery = (query) => query var splitQuery = (query) =>
query
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
.filter(term => term) // remove remaining empty strings .filter((term) => term); // remove remaining empty strings
} }
/** /**
@ -160,13 +199,33 @@ const Search = {
_queued_query: null, _queued_query: null,
_pulse_status: -1, _pulse_status: -1,
htmlToText: (htmlString) => { htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); const htmlElement = new DOMParser().parseFromString(
htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); htmlString,
"text/html",
);
for (const removalQuery of [".headerlink", "script", "style"]) {
htmlElement.querySelectorAll(removalQuery).forEach((el) => {
el.remove();
});
}
if (anchor) {
const anchorContent = htmlElement.querySelector(
`[role="main"] ${anchor}`,
);
if (anchorContent) return anchorContent.textContent;
console.warn(
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`,
);
}
// if anchor not specified or not found, fall back to main content
const docContent = htmlElement.querySelector('[role="main"]'); const docContent = htmlElement.querySelector('[role="main"]');
if (docContent !== undefined) return docContent.textContent; if (docContent) return docContent.textContent;
console.warn( console.warn(
"Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template.",
); );
return ""; return "";
}, },
@ -219,6 +278,7 @@ const Search = {
searchSummary.classList.add("search-summary"); searchSummary.classList.add("search-summary");
searchSummary.innerText = ""; searchSummary.innerText = "";
const searchList = document.createElement("ul"); const searchList = document.createElement("ul");
searchList.setAttribute("role", "list");
searchList.classList.add("search"); searchList.classList.add("search");
const out = document.getElementById("search-results"); const out = document.getElementById("search-results");
@ -239,16 +299,7 @@ const Search = {
else Search.deferQuery(query); else Search.deferQuery(query);
}, },
/** _parseQuery: (query) => {
* execute search (requires search index to be loaded)
*/
query: (query) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const allTitles = Search._index.alltitles;
const indexEntries = Search._index.indexentries;
// stem the search terms and add them to the correct list // stem the search terms and add them to the correct list
const stemmer = new Stemmer(); const stemmer = new Stemmer();
const searchTerms = new Set(); const searchTerms = new Set();
@ -259,12 +310,8 @@ const Search = {
const queryTermLower = queryTerm.toLowerCase(); const queryTermLower = queryTerm.toLowerCase();
// maybe skip this "word" // maybe skip this "word"
// stopwords array is from language_data.js // stopwords set is from language_data.js
if ( if (stopwords.has(queryTermLower) || queryTerm.match(/^\d+$/)) return;
stopwords.indexOf(queryTermLower) !== -1 ||
queryTerm.match(/^\d+$/)
)
return;
// stem the word // stem the word
let word = stemmer.stemWord(queryTermLower); let word = stemmer.stemWord(queryTermLower);
@ -276,30 +323,63 @@ const Search = {
} }
}); });
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js if (SPHINX_HIGHLIGHT_ENABLED) {
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
localStorage.setItem(
"sphinx_highlight_terms",
[...highlightTerms].join(" "),
);
} }
// console.debug("SEARCH: searching for:"); // console.debug("SEARCH: searching for:");
// console.info("required: ", [...searchTerms]); // console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]); // console.info("excluded: ", [...excludedTerms]);
// array of [docname, title, anchor, descr, score, filename] return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
let results = []; },
/**
* execute search (requires search index to be loaded)
*/
_performSearch: (
query,
searchTerms,
excludedTerms,
highlightTerms,
objectTerms,
) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
const allTitles = Search._index.alltitles;
const indexEntries = Search._index.indexentries;
// Collect multiple result groups to be sorted separately and then ordered.
// Each is an array of [docname, title, anchor, descr, score, filename, kind].
const normalResults = [];
const nonMainIndexResults = [];
_removeChildren(document.getElementById("search-progress")); _removeChildren(document.getElementById("search-progress"));
const queryLower = query.toLowerCase(); const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) { for (const [title, foundTitles] of Object.entries(allTitles)) {
if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { if (
title.toLowerCase().trim().includes(queryLower)
&& queryLower.length >= title.length / 2
) {
for (const [file, id] of foundTitles) { for (const [file, id] of foundTitles) {
let score = Math.round(100 * queryLower.length / title.length) const score = Math.round(
results.push([ (Scorer.title * queryLower.length) / title.length,
);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file], docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title, titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "", id !== null ? "#" + id : "",
null, null,
score, score + boost,
filenames[file], filenames[file],
SearchResultKind.title,
]); ]);
} }
} }
@ -307,53 +387,61 @@ const Search = {
// search for explicit entries in index directives // search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) { for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { if (entry.includes(queryLower) && queryLower.length >= entry.length / 2) {
for (const [file, id] of foundEntries) { for (const [file, id, isMain] of foundEntries) {
let score = Math.round(100 * queryLower.length / entry.length) const score = Math.round((100 * queryLower.length) / entry.length);
results.push([ const result = [
docNames[file], docNames[file],
titles[file], titles[file],
id ? "#" + id : "", id ? "#" + id : "",
null, null,
score, score,
filenames[file], filenames[file],
]); SearchResultKind.index,
];
if (isMain) {
normalResults.push(result);
} else {
nonMainIndexResults.push(result);
}
} }
} }
} }
// lookup as object // lookup as object
objectTerms.forEach((term) => objectTerms.forEach((term) =>
results.push(...Search.performObjectSearch(term, objectTerms)) normalResults.push(...Search.performObjectSearch(term, objectTerms)),
); );
// lookup as search terms in fulltext // lookup as search terms in fulltext
results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); normalResults.push(
...Search.performTermsSearch(searchTerms, excludedTerms),
);
// let the scorer override scores with a custom scoring function // let the scorer override scores with a custom scoring function
if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); if (Scorer.score) {
normalResults.forEach((item) => (item[4] = Scorer.score(item)));
nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
}
// now sort the results by score (in opposite order of appearance, since the // Sort each group of results by score and then alphabetically by name.
// display function below uses pop() to retrieve items) and then normalResults.sort(_orderResultsByScoreThenName);
// alphabetically nonMainIndexResults.sort(_orderResultsByScoreThenName);
results.sort((a, b) => {
const leftScore = a[4]; // Combine the result groups in (reverse) order.
const rightScore = b[4]; // Non-main index entries are typically arbitrary cross-references,
if (leftScore === rightScore) { // so display them after other results.
// same score: sort alphabetically let results = [...nonMainIndexResults, ...normalResults];
const leftTitle = a[1].toLowerCase();
const rightTitle = b[1].toLowerCase();
if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
}
return leftScore > rightScore ? 1 : -1;
});
// remove duplicate search results // remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
let seen = new Set(); let seen = new Set();
results = results.reverse().reduce((acc, result) => { results = results.reverse().reduce((acc, result) => {
let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); let resultStr = result
.slice(0, 4)
.concat([result[5]])
.map((v) => String(v))
.join(",");
if (!seen.has(resultStr)) { if (!seen.has(resultStr)) {
acc.push(result); acc.push(result);
seen.add(resultStr); seen.add(resultStr);
@ -361,7 +449,24 @@ const Search = {
return acc; return acc;
}, []); }, []);
results = results.reverse(); return results.reverse();
},
query: (query) => {
const [
searchQuery,
searchTerms,
excludedTerms,
highlightTerms,
objectTerms,
] = Search._parseQuery(query);
const results = Search._performSearch(
searchQuery,
searchTerms,
excludedTerms,
highlightTerms,
objectTerms,
);
// for debugging // for debugging
//Search.lastresults = results.slice(); // a copy //Search.lastresults = results.slice(); // a copy
@ -384,7 +489,7 @@ const Search = {
const results = []; const results = [];
const objectSearchCallback = (prefix, match) => { const objectSearchCallback = (prefix, match) => {
const name = match[4] const name = match[4];
const fullname = (prefix ? prefix + "." : "") + name; const fullname = (prefix ? prefix + "." : "") + name;
const fullnameLower = fullname.toLowerCase(); const fullnameLower = fullname.toLowerCase();
if (fullnameLower.indexOf(object) < 0) return; if (fullnameLower.indexOf(object) < 0) return;
@ -432,12 +537,11 @@ const Search = {
descr, descr,
score, score,
filenames[match[0]], filenames[match[0]],
SearchResultKind.object,
]); ]);
}; };
Object.keys(objects).forEach((prefix) => Object.keys(objects).forEach((prefix) =>
objects[prefix].forEach((array) => objects[prefix].forEach((array) => objectSearchCallback(prefix, array)),
objectSearchCallback(prefix, array)
)
); );
return results; return results;
}, },
@ -459,21 +563,33 @@ const Search = {
// perform the search on the required terms // perform the search on the required terms
searchTerms.forEach((word) => { searchTerms.forEach((word) => {
const files = []; const files = [];
// find documents, if any, containing the query word in their text/title term indices
// use Object.hasOwnProperty to avoid mismatching against prototype properties
const arr = [ const arr = [
{ files: terms[word], score: Scorer.term }, {
{ files: titleTerms[word], score: Scorer.title }, files: terms.hasOwnProperty(word) ? terms[word] : undefined,
score: Scorer.term,
},
{
files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined,
score: Scorer.title,
},
]; ];
// add support for partial matches // add support for partial matches
if (word.length > 2) { if (word.length > 2) {
const escapedWord = _escapeRegExp(word); const escapedWord = _escapeRegExp(word);
Object.keys(terms).forEach((term) => { if (!terms.hasOwnProperty(word)) {
if (term.match(escapedWord) && !terms[word]) Object.keys(terms).forEach((term) => {
arr.push({ files: terms[term], score: Scorer.partialTerm }); if (term.match(escapedWord))
}); arr.push({ files: terms[term], score: Scorer.partialTerm });
Object.keys(titleTerms).forEach((term) => { });
if (term.match(escapedWord) && !titleTerms[word]) }
arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); if (!titleTerms.hasOwnProperty(word)) {
}); Object.keys(titleTerms).forEach((term) => {
if (term.match(escapedWord))
arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
});
}
} }
// no match but word was a required one // no match but word was a required one
@ -489,16 +605,17 @@ const Search = {
// set score for the word in each file // set score for the word in each file
recordFiles.forEach((file) => { recordFiles.forEach((file) => {
if (!scoreMap.has(file)) scoreMap.set(file, {}); if (!scoreMap.has(file)) scoreMap.set(file, new Map());
scoreMap.get(file)[word] = record.score; const fileScores = scoreMap.get(file);
fileScores.set(word, record.score);
}); });
}); });
// create the mapping // create the mapping
files.forEach((file) => { files.forEach((file) => {
if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) if (!fileMap.has(file)) fileMap.set(file, [word]);
else if (fileMap.get(file).indexOf(word) === -1)
fileMap.get(file).push(word); fileMap.get(file).push(word);
else fileMap.set(file, [word]);
}); });
}); });
@ -509,11 +626,11 @@ const Search = {
// as search terms with length < 3 are discarded // as search terms with length < 3 are discarded
const filteredTermCount = [...searchTerms].filter( const filteredTermCount = [...searchTerms].filter(
(term) => term.length > 2 (term) => term.length > 2,
).length; ).length;
if ( if (
wordList.length !== searchTerms.size && wordList.length !== searchTerms.size
wordList.length !== filteredTermCount && wordList.length !== filteredTermCount
) )
continue; continue;
@ -521,16 +638,16 @@ const Search = {
if ( if (
[...excludedTerms].some( [...excludedTerms].some(
(term) => (term) =>
terms[term] === file || terms[term] === file
titleTerms[term] === file || || titleTerms[term] === file
(terms[term] || []).includes(file) || || (terms[term] || []).includes(file)
(titleTerms[term] || []).includes(file) || (titleTerms[term] || []).includes(file),
) )
) )
break; break;
// select one (max) score for the file. // select one (max) score for the file.
const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); const score = Math.max(...wordList.map((w) => scoreMap.get(file).get(w)));
// add result to the result list // add result to the result list
results.push([ results.push([
docNames[file], docNames[file],
@ -539,6 +656,7 @@ const Search = {
null, null,
score, score,
filenames[file], filenames[file],
SearchResultKind.text,
]); ]);
} }
return results; return results;
@ -549,8 +667,8 @@ const Search = {
* search summary for a given text. keywords is a list * search summary for a given text. keywords is a list
* of stemmed words. * of stemmed words.
*/ */
makeSearchSummary: (htmlText, keywords) => { makeSearchSummary: (htmlText, keywords, anchor) => {
const text = Search.htmlToText(htmlText); const text = Search.htmlToText(htmlText, anchor);
if (text === "") return null; if (text === "") return null;
const textLower = text.toLowerCase(); const textLower = text.toLowerCase();
@ -565,7 +683,8 @@ const Search = {
let summary = document.createElement("p"); let summary = document.createElement("p");
summary.classList.add("context"); summary.classList.add("context");
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; summary.textContent =
top + text.substr(startWithContext, 240).trim() + tail;
return summary; return summary;
}, },

View File

@ -1,7 +1,7 @@
/* Highlighting utilities for Sphinx HTML documentation. */ /* Highlighting utilities for Sphinx HTML documentation. */
"use strict"; "use strict";
const SPHINX_HIGHLIGHT_ENABLED = true const SPHINX_HIGHLIGHT_ENABLED = true;
/** /**
* highlight a given string on a node by wrapping it in * highlight a given string on a node by wrapping it in
@ -13,9 +13,9 @@ const _highlight = (node, addItems, text, className) => {
const parent = node.parentNode; const parent = node.parentNode;
const pos = val.toLowerCase().indexOf(text); const pos = val.toLowerCase().indexOf(text);
if ( if (
pos >= 0 && pos >= 0
!parent.classList.contains(className) && && !parent.classList.contains(className)
!parent.classList.contains("nohighlight") && !parent.classList.contains("nohighlight")
) { ) {
let span; let span;
@ -30,13 +30,7 @@ const _highlight = (node, addItems, text, className) => {
span.appendChild(document.createTextNode(val.substr(pos, text.length))); span.appendChild(document.createTextNode(val.substr(pos, text.length)));
const rest = document.createTextNode(val.substr(pos + text.length)); const rest = document.createTextNode(val.substr(pos + text.length));
parent.insertBefore( parent.insertBefore(span, parent.insertBefore(rest, node.nextSibling));
span,
parent.insertBefore(
rest,
node.nextSibling
)
);
node.nodeValue = val.substr(0, pos); node.nodeValue = val.substr(0, pos);
/* There may be more occurrences of search term in this node. So call this /* There may be more occurrences of search term in this node. So call this
* function recursively on the remaining fragment. * function recursively on the remaining fragment.
@ -46,7 +40,7 @@ const _highlight = (node, addItems, text, className) => {
if (isInSVG) { if (isInSVG) {
const rect = document.createElementNS( const rect = document.createElementNS(
"http://www.w3.org/2000/svg", "http://www.w3.org/2000/svg",
"rect" "rect",
); );
const bbox = parent.getBBox(); const bbox = parent.getBBox();
rect.x.baseVal.value = bbox.x; rect.x.baseVal.value = bbox.x;
@ -65,7 +59,7 @@ const _highlightText = (thisNode, text, className) => {
let addItems = []; let addItems = [];
_highlight(thisNode, addItems, text, className); _highlight(thisNode, addItems, text, className);
addItems.forEach((obj) => addItems.forEach((obj) =>
obj.parent.insertAdjacentElement("beforebegin", obj.target) obj.parent.insertAdjacentElement("beforebegin", obj.target),
); );
}; };
@ -73,25 +67,31 @@ const _highlightText = (thisNode, text, className) => {
* Small JavaScript module for the documentation. * Small JavaScript module for the documentation.
*/ */
const SphinxHighlight = { const SphinxHighlight = {
/** /**
* highlight the search words provided in localstorage in the text * highlight the search words provided in localstorage in the text
*/ */
highlightSearchWords: () => { highlightSearchWords: () => {
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
// get and clear terms from localstorage // get and clear terms from localstorage
const url = new URL(window.location); const url = new URL(window.location);
const highlight = const highlight =
localStorage.getItem("sphinx_highlight_terms") localStorage.getItem("sphinx_highlight_terms")
|| url.searchParams.get("highlight") || url.searchParams.get("highlight")
|| ""; || "";
localStorage.removeItem("sphinx_highlight_terms") localStorage.removeItem("sphinx_highlight_terms");
url.searchParams.delete("highlight"); // Update history only if '?highlight' is present; otherwise it
window.history.replaceState({}, "", url); // clears text fragments (not set in window.location by the browser)
if (url.searchParams.has("highlight")) {
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
}
// get individual terms from highlight string // get individual terms from highlight string
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); const terms = highlight
.toLowerCase()
.split(/\s+/)
.filter((x) => x);
if (terms.length === 0) return; // nothing to do if (terms.length === 0) return; // nothing to do
// There should never be more than one element matching "div.body" // There should never be more than one element matching "div.body"
@ -107,11 +107,11 @@ const SphinxHighlight = {
document document
.createRange() .createRange()
.createContextualFragment( .createContextualFragment(
'<p class="highlight-link">' + '<p class="highlight-link">'
'<a href="javascript:SphinxHighlight.hideSearchWords()">' + + '<a href="javascript:SphinxHighlight.hideSearchWords()">'
_("Hide Search Matches") + + _("Hide Search Matches")
"</a></p>" + "</a></p>",
) ),
); );
}, },
@ -125,7 +125,7 @@ const SphinxHighlight = {
document document
.querySelectorAll("span.highlighted") .querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted")); .forEach((el) => el.classList.remove("highlighted"));
localStorage.removeItem("sphinx_highlight_terms") localStorage.removeItem("sphinx_highlight_terms");
}, },
initEscapeListener: () => { initEscapeListener: () => {
@ -134,10 +134,15 @@ const SphinxHighlight = {
document.addEventListener("keydown", (event) => { document.addEventListener("keydown", (event) => {
// bail for input elements // bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName))
return;
// bail with special keys // bail with special keys
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { return;
if (
DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
&& event.key === "Escape"
) {
SphinxHighlight.hideSearchWords(); SphinxHighlight.hideSearchWords();
event.preventDefault(); event.preventDefault();
} }

View File

@ -1,99 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Boards &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Boards &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Cables" href="cable.html" /> <link rel="next" title="Cables" href="cable.html" />
<link rel="prev" title="FPGAs" href="fpga.html" /> <link rel="prev" title="FPGAs" href="fpga.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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 class="current">
<li class="toctree-l1"><a class="reference internal" href="fpga.html">FPGAs</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Boards</a></li>
<li class="toctree-l1"><a class="reference internal" href="cable.html">Cables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Boards</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/compatibility/board.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="boards"> <section id="boards">
<span id="compatibility-boards"></span><h1>Boards<a class="headerlink" href="#boards" title="Link to this heading"></a></h1> <span id="compatibility-boards"></span><h1>Boards<a class="headerlink" href="#boards" title="Link to this heading"></a></h1>
<div class="admonition note"> <div class="admonition note">
@ -120,7 +59,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>Artix xc7a200tfbg676</p></td> <td><p>Artix xc7a200tfbg676</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>NT</p></td> <td><p>NT</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ac701" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">AC701 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ac701" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">AC701 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>acornCle215</p></td> <tr class="row-odd"><td><p>acornCle215</p></td>
<td><p><a class="reference external" href="http://squirrelsresearch.com/acorn-cle-215">Acorn CLE 215+</a></p></td> <td><p><a class="reference external" href="http://squirrelsresearch.com/acorn-cle-215">Acorn CLE 215+</a></p></td>
@ -218,28 +157,28 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>Artix xc7a35ticsg324</p></td> <td><p>Artix xc7a35ticsg324</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-a7-35t" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Arty-A7-35T ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-a7-35t" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Arty-A7-35T ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>arty_a7_100t</p></td> <tr class="row-odd"><td><p>arty_a7_100t</p></td>
<td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start">Digilent Arty A7</a></p></td> <td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start">Digilent Arty A7</a></p></td>
<td><p>Artix xc7a100tcsg324</p></td> <td><p>Artix xc7a100tcsg324</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-a7-100t" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Arty-A7-100T ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-a7-100t" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Arty-A7-100T ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>arty_s7_25</p></td> <tr class="row-even"><td><p>arty_s7_25</p></td>
<td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-s7/start">Digilent Arty S7</a></p></td> <td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-s7/start">Digilent Arty S7</a></p></td>
<td><p>Spartan7 xc7s25csga324</p></td> <td><p>Spartan7 xc7s25csga324</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-s7-25" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Arty-S7-25 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-s7-25" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Arty-S7-25 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>arty_s7_50</p></td> <tr class="row-odd"><td><p>arty_s7_50</p></td>
<td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-s7/start">Digilent Arty S7</a></p></td> <td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-s7/start">Digilent Arty S7</a></p></td>
<td><p>Spartan7 xc7s50csga324</p></td> <td><p>Spartan7 xc7s50csga324</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-s7-50" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Arty-S7-50 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-arty-s7-50" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Arty-S7-50 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>arty_z7_10</p></td> <tr class="row-even"><td><p>arty_z7_10</p></td>
<td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-z7/start">Digilent Arty S7</a></p></td> <td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/arty-z7/start">Digilent Arty S7</a></p></td>
@ -358,14 +297,14 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>ECP5 LFE5U-25F-6BG381C</p></td> <td><p>ECP5 LFE5U-25F-6BG381C</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-colorlight-i5-v7-0" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Colorlight-i5-v7.0 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-colorlight-i5-v7-0" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Colorlight-i5-v7.0 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>colorlight-i9</p></td> <tr class="row-odd"><td><p>colorlight-i9</p></td>
<td><p><a class="reference external" href="https://www.colorlightinside.com/Products/i%20Receiving-series/34_101.html">Colorlight I9</a></p></td> <td><p><a class="reference external" href="https://www.colorlightinside.com/Products/i%20Receiving-series/34_101.html">Colorlight I9</a></p></td>
<td><p>ECP5 LFE5U-45F-6BG381C</p></td> <td><p>ECP5 LFE5U-45F-6BG381C</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-colorlight-i9-v7-2" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Colorlight-i9-v7.2 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-colorlight-i9-v7-2" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Colorlight-i9-v7.2 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>colorlight-i9+</p></td> <tr class="row-even"><td><p>colorlight-i9+</p></td>
<td><p><a class="reference external" href="https://www.colorlight-led.tech/colorlight-i9-2/">Colorlight I9+</a></p></td> <td><p><a class="reference external" href="https://www.colorlight-led.tech/colorlight-i9-2/">Colorlight I9+</a></p></td>
@ -470,21 +409,21 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>ECP5G LFE5UM5G-85F</p></td> <td><p>ECP5G LFE5UM5G-85F</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecp5-evn" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ECP5-EVN ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecp5-evn" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ECP5-EVN ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>ecpix5</p></td> <tr class="row-odd"><td><p>ecpix5</p></td>
<td><p><a class="reference external" href="https://shop.lambdaconcept.com/home/46-2-ecpix-5.html#/2-ecpix_5_fpga-ecpix_5_85f">LambdaConcept ECPIX-5 (FT2232)</a></p></td> <td><p><a class="reference external" href="https://shop.lambdaconcept.com/home/46-2-ecpix-5.html#/2-ecpix_5_fpga-ecpix_5_85f">LambdaConcept ECPIX-5 (FT2232)</a></p></td>
<td><p>ECP5 LFE5UM5G-85F</p></td> <td><p>ECP5 LFE5UM5G-85F</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-45f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ECPIX-5-45F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-85f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ECPIX-5-85F ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-45f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ECPIX-5-45F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-85f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ECPIX-5-85F ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>ecpix5_r03</p></td> <tr class="row-even"><td><p>ecpix5_r03</p></td>
<td><p><a class="reference external" href="https://shop.lambdaconcept.com/home/46-2-ecpix-5.html#/2-ecpix_5_fpga-ecpix_5_85f">LambdaConcept ECPIX-5 (FT4232)</a></p></td> <td><p><a class="reference external" href="https://shop.lambdaconcept.com/home/46-2-ecpix-5.html#/2-ecpix_5_fpga-ecpix_5_85f">LambdaConcept ECPIX-5 (FT4232)</a></p></td>
<td><p>ECP5 LFE5UM5G-85F</p></td> <td><p>ECP5 LFE5UM5G-85F</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-45f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ECPIX-5-45F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-85f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ECPIX-5-85F ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-45f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ECPIX-5-45F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ecpix-5-85f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ECPIX-5-85F ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>fireant</p></td> <tr class="row-odd"><td><p>fireant</p></td>
<td><p><a class="reference external" href="https://www.crowdsupply.com/jungle-elec/fireant">Fireant Trion T8</a></p></td> <td><p><a class="reference external" href="https://www.crowdsupply.com/jungle-elec/fireant">Fireant Trion T8</a></p></td>
@ -498,7 +437,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>iCE40UltraPlus UP5K</p></td> <td><p>iCE40UltraPlus UP5K</p></td>
<td><p>NA</p></td> <td><p>NA</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-fomu-pvt" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Fomu-PVT ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-fomu-pvt" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Fomu-PVT ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>gr740-mini</p></td> <tr class="row-odd"><td><p>gr740-mini</p></td>
<td><p><a class="reference external" href="https://gaisler.com/index.php/products/boards/gr740-mini">GR740-MINI</a></p></td> <td><p><a class="reference external" href="https://gaisler.com/index.php/products/boards/gr740-mini">GR740-MINI</a></p></td>
@ -533,56 +472,56 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>iCE40UltraPlus UP5K</p></td> <td><p>iCE40UltraPlus UP5K</p></td>
<td><p>NA</p></td> <td><p>NA</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icebreaker" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCEBreaker ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icebreaker" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCEBreaker ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>icebreaker-bitsy</p></td> <tr class="row-even"><td><p>icebreaker-bitsy</p></td>
<td><p><a class="reference external" href="https://1bitsquared.com/collections/fpga/products/icebreaker-bitsy">iCEBreaker-bitsy</a></p></td> <td><p><a class="reference external" href="https://1bitsquared.com/collections/fpga/products/icebreaker-bitsy">iCEBreaker-bitsy</a></p></td>
<td><p>iCE40UltraPlus UP5K</p></td> <td><p>iCE40UltraPlus UP5K</p></td>
<td><p>NA</p></td> <td><p>NA</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icebreaker-bitsy-v0" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCEBreaker-bitsy-v0 ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icebreaker-bitsy-v1" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCEBreaker-bitsy-v1 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icebreaker-bitsy-v0" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCEBreaker-bitsy-v0 ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icebreaker-bitsy-v1" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCEBreaker-bitsy-v1 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>ice40_generic</p></td> <tr class="row-odd"><td><p>ice40_generic</p></td>
<td><p><a class="reference external" href="https://www.latticesemi.com/icestick">icestick</a></p></td> <td><p><a class="reference external" href="https://www.latticesemi.com/icestick">icestick</a></p></td>
<td><p>iCE40 HX1k</p></td> <td><p>iCE40 HX1k</p></td>
<td><p>NA</p></td> <td><p>NA</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icestick" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">IceStick ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icestick" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">IceStick ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>ice40_generic</p></td> <tr class="row-even"><td><p>ice40_generic</p></td>
<td><p><a class="reference external" href="https://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx">iCE40-HX8K</a></p></td> <td><p><a class="reference external" href="https://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx">iCE40-HX8K</a></p></td>
<td><p>iCE40 HX8k</p></td> <td><p>iCE40 HX8k</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40-hx8k" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCE40-HX8K ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40-hx8k" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCE40-HX8K ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>ice40_generic</p></td> <tr class="row-odd"><td><p>ice40_generic</p></td>
<td><p><a class="reference external" href="https://www.olimex.com/Products/FPGA/iCE40/iCE40HX1K-EVB/open-source-hardware">Olimex iCE40HX1K-EVB</a></p></td> <td><p><a class="reference external" href="https://www.olimex.com/Products/FPGA/iCE40/iCE40HX1K-EVB/open-source-hardware">Olimex iCE40HX1K-EVB</a></p></td>
<td><p>iCE40 HX1k</p></td> <td><p>iCE40 HX1k</p></td>
<td><p>NT</p></td> <td><p>NT</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40hx1k-evb" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCE40HX1K-EVB ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40hx1k-evb" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCE40HX1K-EVB ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>ice40_generic</p></td> <tr class="row-even"><td><p>ice40_generic</p></td>
<td><p><a class="reference external" href="https://www.olimex.com/Products/FPGA/iCE40/iCE40HX8K-EVB/open-source-hardware">Olimex iCE40HX8K-EVB</a></p></td> <td><p><a class="reference external" href="https://www.olimex.com/Products/FPGA/iCE40/iCE40HX8K-EVB/open-source-hardware">Olimex iCE40HX8K-EVB</a></p></td>
<td><p>iCE40 HX8k</p></td> <td><p>iCE40 HX8k</p></td>
<td><p>NT</p></td> <td><p>NT</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40hx8k-evb" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCE40HX8K-EVB ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40hx8k-evb" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCE40HX8K-EVB ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>ice40_generic</p></td> <tr class="row-odd"><td><p>ice40_generic</p></td>
<td><p><a class="reference external" href="https://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40UltraPlusBreakoutBoard">iCE40 UltraPlus Breakout Board (iCE40UP5K-B-EVN)</a></p></td> <td><p><a class="reference external" href="https://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40UltraPlusBreakoutBoard">iCE40 UltraPlus Breakout Board (iCE40UP5K-B-EVN)</a></p></td>
<td><p>iCE40-UP5K</p></td> <td><p>iCE40-UP5K</p></td>
<td><p>NT</p></td> <td><p>NT</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40-up" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">iCE40-UP ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ice40-up" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">iCE40-UP ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>ice40_generic</p></td> <tr class="row-even"><td><p>ice40_generic</p></td>
<td><p><a class="reference external" href="https://alhambrabits.com/alhambra">Icezum Alhambra II</a></p></td> <td><p><a class="reference external" href="https://alhambrabits.com/alhambra">Icezum Alhambra II</a></p></td>
<td><p>iCE40 HX4k</p></td> <td><p>iCE40 HX4k</p></td>
<td><p>NT</p></td> <td><p>NT</p></td>
<td><p>AS</p></td> <td><p>AS</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icezumalhambraii" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">IceZumAlhambraII ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-icezumalhambraii" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">IceZumAlhambraII ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>icepi-zero</p></td> <tr class="row-odd"><td><p>icepi-zero</p></td>
<td><p><a class="reference external" href="https://github.com/cheyao/icepi-zero">Icepi Zero</a></p></td> <td><p><a class="reference external" href="https://github.com/cheyao/icepi-zero">Icepi Zero</a></p></td>
@ -596,7 +535,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>Kintex7 xc7k325t</p></td> <td><p>Kintex7 xc7k325t</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>NT</p></td> <td><p>NT</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-kc705" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">KC705 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-kc705" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">KC705 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>kcu105</p></td> <tr class="row-odd"><td><p>kcu105</p></td>
<td><p><a class="reference external" href="https://www.xilinx.com/products/boards-and-kits/kcu105.html">Xilinx KCU105</a></p></td> <td><p><a class="reference external" href="https://www.xilinx.com/products/boards-and-kits/kcu105.html">Xilinx KCU105</a></p></td>
@ -687,14 +626,14 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>Artix xc7a50tcsg324</p></td> <td><p>Artix xc7a50tcsg324</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-nexys4ddr" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Nexys4DDR ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-nexys4ddr" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Nexys4DDR ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>nexys_a7_100</p></td> <tr class="row-even"><td><p>nexys_a7_100</p></td>
<td><p><a class="reference external" href="https://digilent.com/reference/programmable-logic/nexys-a7/start">Digilent Nexys A7(Nexys 4 DDR)</a></p></td> <td><p><a class="reference external" href="https://digilent.com/reference/programmable-logic/nexys-a7/start">Digilent Nexys A7(Nexys 4 DDR)</a></p></td>
<td><p>Artix nexys_a7_100</p></td> <td><p>Artix nexys_a7_100</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-nexys4ddr" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">Nexys4DDR ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-nexys4ddr" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">Nexys4DDR ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>nexysVideo</p></td> <tr class="row-odd"><td><p>nexysVideo</p></td>
<td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/nexys-video/start">Digilent Nexys Video</a></p></td> <td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/nexys-video/start">Digilent Nexys Video</a></p></td>
@ -736,7 +675,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>ECP5 LFE5U-25F-8MG285C</p></td> <td><p>ECP5 LFE5U-25F-8MG285C</p></td>
<td><p>OK (JTAG)</p></td> <td><p>OK (JTAG)</p></td>
<td><p>OK (DFU)</p></td> <td><p>OK (DFU)</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-orangecrab-r0-2" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">OrangeCrab-r0.2 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-orangecrab-r0-2" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">OrangeCrab-r0.2 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>papilio_one</p></td> <tr class="row-odd"><td><p>papilio_one</p></td>
<td><p><a class="reference external" href="https://papilio.cc/index.php?n=Papilio.PapilioOne">Papilio One</a></p></td> <td><p><a class="reference external" href="https://papilio.cc/index.php?n=Papilio.PapilioOne">Papilio One</a></p></td>
@ -981,7 +920,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>ECP5 LFE5U</p></td> <td><p>ECP5 LFE5U</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-12f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ULX3S-12F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-25f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ULX3S-25F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-45f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ULX3S-45F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-85f" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ULX3S-85F ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-12f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ULX3S-12F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-25f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ULX3S-25F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-45f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ULX3S-45F ➚</span></a> <a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-ulx3s-85f" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ULX3S-85F ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>ulx3s_dfu</p></td> <tr class="row-even"><td><p>ulx3s_dfu</p></td>
<td><p><a class="reference external" href="https://github.com/emard/had2019-playground">Radiona ULX3S DFU mode</a></p></td> <td><p><a class="reference external" href="https://github.com/emard/had2019-playground">Radiona ULX3S DFU mode</a></p></td>
@ -1086,7 +1025,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>zynq7000 xc7z045ffg900</p></td> <td><p>zynq7000 xc7z045ffg900</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>NA</p></td> <td><p>NA</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-zc706" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ZC706 ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-zc706" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ZC706 ➚</span></a></p></td>
</tr> </tr>
<tr class="row-odd"><td><p>zcu102</p></td> <tr class="row-odd"><td><p>zcu102</p></td>
<td><p><a class="reference external" href="https://www.xilinx.com/products/boards-and-kits/ek-u1-zcu102-g.html">Xilinx ZCU102</a></p></td> <td><p><a class="reference external" href="https://www.xilinx.com/products/boards-and-kits/ek-u1-zcu102-g.html">Xilinx ZCU102</a></p></td>
@ -1107,7 +1046,7 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
<td><p>zynq7000 xc7z020clg484</p></td> <td><p>zynq7000 xc7z020clg484</p></td>
<td><p>OK</p></td> <td><p>OK</p></td>
<td><p>NA</p></td> <td><p>NA</p></td>
<td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-zedboard" title="(in FPGA Board Constraints vlatest)"><span class="xref std std-ref">ZedBoard ➚</span></a></p></td> <td><p><a class="reference external" href="https://hdl.github.io/constraints/Data/Boards/index.html#boards-zedboard" title="(in FPGA Board Constraints latest)"><span class="xref std std-ref">ZedBoard ➚</span></a></p></td>
</tr> </tr>
<tr class="row-even"><td><p>zybo_z7_10</p></td> <tr class="row-even"><td><p>zybo_z7_10</p></td>
<td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/zybo-z7/start">Digilent Zybo Z7-10</a></p></td> <td><p><a class="reference external" href="https://reference.digilentinc.com/reference/programmable-logic/zybo-z7/start">Digilent Zybo Z7-10</a></p></td>
@ -1163,32 +1102,94 @@ openFPGALoader<span class="w"> </span>-b<span class="w"> </span>arty<span class=
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="fpga.html" class="btn btn-neutral float-left" title="FPGAs" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="cable.html" class="btn btn-neutral float-right" title="Cables" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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 class="current">
<li class="toctree-l1"><a class="reference internal" href="fpga.html">FPGAs</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Boards</a></li>
<li class="toctree-l1"><a class="reference internal" href="cable.html">Cables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="fpga.html" title="previous chapter">FPGAs</a></li>
<li>Next: <a href="cable.html" title="next chapter">Cables</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/compatibility/board.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,99 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Cables &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Cables &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Anlogic notes" href="../vendors/anlogic.html" /> <link rel="next" title="Anlogic notes" href="../vendors/anlogic.html" />
<link rel="prev" title="Boards" href="board.html" /> <link rel="prev" title="Boards" href="board.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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 class="current">
<li class="toctree-l1"><a class="reference internal" href="fpga.html">FPGAs</a></li>
<li class="toctree-l1"><a class="reference internal" href="board.html">Boards</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Cables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Cables</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/compatibility/cable.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="cables"> <section id="cables">
<span id="compatibility-cables"></span><h1>Cables<a class="headerlink" href="#cables" title="Link to this heading"></a></h1> <span id="compatibility-cables"></span><h1>Cables<a class="headerlink" href="#cables" title="Link to this heading"></a></h1>
<table class="docutils align-default"> <table class="docutils align-default">
@ -321,32 +260,94 @@
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="board.html" class="btn btn-neutral float-left" title="Boards" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../vendors/anlogic.html" class="btn btn-neutral float-right" title="Anlogic notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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 class="current">
<li class="toctree-l1"><a class="reference internal" href="fpga.html">FPGAs</a></li>
<li class="toctree-l1"><a class="reference internal" href="board.html">Boards</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Cables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="board.html" title="previous chapter">Boards</a></li>
<li>Next: <a href="../vendors/anlogic.html" title="next chapter">Anlogic notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/compatibility/cable.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,99 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>FPGAs &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>FPGAs &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Boards" href="board.html" /> <link rel="next" title="Boards" href="board.html" />
<link rel="prev" title="Advanced usage of openFPGALoader" href="../guide/advanced.html" /> <link rel="prev" title="Advanced usage of openFPGALoader" href="../guide/advanced.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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 class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">FPGAs</a></li>
<li class="toctree-l1"><a class="reference internal" href="board.html">Boards</a></li>
<li class="toctree-l1"><a class="reference internal" href="cable.html">Cables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>FPGAs</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/compatibility/fpga.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="fpgas"> <section id="fpgas">
<span id="compatibility-fpgas"></span><h1>FPGAs<a class="headerlink" href="#fpgas" title="Link to this heading"></a></h1> <span id="compatibility-fpgas"></span><h1>FPGAs<a class="headerlink" href="#fpgas" title="Link to this heading"></a></h1>
<table class="docutils align-default"> <table class="docutils align-default">
@ -387,32 +326,94 @@
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../guide/advanced.html" class="btn btn-neutral float-left" title="Advanced usage of openFPGALoader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="board.html" class="btn btn-neutral float-right" title="Boards" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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 class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">FPGAs</a></li>
<li class="toctree-l1"><a class="reference internal" href="board.html">Boards</a></li>
<li class="toctree-l1"><a class="reference internal" href="cable.html">Cables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Vendors</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="../guide/advanced.html" title="previous chapter">Advanced usage of openFPGALoader</a></li>
<li>Next: <a href="board.html" title="next chapter">Boards</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/compatibility/fpga.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,46 +1,73 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="_static/documentation_options.js?v=c6e86fd7"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" />
</head>
<body class="wy-body-for-nav"> <html lang="en" data-content_root="./">
<div class="wy-grid-for-nav"> <head>
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <meta charset="utf-8" />
<div class="wy-side-scroll"> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<div class="wy-side-nav-search" > <title>Index &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<a href="index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
</a> <link rel="stylesheet" type="text/css" href="_static/basic.css?v=b08954a9" />
<div class="version"> <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=27fed22d" />
latest <script src="_static/documentation_options.js?v=c6e86fd7"></script>
</div> <script src="_static/doctools.js?v=fd6eb6e6"></script>
<div role="search"> <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <link rel="index" title="Index" href="#" />
<input type="text" name="q" placeholder="Search docs" /> <link rel="search" title="Search" href="search.html" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" />
</form>
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
</div>
</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>
</div>
</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> <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/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> <li class="toctree-l1"><a class="reference internal" href="guide/install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting</a></li> <li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="guide/advanced.html">Advanced usage of openFPGALoader</a></li> <li class="toctree-l1"><a class="reference internal" href="guide/advanced.html">Advanced usage of openFPGALoader</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Compatibility</span></p> <p class="caption" role="heading"><span class="caption-text">Compatibility</span></p>
@ -64,64 +91,36 @@
<li class="toctree-l1"><a class="reference internal" href="todo.html">To Do</a></li> <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do</a></li>
</ul> </ul>
</div> <div class="relations">
</div> <h3>Related Topics</h3>
</nav> <ul>
<li><a href="index.html">Documentation overview</a><ul>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > </ul></li>
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> </ul>
<a href="index.html">openFPGALoader: universal utility for programming FPGA</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Index</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/genindex" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
</div> </div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="clearer"></div>
</div> </div>
<script> <div class="footer">
jQuery(function () { &#169;2019-2022, Gwenhael Goavec-Merou and contributors.
SphinxRtdTheme.Navigation.enable(true);
}); |
</script> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
</div>
</body>
</body>
</html> </html>

View File

@ -1,109 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Advanced usage of openFPGALoader &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Advanced usage of openFPGALoader &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="FPGAs" href="../compatibility/fpga.html" /> <link rel="next" title="FPGAs" href="../compatibility/fpga.html" />
<link rel="prev" title="Troubleshooting" href="troubleshooting.html" /> <link rel="prev" title="Troubleshooting Guide" href="troubleshooting.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Advanced usage of openFPGALoader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#resetting-an-fpga">Resetting an FPGA</a></li>
<li class="toctree-l2"><a class="reference internal" href="#using-negative-edge-for-tdo-s-sampling">Using negative edge for TDOs sampling</a></li>
<li class="toctree-l2"><a class="reference internal" href="#reading-the-bitstream-from-stdin">Reading the bitstream from STDIN</a></li>
<li class="toctree-l2"><a class="reference internal" href="#automatic-file-type-detection-bypass">Automatic file type detection bypass</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ft231-ft232-bitbang-mode-and-pins-configuration">FT231/FT232 bitbang mode and pins configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="#writing-to-an-arbitrary-address-in-flash-memory">Writing to an arbitrary address in flash memory</a></li>
<li class="toctree-l2"><a class="reference internal" href="#detect-read-write-on-primary-secondary-flash-memories">Detect/read/write on primary/secondary flash memories</a></li>
<li class="toctree-l2"><a class="reference internal" href="#using-an-alternative-directory-for-spioverjtag">Using an alternative directory for <em>spiOverJtag</em></a></li>
</ul>
</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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Advanced usage of openFPGALoader</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/advanced.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="advanced-usage-of-openfpgaloader"> <section id="advanced-usage-of-openfpgaloader">
<span id="advanced-usage"></span><h1>Advanced usage of openFPGALoader<a class="headerlink" href="#advanced-usage-of-openfpgaloader" title="Link to this heading"></a></h1> <span id="advanced-usage"></span><h1>Advanced usage of openFPGALoader<a class="headerlink" href="#advanced-usage-of-openfpgaloader" title="Link to this heading"></a></h1>
<section id="resetting-an-fpga"> <section id="resetting-an-fpga">
@ -231,32 +160,104 @@ openFPGALoader<span class="w"> </span>xxxx
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="troubleshooting.html" class="btn btn-neutral float-left" title="Troubleshooting" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../compatibility/fpga.html" class="btn btn-neutral float-right" title="FPGAs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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 class="current">
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting Guide</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Advanced usage of openFPGALoader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#resetting-an-fpga">Resetting an FPGA</a></li>
<li class="toctree-l2"><a class="reference internal" href="#using-negative-edge-for-tdo-s-sampling">Using negative edge for TDOs sampling</a></li>
<li class="toctree-l2"><a class="reference internal" href="#reading-the-bitstream-from-stdin">Reading the bitstream from STDIN</a></li>
<li class="toctree-l2"><a class="reference internal" href="#automatic-file-type-detection-bypass">Automatic file type detection bypass</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ft231-ft232-bitbang-mode-and-pins-configuration">FT231/FT232 bitbang mode and pins configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="#writing-to-an-arbitrary-address-in-flash-memory">Writing to an arbitrary address in flash memory</a></li>
<li class="toctree-l2"><a class="reference internal" href="#detect-read-write-on-primary-secondary-flash-memories">Detect/read/write on primary/secondary flash memories</a></li>
<li class="toctree-l2"><a class="reference internal" href="#using-an-alternative-directory-for-spioverjtag">Using an alternative directory for <em>spiOverJtag</em></a></li>
</ul>
</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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="troubleshooting.html" title="previous chapter">Troubleshooting Guide</a></li>
<li>Next: <a href="../compatibility/fpga.html" title="next chapter">FPGAs</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/guide/advanced.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,105 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>First steps with openFPGALoader &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>First steps with openFPGALoader &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Installing openFPGALoader" href="install.html" /> <link rel="next" title="Installing openFPGALoader" href="install.html" />
<link rel="prev" title="openFPGALoader: universal utility for programming FPGA" href="../index.html" /> <link rel="prev" title="openFPGALoader: universal utility for programming FPGA" href="../index.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">First steps with openFPGALoader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#install">Install</a></li>
<li class="toctree-l2"><a class="reference internal" href="#programming-a-development-board">Programming a development board</a></li>
<li class="toctree-l2"><a class="reference internal" href="#programming-an-standalone-fpga">Programming an “standalone” FPGA</a></li>
<li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>First steps with openFPGALoader</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/first-steps.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="first-steps-with-openfpgaloader"> <section id="first-steps-with-openfpgaloader">
<span id="first-steps"></span><h1>First steps with openFPGALoader<a class="headerlink" href="#first-steps-with-openfpgaloader" title="Link to this heading"></a></h1> <span id="first-steps"></span><h1>First steps with openFPGALoader<a class="headerlink" href="#first-steps-with-openfpgaloader" title="Link to this heading"></a></h1>
<section id="install"> <section id="install">
@ -153,37 +86,105 @@ Therefore it is preferable to use this flag if your computer is connected to mul
</section> </section>
<section id="troubleshooting"> <section id="troubleshooting">
<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading"></a></h2> <h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading"></a></h2>
<p>Please refer to <a class="reference internal" href="troubleshooting.html#troubleshooting"><span class="std std-ref">Troubleshooting</span></a>.</p> <p>Please refer to <a class="reference internal" href="troubleshooting.html#troubleshooting"><span class="std std-ref">Troubleshooting Guide</span></a>.</p>
</section> </section>
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../index.html" class="btn btn-neutral float-left" title="openFPGALoader: universal utility for programming FPGA" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="install.html" class="btn btn-neutral float-right" title="Installing openFPGALoader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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 class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">First steps with openFPGALoader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#install">Install</a></li>
<li class="toctree-l2"><a class="reference internal" href="#programming-a-development-board">Programming a development board</a></li>
<li class="toctree-l2"><a class="reference internal" href="#programming-an-standalone-fpga">Programming an “standalone” FPGA</a></li>
<li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="../index.html" title="previous chapter">openFPGALoader: universal utility for programming FPGA</a></li>
<li>Next: <a href="install.html" title="next chapter">Installing openFPGALoader</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/guide/first-steps.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,113 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Installing openFPGALoader &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Installing openFPGALoader &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Troubleshooting" href="troubleshooting.html" /> <link rel="next" title="Troubleshooting Guide" href="troubleshooting.html" />
<link rel="prev" title="First steps with openFPGALoader" href="first-steps.html" /> <link rel="prev" title="First steps with openFPGALoader" href="first-steps.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing openFPGALoader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#linux">Linux</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#debian-ubuntu">Debian/Ubuntu</a></li>
<li class="toctree-l3"><a class="reference internal" href="#guix">Guix</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arch-linux">Arch Linux</a></li>
<li class="toctree-l3"><a class="reference internal" href="#fedora">Fedora</a></li>
<li class="toctree-l3"><a class="reference internal" href="#from-source">From source</a></li>
<li class="toctree-l3"><a class="reference internal" href="#udev-rules">Udev rules</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#macos">macOS</a></li>
<li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a></li>
<li class="toctree-l2"><a class="reference internal" href="#common">Common</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Installing openFPGALoader</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/install.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="installing-openfpgaloader"> <section id="installing-openfpgaloader">
<span id="install"></span><h1>Installing openFPGALoader<a class="headerlink" href="#installing-openfpgaloader" title="Link to this heading"></a></h1> <span id="install"></span><h1>Installing openFPGALoader<a class="headerlink" href="#installing-openfpgaloader" title="Link to this heading"></a></h1>
<section id="linux"> <section id="linux">
@ -223,7 +148,7 @@ make<span class="w"> </span>-j<span class="k">$(</span>nproc<span class="k">)</s
<section id="udev-rules"> <section id="udev-rules">
<h3>Udev rules<a class="headerlink" href="#udev-rules" title="Link to this heading"></a></h3> <h3>Udev rules<a class="headerlink" href="#udev-rules" title="Link to this heading"></a></h3>
<p>By default, users have no access to converters. <p>By default, users have no access to converters.
A rule file (<a class="reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/99-openfpgaloader.rules">99-openfpgaloader.rules</a>) for <code class="docutils literal notranslate"><span class="pre">udev</span></code> is provided at the root directory A rule file (<a class="extlink-ghsrc reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/99-openfpgaloader.rules">99-openfpgaloader.rules</a>) for <code class="docutils literal notranslate"><span class="pre">udev</span></code> is provided at the root directory
of this repository. of this repository.
These rules set access right and group (<code class="docutils literal notranslate"><span class="pre">plugdev</span></code>) when a converter is plugged.</p> These rules set access right and group (<code class="docutils literal notranslate"><span class="pre">plugdev</span></code>) when a converter is plugged.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>cp<span class="w"> </span><span class="m">99</span>-openfpgaloader.rules<span class="w"> </span>/etc/udev/rules.d/ <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>cp<span class="w"> </span><span class="m">99</span>-openfpgaloader.rules<span class="w"> </span>/etc/udev/rules.d/
@ -263,6 +188,58 @@ make<span class="w"> </span>-j
</section> </section>
<section id="windows"> <section id="windows">
<h2>Windows<a class="headerlink" href="#windows" title="Link to this heading"></a></h2> <h2>Windows<a class="headerlink" href="#windows" title="Link to this heading"></a></h2>
<section id="msys2-native-build">
<h3>MSYS2 (Native Build)<a class="headerlink" href="#msys2-native-build" title="Link to this heading"></a></h3>
<p>openFPGALoader can be installed via MSYS2:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pacman<span class="w"> </span>-S<span class="w"> </span>mingw-w64-ucrt-x86_64-openFPGALoader
</pre></div>
</div>
</section>
<section id="cross-compilation-from-linux">
<h3>Cross-compilation from Linux<a class="headerlink" href="#cross-compilation-from-linux" title="Link to this heading"></a></h3>
<p>openFPGALoader can be cross-compiled for Windows from Linux using MinGW-w64.
The build system will automatically download and build the required dependencies
(libusb, libftdi).</p>
<p><strong>Prerequisites (Debian/Ubuntu):</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>mingw-w64<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>cmake<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>pkg-config<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>p7zip-full
</pre></div>
</div>
<p><strong>Prerequisites (Fedora/RHEL/Rocky):</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>dnf<span class="w"> </span>install<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>mingw64-gcc<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>mingw64-gcc-c++<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>mingw64-zlib<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>mingw64-zlib-static<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>cmake<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>p7zip<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>p7zip-plugins
</pre></div>
</div>
<p><strong>Build:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/trabucayre/openFPGALoader
<span class="nb">cd</span><span class="w"> </span>openFPGALoader
mkdir<span class="w"> </span>build-win64
<span class="nb">cd</span><span class="w"> </span>build-win64
cmake<span class="w"> </span>-DCMAKE_TOOLCHAIN_FILE<span class="o">=</span>../cmake/Toolchain-x86_64-w64-mingw32.cmake<span class="w"> </span>..
cmake<span class="w"> </span>--build<span class="w"> </span>.<span class="w"> </span>--parallel
</pre></div>
</div>
<p>The resulting <code class="docutils literal notranslate"><span class="pre">openFPGALoader.exe</span></code> will be a statically-linked executable
that only depends on standard Windows system DLLs (KERNEL32, msvcrt, WS2_32).</p>
<p><strong>Optional: Strip debug symbols to reduce size:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>x86_64-w64-mingw32-strip<span class="w"> </span>openFPGALoader.exe
</pre></div>
</div>
<p><strong>Cross-compilation options:</strong></p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">-DCROSS_COMPILE_DEPS=OFF</span></code> - Disable automatic dependency download (use system libraries)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">-DENABLE_CMSISDAP=ON</span></code> - Enable CMSIS-DAP support (requires manually providing hidapi)</p></li>
</ul>
</section>
</section> </section>
<section id="common"> <section id="common">
<h2>Common<a class="headerlink" href="#common" title="Link to this heading"></a></h2> <h2>Common<a class="headerlink" href="#common" title="Link to this heading"></a></h2>
@ -276,32 +253,112 @@ make<span class="w"> </span>-j
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="first-steps.html" class="btn btn-neutral float-left" title="First steps with openFPGALoader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="troubleshooting.html" class="btn btn-neutral float-right" title="Troubleshooting" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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 class="current">
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing openFPGALoader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#linux">Linux</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#debian-ubuntu">Debian/Ubuntu</a></li>
<li class="toctree-l3"><a class="reference internal" href="#guix">Guix</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arch-linux">Arch Linux</a></li>
<li class="toctree-l3"><a class="reference internal" href="#fedora">Fedora</a></li>
<li class="toctree-l3"><a class="reference internal" href="#from-source">From source</a></li>
<li class="toctree-l3"><a class="reference internal" href="#udev-rules">Udev rules</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#macos">macOS</a></li>
<li class="toctree-l2"><a class="reference internal" href="#windows">Windows</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#msys2-native-build">MSYS2 (Native Build)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#cross-compilation-from-linux">Cross-compilation from Linux</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#common">Common</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="first-steps.html" title="previous chapter">First steps with openFPGALoader</a></li>
<li>Next: <a href="troubleshooting.html" title="next chapter">Troubleshooting Guide</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/guide/install.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,110 +1,40 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Troubleshooting &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Troubleshooting Guide &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Advanced usage of openFPGALoader" href="advanced.html" /> <link rel="next" title="Advanced usage of openFPGALoader" href="advanced.html" />
<link rel="prev" title="Installing openFPGALoader" href="install.html" /> <link rel="prev" title="Installing openFPGALoader" href="install.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Troubleshooting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it">I installed openFPGALoader but it says <cite>command not found</cite> when I try to launch it</a></li>
<li class="toctree-l2"><a class="reference internal" href="#gowin-device-could-not-communicate-since-last-bitstream-flashed-issue-206">Gowin device could not communicate since last bitstream flashed. (issue #206)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#jtag-init-failed">JTAG init failed</a></li>
<li class="toctree-l2"><a class="reference internal" href="#tang-primer-20k-program-slow-and-stucked-issue-250">Tang Primer 20k program slow and stucked (issue #250)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cannot-flash-tang-nano-20k-issue-251">Cannot flash Tang Nano 20k (issue #251)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cannot-flash-tang-nano-9k-issue-251">Cannot flash Tang Nano 9k (issue #251)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#unable-to-open-ftdi-device-4-usb-open-failed-issue-245">Unable to open FTDI device: -4 (usb_open() failed) (issue #245)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Troubleshooting</li> <section id="troubleshooting-guide">
<li class="wy-breadcrumbs-aside"> <span id="troubleshooting"></span><h1>Troubleshooting Guide<a class="headerlink" href="#troubleshooting-guide" title="Link to this heading"></a></h1>
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/guide/troubleshooting.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="troubleshooting">
<span id="id1"></span><h1>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading"></a></h1>
<section id="i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it"> <section id="i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it">
<h2>I installed openFPGALoader but it says <cite>command not found</cite> when I try to launch it<a class="headerlink" href="#i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it" title="Link to this heading"></a></h2> <h2>I installed openFPGALoader but it says <cite>command not found</cite> when I try to launch it<a class="headerlink" href="#i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it" title="Link to this heading"></a></h2>
<p>The correct spelling of the program is <em>openFPGALoader</em> with FPGA and the “L” of “Loader” in uppercase. <p>The correct spelling of the program is <em>openFPGALoader</em> with FPGA and the “L” of “Loader” in uppercase.
@ -144,32 +74,103 @@ To recover you have to pull down this pin (before power up) to recover JTAG inte
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="install.html" class="btn btn-neutral float-left" title="Installing openFPGALoader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="advanced.html" class="btn btn-neutral float-right" title="Advanced usage of openFPGALoader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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 class="current">
<li class="toctree-l1"><a class="reference internal" href="first-steps.html">First steps with openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Troubleshooting Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#i-installed-openfpgaloader-but-it-says-command-not-found-when-i-try-to-launch-it">I installed openFPGALoader but it says <cite>command not found</cite> when I try to launch it</a></li>
<li class="toctree-l2"><a class="reference internal" href="#gowin-device-could-not-communicate-since-last-bitstream-flashed-issue-206">Gowin device could not communicate since last bitstream flashed. (issue #206)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#jtag-init-failed">JTAG init failed</a></li>
<li class="toctree-l2"><a class="reference internal" href="#tang-primer-20k-program-slow-and-stucked-issue-250">Tang Primer 20k program slow and stucked (issue #250)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cannot-flash-tang-nano-20k-issue-251">Cannot flash Tang Nano 20k (issue #251)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cannot-flash-tang-nano-9k-issue-251">Cannot flash Tang Nano 9k (issue #251)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#unable-to-open-ftdi-device-4-usb-open-failed-issue-245">Unable to open FTDI device: -4 (usb_open() failed) (issue #245)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="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>
<li class="toctree-l1"><a class="reference internal" href="../vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../vendors/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="install.html" title="previous chapter">Installing openFPGALoader</a></li>
<li>Next: <a href="advanced.html" title="next chapter">Advanced usage of openFPGALoader</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/guide/troubleshooting.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,87 +1,37 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="./">
<title>openFPGALoader: universal utility for programming FPGA &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script> <title>openFPGALoader: universal utility for programming FPGA &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="_static/basic.css?v=b08954a9" />
<script src="_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=27fed22d" />
<script src="_static/doctools.js?v=888ff710"></script> <script src="_static/documentation_options.js?v=c6e86fd7"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/doctools.js?v=fd6eb6e6"></script>
<script src="_static/js/theme.js"></script> <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="First steps with openFPGALoader" href="guide/first-steps.html" /> <link rel="next" title="First steps with openFPGALoader" href="guide/first-steps.html" />
</head>
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="#" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting</a></li>
<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>
<li class="toctree-l1"><a class="reference internal" href="vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="#">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div class="body" role="main">
<section id="openfpgaloader-universal-utility-for-programming-fpga"> <section id="openfpgaloader-universal-utility-for-programming-fpga">
<h1>openFPGALoader: universal utility for programming FPGA<a class="headerlink" href="#openfpgaloader-universal-utility-for-programming-fpga" title="Link to this heading"></a></h1> <h1>openFPGALoader: universal utility for programming FPGA<a class="headerlink" href="#openfpgaloader-universal-utility-for-programming-fpga" title="Link to this heading"></a></h1>
<p>Welcome to the documentation of openFPGALoader!</p> <p>Welcome to the documentation of openFPGALoader!</p>
@ -115,31 +65,93 @@ openFPGALoader works on Linux, Windows and macOS.</p>
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="guide/first-steps.html" class="btn btn-neutral float-right" title="First steps with openFPGALoader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="#">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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>
<li class="toctree-l1"><a class="reference internal" href="vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/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="#">Documentation overview</a><ul>
<li>Next: <a href="guide/first-steps.html" title="next chapter">First steps with openFPGALoader</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="_sources/index.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

Binary file not shown.

View File

@ -1,49 +1,91 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head> <html lang="en" data-content_root="./">
<meta charset="utf-8" /> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta charset="utf-8" />
<title>Search &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <title>Search &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <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" />
<!--[if lt IE 9]> <script src="_static/documentation_options.js?v=c6e86fd7"></script>
<script src="_static/js/html5shiv.min.js"></script> <script src="_static/doctools.js?v=fd6eb6e6"></script>
<![endif]--> <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="_static/documentation_options.js?v=c6e86fd7"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<script src="_static/searchtools.js"></script> <script src="_static/searchtools.js"></script>
<script src="_static/language_data.js"></script> <script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="#" /> <link rel="search" title="Search" href="#" />
</head> <script src="searchindex.js" defer="defer"></script>
<meta name="robots" content="noindex" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" > </head><body>
<a href="index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version"> <div class="document">
latest <div class="documentwrapper">
</div> <div class="bodywrapper">
<div role="search">
<form id="rtd-search-form" class="wy-form" action="#" method="get">
<input type="text" name="q" placeholder="Search docs" /> <div class="body" role="main">
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" /> <h1 id="search-documentation">Search</h1>
<noscript>
<div class="admonition warning">
<p>
Please activate JavaScript to enable the search
functionality.
</p>
</div>
</noscript>
<p>
Searching for multiple words only shows matches that contain
all words.
</p>
<form action="" method="get">
<input type="text" name="q" aria-labelledby="search-documentation" value="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="search" />
<span id="search-progress" style="padding-left: 10px"></span>
</form> </form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p> <div id="search-results"></div>
</div>
</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>
<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">User Guide</span></p>
<ul> <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/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> <li class="toctree-l1"><a class="reference internal" href="guide/install.html">Installing openFPGALoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting</a></li> <li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="guide/advanced.html">Advanced usage of openFPGALoader</a></li> <li class="toctree-l1"><a class="reference internal" href="guide/advanced.html">Advanced usage of openFPGALoader</a></li>
</ul> </ul>
<p class="caption" role="heading"><span class="caption-text">Compatibility</span></p> <p class="caption" role="heading"><span class="caption-text">Compatibility</span></p>
@ -67,75 +109,36 @@
<li class="toctree-l1"><a class="reference internal" href="todo.html">To Do</a></li> <li class="toctree-l1"><a class="reference internal" href="todo.html">To Do</a></li>
</ul> </ul>
</div> <div class="relations">
</div> <h3>Related Topics</h3>
</nav> <ul>
<li><a href="index.html">Documentation overview</a><ul>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > </ul></li>
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> </ul>
<a href="index.html">openFPGALoader: universal utility for programming FPGA</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Search</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<noscript>
<div id="fallback" class="admonition warning">
<p class="last">
Please activate JavaScript to enable the search functionality.
</p>
</div>
</noscript>
<div id="search-results">
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="clearer"></div>
</div> </div>
<script> <div class="footer">
jQuery(function () { &#169;2019-2022, Gwenhael Goavec-Merou and contributors.
SphinxRtdTheme.Navigation.enable(true);
}); |
</script> Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
<script> &amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
jQuery(function() { Search.loadIndex("searchindex.js"); });
</script> </div>
<script id="searchindexloader"></script>
</body>
</body>
</html> </html>

File diff suppressed because one or more lines are too long

233
todo.html
View File

@ -1,104 +1,37 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="./">
<title>To Do &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script> <title>To Do &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="_static/basic.css?v=b08954a9" />
<script src="_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=27fed22d" />
<script src="_static/doctools.js?v=888ff710"></script> <script src="_static/documentation_options.js?v=c6e86fd7"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/doctools.js?v=fd6eb6e6"></script>
<script src="_static/js/theme.js"></script> <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="prev" title="Xilinx notes" href="vendors/xilinx.html" /> <link rel="prev" title="Xilinx notes" href="vendors/xilinx.html" />
</head>
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting</a></li>
<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>
<li class="toctree-l1"><a class="reference internal" href="vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/xilinx.html">Xilinx notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">To Do</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#global">Global</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cable">Cable</a></li>
<li class="toctree-l2"><a class="reference internal" href="#devices-boards">Devices/boards</a></li>
<li class="toctree-l2"><a class="reference internal" href="#misc">Misc</a></li>
</ul>
</li>
</ul>
</div> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>To Do</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/todo.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="to-do"> <section id="to-do">
<span id="todo"></span><h1>To Do<a class="headerlink" href="#to-do" title="Link to this heading"></a></h1> <span id="todo"></span><h1>To Do<a class="headerlink" href="#to-do" title="Link to this heading"></a></h1>
<section id="global"> <section id="global">
@ -135,31 +68,99 @@
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="vendors/xilinx.html" class="btn btn-neutral float-left" title="Xilinx notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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>
<li class="toctree-l1"><a class="reference internal" href="vendors/anlogic.html">Anlogic notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/colognechip.html">Cologne Chip notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/intel.html">Intel notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/lattice.html">Lattice notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="vendors/xilinx.html">Xilinx notes</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Development</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">To Do</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#global">Global</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cable">Cable</a></li>
<li class="toctree-l2"><a class="reference internal" href="#devices-boards">Devices/boards</a></li>
<li class="toctree-l2"><a class="reference internal" href="#misc">Misc</a></li>
</ul>
</li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="vendors/xilinx.html" title="previous chapter">Xilinx notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="_sources/todo.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

239
vendors/anlogic.html vendored
View File

@ -1,107 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Anlogic notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Anlogic notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Cologne Chip notes" href="colognechip.html" /> <link rel="next" title="Cologne Chip notes" href="colognechip.html" />
<link rel="prev" title="Cables" href="../compatibility/cable.html" /> <link rel="prev" title="Cables" href="../compatibility/cable.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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 current"><a class="current reference internal" href="#">Anlogic notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#sipeed-lichee-tang">Sipeed Lichee Tang</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#bit-file-load-memory">bit file load (memory)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#bit-file-load-spi-flash">bit file load (spi flash)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#svf-file-load">svf file load</a></li>
</ul>
</li>
</ul>
</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"><a class="reference internal" href="gowin.html">Gowin notes</a></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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Anlogic notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/anlogic.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="anlogic-notes"> <section id="anlogic-notes">
<span id="anlogic"></span><h1>Anlogic notes<a class="headerlink" href="#anlogic-notes" title="Link to this heading"></a></h1> <span id="anlogic"></span><h1>Anlogic notes<a class="headerlink" href="#anlogic-notes" title="Link to this heading"></a></h1>
<section id="sipeed-lichee-tang"> <section id="sipeed-lichee-tang">
@ -147,32 +78,102 @@ make
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../compatibility/cable.html" class="btn btn-neutral float-left" title="Cables" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="colognechip.html" class="btn btn-neutral float-right" title="Cologne Chip notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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 current"><a class="current reference internal" href="#">Anlogic notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#sipeed-lichee-tang">Sipeed Lichee Tang</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#bit-file-load-memory">bit file load (memory)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#bit-file-load-spi-flash">bit file load (spi flash)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#svf-file-load">svf file load</a></li>
</ul>
</li>
</ul>
</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"><a class="reference internal" href="gowin.html">Gowin notes</a></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="../compatibility/cable.html" title="previous chapter">Cables</a></li>
<li>Next: <a href="colognechip.html" title="next chapter">Cologne Chip notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/vendors/anlogic.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

View File

@ -1,109 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Cologne Chip notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Cologne Chip notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Efinix notes" href="efinix.html" /> <link rel="next" title="Efinix notes" href="efinix.html" />
<link rel="prev" title="Anlogic notes" href="anlogic.html" /> <link rel="prev" title="Anlogic notes" href="anlogic.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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 current"><a class="current reference internal" href="#">Cologne Chip notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#supported-boards-cables">Supported Boards/Cables</a></li>
<li class="toctree-l2"><a class="reference internal" href="#programming-modes">Programming Modes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#jtag-configuration">JTAG Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-configuration">SPI Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#jtag-flash-access">JTAG Flash Access</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash-access">SPI Flash Access</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="gowin.html">Gowin notes</a></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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Cologne Chip notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/colognechip.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="cologne-chip-notes"> <section id="cologne-chip-notes">
<span id="colognechip"></span><h1>Cologne Chip notes<a class="headerlink" href="#cologne-chip-notes" title="Link to this heading"></a></h1> <span id="colognechip"></span><h1>Cologne Chip notes<a class="headerlink" href="#cologne-chip-notes" title="Link to this heading"></a></h1>
<section id="supported-boards-cables"> <section id="supported-boards-cables">
@ -192,32 +121,104 @@
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="anlogic.html" class="btn btn-neutral float-left" title="Anlogic notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="efinix.html" class="btn btn-neutral float-right" title="Efinix notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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 current"><a class="current reference internal" href="#">Cologne Chip notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#supported-boards-cables">Supported Boards/Cables</a></li>
<li class="toctree-l2"><a class="reference internal" href="#programming-modes">Programming Modes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#jtag-configuration">JTAG Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-configuration">SPI Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="#jtag-flash-access">JTAG Flash Access</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash-access">SPI Flash Access</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="efinix.html">Efinix notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="gowin.html">Gowin notes</a></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="anlogic.html" title="previous chapter">Anlogic notes</a></li>
<li>Next: <a href="efinix.html" title="next chapter">Efinix notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/vendors/colognechip.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

245
vendors/efinix.html vendored
View File

@ -1,110 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Efinix notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Efinix notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Gowin notes" href="gowin.html" /> <link rel="next" title="Gowin notes" href="gowin.html" />
<link rel="prev" title="Cologne Chip notes" href="colognechip.html" /> <link rel="prev" title="Cologne Chip notes" href="colognechip.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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 current"><a class="current reference internal" href="#">Efinix notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#firant-and-xyloni-boards-efinix-trion-t8">Firant and Xyloni boards (efinix trion T8)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#hex-file-load">hex file load</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#trion-and-titanium-jtag-usage">Trion and Titanium JTAG usage</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#bin-file-load">bin file load</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hex-file-flash">hex file flash</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gowin.html">Gowin notes</a></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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Efinix notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/efinix.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="efinix-notes"> <section id="efinix-notes">
<span id="efinix"></span><h1>Efinix notes<a class="headerlink" href="#efinix-notes" title="Link to this heading"></a></h1> <span id="efinix"></span><h1>Efinix notes<a class="headerlink" href="#efinix-notes" title="Link to this heading"></a></h1>
<section id="firant-and-xyloni-boards-efinix-trion-t8"> <section id="firant-and-xyloni-boards-efinix-trion-t8">
@ -146,32 +74,105 @@ NOTE: JTAG chains with more than one device (eg index-chain) are currently no
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="colognechip.html" class="btn btn-neutral float-left" title="Cologne Chip notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="gowin.html" class="btn btn-neutral float-right" title="Gowin notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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 current"><a class="current reference internal" href="#">Efinix notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#firant-and-xyloni-boards-efinix-trion-t8">Firant and Xyloni boards (efinix trion T8)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#hex-file-load">hex file load</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#trion-and-titanium-jtag-usage">Trion and Titanium JTAG usage</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#bin-file-load">bin file load</a></li>
<li class="toctree-l3"><a class="reference internal" href="#hex-file-flash">hex file flash</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gowin.html">Gowin notes</a></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="colognechip.html" title="previous chapter">Cologne Chip notes</a></li>
<li>Next: <a href="gowin.html" title="next chapter">Gowin notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/vendors/efinix.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

239
vendors/gowin.html vendored
View File

@ -1,107 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Gowin notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Gowin notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Intel notes" href="intel.html" /> <link rel="next" title="Intel notes" href="intel.html" />
<link rel="prev" title="Efinix notes" href="efinix.html" /> <link rel="prev" title="Efinix notes" href="efinix.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Gowin notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/gowin.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="gowin-notes"> <section id="gowin-notes">
<span id="gowin"></span><h1>Gowin notes<a class="headerlink" href="#gowin-notes" title="Link to this heading"></a></h1> <span id="gowin"></span><h1>Gowin notes<a class="headerlink" href="#gowin-notes" title="Link to this heading"></a></h1>
<section id="gowin-gw1n"> <section id="gowin-gw1n">
@ -176,32 +107,102 @@ flash section can also be programmed via the JTAG interface:</p>
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="efinix.html" class="btn btn-neutral float-left" title="Efinix notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="intel.html" class="btn btn-neutral float-right" title="Intel notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <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>
</html> </html>

259
vendors/intel.html vendored
View File

@ -1,117 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Intel notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Intel notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Lattice notes" href="lattice.html" /> <link rel="next" title="Lattice notes" href="lattice.html" />
<link rel="prev" title="Gowin notes" href="gowin.html" /> <link rel="prev" title="Gowin notes" href="gowin.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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"><a class="reference internal" href="gowin.html">Gowin notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Intel notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#intel-altera">Intel/Altera</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#loading-a-bitstream">Loading a bitstream</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash">SPI flash</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#max10-fpga-programming-guide">MAX10: FPGA Programming Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#internal-flash-organization">Internal Flash Organization</a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-svf">Using <code class="docutils literal notranslate"><span class="pre">svf</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-pof">Using <code class="docutils literal notranslate"><span class="pre">pof</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-an-arbitrary-binary-file">Using an arbitrary binary file</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#intel-altera-old-boards">Intel/Altera (Old Boards)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#loading-a-serial-vector-format-svf">Loading a Serial Vector Format (.svf)</a></li>
</ul>
</li>
</ul>
</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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Intel notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/intel.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="intel-notes"> <section id="intel-notes">
<span id="intel"></span><h1>Intel notes<a class="headerlink" href="#intel-notes" title="Link to this heading"></a></h1> <span id="intel"></span><h1>Intel notes<a class="headerlink" href="#intel-notes" title="Link to this heading"></a></h1>
<section id="intel-altera"> <section id="intel-altera">
@ -308,32 +229,112 @@ and <code class="docutils literal notranslate"><span class="pre">CFM2</span></co
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="gowin.html" class="btn btn-neutral float-left" title="Gowin notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="lattice.html" class="btn btn-neutral float-right" title="Lattice notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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"><a class="reference internal" href="gowin.html">Gowin notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Intel notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#intel-altera">Intel/Altera</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#loading-a-bitstream">Loading a bitstream</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash">SPI flash</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#max10-fpga-programming-guide">MAX10: FPGA Programming Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#internal-flash-organization">Internal Flash Organization</a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-svf">Using <code class="docutils literal notranslate"><span class="pre">svf</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-pof">Using <code class="docutils literal notranslate"><span class="pre">pof</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-an-arbitrary-binary-file">Using an arbitrary binary file</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#intel-altera-old-boards">Intel/Altera (Old Boards)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#loading-a-serial-vector-format-svf">Loading a Serial Vector Format (.svf)</a></li>
</ul>
</li>
</ul>
</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="gowin.html" title="previous chapter">Gowin notes</a></li>
<li>Next: <a href="lattice.html" title="next chapter">Lattice notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/vendors/intel.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

249
vendors/lattice.html vendored
View File

@ -1,112 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Lattice notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Lattice notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Xilinx notes" href="xilinx.html" /> <link rel="next" title="Xilinx notes" href="xilinx.html" />
<link rel="prev" title="Intel notes" href="intel.html" /> <link rel="prev" title="Intel notes" href="intel.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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"><a class="reference internal" href="gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="intel.html">Intel notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Lattice notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#machxo2-machxo3">MachXO2/MachXO3</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#flash-memory">Flash memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="#sram">SRAM</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#ice40">iCE40</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ecp5-ecp3-certus-nx-certuspro-nx-crosslink-nx">ECP5/ECP3/Certus-NX/CertusPro-NX/Crosslink-NX</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">SRAM</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash">SPI Flash</a></li>
</ul>
</li>
</ul>
</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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Lattice notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/lattice.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="lattice-notes"> <section id="lattice-notes">
<span id="lattice"></span><h1>Lattice notes<a class="headerlink" href="#lattice-notes" title="Link to this heading"></a></h1> <span id="lattice"></span><h1>Lattice notes<a class="headerlink" href="#lattice-notes" title="Link to this heading"></a></h1>
<section id="machxo2-machxo3"> <section id="machxo2-machxo3">
@ -213,32 +139,107 @@ file.</p>
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="intel.html" class="btn btn-neutral float-left" title="Intel notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="xilinx.html" class="btn btn-neutral float-right" title="Xilinx notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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"><a class="reference internal" href="gowin.html">Gowin notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="intel.html">Intel notes</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Lattice notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#machxo2-machxo3">MachXO2/MachXO3</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#flash-memory">Flash memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="#sram">SRAM</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#ice40">iCE40</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ecp5-ecp3-certus-nx-certuspro-nx-crosslink-nx">ECP5/ECP3/Certus-NX/CertusPro-NX/Crosslink-NX</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id1">SRAM</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash">SPI Flash</a></li>
</ul>
</li>
</ul>
</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="intel.html" title="previous chapter">Intel notes</a></li>
<li>Next: <a href="xilinx.html" title="next chapter">Xilinx notes</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/vendors/lattice.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>

239
vendors/xilinx.html vendored
View File

@ -1,105 +1,38 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <html lang="en" data-content_root="../">
<title>Xilinx notes &mdash; openFPGALoader: universal utility for programming FPGA latest documentation</title> <head>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <meta charset="utf-8" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script> <title>Xilinx notes &#8212; openFPGALoader: universal utility for programming FPGA latest documentation</title>
<![endif]--> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="../_static/basic.css?v=b08954a9" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script> <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=27fed22d" />
<script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../_static/js/theme.js"></script> <script src="../_static/sphinx_highlight.js?v=6ffebe34"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
<link rel="next" title="To Do" href="../todo.html" /> <link rel="next" title="To Do" href="../todo.html" />
<link rel="prev" title="Lattice notes" href="lattice.html" /> <link rel="prev" title="Lattice notes" href="lattice.html" />
</head>
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> openFPGALoader: universal utility for programming FPGA
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting</a></li>
<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"><a class="reference internal" href="gowin.html">Gowin notes</a></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 current"><a class="current reference internal" href="#">Xilinx notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#loading-a-bitstream">Loading a bitstream</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash">SPI flash</a></li>
</ul>
</li>
</ul>
</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> </head><body>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <div class="document">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <div class="documentwrapper">
<a href="../index.html">openFPGALoader: universal utility for programming FPGA</a> <div class="bodywrapper">
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs"> <div class="body" role="main">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Xilinx notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/trabucayre/openFPGALoader/blob/master/doc/vendors/xilinx.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="xilinx-notes"> <section id="xilinx-notes">
<span id="xilinx"></span><h1>Xilinx notes<a class="headerlink" href="#xilinx-notes" title="Link to this heading"></a></h1> <span id="xilinx"></span><h1>Xilinx notes<a class="headerlink" href="#xilinx-notes" title="Link to this heading"></a></h1>
<p>To simplify further explanations, we consider the project is generated in the current directory.</p> <p>To simplify further explanations, we consider the project is generated in the current directory.</p>
@ -108,7 +41,7 @@
<ol class="arabic simple"> <ol class="arabic simple">
<li><p>Spartan Edge Accelerator Board has only pinheader, so the cable must be provided</p></li> <li><p>Spartan Edge Accelerator Board has only pinheader, so the cable must be provided</p></li>
<li><p>A <em>JTAG</em> &lt;-&gt; <em>SPI</em> bridge (used to write bitstream in FLASH) is available for some device, see <li><p>A <em>JTAG</em> &lt;-&gt; <em>SPI</em> bridge (used to write bitstream in FLASH) is available for some device, see
<a class="reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/spiOverJtag">spiOverJtag</a> to check if your model is supported.</p></li> <a class="extlink-ghsrc reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/spiOverJtag">spiOverJtag</a> to check if your model is supported.</p></li>
<li><p>Board provides the device/package model, but if the targeted board is not officially supported but the FPGA yes, <li><p>Board provides the device/package model, but if the targeted board is not officially supported but the FPGA yes,
you can use <code class="docutils literal notranslate"><span class="pre">--fpga-part</span></code> to provide the model.</p></li> you can use <code class="docutils literal notranslate"><span class="pre">--fpga-part</span></code> to provide the model.</p></li>
<li><p>With spartan3, the flash is an independent JTAG device. <li><p>With spartan3, the flash is an independent JTAG device.
@ -193,7 +126,7 @@ to GND).</p>
<p><code class="docutils literal notranslate"><span class="pre">--fpga-part</span></code> is only required if this information is not provided at <code class="docutils literal notranslate"><span class="pre">board.hpp</span></code> level or if the board is not <p><code class="docutils literal notranslate"><span class="pre">--fpga-part</span></code> is only required if this information is not provided at <code class="docutils literal notranslate"><span class="pre">board.hpp</span></code> level or if the board is not
officially supported. officially supported.
device/package format is something like xc7a35tcsg324 (arty model). device/package format is something like xc7a35tcsg324 (arty model).
See <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/src/board.hpp">src/board.hpp</a>, or <a class="reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/spiOverJtag">spiOverJtag</a> directory for examples.</p> See <a class="extlink-ghsrc reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/src/board.hpp">src/board.hpp</a>, or <a class="extlink-ghsrc reference external" href="https://github.com/trabucayre/openFPGALoader/blob/master/spiOverJtag">spiOverJtag</a> directory for examples.</p>
</div> </div>
<p>Some boards with UltraScale FPGAs, like the VCU118 and KCU16, support the SPIx8 (Dual Quad SPI) configuration. <p>Some boards with UltraScale FPGAs, like the VCU118 and KCU16, support the SPIx8 (Dual Quad SPI) configuration.
In this case, the <code class="docutils literal notranslate"><span class="pre">spix8</span></code> option <code class="docutils literal notranslate"><span class="pre">write_cfgmem</span></code> on the above example can be used to generate two <code class="docutils literal notranslate"><span class="pre">.mcs</span></code> files, In this case, the <code class="docutils literal notranslate"><span class="pre">spix8</span></code> option <code class="docutils literal notranslate"><span class="pre">write_cfgmem</span></code> on the above example can be used to generate two <code class="docutils literal notranslate"><span class="pre">.mcs</span></code> files,
@ -213,32 +146,100 @@ The default target is the <code class="docutils literal notranslate"><span class
</section> </section>
</div>
</div> </div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="lattice.html" class="btn btn-neutral float-left" title="Lattice notes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../todo.html" class="btn btn-neutral float-right" title="To Do" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2019-2022, Gwenhael Goavec-Merou and contributors.</p>
</div>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/buildthedocs/sphinx.theme">theme</a>
provided by <a href="https://buildthedocs.github.io">Build the Docs</a>.
</footer>
</div> </div>
</div> </div>
</section> <div class="sphinxsidebar" role="navigation" aria-label="Main">
</div> <div class="sphinxsidebarwrapper">
<script> <h1 class="logo"><a href="../index.html">openFPGALoader: universal utility for programming FPGA</a></h1>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
<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>
</div>
</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>
<li class="toctree-l1"><a class="reference internal" href="../guide/troubleshooting.html">Troubleshooting Guide</a></li>
<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"><a class="reference internal" href="gowin.html">Gowin notes</a></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 current"><a class="current reference internal" href="#">Xilinx notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#loading-a-bitstream">Loading a bitstream</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#spi-flash">SPI flash</a></li>
</ul>
</li>
</ul>
</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="lattice.html" title="previous chapter">Lattice notes</a></li>
<li>Next: <a href="../todo.html" title="next chapter">To Do</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2019-2022, Gwenhael Goavec-Merou and contributors.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 9.1.0</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="../_sources/vendors/xilinx.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html> </html>