Skip to content

Commit 2e5b7bd

Browse files
committed
Squashed 'libs/EXTERNAL/libtatum/' changes from 4e4583163..487454510
487454510 Add missing header file 11758b66c Throw exceptions instead of ASSERT to allow for error annotations. 2c7283ab6 Update iterator type to multimap to match source. git-subtree-dir: libs/EXTERNAL/libtatum git-subtree-split: 487454510fd7c7a7ef979412cc6d1f6a95ef7212
1 parent bda83b3 commit 2e5b7bd

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

libtatum/tatum/TimingConstraints.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class TimingConstraints {
2424
typedef tatum::util::linear_map<DomainId,DomainId>::const_iterator domain_iterator;
2525
typedef std::map<DomainPair,Time>::const_iterator clock_constraint_iterator;
2626
typedef std::map<DomainPair,Time>::const_iterator clock_uncertainty_iterator;
27-
typedef std::map<NodeId,IoConstraint>::const_iterator io_constraint_iterator;
27+
typedef std::multimap<NodeId,IoConstraint>::const_iterator io_constraint_iterator;
2828
typedef std::map<DomainId,Time>::const_iterator source_latency_iterator;
2929
typedef std::unordered_set<NodeId>::const_iterator constant_generator_iterator;
3030

@@ -156,7 +156,7 @@ class TimingConstraints {
156156
void remap_nodes(const tatum::util::linear_map<NodeId,NodeId>& node_map);
157157

158158
private:
159-
typedef std::map<NodeId,IoConstraint>::iterator mutable_io_constraint_iterator;
159+
typedef std::multimap<NodeId,IoConstraint>::iterator mutable_io_constraint_iterator;
160160
private:
161161
///\returns A valid domain id if the node is a clock source
162162
DomainId find_node_source_clock_domain(const NodeId node_id) const;

libtatum/tatum/timing_paths.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "tatum/TimingConstraints.hpp"
55
#include "tatum/report/TimingReportTagRetriever.hpp"
66
#include "tatum/report/timing_path_tracing.hpp"
7+
#include "tatum/error.hpp"
78

89
namespace tatum {
910

@@ -42,13 +43,19 @@ std::vector<TimingPathInfo> find_critical_paths(const TimingGraph& timing_graph,
4243
//Look at each data arrival
4344
for(TimingTag slack_tag : setup_analyzer.setup_slacks(node)) {
4445
Time slack = slack_tag.time();
45-
TATUM_ASSERT(slack.valid());
46+
if(!slack.valid()) {
47+
throw Error("slack is not valid", node);
48+
}
4649

4750
Time constraint = Time(timing_constraints.setup_constraint(slack_tag.launch_clock_domain(), slack_tag.capture_clock_domain()));
48-
TATUM_ASSERT(constraint.valid());
51+
if(!constraint.valid()) {
52+
throw Error("constraint is not valid", node);
53+
}
4954

5055
Time cpd = Time(constraint) - slack;
51-
TATUM_ASSERT(slack.valid());
56+
if(!cpd.valid()) {
57+
throw Error("cpd is not valid", node);
58+
}
5259

5360
//Record the path info
5461
TimingPathInfo path(TimingType::SETUP,

0 commit comments

Comments
 (0)