Difference between revisions of "Using FPGA"

From ArmadeusWiki
Jump to: navigation, search
m (Chisel)
(Developing on the APF FPGA)
Line 10: Line 10:
 
| width="50%" |
 
| width="50%" |
  
=== 1. Starting Up with FPGA ===
+
=== FPGA Interfaces ===
All you need to know to play with the Armadeus FPGA.
+
  
 +
* APF9328 : [[IMX9328-Spartan3 interface description]]
 +
* APF27 : [[IMX27-Spartan3A interface description]]
 +
* APF51 : [[IMX51-Spartan6 interface description]]
 +
* APF6SP:
 +
** [[IMX6-CycloneV interface description | IMX6-CycloneV interface description (PCIe)]]
 +
** [[DDR3-CycloneV interface description | DDR3-CycloneV interface description]]
 +
** [[APF6_SP hirose pinout | Pinout on apf6sp hirose connector]]
  
  
 
| width="50%" |
 
| width="50%" |
=== Design Tools===
 
Description of tools used to simulate, to synthesize, and to download/configure FGPA.
 
  
'''Xilinx'''
+
===Using Armadeus FPGA===
* [[ISE WebPack installation on Linux| ISE WebPack (Xilinx's free devt tool) installation]]
+
Manage the FPGA from Armadeus distribution.
* [[Vivado installation on Linux]]
+
 
* [[How_to_make_a_VHDL_design_in_Ubuntu/Debian| How to setup the FPGA toolchain in Ubuntu/Debian]]
+
* [[Configure or flash FPGA ?]]
* [[How to simulate post synthesis and post place & route design with GHDL]]
+
* Configure the FPGA [[FPGA_loader | from Linux]], [[Target_Software_Installation#FPGA_firmware_test | from U-Boot]], [[PCIe_fpga_load | from PCIe]].
'''Altera'''
+
* Flashing FPGA firmware [[Uboot_FPGA_firmware_update_from_Linux | from Linux]], [[Target_Software_Installation#FPGA_firmware_installation | from U-Boot]]
* [[Quartus | Quartus Web edition (Altera's free devt tool)]]
+
* [[FPGA_register | Access the FPGA address domain from Linux]]
* [[Modelsim-Altera | Install Modelsim-Altera (starter edition)]]
+
 
 +
 
 +
 
  
 
|----------------
 
|----------------
 
|- 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 ===
=== 2. Make some examples ===
+
  
 
These examples give the basis to make VHDL design for FPGA.
 
These examples give the basis to make VHDL design for FPGA.
Line 45: Line 49:
 
| width="50%" |
 
| width="50%" |
  
===Using Armadeus FPGA===
+
=== Design Tools===
Manage the FPGA from Armadeus distribution.
+
Description of tools used to simulate, to synthesize, and to download/configure FGPA.
  
* [[Configure or flash FPGA ?]]
+
'''Xilinx'''
* Configure the FPGA [[FPGA_loader | from Linux]], [[Target_Software_Installation#FPGA_firmware_test | from U-Boot]], [[PCIe_fpga_load | from PCIe]].
+
* [[ISE WebPack installation on Linux| ISE WebPack (Xilinx's free devt tool) installation]]
* Flashing FPGA firmware [[Uboot_FPGA_firmware_update_from_Linux | from Linux]], [[Target_Software_Installation#FPGA_firmware_installation | from U-Boot]]
+
* [[Vivado installation on Linux]]
* [[FPGA_register | Access the FPGA address domain from 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'''
 +
* [[Quartus | Quartus Web edition (Altera's free devt tool)]]
 +
* [[Modelsim-Altera | Install Modelsim-Altera (starter edition)]]
  
  
Line 59: Line 67:
 
| width="50%" |
 
| width="50%" |
  
=== 3. Automatize FPGA design making ===
+
=== Automatize FPGA design making ===
  
 
==== [[Peripherals On Demand]] ====
 
==== [[Peripherals On Demand]] ====
Line 67: Line 75:
  
 
With migen, it's possible to develop FPGA design in Python then generate Verilog for synthezis.
 
With migen, it's possible to develop FPGA design in Python then generate Verilog for synthezis.
 
  
 
==== [[Chisel]] ====
 
==== [[Chisel]] ====
 
With Chisel, it's possible to develop FPGA design in Scala then generate C++ model for simulation and Verilog model for synthezis.
 
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%" |
  
Line 81: Line 89:
  
 
=== Verilog ===
 
=== Verilog ===
 
 
  
  
 
|----------------
 
|----------------
 
|- style="background:#f4f4f4; color:black; -moz-border-radius:18px;"
 
|- style="background:#f4f4f4; color:black; -moz-border-radius:18px;"
 
| width="50%" |
 
 
=== FPGA Interfaces ===
 
 
* APF9328 : [[IMX9328-Spartan3 interface description]]
 
* APF27 : [[IMX27-Spartan3A interface description]]
 
* APF51 : [[IMX51-Spartan6 interface description]]
 
* APF6SP:
 
** [[IMX6-CycloneV interface description | IMX6-CycloneV interface description (PCIe)]]
 
** [[DDR3-CycloneV interface description | DDR3-CycloneV interface description]]
 
** [[APF6_SP hirose pinout | Pinout on apf6sp hirose connector]]
 
 
  
 
| width="50%" |
 
| width="50%" |
Line 115: Line 108:
 
''' 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]
 
+
| width="50%" |
 
|}
 
|}

Revision as of 15:06, 1 February 2016


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


Automatize FPGA design making

Peripherals On Demand

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

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 synthezis.

VHDL

Verilog

Links

Some useful links.

Wishbone

Spartan

CycloneV