You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It isn't possible to articulate a single .sdc file that exactly captures the
92
+
constraints of an Element as each element is used in unique circumstances.
93
+
Instead, a choice has to made and each choice has its pros and cons.
94
+
95
+
It is relatively easy to set up a maximum input/output delay for paths
96
+
that start or end in a register, so this case is not discussed here.
97
+
98
+
It is the combinational(unregistered) in -> out
99
+
paths that are tricky to create constraints for.
100
+
101
+
- Strategy used as of writing: mark non-registered/combinational paths through
102
+
the Element as false paths. This will not steer the tools to optimize the
103
+
through element path, such as discussed above and there's no timing information
104
+
available at the Element level for these combinational paths.
105
+
However, at the `MockArray` level when the Elements are used, timing will
106
+
be checked, because the .lib file generated for the Element contains timing
107
+
information, even for false paths.
108
+
- Use `set_max_delay` for combinational paths. This will make the tool try
109
+
to optimize the combinational path and there will be timing information available.
110
+
However, path segmentation could occur with OpenSTA. Refer [here](https://docs.xilinx.com/r/2020.2-English/ug906-vivado-design-analysis/TIMING-13-Timing-Paths-Ignored-Due-to-Path-Segmentation).
111
+
- Overconstrain: set up a maximum input/output path for the element and ignore
112
+
timing violations at the Element level for combinational paths.
113
+
The timing violations for the combinational paths are not real violations,
114
+
because the maximum input and output paths can not occur at the same time
115
+
in the array. The leftmost Element has the shortest maximum input path and
116
+
and the rightmost the longest maximum input path for
117
+
`assign io_lsbOuts_0 = io_lsbIns_1;`. The OpenROAD tool could put too much
118
+
emphasis on optimising the combinational path in this case, which could
119
+
lead to less than optimal results and/or inflated run times.
0 commit comments