|
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 [support.py](../tests/support.py) (located under the [tests](../tests/support.py) directory). |
0 commit comments