utils.py: Make exception handling compatible with python 2 and 3
fusesoc.in: Catch exceptions when building FPGA
VerilatorSection: add export() method

This add an export() method to VerilatorSection, with the purpose
of exporting a list of files to be used in core.py.
core.py is also updated to make use of this method.

Signed-off-by: Olof Kindgren <olof.kindgren@gmail.com>
backend: pass args to backend build functions
section: add VHDL section

Introduce a new VHDL section. It only used by quartus.py for now.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
capi.txt: add vhdl section

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
section: add verilog section

Remove verilog.py and handle verilog section like others.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
section: add vpi section

Remove vpi.py and handle vpi section like others.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
simulator: fix error after verilog.py removal

This commit 3166f2d1c6 moves verilog section from verilog.py
to section.py but simulator was still using Verilog class from
verilog.py.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
quartus: add support for qsys generation

When the (new) 'qsys_files' entry under the 'quartus' section is
present, a shell script is created with the necessary commands
generate a system described in a .qsys file.
The approach with first creating a shell script and then
executing that, instead of executing the commands directly from
fusesoc was chosen to keep the build directory still completely
independent from fusesoc once generated.
quartus: make top module name configurable

A 'top_module' entry is added to the quartus section.
To keep compatibility with old cores, it falls back to
orpsoc_top.
fusesoc.in: catch backend.pgm() errors

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
quartus: use utils.Launcher to run "make"

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
fusesoc.in: does not crash when MODEL_TECH not set

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
section: Use pr_warn instead of print
sections: add missing "name" in some class section

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
section: Add IseSection
utils: make get_verilator_root work with python3

str and byte string handling in python2.7 and python3.x differ
a lot, doing str type of operations on a byte string in python3
doesn't fly.
To fix this, decode the byte string into a str before doing
operations on it.
section: Add IseSection to factory
Convert quartus backend to use Section infrastructure