105 lines
7.6 KiB
ReStructuredText
105 lines
7.6 KiB
ReStructuredText
Technical Highlights
|
|
--------------------
|
|
|
|
The following lists of technical features were created to help users find their needs for customizing FPGA fabrics.(**as of February 2021**)
|
|
|
|
Supported Circuit Designs
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| | Circuit Types | | Auto- | | User- | | Design Topologies |
|
|
| | | | generation | | Defined | |
|
|
+=================+==============+===========+=====================================================+
|
|
| Inverter | Yes | Yes | - :ref:`circuit_model_power_gated_inverter_example` |
|
|
| | | | - :ref:`circuit_model_inverter_1x_example` |
|
|
| | | | - :ref:`circuit_model_tapered_inv_16x_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| Buffer | Yes | Yes | - :ref:`circuit_model_buffer_2x_example` |
|
|
| | | | - :ref:`circuit_model_power_gated_buffer_example` |
|
|
| | | | - :ref:`circuit_model_tapered_buffer_64x_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| AND gate | Yes | Yes | - :ref:`circuit_model_and2_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| OR gate | Yes | Yes | - :ref:`circuit_model_or2_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| MUX2 gate | Yes | Yes | - :ref:`circuit_model_mux2_gate_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| Pass gate | Yes | Yes | - :ref:`circuit_model_tgate_example` |
|
|
| | | | - :ref:`circuit_model_pass_transistor_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| Look-Up Table | Yes | Yes | - **Any size** |
|
|
| | | | - :ref:`circuit_model_single_output_lut_example` |
|
|
| | | | - :ref:`circuit_model_frac_lut_example` |
|
|
| | | | - :ref:`circuit_model_lut_harden_logic_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| | Routing | Yes | No | - **Any size** |
|
|
| | Multiplexer | | | - :ref:`circuit_model_mux_multilevel_example` |
|
|
| | | | - :ref:`circuit_model_mux_1level_example` |
|
|
| | | | - :ref:`circuit_model_mux_tree_example` |
|
|
| | | | - :ref:`circuit_model_mux_stdcell_example` |
|
|
| | | | - :ref:`circuit_model_mux_local_encoder_example` |
|
|
| | | | - :ref:`circuit_model_mux_const_input_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| | Configurable | No | Yes | - :ref:`circuit_model_config_latch_example` |
|
|
| | Memory | | | - :ref:`circuit_model_sram_blwl_example` |
|
|
| | | | - :ref:`circuit_model_ccff_example` |
|
|
| | | | - :ref:`circuit_model_ccff_enable_example` |
|
|
| | | | - :ref:`circuit_model_ccff_scanable_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| Data Memory | No | Yes | - **Any size** |
|
|
| | | | - :ref:`circuit_model_dff_example` |
|
|
| | | | - :ref:`circuit_model_multi_mode_ff_example` |
|
|
| | | | - Single-port Block RAM |
|
|
| | | | - :ref:`circuit_model_single_mode_dpram_example` |
|
|
| | | | - :ref:`circuit_model_multi_mode_dpram_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| | Arithmetic | No | Yes | - **Any size** |
|
|
| | Units | | | - :ref:`circuit_model_full_adder_example` |
|
|
| | | | - :ref:`circuit_model_single_mode_mult8x8_example` |
|
|
| | | | - :ref:`circuit_model_multi_mode_mult8x8_example` |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
| I/O | No | Yes | - :ref:`circuit_model_gpio_example` |
|
|
| | | | - Bi-directional buffer |
|
|
| | | | - AIB |
|
|
+-----------------+--------------+-----------+-----------------------------------------------------+
|
|
|
|
|
|
* The user defined netlist could come from a standard cell. See :ref:`tutorial_standard_cell` for details.
|
|
|
|
Supported FPGA Architectures
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
We support most FPGA architectures that VPR can support!
|
|
The following are the most commonly seen architectural features:
|
|
|
|
+------------------------+----------------------------------------------+
|
|
| Block Type | Architecture features |
|
|
+========================+==============================================+
|
|
| Programmable Block | - Single-mode Configurable Logic Block (CLB) |
|
|
| | - Multi-mode Configurable Logic Block (CLB) |
|
|
| | - Single-mode heterogeneous blocks |
|
|
| | - Multi-mode heterogeneous blocks |
|
|
| | - Flexible local routing architecture |
|
|
+------------------------+----------------------------------------------+
|
|
| Routing Block | - Tileable routing architecture |
|
|
| | - Flexible connectivity |
|
|
| | - Flexible Switch Block Patterns |
|
|
+------------------------+----------------------------------------------+
|
|
| | - Chain-based organization |
|
|
| | - Frame-based organization |
|
|
| :ref:`config_protocol` | - Memory bank organization |
|
|
| | - Flatten organization |
|
|
+------------------------+----------------------------------------------+
|
|
|
|
Supported Verilog Modeling
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
OpenFPGA supports the following Verilog features in auto-generated netlists for circuit designs
|
|
|
|
- Synthesizable Behavioral Verilog
|
|
|
|
- Structural Verilog
|
|
|
|
- Implicit/Explicit port mapping
|
|
|