Skip to content

Commit a71ade5

Browse files
Merge branch 'master' into init_noc_sa
# Conflicts: # vpr/src/place/initial_placement.cpp # vpr/src/place/move_utils.cpp # vpr/src/place/move_utils.h # vpr/src/place/noc_place_utils.cpp # vpr/src/place/place_checkpoint.cpp # vpr/src/place/place_checkpoint.h
2 parents 192151b + 9479f9d commit a71ade5

File tree

287 files changed

+117336
-9620
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

287 files changed

+117336
-9620
lines changed

doc/.DS_Store

6 KB
Binary file not shown.

doc/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# used by Read The Docs to install python required
33
# modules with pip.
44

5-
sphinx
5+
sphinx<7
66
sphinx_rtd_theme
77

88
# Support custom domains

doc/src/.DS_Store

6 KB
Binary file not shown.

doc/src/Images/.DS_Store

6 KB
Binary file not shown.

doc/src/Images/Block_Settings.png

339 KB
Loading

doc/src/Images/Net_Settings.png

33.9 KB
Loading

doc/src/Images/Overall_view.png

224 KB
Loading

doc/src/Images/Routing_Options.png

508 KB
Loading

doc/src/Images/crit_path.png

327 KB
Loading

doc/src/Images/manual_move.png

99.3 KB
Loading

doc/src/api/vpr/index.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ VPR API
77
:maxdepth: 1
88

99
contexts
10-
netlist
1110
mapping
11+
netlist
12+
route_tree
1213
rr_graph

doc/src/api/vpr/route_tree.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
========
2+
Route Tree
3+
========
4+
5+
RouteTree
6+
-------
7+
8+
.. doxygenfile:: route_tree.h
9+
:project: vpr
10+
:sections: detaileddescription
11+
12+
13+
.. doxygenclass:: RouteTree
14+
:project: vpr
15+
:members:
16+
17+
RouteTreeNode
18+
-------------
19+
20+
.. doxygenclass:: RouteTreeNode
21+
:project: vpr
22+
:members:

doc/src/api/vprinternals/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ VPR INTERNALS
99
draw_structs
1010
vpr_ui
1111
draw_files
12+
vpr_noc
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
==============
2+
NoC Data Types
3+
==============
4+
5+
Data Types
6+
----------
7+
.. doxygenfile:: noc_data_types.h
8+
:project: vpr

doc/src/api/vprinternals/noc_link.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
========
2+
NoC Link
3+
========
4+
5+
NocLink
6+
-------
7+
.. doxygenfile:: noc_link.h
8+
:project: vpr
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
==========
2+
NoC Router
3+
==========
4+
5+
NocRouter
6+
---------
7+
.. doxygenfile:: noc_router.h
8+
:project: vpr
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
===========
2+
NoC Routing
3+
===========
4+
5+
NocRouting
6+
---------------
7+
.. doxygenfile:: noc_routing.h
8+
:project: vpr
9+
10+
NocRoutingAlgorithmCreator
11+
--------------------------
12+
.. doxygenfile:: noc_routing_algorithm_creator.h
13+
:project: vpr
14+
15+
XYRouting
16+
---------
17+
.. doxygenfile:: xy_routing.h
18+
:project: vpr
19+
20+
BFSRouting
21+
----------
22+
.. doxygenfile:: bfs_routing.h
23+
:project: vpr
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
===========
2+
NoC Storage
3+
===========
4+
5+
NocStorage
6+
----------
7+
.. doxygenfile:: noc_storage.h
8+
:project: vpr
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=================
2+
NoC Traffic Flows
3+
=================
4+
5+
NocTrafficFlows
6+
---------------
7+
.. doxygenfile:: noc_traffic_flows.h
8+
:project: vpr

doc/src/api/vprinternals/vpr_noc.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
.. _noc:
2+
3+
=======
4+
VPR NoC
5+
=======
6+
7+
.. toctree::
8+
:maxdepth: 1
9+
10+
noc_router
11+
noc_link
12+
noc_storage
13+
noc_traffic_flows
14+
noc_routing
15+
noc_data_types

doc/src/arch/reference.rst

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ The architecture tag contains the following tags:
2323
* ``<segmentlist>``
2424
* ``<directlist>``
2525
* ``<complexblocklist>``
26+
* ``<noc>``
2627

2728
.. _arch_models:
2829

@@ -136,6 +137,10 @@ Global FPGA Information
136137
137138
Content inside this tag contains a group of ``<pb_type>`` tags that specify the types of functional blocks and their properties.
138139

140+
.. arch:tag:: <noc link_bandwidth="float" link_latency="float" router_latency="float" noc_router_tile_name="string">content</noc>
141+
142+
Content inside this tag specifies the Network-on-Chip (NoC) architecture on the FPGA device and its properties.
143+
139144
.. _arch_grid_layout:
140145

141146
FPGA Grid Layout
@@ -1855,6 +1860,95 @@ Power
18551860
:opt_param scaled_by_static_prob: Port name by which to scale ``energy_per_toggle`` based on its logic high probability.
18561861
:opt_param scaled_by_static_prob_n: Port name by which to scale ``energy_per_toggle`` based on its logic low probability.
18571862
1863+
NoC Description
1864+
---------------
1865+
1866+
The ``<noc>`` tag is an optional tag and its contents allows designers to describe a NoC on an FPGA device.
1867+
The ``<noc>`` tag is the top level tag for the NoC description and its attributes define the overall properties
1868+
of the NoC; refer below for its contents.
1869+
1870+
.. arch:tag:: <noc link_bandwidth="float" link_latency="float" router_latency="float" noc_router_tile_name="string">
1871+
1872+
:req_param link_bandwidth:
1873+
Specifies the maximum bandwidth in bits-per-second (bps) that a link in the NoC can support
1874+
1875+
:req_param link_latency:
1876+
Specifies the delay in seconds seen by a flit as it travels from one physical NoC router to another using a NoC link.
1877+
1878+
:req_param router_latency:
1879+
Specifies the un-loaded delays in seconds as it travels through a physical router.
1880+
1881+
:req_param noc_router_tile_name:
1882+
Specifies a string which represents the name used to identify a NoC router tile (physical hard block) in the
1883+
corresponding FPGA architecture. This information is needed to create a model of the NoC.
1884+
1885+
The ``<noc>`` tag contains a single ``<topology>`` tag which describes the topology of the NoC.
1886+
1887+
NoC topology
1888+
~~~~~~~~~~~~
1889+
1890+
As mentioned above the ``<topology>`` tag can be used to specify the topology or how the routers in the NoC
1891+
are connected to each other. The ``<topology>`` tag consists of a group ``<router>``tags.
1892+
1893+
Below is an example of how the ``<topology>`` tag is used.
1894+
1895+
.. code-block:: xml
1896+
1897+
<topology>
1898+
<!--A number of <router> tags go here-->
1899+
</topology>
1900+
1901+
The ``<router>`` tag and its contents are described below.
1902+
1903+
.. arch:tag:: <router id="int" positionx="float" positiony="float" connections="int int int int ...">
1904+
1905+
This tag represents a single physical NoC router on the FPGA device and specifies how it is connected within the NoC.
1906+
1907+
:req_param id:
1908+
Specifies a user identification (ID) number which is associate to the physical
1909+
router that this tag is identifying. This ID is used to report errors and
1910+
warnings to the user.
1911+
1912+
:req_param positionx:
1913+
Specifies the horizontal position of the physical router block that this
1914+
tag is identifying. This position does not have to be exact, it can
1915+
be an approximate value.
1916+
1917+
:req_param positiony:
1918+
Specifies the vertical position of the physical router block that this
1919+
tag is identifying. This position does not have to be exact, it can
1920+
be an approximate value.
1921+
1922+
:req_param connections:
1923+
Specifies a list of numbers seperated by spaces which are the user IDs supplied to other
1924+
``<router>`` tags. This describes how the current physical Noc router
1925+
that this tag is identifying is connected to the other physical NoC routers on the device.
1926+
1927+
Below is an example of the ``<router>`` tag which identifies a physical router located near (0,0) with ID 0. This router
1928+
is also connected to two other routers identified by IDs 1 and 2.
1929+
1930+
.. code-block:: xml
1931+
1932+
<router id="0" positionx="0" positiony="0" connections="1 2"/>
1933+
1934+
NoC Description Example
1935+
~~~~~~~~~~~~~~~~~~~~~~~
1936+
1937+
Below is an example which describes a NoC architecture which has 4 physical routers that are connected to each other to form a
1938+
2x2 mesh topology.
1939+
1940+
.. code-block:: xml
1941+
1942+
<!-- Description of a 2x2 mesh NoC-->
1943+
<noc link_bandwidth="1.2e9" router_latency="1e-9" link_latency="1e-9" noc_router_tile_name="noc_router_adapter">
1944+
<topology>
1945+
<router id="0" positionx="0" positiony="0" connections="1 2"/>
1946+
<router id="1" positionx="5" positiony="0" connections="0 3"/>
1947+
<router id="2" positionx="0" positiony="5" connections="0 3"/>
1948+
<router id="3" positionx="5" positiony="5" connections="1 2"/>
1949+
</topology>
1950+
</noc>
1951+
18581952
Wire Segments
18591953
-------------
18601954

0 commit comments

Comments
 (0)