.. _Community:

Community
#########

`FOSS Flows For FPGA (F4PGA) <https://f4pga.org>`__ project is a `Workgroup <https://chipsalliance.org/workgroups/>`__
under the `CHIPS Alliance <https://chipsalliance.com/>`__.
The F4PGA Workgroup consists of members from different backgrounds, including FPGA vendors
(`Xilinx <https://www.xilinx.com/>`__
and `QuickLogic <https://www.quicklogic.com/>`__),
industrial users
(`Google <https://www.google.com/>`__
and `Antmicro <https://antmicro.com/>`__)
and academia
(`University of Toronto <https://www.utoronto.ca/>`__),
who collaborate to build a more open source and software-driven FPGA ecosystem (IP, tools and workflows) to drive the
adoption of FPGAs in existing and new use cases, and eliminate barriers of entry.

Communication
=============

* `Twitter [@f4pga] <https://twitter.com/f4pga>`__

* `Slack [chipsalliance.slack.com] <https://chipsalliance.slack.com/>`__

  .. TIP::
    To register to CHIPS Alliance Slack workspace, use the following `Slack Invite <https://slack-invite.chipsalliance.org/>`__.

* `IRC [irc.libera.chat/#F4PGA] <https://kiwiirc.com/nextclient/#irc://irc.libera.chat/#F4PGA>`__

* `Mailing list [lists.chipsalliance.org/g/f4pga-wg] <https://lists.chipsalliance.org/g/f4pga-wg>`__

Sources
=======

* :gh:`github.com/chipsalliance <chipsalliance/?q=f4pga>`

* :gh:`github.com/F4PGA <F4PGA>`

.. _Contributing:

Contributing
============

Are you interested in helping this project move forward?
F4PGA is a collaborative project and we welcome your contributions.
The code is available on GitHub, while the HTML documentation is available on Read The Docs.
There are multiple areas and technologies we need help with - reach out to us, we're sure we will find something for you.

* Do you know **Python**?
  Almost all scripts are written in Python!

* Do you know **C++**?
  VPR & nextpnr & libraries written in C++!

* Do you know **TCL**?
  All the EDA tools use TCL!

* Do you know **(System) Verilog**, **VHDL**, **Chisel**, **Migen** and/or **Amaranth**?
  Simulation and models are written in Hardware Description Languages (HDLs)!

* Do you know **XML**?
  Most file formats are XML!

* Do you know English?
  Documentation is written in English!

* Do you know **Docker** and/or **Podman**?
  Help make it easier to set up F4PGA!

* Do you have time?
  We will find you a task!
