|
1 | | -# PyFPGA examples |
| 1 | +# PyFPGA Examples |
2 | 2 |
|
3 | | -## Tool-specific examples |
| 3 | +In this section, you will find: |
4 | 4 |
|
5 | | -Led blinking examples where a Bitstream is generated and transfer to a |
6 | | -supported board. It shows the inclusion of Constraints files. |
| 5 | +* `projects`: basic but complete examples for each supported tool. |
| 6 | +* `helpers`: examples of the PyFPGA helpers. |
| 7 | +* `hooks`: how to use this feature. |
| 8 | +* `misc`: miscellaneous examples. |
7 | 9 |
|
8 | | -* [ghdl](ghdl): VHDL synthesis with GDHL (`--synth`) |
9 | | -* [ise](ise): Spartan-6 FPGA LX9 MicroBoard (Avnet) |
10 | | -* [libero](libero): Digi-Key SmartFusion2 Maker Board (Digi-Key) |
11 | | -* [openflow](openflow): |
12 | | - * IceStick (`icestorm.py`) |
13 | | - * EDU-CIAA-FPGA (`icestorm.py --board edu-ciaa-fpga`) |
14 | | - * OrangeCrab-r0.2 (`prjtrellis.py`) |
15 | | - * ECP5 Evaluation Board (`prjtrellis.py --board ecp5evn`) |
16 | | -* [quartus](quartus): DE10Nano (Terasic) |
17 | | -* [vivado](vivado): Zybo (Digilent) |
18 | | -* [yosys](yosys): |
19 | | - * Verilog synthesis with Yosys (using `ghdl-yosys-plugin` for VHDL) |
20 | | - * Spartan-6 FPGA LX9 MicroBoard (`ise.py`) |
21 | | - * Zybo (`vivado.py`) |
22 | | - |
23 | | -## Multi-project examples |
24 | | - |
25 | | -Examples where more than a project is solved in the same script. |
26 | | - |
27 | | -* [multi/projects.py](multi/projects.py): it uses a dict with three project |
28 | | -names where different tools, part names, files and top-level names can be |
29 | | -specified. In this manner, you can manage alternatives or sub-products of your |
30 | | -design in a single place. |
31 | | -* [multi/verilog.py](multi/verilog.py): here the same set of Verilog files are |
32 | | -synthesised with all the available tools, which is useful to make comparations |
33 | | -and check portability. |
34 | | -* [multi/vhdl.py](multi/vhdl.py): the same concept that the previous one, but |
35 | | -using VHDL instead of Verilog files. The main difference is how to deal with |
36 | | -VHDL libraries. |
37 | | -* [multi/parameters.py](multi/parameters.py): VHDL and Verilog files are |
38 | | -synthesized changing the value of its generics/parameters. |
39 | | -* [multi/memory.py](multi/memory.py): it tests the Memory Content Files |
40 | | -inclusion capability of the supported tools. |
41 | | - |
42 | | -## Hooks examples |
43 | | - |
44 | | -* [hooks/strategies.py](hooks/strategies.py): the same HDL is synthesized by |
45 | | -different tools, changing the optimization strategy (`area`, `power` and |
46 | | -`speed`). |
47 | | - |
48 | | -## Helpers |
49 | | - |
50 | | -Examples to exercise developed helper tools such as `hdl2bit`, `prj2bit` and |
51 | | -`bitprog`. |
52 | | - |
53 | | -## Miscellaneous examples |
54 | | - |
55 | | -* [misc/capture.py](misc/capture.py): it shows how to capture the execution messages. |
| 10 | +For an example where all the tools are employed based on the same code, you can check |
| 11 | +[support.py](../tests/support.py) (located under the [tests](../tests) directory). |
0 commit comments