From f6126d1ed61c87ca10877d9cccf9590efe77b94d Mon Sep 17 00:00:00 2001 From: tangxifan Date: Thu, 12 Nov 2020 09:24:39 -0700 Subject: [PATCH] [Doc] Add illustrative example to diff between global ports definitions --- .../manual/arch_lang/annotate_vpr_arch.rst | 31 ++++++++++++++++++ .../arch_lang/figures/global_tile_ports.png | Bin 0 -> 32768 bytes 2 files changed, 31 insertions(+) create mode 100644 docs/source/manual/arch_lang/figures/global_tile_ports.png diff --git a/docs/source/manual/arch_lang/annotate_vpr_arch.rst b/docs/source/manual/arch_lang/annotate_vpr_arch.rst index 4010cb4fc..8a1a53d70 100644 --- a/docs/source/manual/arch_lang/annotate_vpr_arch.rst +++ b/docs/source/manual/arch_lang/annotate_vpr_arch.rst @@ -85,6 +85,37 @@ Here is an example: .. note:: All the global port from a physical tile port is only used in operating phase. Any ports for programmable use are not allowed! +A more illustrative example: + +:numref:`fig_global_tile_ports` illustrates the difference between the global ports defined through ``circuit_model`` and ``tile_annotation``. + +.. _fig_global_tile_ports: + +.. figure:: ./figures/global_tile_ports.png + :scale: 100% + :alt: Difference between global port definition through circuit model and tile annotation + + Difference between global port definition through circuit model and tile annotation + +When a global port, e.g., ``clk``, is defined in ``circuit_model`` using the following code: + +.. code-block:: xml + + + + + +Dedicated feedthrough wires will be created across all the modules from top-level to primitive. + +When a global port, e.g., ``clk``, is defined in ``tile_annotation`` using the following code: + +.. code-block:: xml + + + + + +Clock port ``clk`` of each ``clb`` tile will be connected to a common clock port of the top module, while local clock network is customizable through VPR's architecture description language. For instance, the local clock network can be a programmable clock network. Primitive Blocks inside Multi-mode Configurable Logic Blocks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/source/manual/arch_lang/figures/global_tile_ports.png b/docs/source/manual/arch_lang/figures/global_tile_ports.png new file mode 100644 index 0000000000000000000000000000000000000000..364979179b2fcdb3db011e808d953391f1b82421 GIT binary patch literal 32768 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