Skip to content

Tags: PyFPGA/pyfpga

Tags

v0.2.0

Toggle v0.2.0's commit message
v0.2.0

NOTE: this log is probably outdated/incomplete, but PyFPGA will be strongly rewritten/simplified.

* Additional supported FPGA EDA Tools:
    - GHDL --synth: synthesizes VHDL sources.
    - ghdl-yosys-plugin: add VHDL support to Yosys.
    - Openflow: Yosys + nextpnr + icestrom/prjtrellis.
* Added CLI helper utilities:
    - hdl2bit: to go from FPGA design files to a bitstream.
    - prj2bit: to deal with a vendor FPGA Project file.
    - bitprog: to transfer a bitstream to a supported device
* Improves into the API classes:
    - Added relative_to_script to the Project class constructor.
    - Added the methods set_bitstream and clean.
    - Simplified code related to absolute and relative directories.
    - Exported some useful lists into the Tool class.
* Examples:
    - Improved examples with the addition of command-line arguments.
    - Added a GHDL example.
    - Added examples using VHDL with Yosys (through `ghdl-yosys-plugin`).
    - Added Openflow examples.
    - Fixed a small problem into examples/multi/vhdl.py.
* Testing:
    - Added some tests for the new CLI utilities.
    - Added vendor project files to test prj2bit.
    - Added a Makefile to run some examples as a test.

v0.1.0

Toggle v0.1.0's commit message
v0.1.0

NOTE: originally released on 2020-02-29 at https://gitlab.com/rodrigomelo9/pyfpga

* FPGA Helpers switched to be a Python package which provides an API to manage projects
* Supported FPGA EDA Tools:
    - ISE and Vivado from Xilinx: bitstream generation and transfer to an FPGA
      (ISE also support  SPI/BPI memories)
    - Quartus Prime from Intel/Altera: bitstream generation and transfer to an FPGA
    - Libero-SoC from Microchip/Microsemi: bitstream generation
    - Yosys: generic synthesizer or combined with ISE/Vivado
      (implementation and bitstream  generation)
* The API implemented by the Project class provides:
    - A constructor where the TOOL must be specified and an optional PROJECT NAME can
      be specified  (TOOL is used by default)
    - A method to set the target device PART (default values per TOOL are provided)
    - A method to add multiple HDL, Constraint and Tcl files to the project
      (in case of VHDL an optional PACKAGE NAME can be specified)
    - A method to specify the TOP-LEVEL (NAME or FILE)
    - A method to specify a different OUTPUT directory (build by default)
    - Methods to generate a bitstream and transfer it to a device
      (running the selected EDA Tool)
    - The capability of specifying an optimization strategy (area, power or speed)
      when the bitstream is generated
    - A method to add Verilog Included File directories
    - A method to specify generics/parameters values
    - Methods to add Tcl commands in up to six different parts of the Flow
      (workaround for not yet implemented features)
    - Optional logging capabilities which include the display of the Tool Execution Time
    - A method to get some project configurations for debug purposes
    - Methods to specify where to search an ip-repo, add a block design and export the
      hardware (Only supported for Xilinx Vivado)
* Documentation:
    - User Guide
    - API Reference
    - Development notes
    - Tools notes
* Examples:
    - General-purpose (boilerplate and capture)
    - Multi-purpose (memory, parameters, projects, strategies, verilog and vhdl)
    - Specific of each Tool where Constraint files are included (for the boards s6micro,
      mkr, de10nano and zybo)
* Testing:
    - Examples are used to test the correct Tool behaviour
    - The PART specification is particularly tested for ISE and Libero
    - The master Tcl is checked using Tclsh
    - The top-level specification is tested with different alternatives