Skip to content

Support route constraint. #2233

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 181 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
b7cba40
WIP: Allow source node query in rr graph view.
Yitian4Debug Jun 17, 2022
4a05cad
Add tileable rr graph support.
Yitian4Debug Jul 26, 2022
619caea
Fix format issue.
Yitian4Debug Jul 26, 2022
b749ce1
Enable tileable rr graph builder for unidir graph arch; code cleanup.
Yitian4Debug Jul 28, 2022
3932e1d
Fix typo.
Yitian4Debug Jul 28, 2022
fda9057
Merge branch 'tileable_rr_graph' of https://github.com/verilog-to-rou…
tangxifan Jul 28, 2022
aecd504
Add missing tileable rr graph functions and support class to make it …
Yitian4Debug Jul 30, 2022
17626dd
Code cleanup: fix warnings and format code by complying to vtr format.
Yitian4Debug Aug 3, 2022
f3a6875
Code cleanup: change comments format by complying to vtr clang format.
Yitian4Debug Aug 3, 2022
7b5c8ab
Merge branch 'tileable_rr_graph' of https://github.com/verilog-to-rou…
tangxifan Aug 13, 2022
c957a44
Merge branch 'master' into tileable_rr_graph
tangxifan Aug 13, 2022
3f4a404
[vpr] add missing files
tangxifan Aug 13, 2022
6e21663
[vpr] add the declaration of common rr_graph building function to hea…
tangxifan Aug 13, 2022
ac554b1
[vpr] cleaning up compilation errors
tangxifan Aug 13, 2022
7490a21
[vpr] adapting API in tileable rr_graph builder
tangxifan Aug 14, 2022
e4fa747
[vpr] adapting apis in tileable rr_graph builder
tangxifan Aug 14, 2022
1101588
[vpr] enrich error message in rr_gsb
tangxifan Aug 14, 2022
2bbb7f2
[vpr] integrating edge builder to rrgraph builder
tangxifan Aug 14, 2022
4d46b47
[vpr] syntax error
tangxifan Aug 14, 2022
3ecee3e
[vpr] rename header file
tangxifan Aug 14, 2022
2b71a2c
[vpr] add api for node_in_edges
tangxifan Aug 14, 2022
bef7983
[vpr] added APIs for node_in_edges and adapt tileable rr graph generator
tangxifan Aug 14, 2022
38a8569
[vpr] add missing API find_edges() for tileable rr_graph builder
tangxifan Aug 14, 2022
0af1634
[vpr] using updated api in tileable rrgraph builder when finding chan…
tangxifan Aug 14, 2022
aba2572
[vpr] now enable build edges and incoming edges
tangxifan Aug 15, 2022
b06c5ba
[vpr] syntax
tangxifan Aug 15, 2022
314d22a
[vpr] enable tileable rr_graph in create_rr_graph()
tangxifan Aug 15, 2022
4f19f8e
[test] add a quick test for tileable rr_graph
tangxifan Aug 15, 2022
0b77856
[test] enable new test in strong regression test
tangxifan Aug 15, 2022
8c2bc64
[lib] enable tileable options in read fpga arch library
tangxifan Aug 15, 2022
2a846e4
[vpr] allocate nodes
tangxifan Aug 15, 2022
54efbc2
[vpr] debugging tileable rr_graph builder
tangxifan Aug 15, 2022
a46461b
[vpr] debugging tileable rr_graph generator
tangxifan Aug 16, 2022
a96afb9
[vpr] fixed a bug
tangxifan Aug 16, 2022
00d118d
[vpr] keep debugging the errors in find_node()
tangxifan Aug 16, 2022
c460ad1
[vpr] identify bugs in resize() in RRSpatial, Use reserve() to bypass it
tangxifan Aug 16, 2022
dcb50bc
[vpr] consider special case for CHANX when creating a new node
tangxifan Aug 16, 2022
fa22d5b
[vpr] now tileable rr_graph builder is working. Correctness not check…
tangxifan Aug 16, 2022
e59d5cd
Merge branch 'master' into openfpga
tangxifan Aug 16, 2022
2ee2bae
[script] use relative path in lib capn'proto, to solve compilation er…
tangxifan Aug 16, 2022
d43e667
[lib] add interconnect string version and add invalid type
tangxifan Aug 16, 2022
f6844ec
[lib] typo
tangxifan Aug 16, 2022
3653c77
[lib] add APIs required by OpenFPGA for rr_graph
tangxifan Aug 17, 2022
bcc0fd9
[lib] syntax
tangxifan Aug 17, 2022
b54d4ad
[lib] add missing APIs required by OpenFPGA to RRGraphView
tangxifan Aug 17, 2022
4e8ad95
[vpr] remove unused headers
tangxifan Aug 17, 2022
885eb58
[vpr] add a useful API to get node side
tangxifan Aug 17, 2022
e1d6d03
[vpr] give access to utility function due to requirement from OpenFPGA
tangxifan Aug 17, 2022
674a569
[vpr] syntax
tangxifan Aug 17, 2022
090322c
[vpr] release more API from vpr_utils
tangxifan Aug 17, 2022
a18c419
[lib] add constant string for logic value, useful for debugging messages
tangxifan Aug 17, 2022
6c781e8
[vpr] add missing include
tangxifan Aug 18, 2022
e5b9fa1
Merge branch 'master' into openfpga
tangxifan Aug 18, 2022
24b486d
Merge branch 'master' into openfpga
tangxifan Aug 18, 2022
d0a65ad
[vpr] correct the use of header files
tangxifan Aug 23, 2022
c854a5e
[lib] fixed a bug on sharing the storage for incoming edges
tangxifan Aug 23, 2022
e78f446
[vpr] fixed a bug in showing debugging messages
tangxifan Aug 23, 2022
43a80a4
[vpr] fixed a bug on range
tangxifan Aug 23, 2022
4c2b47e
[lib] clean up header files
tangxifan Aug 24, 2022
a88ac6e
[vpr] print more debugging info when rr_gsb encounts fatal errors
tangxifan Aug 24, 2022
0d1339e
[vpr] format debugging messages
tangxifan Aug 24, 2022
c16fcb8
[lib] fixed a bug on clear() for rrgraph builder
tangxifan Aug 24, 2022
3ca5e2f
[lib] add validate APIs for checking incoming edges
tangxifan Aug 24, 2022
ad0d96c
[lib] add code comments
tangxifan Aug 24, 2022
f3b5a30
[lib] fixed a bug in validating incoming edges
tangxifan Aug 24, 2022
f77645a
[vpr] now update node-lookup for CHANX and CHANY nodes
tangxifan Aug 26, 2022
bd49f85
[vpr] debugging CHANX and CHANY coord
tangxifan Aug 26, 2022
4155c0b
[vpr] remove existing node in look-up when updating coordinates
tangxifan Aug 26, 2022
edd61a3
[vpr] debugging
tangxifan Aug 26, 2022
53e6b00
[vpr] now supports multiple ptc number of a routing track in tileable…
tangxifan Aug 26, 2022
8bd4096
Merge branch 'openfpga' of https://github.com/verilog-to-routing/vtr-…
tangxifan Aug 26, 2022
087cf29
[vpr] typo
tangxifan Aug 26, 2022
2a1b88c
[vpr] force more assertion
tangxifan Aug 26, 2022
b080eda
[vpr] fixed a bug which causes memory issues
tangxifan Aug 27, 2022
ef79f28
[lib] add sub_type and subFs support to arch parser
tangxifan Aug 27, 2022
750091e
[vpr] added a new option to skip the synchornization between clusteri…
tangxifan Aug 28, 2022
f0cf714
[vpr] syntax
tangxifan Aug 28, 2022
e36edc3
[vpr] add options
tangxifan Aug 28, 2022
b5d4f8c
[vpr] typo
tangxifan Aug 28, 2022
71eddf0
Merge branch 'master' into openfpga
tangxifan Aug 28, 2022
e1a2a7c
Merge branch 'master' into openfpga
tangxifan Sep 1, 2022
78f8c82
[vpr] adapt to the API change on check_rr_graph()
tangxifan Sep 1, 2022
ce3173c
[vpr] remove GSB graph matching APIs
tangxifan Sep 7, 2022
6a515ff
[vpr] add missing APi required by latest openfpga
tangxifan Sep 7, 2022
abc6555
[vpr] syntax
tangxifan Sep 7, 2022
3b758f0
[lib] now arch parser supports subtile index when parsing pin locatio…
tangxifan Sep 9, 2022
f97b7e2
[lib] syntax
tangxifan Sep 9, 2022
7994e80
[lib] syntax
tangxifan Sep 9, 2022
2bce428
Merge branch 'master' into openfpga
tangxifan Sep 16, 2022
7482107
[lib] add an option to avoid sorting edges when creating them. This i…
tangxifan Sep 17, 2022
eb75a5a
[vtr] count number of edges before creating them; Found some mismatch…
tangxifan Sep 17, 2022
5d409cb
[vpr] syntax
tangxifan Sep 17, 2022
6dff200
[vpr] add more debugging info about edge count for tileable routing r…
tangxifan Sep 17, 2022
1ba0c0e
[vpr] syntax
tangxifan Sep 17, 2022
4966634
[lib] Fixed a bug where subFs was not copied to det_routing arch para…
tangxifan Sep 18, 2022
40d4050
[vpr] comment out debug logging
tangxifan Sep 18, 2022
2c3197e
[vpr] fixed a bug where subtype is not passed correctly
tangxifan Sep 18, 2022
1374493
[lib] fixed a bug where free_rr_graph is not thorough
tangxifan Sep 19, 2022
907ff58
[vpr] fixed a bug where tileable rr_graph is not considered during bi…
tangxifan Sep 19, 2022
5ea5661
[vpr] fixed a bug on using tileable rr_graph for binary place and route
tangxifan Sep 19, 2022
bd63ae2
[vpr] now skip sorting edges for tileable rr_graph builder
tangxifan Sep 19, 2022
69476ee
[vpr] now sort all the edges when building a tileable rr_graph
tangxifan Sep 19, 2022
b2df632
[vpr] sort gsb ipin edges as well
tangxifan Sep 19, 2022
7233288
Merge commit 'b2df63231' into openfpga
tangxifan Sep 19, 2022
825d444
[vpr] syntax
tangxifan Sep 19, 2022
a8349b6
[vtr] fixed a bug when sorting in_edges for IPINs.
tangxifan Sep 19, 2022
bb895cb
[vpr] debugging
tangxifan Sep 19, 2022
6576247
[vtr] fixed a bug on sorting incoming edges for IPIN nodes: Only cons…
tangxifan Sep 19, 2022
332bc90
[vpr] fixed a bug
tangxifan Sep 19, 2022
2f1bfd3
[vtr] fixed a bug
tangxifan Sep 19, 2022
d3a8039
[lib] replace the use of SIGSTKSZ which is not supported in Ubuntu 21…
tangxifan Sep 26, 2022
3238de2
Merge branch 'master' into openfpga
tangxifan Sep 28, 2022
1a8c875
[vpr] fixed a bug in finding direct connection in tileable rr_graph; …
tangxifan Sep 30, 2022
c415acb
Merge branch 'openfpga' of https://github.com/verilog-to-routing/vtr-…
tangxifan Sep 30, 2022
970afa5
[vpr] remove verbose outputs
tangxifan Sep 30, 2022
c33574d
[CMake] Added an option 'VTR_ENABLE_VERSION_UP_TO_DATE' which allows …
tangxifan Oct 3, 2022
147200b
[cmake] bypass custom build on version number with an option
tangxifan Oct 3, 2022
942d1bb
[cmake] rename option to be short 'VTR_ENABLE_VERSION'
tangxifan Oct 3, 2022
56a1eb2
Merge branch 'master' into openfpga
tangxifan Oct 3, 2022
69773db
[vpr] enable tileable rr_graph when building routing structs
tangxifan Oct 4, 2022
c70f97b
[vpr] code format
tangxifan Oct 4, 2022
5226096
Merge branch 'openfpga' of https://github.com/verilog-to-routing/vtr-…
tangxifan Oct 4, 2022
b763242
Merge branch 'master' into openfpga
tangxifan Oct 6, 2022
ff83963
Merge branch 'master' into openfpga
tangxifan Oct 31, 2022
3264072
[vpr] a more sophiscated version of read blif api
tangxifan Nov 1, 2022
c162275
[test] update golden for new test
tangxifan Nov 1, 2022
f0d1bb6
Merge branch 'master' into openfpga
tangxifan Nov 1, 2022
921e1ba
[vpr] code format
tangxifan Nov 1, 2022
4834fd0
Merge branch 'openfpga' of github.com:verilog-to-routing/vtr-verilog-…
tangxifan Nov 1, 2022
01e288c
Merge branch 'master' into openfpga
tangxifan Nov 17, 2022
b156bf4
Merge branch 'master' into openfpga
tangxifan Nov 21, 2022
3637125
Merge branch 'master' into openfpga
tangxifan Dec 7, 2022
c8f5a65
Merge branch 'master' into openfpga
tangxifan Jan 9, 2023
caf364c
Merge branch 'master' into openfpga
tangxifan Jan 18, 2023
96ea971
Support route constraint.
Tulong4Dev Jan 26, 2023
671c9d2
Support route constraints.
Tulong4Dev Jan 27, 2023
22f0d32
Clean up code format.
Tulong4Dev Jan 27, 2023
62e42cf
Merge branch 'master' into openfpga
tangxifan Feb 2, 2023
d1c0382
Make partition list and newly added route constraint optional in
Tulong4Dev Feb 3, 2023
afed57f
Code format clang-7.
Tulong4Dev Feb 3, 2023
5462d26
Route constraint for local clock and reset.
Tulong4Dev Feb 15, 2023
9e53e9a
Merge pull request #2243 from verilog-to-routing/local_clock_reset
tangxifan Feb 16, 2023
99c132d
Update with regexpr and multi-files readin.
Tulong4Dev Feb 26, 2023
52bd89f
Merge branch 'master' into openfpga
tangxifan Feb 26, 2023
7a4150d
Dev vpr constraint writer for route constrain.
Tulong4Dev Mar 3, 2023
ac6b2f4
Revert un-wanted changes made by editor.
Tulong4Dev Mar 3, 2023
60721ba
Fix CLANG 6/7/10 compile issue.
Tulong4Dev Mar 3, 2023
5795b7d
[libs] add an invalidator to rrgraph builder so that we can modify th…
tangxifan Mar 4, 2023
69d852d
[core] debugging
tangxifan Mar 6, 2023
67a84e1
[core] debugging
tangxifan Mar 7, 2023
f573c44
Merge branch 'master' into route_constraint_dev
Tulong4Dev Mar 7, 2023
8e623dc
[core] debugging
tangxifan Mar 7, 2023
1a9b970
[core] allow clock to be included optionally when building a gsb
tangxifan Mar 7, 2023
4199c48
[core] typo
tangxifan Mar 7, 2023
2796b58
[core] syntax
tangxifan Mar 7, 2023
ebb804e
[core] debugging
tangxifan Mar 7, 2023
0f40ecb
[core] fixed a bug
tangxifan Mar 7, 2023
fb90ee8
Code clean up: fix memory leak issue.
Tulong4Dev Mar 8, 2023
89cc2e2
Fix the memory leak.
Tulong4Dev Mar 8, 2023
a492d95
Merge branch 'master' into route_constraint_dev
Tulong4Dev Mar 8, 2023
ba41ecf
Merge branch 'master' into route_constraint_dev
Tulong4Dev Mar 9, 2023
5119ac8
add test.
Tulong4Dev Mar 10, 2023
57e6b8c
Merge branch 'route_constraint_dev' of github.com:Tulong4Dev/vtr-veri…
Tulong4Dev Mar 10, 2023
d501af2
Update test.
Tulong4Dev Mar 11, 2023
bcc1881
fix write constraint; update with simple test.
Tulong4Dev Mar 11, 2023
63b028d
Update new test golden result.
Tulong4Dev Mar 12, 2023
f3b42d2
update document.
Tulong4Dev Mar 12, 2023
0dbd685
update golden results.
Tulong4Dev Mar 14, 2023
71db0a4
update golden result from release build.
Tulong4Dev Mar 14, 2023
bd59994
update golden.
Tulong4Dev Mar 17, 2023
8593cb5
update golden result with deep-cleaned build.
Tulong4Dev Mar 18, 2023
294c49b
clean up code based on review comments.
Tulong4Dev Mar 22, 2023
1b95c01
support route constraints.
Tulong4Dev Mar 24, 2023
458fa39
Merge branch 'master' into openfpga
tangxifan Mar 24, 2023
4c43c74
[core] resovle mering conflicts which causes compilation failures
tangxifan Apr 15, 2023
0b915ba
Merge branch 'master' of github.com:verilog-to-routing/vtr-verilog-to…
tangxifan Apr 15, 2023
6ac416c
[core] code format
tangxifan Apr 15, 2023
d70659f
[test] comment out testcase 'strong_vpr_constraints' due to a merging…
tangxifan Apr 15, 2023
42e48e5
add missing new line when writing place constraint
Tulong4Dev Apr 19, 2023
2dc4652
Merge branch 'openfpga' into route_constraint_dev
Tulong4Dev Apr 20, 2023
e0dd3c1
support packer constraint.
Tulong4Dev Jun 19, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ option(VTR_ENABLE_SANITIZE "Enable address/leak/undefined-behaviour sanitizers (
option(VTR_ENABLE_PROFILING "Enable performance profiler (gprof)" OFF)
option(VTR_ENABLE_COVERAGE "Enable code coverage tracking (gcov)" OFF)
option(VTR_ENABLE_DEBUG_LOGGING "Enable debug logging" OFF)
option(VTR_ENABLE_VERSION "Enable version number up-to-date during compilation" ON)
option(VTR_ENABLE_VERBOSE "Enable increased debug verbosity" OFF)
option(SPEC_CPU "Enable SPEC CPU v8 support" OFF)

Expand Down
6 changes: 3 additions & 3 deletions doc/src/vpr/command_line_usage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -358,13 +358,13 @@ Use the options below to override this default naming behaviour.

.. seealso:: :ref:`Routing Resource XML File <vpr_route_resource_file>`.

.. option:: --read_vpr_constraints <file>
.. option:: --read_vpr_constraints <file1>:<file2>:...:<fileN>

Reads the :ref:`floorplanning constraints <vpr_constraints_file>` that packing and placement must respect from the specified XML file.
Reads the :ref:`floorplanning constraints <vpr_constraints_file>` that packing and placement must respect from the specified XML file; and/or reads the :ref:`global route constraints <vpr_constraints_file>` that router must respect from the specified XML file. Multiple files are allowed and should be seperated with a colomn char.

.. option:: --write_vpr_constraints <file>

Writes out new :ref:`floorplanning constraints <vpr_constraints_file>` based on current placement to the specified XML file.
Writes out new :ref:`floorplanning constraints <vpr_constraints_file>` based on current placement to the specified XML file; and/or writes out new :ref:`global route constraints <vpr_constraints_file>` based on current global routecounstraints to the specified XML file. Note that a single combined file is written to even there are multiple input constraint files read in.

.. option:: --read_router_lookahead <file>

Expand Down
44 changes: 44 additions & 0 deletions doc/src/vpr/route_constraints.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@

VPR Route Constraints
=========================
.. _vpr_constraints_file:
VPR supports running flows with route constraints. Route constraints are set on global signals to specify if they should be routed or not. For example, a user may want to route a specific internal clock even clock modeling option is set to not route it.

.. note:: The constraint specified in this file overrides the setting of option "--clock_modeling" if it is specified. A message will be issued in such case: "Route constraint(s) detected and will override clock modeling setting".

The route constraints should be specified by the user using an XML constraints file format, as described in the section below.

A Constraints File Example
--------------------------

.. code-block:: xml
:caption: An example of a route constraints file in XML format.
:linenos:

<vpr_constraints tool_name="vpr">
<global_route_constraints>
<!-- specify route method for a global pin that needs to be connected globally -->
<set_global_signal name="(int_clk)(.*)" type="clock" route_model="route"/>
<set_global_signal name="clk_ni" type="clock" route_model="ideal"/>
<set_global_signal name="rst" type="reset" route_model="ideal"/>
</global_route_constraints>
</vpr_constraints>

.. _end:

.. note:: The "route_model" in constraint specified in this file only support "ideal" and "route" only.

Constraints File Format
-----------------------

VPR has a specific XML format which must be used when creating a route constraints file. The purpose of this constraints file is to specify

#. The signals that should be constrained for routing
#. The route model for such signals

The file is passed as an input to VPR when running with route constraints. When the file is read in, its information is used to guide VPR route or not route such signals.

.. note:: Use the VPR option :vpr:option:`--read_vpr_constraints` to specify the VPR route constraints file that is to be loaded.

.. note:: Wildcard names of signals are supported to specify a list of signals. The wildcard expression should follow the C/C++ regexpr rule.

Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ namespace Catch {
FatalConditionHandler::FatalConditionHandler() {
assert(!altStackMem && "Cannot initialize POSIX signal handler when one already exists");
if (altStackSize == 0) {
altStackSize = std::max(static_cast<size_t>(SIGSTKSZ), minStackSizeForErrors);
altStackSize = std::max(static_cast<size_t>(/*SIGSTKSZ*/32768), minStackSizeForErrors);
}
altStackMem = new char[altStackSize]();
}
Expand Down
21 changes: 15 additions & 6 deletions libs/libarchfpga/src/physical_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,11 @@ enum e_pin_type {
enum e_interconnect {
COMPLETE_INTERC = 1,
DIRECT_INTERC = 2,
MUX_INTERC = 3
MUX_INTERC = 3,
NUM_INTERC_TYPES /* Invalid type */
};
/* String version of interconnect types. Use for debugging messages */
constexpr std::array<const char*, NUM_INTERC_TYPES> INTERCONNECT_TYPE_STRING = {{"unknown", "complete", "direct", "mux"}};

/* Orientations. */
enum e_side : unsigned char {
Expand Down Expand Up @@ -1468,7 +1471,7 @@ enum e_directionality {
BI_DIRECTIONAL
};
/* X_AXIS: Data that describes an x-directed wire segment (CHANX) *
* Y_AXIS: Data that describes an y-directed wire segment (CHANY) *
* Y_AXIS: Data that describes an y-directed wire segment (CHANY) *
* BOTH_AXIS: Data that can be applied to both x-directed and y-directed wire segment */
enum e_parallel_axis {
X_AXIS,
Expand Down Expand Up @@ -1513,7 +1516,7 @@ enum e_Fc_type {
* Cmetal: Capacitance of a routing track, per unit logic block length. *
* Rmetal: Resistance of a routing track, per unit logic block length. *
* (UDSD by AY) drivers: How do signals driving a routing track connect to *
* the track?
* the track?
* seg_index: The index of the segment as stored in the appropriate Segs list*
* Upon loading the architecture, we use this field to keep track *
* the segment's index in the unified segment_inf vector. This is *
Expand Down Expand Up @@ -1569,12 +1572,12 @@ constexpr std::array<const char*, size_t(SwitchType::NUM_SWITCH_TYPES)> SWITCH_T

/* Constant/Reserved names for switches in architecture XML
* Delayless switch:
* The zero-delay switch created by VPR internally
* The zero-delay switch created by VPR internally
* This is a special switch just to ease CAD algorithms
* It is mainly used in
* - the edges between SOURCE and SINK nodes in routing resource graphs
* - the edges between SOURCE and SINK nodes in routing resource graphs
* - the edges in CLB-to-CLB connections (defined by <directlist> in arch XML)
*
*
*/
constexpr const char* VPR_DELAYLESS_SWITCH_NAME = "__vpr_delayless_switch__";

Expand Down Expand Up @@ -1910,12 +1913,18 @@ struct t_arch {

char* architecture_id; //Secure hash digest of the architecture file to uniquely identify this architecture

/* Xifan Tang: options for tileable routing architectures */
bool tileable;
bool through_channel;

t_chan_width_dist Chans;
enum e_switch_block_type SBType;
enum e_switch_block_type SBSubType;
std::vector<t_switchblock_inf> switchblocks;
float R_minW_nmos;
float R_minW_pmos;
int Fs;
int subFs;
float grid_logic_tile_area;
std::vector<t_segment_inf> Segments;
t_arch_switch_inf* Switches = nullptr;
Expand Down
Loading