Skip to content

Commit 25613a6

Browse files
committed
docs: 'Tools' rewritten
1 parent d169a7b commit 25613a6

File tree

1 file changed

+141
-95
lines changed

1 file changed

+141
-95
lines changed

docs/tools.rst

Lines changed: 141 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,144 @@
11
Tools
22
=====
33

4-
+---------------+-----------+---------+-----+-----------------------------------------------+
5-
| Tools | Vendor | Version | Tcl | Comment |
6-
+===============+===========+=========+=====+===============================================+
7-
| ISE | Xilinx | 14.7 | 8.4 | Discontinued in 2013 |
8-
+---------------+-----------+---------+-----+-----------------------------------------------+
9-
| Libero-SoC | Microsemi | 2024.1 | 8.5 | Important changes in version 12.0 (2019) |
10-
+---------------+-----------+---------+-----+-----------------------------------------------+
11-
| Openflow | | | | |
12-
+---------------+-----------+---------+-----+-----------------------------------------------+
13-
| Quartus Prime | Intel | 23.1 | 8.6 | Known as Quartus II until version 15.0 (2015) |
14-
+---------------+-----------+---------+-----+-----------------------------------------------+
15-
| Vivado | Xilinx | 2022.1 | 8.5 | Introduced in 2012, it superseded ISE |
16-
+---------------+-----------+---------+-----+-----------------------------------------------+
17-
18-
* ISE supports devices starting from Spartan 3/Virtex 4 until some first members of the 7 series.
19-
Previous Spartan/Virtex devices were supported until version 10. Vivado supports devices starting
20-
from the 7 series.
21-
22-
* Libero-SoC had a fork for PolarFire devices which was merged in version 12.0 (2019).
23-
Libero SoC v12.0 and later supports PolarFire, RTG4, SmartFusion2 and IGLOO2 FPGA families.
24-
Libero SoC v11.9 and earlier are the alternative to work with SmartFusion, IGLOO, ProASIC3 and
25-
Fusion families.
26-
Libero IDE v9.2 (2016) was the last version of the previous tool to work with antifuse and older
27-
flash devices.
28-
29-
* Since the change from Quartus II to Prime, three editions are available: Pro (for Agilex,
30-
Stratix 10, Arria 10 and Cyclone GX devices), Standard (for Cyclone 10 LP and earlier devices)
31-
and Lite (a high-volume low-end subset of the Standard edition).
32-
33-
Detailed support
34-
----------------
35-
36-
+------------------------------+---------+----------+------------+-----------+----------+
37-
| | ISE | Libero | Openflow | Quartus | Vivado |
38-
+==============================+=========+==========+============+===========+==========+
39-
|**add_files** | | | | | |
40-
+------------------------------+---------+----------+------------+-----------+----------+
41-
|``vhdl`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
42-
+------------------------------+---------+----------+------------+-----------+----------+
43-
|``verilog`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
44-
+------------------------------+---------+----------+------------+-----------+----------+
45-
|``system_verilog`` | ``TBD`` | ``TBD`` | ``TBD`` | ``TBD`` | ``TBD`` |
46-
+------------------------------+---------+----------+------------+-----------+----------+
47-
|``constraint`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
48-
+------------------------------+---------+----------+------------+-----------+----------+
49-
|``block_design`` | ``NY`` | ``NY`` | ``NY`` | ``NY`` | ``Yes`` |
50-
+------------------------------+---------+----------+------------+-----------+----------+
51-
|**add_param** | | | | | |
52-
+------------------------------+---------+----------+------------+-----------+----------+
53-
|``boolean`` (*VHDL/Verilog*) | ``TBD`` | ``TBD`` |``TBD`` | ``TBD`` | ``TBD`` |
54-
+------------------------------+---------+----------+------------+-----------+----------+
55-
|``integer`` (*VHDL/Verilog*) | ``TBD`` | ``TBD`` |``TBD`` | ``TBD`` | ``TBD`` |
56-
+------------------------------+---------+----------+------------+-----------+----------+
57-
|``string`` (*VHDL/Verilog*) | ``TBD`` | ``TBD`` |``TBD`` | ``TBD`` | ``TBD`` |
58-
+------------------------------+---------+----------+------------+-----------+----------+
59-
|``real`` (*VHDL/Verilog*) | ``TBD`` | ``TBD`` |``TBD`` | ``TBD`` | ``TBD`` |
60-
+------------------------------+---------+----------+------------+-----------+----------+
61-
|``std_logic`` (*VHDL*) | ``TBD`` | ``TBD`` |``TBD`` | ``TBD`` | ``TBD`` |
62-
+------------------------------+---------+----------+------------+-----------+----------+
63-
|``std_logic_vector`` (*VHDL*) | ``TBD`` | ``TBD`` |``TBD`` | ``TBD`` | ``TBD`` |
64-
+------------------------------+---------+----------+------------+-----------+----------+
65-
|**add_vlog_include** | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
66-
+------------------------------+---------+----------+------------+-----------+----------+
67-
|**add_vlog_define** | ``TBI`` | ``TBI`` | ``TBI`` | ``TBI`` | ``TBI`` |
68-
+------------------------------+---------+----------+------------+-----------+----------+
69-
|**set_vhdl_arch** | ``TBI`` | ``TBI`` | ``TBI`` | ``TBI`` | ``TBI`` |
70-
+------------------------------+---------+----------+------------+-----------+----------+
71-
|**generate** | | | | | |
72-
+------------------------------+---------+----------+------------+-----------+----------+
73-
|``prj`` | ``Yes`` | ``Yes`` | ``No`` | ``Yes`` | ``Yes`` |
74-
+------------------------------+---------+----------+------------+-----------+----------+
75-
|``syn`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
76-
+------------------------------+---------+----------+------------+-----------+----------+
77-
|``par`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
78-
+------------------------------+---------+----------+------------+-----------+----------+
79-
|``bit`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` | ``Yes`` |
80-
+------------------------------+---------+----------+------------+-----------+----------+
81-
|**transfer** | | | | | |
82-
+------------------------------+---------+----------+------------+-----------+----------+
83-
|``fpga`` | ``Yes`` | ``NY`` | ``Yes`` | ``Yes`` | ``Yes`` |
84-
+------------------------------+---------+----------+------------+-----------+----------+
85-
|``spi`` | ``Yes`` | ``NY`` | ``NY`` | ``NY`` | ``NY`` |
86-
+------------------------------+---------+----------+------------+-----------+----------+
87-
|``bpi`` | ``Yes`` | ``NY`` | ``NY`` | ``NY`` | ``NY`` |
88-
+------------------------------+---------+----------+------------+-----------+----------+
89-
|``detect`` | ``Yes`` | ``NY`` | ``NY`` | ``Yes`` | ``Yes`` |
90-
+------------------------------+---------+----------+------------+-----------+----------+
91-
|``unlock`` | ``Yes`` | ``No`` | ``No`` | ``No`` | ``No`` |
92-
+------------------------------+---------+----------+------------+-----------+----------+
93-
94-
* ``Yes``: already supported
95-
* ``No``: no plans (or unneeded)
96-
* ``NY``: Not yet, but maybe someday
97-
* ``TBD``: To Be Defined
98-
* ``TBI``: To Be Implemented
4+
.. list-table:: Default PyFPGA's parts per tool
5+
:header-rows: 1
6+
7+
* - Tool
8+
- Vendor
9+
- Default device
10+
- Name format
11+
* - Diamond
12+
- Lattice
13+
- LFXP2-5E-5TN144C
14+
- device-speed-package
15+
* - ISE
16+
- Xilinx
17+
- XC7K160T-3-FBG484
18+
- device-speed-package
19+
* - Libero
20+
- Microchip/Microsemi
21+
- MPF100T-1-FCG484
22+
- device-speed-package
23+
* - Openflow
24+
- FLOSS
25+
- HX8K-CT256
26+
- device-package
27+
* - Quartus
28+
- Intel/Altera
29+
- 10M50SCE144I7G
30+
- part
31+
* - Vivado
32+
- AMD/Xilinx
33+
- XC7K160T-3-FBG484
34+
- device-speed-package
35+
36+
Diamond
37+
-------
38+
39+
`Diamond downloads <https://www.latticesemi.com/latticediamond>`_
40+
41+
Diamond is the previous generation EDA tool from Lattice.
42+
43+
Example:
44+
45+
.. code::
46+
47+
from pyfpga.diamond import Diamond
48+
49+
prj = Diamond()
50+
51+
ISE
52+
---
53+
54+
`ISE downloads <https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive-ise.html>`_
55+
56+
ISE (*Integrated Software Environment*) is the previous Xilinx's EDA, superseded by Vivado.
57+
The last version is ISE 14.7, launched in October 2013.
58+
It supports devices starting from Spartan 3/Virtex 4 until some of the first members of the 7 series (all the 7 series and above are supported by Vivado).
59+
Previous Spartan/Virtex devices were supported until version 10.
60+
61+
.. attention::
62+
63+
ISE supports Verilog 2001 and VHDL 1993, but not SystemVerilog.
64+
65+
Example:
66+
67+
.. code::
68+
69+
from pyfpga.ise import Ise
70+
71+
prj = Ise()
72+
73+
Libero
74+
------
75+
76+
`Libero downloads <https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/fpga/libero-software-later-versions>`_
77+
78+
Libero-SoC (Microsemi, acquired by Microchip in 2018) is the evolution of Libero-IDE (Actel, acquired by Microsemi in 2010).
79+
PyFPGA supports Libero-SoC starting from 12.0, which supports most modern families.
80+
For other devices, Libero-SoC 11.9 or Libero-IDE v9.2 are needed, but these versions are not supported by PyFPGA.
81+
82+
Example:
83+
84+
.. code::
85+
86+
from pyfpga.libero import Libero
87+
88+
prj = Libero()
89+
90+
Openflow
91+
--------
92+
93+
`Docker downloads <https://docs.docker.com/engine/install/>`_
94+
95+
Openflow is the combination of different Free/Libre and Open Source (FLOSS) tools:
96+
97+
* Yosys for synthesis, with ghdl-yosys-plugin for VHDL support.
98+
* nextpnr in its ice40 and ecp5 versions.
99+
* Projects icestorm and Trellis.
100+
101+
It relies on Docker and fine-grain containers.
102+
103+
.. attention::
104+
105+
It is currently the only flow not solved using Tcl (it uses docker in a bash script instead).
106+
107+
Example:
108+
109+
.. code::
110+
111+
from pyfpga.openflow import Openflow
112+
113+
prj = Openflow()
114+
115+
Quartus
116+
-------
117+
118+
`Quartus downloads <https://www.intel.com/content/www/us/en/products/details/fpga/development-tools/quartus-prime/resource.html>`_
119+
120+
Quartus Prime (Intel) is the continuation of Quartus II (Altera) and is divided into the Pro, Standard, and Lite editions, each supporting different families.
121+
122+
Example:
123+
124+
.. code::
125+
126+
from pyfpga.quartus import Quartus
127+
128+
prj = Quartus()
129+
130+
Vivado
131+
------
132+
133+
`Vivado downloads <https://www.xilinx.com/support/download.html>`_
134+
135+
Vivado is the current EDA tool from Xilinx, which has superseded ISE and supports the 7 series and above.
136+
It is included with Vitis, the SDK for embedded applications.
137+
138+
Example:
139+
140+
.. code::
141+
142+
from pyfpga.vivado import Vivado
143+
144+
prj = Vivado()

0 commit comments

Comments
 (0)