Difference between revisions of "Using FPGA"

From ArmadeusWiki
Jump to: navigation, search
(FPGA Interfaces)
(CactusII)
(19 intermediate revisions by the same user not shown)
Line 12: Line 12:
 
=== FPGA Interfaces ===
 
=== FPGA Interfaces ===
  
* [[APF9328]] : [[IMX9328-Spartan3 interface description]]
+
* '''APF9328''': [[IMX9328-Spartan3 interface description]]
* [[APF27]] : [[IMX27-Spartan3A interface description]]
+
* '''APF27''': [[IMX27-Spartan3A interface description]]
* [[APF51]] : [[IMX51-Spartan6 interface description]]
+
* '''APF51''': [[IMX51-Spartan6 interface description]]
* [[APF6_SP]]:
+
* '''APF6_SP''': [[APF6_SP Interfaces description]]
** [[IMX6-CycloneV interface description | IMX6-CycloneV interface description (PCIe)]]
+
* '''OPOS6UL_SP''': [[OPOS6UL_SP Interfaces description]]
** [[DDR3-CycloneV interface description | DDR3-CycloneV interface description]]
+
** [[APF6_SP hirose pinout | Pinout on apf6sp hirose connector]]
+
 
+
  
 
| width="50%" |
 
| width="50%" |
Line 26: Line 23:
 
Manage the FPGA from Armadeus distribution.
 
Manage the FPGA from Armadeus distribution.
  
* [[Configure or flash FPGA ?]]
 
 
* Configure the FPGA [[FPGA_loader | from Linux]], [[Target_Software_Installation#FPGA_firmware_test | from U-Boot]], [[PCIe_fpga_load | from PCIe]].
 
* Configure the FPGA [[FPGA_loader | from Linux]], [[Target_Software_Installation#FPGA_firmware_test | from U-Boot]], [[PCIe_fpga_load | from PCIe]].
 
* Flashing FPGA firmware [[Uboot_FPGA_firmware_update_from_Linux | from Linux]], [[Target_Software_Installation#FPGA_firmware_installation | from U-Boot]]
 
* Flashing FPGA firmware [[Uboot_FPGA_firmware_update_from_Linux | from Linux]], [[Target_Software_Installation#FPGA_firmware_installation | from U-Boot]]
 
* [[FPGA_register | Access the FPGA address domain from Linux]]
 
* [[FPGA_register | Access the FPGA address domain from Linux]]
 
 
 
  
 
|----------------
 
|----------------
 
|- style="background:#f4f4f4; color:black; -moz-border-radius:18px;"
 
|- style="background:#f4f4f4; color:black; -moz-border-radius:18px;"
 
| width="50%" |
 
| width="50%" |
 +
 
=== Make some examples ===
 
=== Make some examples ===
  
Line 53: Line 47:
  
 
'''Xilinx'''
 
'''Xilinx'''
* [[ISE WebPack installation on Linux| ISE WebPack (Xilinx's free devt tool) installation]]
+
* [[ISE WebPack and Vivado]]
* [[Vivado installation on Linux]]
+
 
* [[How_to_make_a_VHDL_design_in_Ubuntu/Debian| How to setup the FPGA toolchain in Ubuntu/Debian]]
+
* [[How to simulate post synthesis and post place & route design with GHDL]]
+
 
'''Altera'''
 
'''Altera'''
 
* [[Quartus | Quartus Web edition (Altera's free devt tool)]]
 
* [[Quartus | Quartus Web edition (Altera's free devt tool)]]
 
* [[Modelsim-Altera | Install Modelsim-Altera (starter edition)]]
 
* [[Modelsim-Altera | Install Modelsim-Altera (starter edition)]]
  
 +
'''Lattice'''
 +
 +
* [[IceCube | Install IceCube]]
 +
* [[Diamond | Install Lattice Diamond]]
 +
 +
'''Microsemi'''
 +
* [http://www.fabienm.eu/flf/installing-libero-on-debian-9/ Install Libero]
  
 
|----------------
 
|----------------
Line 72: Line 71:
 
For complex projects, POD should be used to simplify design.
 
For complex projects, POD should be used to simplify design.
  
==== [[Migen]] ====
+
==== [[FuseSoC]] ====
 +
FuseSoC is a builder written in Python used to automatize FPGA constructions
  
With migen, it's possible to develop FPGA design in Python then generate Verilog for synthezis.
+
==== CactusII ====
  
==== [[Chisel]] ====
+
[http://funbase.cs.tut.fi/ Graphical IDE] for managing FPGA/ASIC design with IPX-ACT standard.
With Chisel, it's possible to develop FPGA design in Scala then generate C++ model for simulation and Verilog model for synthezis.
+
  
 
| width="50%" |
 
| width="50%" |
 +
 +
=== HDL ===
  
 
===VHDL ===
 
===VHDL ===
Line 90: Line 91:
 
=== Verilog ===
 
=== Verilog ===
  
 +
* [https://www.veripool.org/wiki/verilator Verilator] an High speed verilog simulator
 +
* [http://iverilog.icarus.com/ Icarus] Famous open-source verilog simulator
 +
* [https://symbiyosys.readthedocs.io/en/latest/ SymbiYosys] open-source Verilog formal verification
 +
 +
=== Synthesizable Synchronous HDL ===
 +
==== [[Migen]] ====
 +
 +
With migen, it's possible to develop FPGA design in Python then generate Verilog for synthezis.
 +
 +
==== [[Chisel]] ====
 +
With Chisel, it's possible to develop FPGA design in Scala then generate C++ model for simulation and Verilog model for synthesis. Armadeus system can help you to integrate a Chisel project on Armadeus board.
 +
 +
==== [[SpinalHDL]] ====
 +
 +
[https://github.com/SpinalHDL/SpinalHDL Another HDL generator] (VHDL) written in Scala.
  
 
|----------------
 
|----------------
Line 108: Line 124:
 
''' CycloneV'''
 
''' CycloneV'''
 
* [https://www.altera.com/products/fpga/cyclone-series/cyclone-v/overview.html CycloneV overview from altera]
 
* [https://www.altera.com/products/fpga/cyclone-series/cyclone-v/overview.html CycloneV overview from altera]
 +
 +
''' OpenSource '''
 +
 +
* [http://www.fabienm.eu/flf/wp-content/uploads/2017/05/fpgamap-1.svg OpenSource FPGA map]
 +
 
| width="50%" |
 
| width="50%" |
 +
 +
 +
 
|}
 
|}

Revision as of 14:23, 29 April 2019


Developing on the APF FPGA

FPGA Interfaces

Using Armadeus FPGA

Manage the FPGA from Armadeus distribution.

Make some examples

These examples give the basis to make VHDL design for FPGA.



Design Tools

Description of tools used to simulate, to synthesize, and to download/configure FGPA.

Xilinx

Altera

Lattice

Microsemi

Automatize FPGA design making

Peripherals On Demand

For complex projects, POD should be used to simplify design.

FuseSoC

FuseSoC is a builder written in Python used to automatize FPGA constructions

CactusII

Graphical IDE for managing FPGA/ASIC design with IPX-ACT standard.

HDL

VHDL

Verilog

  • Verilator an High speed verilog simulator
  • Icarus Famous open-source verilog simulator
  • SymbiYosys open-source Verilog formal verification

Synthesizable Synchronous HDL

Migen

With migen, it's possible to develop FPGA design in Python then generate Verilog for synthezis.

Chisel

With Chisel, it's possible to develop FPGA design in Scala then generate C++ model for simulation and Verilog model for synthesis. Armadeus system can help you to integrate a Chisel project on Armadeus board.

SpinalHDL

Another HDL generator (VHDL) written in Scala.

Links

Some useful links.

Wishbone

Spartan

CycloneV

OpenSource