diff --git a/.gitignore b/.gitignore index 7a52fac..41d9885 100644 --- a/.gitignore +++ b/.gitignore @@ -39,5 +39,7 @@ openFPGALoader build/ # Documentation -/doc/_build -/doc/_theme +/doc/__pycache__/ +/doc/_build/ +/doc/_theme/ +/doc/compatibility/boards.inc diff --git a/doc/boards.yml b/doc/boards.yml new file mode 100644 index 0000000..1031237 --- /dev/null +++ b/doc/boards.yml @@ -0,0 +1,402 @@ +- ID: acornCle215 + Description: Acorn CLE 215+ + URL: http://squirrelsresearch.com/acorn-cle-215 + FPGA: Artix xc7a200tsbg484 + Memory: OK + Flash: OK + +- ID: alchitry_au + Description: Alchitry Au + URL: https://alchitry.com/products/alchitry-au-fpga-development-board + FPGA: Artix xc7a35tftg256 + Memory: OK + Flash: OK + +- ID: arty_a7_35t + Description: Digilent Arty A7 + URL: https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start + FPGA: Artix xc7a35ticsg324 + Memory: OK + Flash: OK + +- ID: arty_a7_100t + Description: Digilent Arty A7 + URL: https://reference.digilentinc.com/reference/programmable-logic/arty-a7/start + FPGA: Artix xc7a100tcsg324 + Memory: OK + Flash: OK + +- ID: arty_s7_25 + Description: Digilent Arty S7 + URL: https://reference.digilentinc.com/reference/programmable-logic/arty-s7/start + FPGA: Spartan7 xc7s25csga324 + Memory: OK + Flash: OK + +- ID: arty_s7_50 + Description: Digilent Arty S7 + URL: https://reference.digilentinc.com/reference/programmable-logic/arty-s7/start + FPGA: Spartan7 xc7s50csga324 + Memory: OK + Flash: OK + +- ID: arty_z7_10 + Description: Digilent Arty S7 + URL: https://reference.digilentinc.com/reference/programmable-logic/arty-z7/start + FPGA: Zynq7000 xc7z010csg400 + Memory: OK + Flash: NA + +- ID: arty_z7_20 + Description: Digilent Arty S7 + URL: https://reference.digilentinc.com/reference/programmable-logic/arty-z7/start + FPGA: Zynq7000 xc7z020csg400 + Memory: OK + Flash: NA + +- ID: arty + Description: Digilent Analog Discovery 2 + URL: https://reference.digilentinc.com/test-and-measurement/analog-discovery-2/start + FPGA: Spartan6 xc6slx25 + Memory: OK + Flash: NT + +- ID: arty + Description: Digilent Digital Discovery + URL: https://reference.digilentinc.com/test-and-measurement/digital-discovery/start + FPGA: Spartan6 xc6slx25 + Memory: OK + Flash: NT + +- ID: basys3 + Description: Digilent Basys3 + URL: https://reference.digilentinc.com/reference/programmable-logic/basys-3/start + FPGA: Artix xc7a35tcpg236 + Memory: OK + Flash: OK + +- ID: gatemate_evb_jtag + Description: Cologne Chip GateMate FPGA Evaluation Board (JTAG mode) + URL: https://colognechip.com/programmable-logic/gatemate/ + FPGA: Cologne Chip GateMate Series + Memory: OK + Flash: OK + +- ID: gatemate_evb_spi + Description: Cologne Chip GateMate FPGA Evaluation Board (SPI mode) + URL: https://colognechip.com/programmable-logic/gatemate/ + FPGA: Cologne Chip GateMate Series + Memory: OK + Flash: OK + +- ID: gatemate_pgm_spi + Description: Cologne Chip GateMate FPGA Programmer (SPI mode) + URL: https://colognechip.com/programmable-logic/gatemate/ + FPGA: Cologne Chip GateMate Series + Memory: OK + Flash: OK + +- ID: colorlight + Description: Colorlight 5A-75B (version 7) + URL: https://fr.aliexpress.com/item/32281130824.html + FPGA: ECP5 LFE5U-25F-6BG256C + Memory: OK + Flash: OK + +- ID: colorlight_i5 + Description: Colorlight I5 + URL: https://www.colorlight-led.com/product/colorlight-i5-led-display-receiver-card.html + FPGA: ECP5 LFE5U-25F-6BG381C + Memory: OK + Flash: OK + +- ID: crosslinknx_evn + Description: Lattice CrossLink-NX Evaluation Board + URL: https://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/CrossLink-NXEvaluationBoard + FPGA: Nexus LIFCL-40 + Memory: OK + Flash: OK + +- ID: cyc1000 + Description: Trenz cyc1000 + URL: https://shop.trenz-electronic.de/en/TEI0003-02-CYC1000-with-Cyclone-10-FPGA-8-MByte-SDRAM + FPGA: Cyclone 10 LP 10CL025YU256C8G + Memory: OK + Flash: OK + +- ID: de0 + Description: Terasic DE0 + URL: https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=364 + FPGA: Cyclone III EP3C16F484C6 + Memory: OK + Flash: NT + +- ID: de0nano + Description: Terasic de0nano + URL: https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=593 + FPGA: Cyclone IV E EP4CE22F17C6 + Memory: OK + Flash: OK + +- ID: de0nanoSoc + Description: Terasic de0nanoSoc + URL: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=941 + FPGA: Cyclone V SoC 5CSEMA4U23C6 + Memory: OK + +- ID: de10nano + Description: Terasic de10Nano + URL: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=1046 + FPGA: Cyclone V SoC 5CSEBA6U23I7 + Memory: OK + +- ID: ecp5_evn + Description: Lattice ECP5 5G Evaluation Board + URL: https://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/ECP5EvaluationBoard + FPGA: ECP5G LFE5UM5G-85F + Memory: OK + Flash: OK + +- ID: ecpix5 + Description: LambdaConcept ECPIX-5 + URL: https://shop.lambdaconcept.com/home/46-2-ecpix-5.html#/2-ecpix_5_fpga-ecpix_5_85f + FPGA: ECP5 LFE5UM5G-85F + Memory: OK + Flash: OK + +- ID: fireant + Description: Fireant Trion T8 + URL: https://www.crowdsupply.com/jungle-elec/fireant + FPGA: Trion T8F81 + Memory: NA + Flash: AS + +- ID: fomu + Description: Fomu PVT + URL: https://tomu.im/fomu.html + FPGA: iCE40UltraPlus UP5K + Memory: NA + Flash: OK + +- ID: honeycomb + Description: honeycomb + URL: https://github.com/Disasm/honeycomb-pcb + FPGA: littleBee GW1NS-2C + Memory: OK + Flash: IF + +- ID: ice40_generic + Description: iCEBreaker + URL: https://1bitsquared.com/collections/fpga/products/icebreaker + FPGA: iCE40UltraPlus UP5K + Memory: NA + Flash: AS + +- ID: icebreaker-bitsy + Description: iCEBreaker-bitsy + URL: https://1bitsquared.com/collections/fpga/products/icebreaker-bitsy + FPGA: iCE40UltraPlus UP5K + Memory: NA + Flash: OK + +- ID: ice40_generic + Description: icestick + URL: https://www.latticesemi.com/icestick + FPGA: iCE40 HX1k + Memory: NA + Flash: AS + +- ID: ice40_generic + Description: iCE40-HX8K + URL: https://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx + FPGA: iCE40 HX8k + Memory: NT + Flash: AS + +- ID: ice40_generic + Description: Olimex iCE40HX1K-EVB + URL: https://www.olimex.com/Products/FPGA/iCE40/iCE40HX1K-EVB/open-source-hardware + FPGA: iCE40 HX1k + Memory: NT + Flash: AS + +- ID: ice40_generic + Description: Olimex iCE40HX8K-EVB + URL: https://www.olimex.com/Products/FPGA/iCE40/iCE40HX8K-EVB/open-source-hardware + FPGA: iCE40 HX8k + Memory: NT + Flash: AS + +- ID: ice40_generic + Description: Icezum Alhambra II + URL: https://alhambrabits.com/alhambra + FPGA: iCE40 HX4k + Memory: NT + Flash: AS + +- ID: kc705 + Description: Xilinx KC705 + URL: https://www.xilinx.com/products/boards-and-kits/ek-k7-kc705-g.html + FPGA: Kintex7 xc7k325t + Memory: OK + Flash: NT + +- ID: licheeTang + Description: Sipeed Lichee Tang + URL: https://tang.sipeed.com/en/hardware-overview/lichee-tang/ + FPGA: eagle s20 EG4S20BG256 + Memory: OK + Flash: OK + +- ID: machXO2EVN + Description: Lattice MachXO2 Breakout Board Evaluation Kit + URL: https://www.latticesemi.com/products/developmentboardsandkits/machxo2breakoutboard + FPGA: MachXO2 LCMXO2-7000HE + Memory: OK + Flash: OK + +- ID: machXO3EVN + Description: Lattice MachXO3D Development Board + URL: https://www.latticesemi.com/products/developmentboardsandkits/machxo3d_development_board + FPGA: MachXO3D LCMXO3D-9400HC + Memory: OK + Flash: NT + +- ID: machXO3SK + Description: Lattice MachXO3LF Starter Kit + URL: https://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/MachXO3LFStarterKit + FPGA: MachXO3 LCMX03LF-6900C + Memory: OK + Flash: OK + +- ID: nexysVideo + Description: Digilent Nexys Video + URL: https://reference.digilentinc.com/reference/programmable-logic/nexys-video/start + FPGA: Artix xc7a200tsbg484 + Memory: OK + Flash: OK + +- ID: orangeCrab + Description: Orange Crab + URL: https://github.com/gregdavill/OrangeCrab + FPGA: ECP5 LFE5U-25F-8MG285C + Memory: OK (JTAG) + Flash: OK (DFU) + +- ID: pipistrello + Description: Saanlima Pipistrello LX45 + URL: http://pipistrello.saanlima.com/index.php?title=Welcome_to_Pipistrello + FPGA: Spartan6 xc6slx45-csg324 + Memory: OK + Flash: OK + +- ID: qmtechCycloneIV + Description: QMTech CycloneIV Core Board + URL: https://fr.aliexpress.com/item/32949281189.html + FPGA: Cyclone IV EP4CE15F23C8N + Memory: OK + Flash: OK + +- ID: qmtechCycloneV + Description: QMTech CycloneV Core Board + URL: https://fr.aliexpress.com/i/1000006622149.html + FPGA: Cyclone V 5CEFA2F23I7 + Memory: OK + Flash: OK + +- ID: runber + Description: SeeedStudio Gowin RUNBER + URL: https://www.seeedstudio.com/Gowin-RUNBER-Development-Board-p-4779.html + FPGA: littleBee GW1N-4 + Memory: OK + Flash: IF/EF + +- ID: runber + Description: Scarab Hardware MiniSpartan6+ + URL: https://www.kickstarter.com/projects/1812459948/minispartan6-a-powerful-fpga-board-and-easy-to-use + FPGA: Spartan6 xc6slx25-3-ftg256 + Memory: OK + Flash: NT + +- ID: spartanEdgeAccelBoard + Description: SeeedStudio Spartan Edge Accelerator Board + URL: http://wiki.seeedstudio.com/Spartan-Edge-Accelerator-Board + FPGA: Spartan7 xc7s15ftgb196 + Memory: OK + Flash: NA + +- ID: tangnano + Description: Sipeed Tang Nano + URL: https://tangnano.sipeed.com/en/ + FPGA: littleBee GW1N-1 + Memory: OK + +- ID: tangnano4k + Description: Sipeed Tang Nano 4K + URL: https://tangnano.sipeed.com/en/ + FPGA: littleBee GW1NSR-4C + Memory: OK + Flash: IF/EF + +- ID: tec0117 + Description: Trenz Gowin LittleBee (TEC0117) + URL: https://shop.trenz-electronic.de/en/TEC0117-01-FPGA-Module-with-GOWIN-LittleBee-and-8-MByte-internal-SDRAM + FPGA: littleBee GW1NR-9 + Memory: OK + Flash: IF + +- ID: ulx3s + Description: Radiona ULX3S + URL: https://radiona.org/ulx3s/ + FPGA: ECP5 LFE5U + Memory: OK + Flash: OK + +- ID: ulx3s_dfu + Description: Radiona ULX3S DFU mode + URL: https://github.com/emard/had2019-playground + FPGA: ECP5 LFE5U + Memory: NA + Flash: OK + +- ID: xtrx + Description: FairWaves XTRXPro + URL: https://www.crowdsupply.com/fairwaves/xtrx + FPGA: Artix xc7a50tcpg236 + Memory: OK + Flash: OK + +- ID: xyloni_spi + Description: Efinix Xyloni + URL: https://www.efinixinc.com/products-devkits-xyloni.html + FPGA: Trion T8F81 + Memory: NA + Flash: AS + +- ID: trion_t120_bga576_spi + Description: Efinix Trion T120 BGA576 Dev Kit + URL: https://www.efinixinc.com/products-devkits-triont120bga576.html + FPGA: Trion T120BGA576 + Memory: NA + Flash: AS + +- ID: trion_ti60_f225_spi + Description: Efinix Titanium F225 Dev Kit + URL: https://www.efinixinc.com/products-devkits-titaniumti60f225.html + FPGA: Titanium Ti60F225 + Memory: NA + Flash: AS + +- ID: xmf3 + Description: PLDkit XMF3 + URL: https://pldkit.com/xilinx/xmf3 + FPGA: Xilinx xc3s200ft256, xcf01s + Memory: OK + Flash: OK + +- ID: zedboard + Description: Avnet ZedBoard + URL: https://www.avnet.com/wps/portal/us/products/avnet-boards/avnet-board-families/zedboard/ + FPGA: zynq7000 xc7z020clg484 + Memory: OK + Flash: NA diff --git a/doc/compatibility/board.rst b/doc/compatibility/board.rst index 09c4ca0..664e9ff 100644 --- a/doc/compatibility/board.rst +++ b/doc/compatibility/board.rst @@ -11,68 +11,7 @@ Boards openFPGALoader -b arty bitstream.bit # Loading in SRAM (volatile) openFPGALoader -b arty -f bitstream.bit # Writing in flash (non-volatile) -======================= ================================================================================================================================================= ============================= ========= ======== - Board name Description FPGA Memory Flash -======================= ================================================================================================================================================= ============================= ========= ======== - acornCle215 `Acorn CLE 215+ `__ Artix xc7a200tsbg484 OK OK - alchitry_au `Alchitry Au `__ Artix xc7a35tftg256 OK OK - arty_a7_35t `Digilent Arty A7 `__ Artix xc7a35ticsg324 OK OK - arty_a7_100t `Digilent Arty A7 `__ Artix xc7a100tcsg324 OK OK - arty_s7_25 `Digilent Arty S7 `__ Spartan7 xc7s25csga324 OK OK - arty_s7_50 `Digilent Arty S7 `__ Spartan7 xc7s50csga324 OK OK - arty_z7_10 `Digilent Arty S7 `__ Zynq7000 xc7z010csg400 OK NA - arty_z7_20 `Digilent Arty S7 `__ Zynq7000 xc7z020csg400 OK NA - arty `Digilent Analog Discovery 2 `__ Spartan6 xc6slx25 OK NT - arty `Digilent Digital Discovery `__ Spartan6 xc6slx25 OK NT - basys3 `Digilent Basys3 `__ Artix xc7a35tcpg236 OK OK - gatemate_evb_jtag `Cologne Chip GateMate FPGA Evaluation Board (JTAG mode) `__ Cologne Chip GateMate Series OK OK - gatemate_evb_spi `Cologne Chip GateMate FPGA Evaluation Board (SPI mode) `__ Cologne Chip GateMate Series OK OK - gatemate_pgm_spi `Cologne Chip GateMate FPGA Programmer (SPI mode) `__ Cologne Chip GateMate Series OK OK - colorlight `Colorlight 5A-75B (version 7) `__ ECP5 LFE5U-25F-6BG256C OK OK - colorlight_i5 `Colorlight I5 `__ ECP5 LFE5U-25F-6BG381C OK OK - crosslinknx_evn `Lattice CrossLink-NX Evaluation Board `__ Nexus LIFCL-40 OK OK - cyc1000 `Trenz cyc1000 `__ Cyclone 10 LP 10CL025YU256C8G OK OK - de0 `Terasic DE0 `__ Cyclone III EP3C16F484C6 OK NT - de0nano `Terasic de0nano `__ Cyclone IV E EP4CE22F17C6 OK OK - de0nanoSoc `Terasic de0nanoSoc `__ Cyclone V SoC 5CSEMA4U23C6 OK - de10nano `Terasic de10Nano `__ Cyclone V SoC 5CSEBA6U23I7 OK - ecp5_evn `Lattice ECP5 5G Evaluation Board `__ ECP5G LFE5UM5G-85F OK OK - ecpix5 `LambdaConcept ECPIX-5 `__ ECP5 LFE5UM5G-85F OK OK - fireant `Fireant Trion T8 `__ Trion T8F81 NA AS - fomu `Fomu PVT `__ iCE40UltraPlus UP5K NA OK - honeycomb `honeycomb `__ littleBee GW1NS-2C OK IF - ice40_generic `iCEBreaker `__ iCE40UltraPlus UP5K NA AS - icebreaker-bitsy `iCEBreaker-bitsy `__ iCE40UltraPlus UP5K NA OK - ice40_generic `icestick `__ iCE40 HX1k NA AS - ice40_generic `iCE40-HX8K `__ iCE40 HX8k NT AS - ice40_generic `Olimex iCE40HX1K-EVB `__ iCE40 HX1k NT AS - ice40_generic `Olimex iCE40HX8K-EVB `__ iCE40 HX8k NT AS - ice40_generic `Icezum Alhambra II `__ iCE40 HX4k NT AS - kc705 `Xilinx KC705 `__ Kintex7 xc7k325t OK NT - licheeTang `Sipeed Lichee Tang `__ eagle s20 EG4S20BG256 OK OK - machXO2EVN `Lattice MachXO2 Breakout Board Evaluation Kit `__ MachXO2 LCMXO2-7000HE OK OK - machXO3EVN `Lattice MachXO3D Development Board `__ MachXO3D LCMXO3D-9400HC OK NT - machXO3SK `Lattice MachXO3LF Starter Kit `__ MachXO3 LCMX03LF-6900C OK OK - nexysVideo `Digilent Nexys Video `__ Artix xc7a200tsbg484 OK OK - orangeCrab `Orange Crab `__ ECP5 LFE5U-25F-8MG285C OK (JTAG) OK (DFU) - pipistrello `Saanlima Pipistrello LX45 `__ Spartan6 xc6slx45-csg324 OK OK - qmtechCycloneIV `QMTech CycloneIV Core Board `__ Cyclone IV EP4CE15F23C8N OK OK - qmtechCycloneV `QMTech CycloneV Core Board `__ Cyclone V 5CEFA2F23I7 OK OK - runber `SeeedStudio Gowin RUNBER `__ littleBee GW1N-4 OK IF/EF - runber `Scarab Hardware MiniSpartan6+ `__ Spartan6 xc6slx25-3-ftg256 OK NT - spartanEdgeAccelBoard `SeeedStudio Spartan Edge Accelerator Board `__ Spartan7 xc7s15ftgb196 OK NA - tangnano `Sipeed Tang Nano `__ littleBee GW1N-1 OK - tangnano4k `Sipeed Tang Nano 4K `__ littleBee GW1NSR-4C OK IF/EF - tec0117 `Trenz Gowin LittleBee (TEC0117) `__ littleBee GW1NR-9 OK IF - ulx3s `Radiona ULX3S `__ ECP5 LFE5U OK OK - ulx3s_dfu `Radiona ULX3S DFU mode `__ ECP5 LFE5U NA OK - xtrx `FairWaves XTRXPro `__ Artix xc7a50tcpg236 OK OK - xyloni_spi `Efinix Xyloni `__ Trion T8F81 NA AS - trion_t120_bga576_spi `Efinix Trion T120 BGA576 Dev Kit `__ Trion T120BGA576 NA AS - trion_ti60_f225_spi `Efinix Titanium F225 Dev Kit `__ Titanium Ti60F225 NA AS - xmf3 `PLDkit XMF3 `__ Xilinx xc3s200ft256, xcf01s OK OK - zedboard `Avnet ZedBoard `__ zynq7000 xc7z020clg484 OK NA -======================= ================================================================================================================================================= ============================= ========= ======== +.. include:: boards.inc * IF: Internal Flash * EF: External Flash diff --git a/doc/conf.py b/doc/conf.py index b33b834..ddb9cd8 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -101,3 +101,30 @@ extlinks = { "ghpull": ("https://github.com/trabucayre/openFPGALoader/pull/%s", "pull request #"), "ghsrc": ("https://github.com/trabucayre/openFPGALoader/blob/master/%s", None), } + +# -- Read board data from boards.yml + +from dataclasses import dataclass +from yaml import load as yaml_load, Loader as yaml_loader, dump as yaml_dump +from tabulate import tabulate + +@dataclass +class Board: + ID: str + Description: str = None + URL: str = None + FPGA: str = None + Memory: str = None + Flash: str = None + +with (ROOT / 'boards.yml').open('r', encoding='utf-8') as fptr: + data = [Board(**item) for item in yaml_load(fptr, yaml_loader)] + +table = tabulate( + [[item.ID, f"`{item.Description} <{item.URL}>`__", item.FPGA, item.Memory, item.Flash] for item in data], + headers=["Board name", "Description", "FPGA", "Memory", "Flash"], + tablefmt="rst" +) + +with (ROOT / "compatibility/boards.inc").open("w", encoding="utf-8") as wptr: + wptr.write(table) diff --git a/doc/requirements.txt b/doc/requirements.txt index 6966869..a543433 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1 +1,3 @@ +pyyaml sphinx +tabulate