[Documentation] Reorganization the overview part by adding technical highlights

This commit is contained in:
tangxifan 2020-10-06 11:56:10 -06:00
parent 02e21d115b
commit 113708c68f
13 changed files with 112 additions and 4 deletions

View File

@ -7,9 +7,10 @@ Welcome to OpenFPGA's documentation!
====================================
.. toctree::
:caption: Motivation
:maxdepth: 2
:caption: Overview
motivation
overview/index
.. toctree::
:maxdepth: 2

View File

@ -5,6 +5,16 @@ Testbench
In this part, we will introduce the hierarchy, dependency and functionality of each Verilog testbench, which are generated to verify a FPGA fabric implemented with an application.
+-----------------+---------+----------------+---------------+
| Testbench Type | Runtime | Test Vector | Test Coverage |
+=================+=========+================+===============+
| Full | Long | Random Stimuli | Full fabric |
+-----------------+---------+----------------+---------------+
| Formal-oriented | Short | Random Stimuli | Programmable |
| | | or | fabric only |
| | | Formal Method | |
+-----------------+---------+----------------+---------------+
OpenFPGA can auto-generate two types of Verilog testbenches to validate the correctness of the fabric: full and formal-oriented.
Both testbenches share the same organization, as depicted in :numref:`fig_verilog_testbench_organization` (a).
To enable self-testing, the FPGA and user's RTL design (simulate using an HDL simulator) are driven by the same input stimuli, and any mismatch on their outputs will raise an error flag.

View File

@ -11,8 +11,6 @@ To launch OpenFPGA shell, users can choose two modes.
Launch OpenFPGA in interactive mode where users type-in command by command and get runtime results
.. warning:: Currently OpenFPGA does not support continued lines and comments
.. option:: --file or -f
Launch OpenFPGA in script mode where users write commands in scripts and FPGA will execute them

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 274 KiB

View File

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View File

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

View File

@ -0,0 +1,9 @@
.. _overview:
Overview
.. toctree::
:maxdepth: 2
motivation
tech_highlights

View File

@ -0,0 +1,90 @@
Technical Highlights
--------------------
The follow lists of technical features are created to help users spot their needs in customizing FPGA fabrics.(**as of October 2020**)
Supported Circuit Designs
~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------+-----------------+--------------+-------------------------+
| Circuit Types | Auto-generation | User-Defined | Design Topologies |
+===============+=================+==============+=========================+
| Inverter | Yes | Yes | - Power-gating |
+---------------+-----------------+--------------+-------------------------+
| Buffer | Yes | Yes | - Tapered buffers |
| | | | - Power-gating |
+---------------+-----------------+--------------+-------------------------+
| AND gate | Yes | Yes | - 2-input |
+---------------+-----------------+--------------+-------------------------+
| OR gate | Yes | Yes | - 2-input |
+---------------+-----------------+--------------+-------------------------+
| MUX2 gate | Yes | Yes | - 2-input |
+---------------+-----------------+--------------+-------------------------+
| Pass gate | Yes | Yes | - Transmission gate |
| | | | - Pass transistor |
+---------------+-----------------+--------------+-------------------------+
| Look-Up Table | Yes | Yes | - **Any size** |
| | | | - Single-output LUT |
| | | | - Fracturable LUT |
| | | | - Buffer location |
+---------------+-----------------+--------------+-------------------------+
| Routing | Yes | No | - **Any size** |
| Multiplexer | | | - Buffer location |
| | | | - One-level structure |
| | | | - Treee structure |
| | | | - Multi-level structure |
| | | | - Local encoders |
| | | | - Constant inputs |
+---------------+-----------------+--------------+-------------------------+
| Configurable | No | Yes | - Latch |
| Memory | | | - SRAM |
| | | | - D-type flip-flop |
+---------------+-----------------+--------------+-------------------------+
| Block RAM | No | Yes | - Single-port |
| | | | - Dual-port |
| | | | - Fracturable |
| | | | - **Any size** |
+---------------+-----------------+--------------+-------------------------+
| Arithmetic | No | Yes | - **Any size** |
| Units | | | - Multiplier |
| | | | - Adder |
+---------------+-----------------+--------------+-------------------------+
| I/O | No | Yes | - General purpose I/O |
| | | | - Bi-directional buffer |
| | | | - AIB |
+---------------+-----------------+--------------+-------------------------+
* The user defined netlist could come from a standard cell
Supported FPGA Architectures
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We support most FPGA architectures that VPR can support!
The following are 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 |
+--------------------+----------------------------------------------+
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