Skip to content

Commit efba2f0

Browse files
authored
Merge pull request #889 from os-fpga/restore_Timing_LogicLevel_fix
restore Timing_LogicLevel fix
2 parents 92cf0aa + a68bfb8 commit efba2f0

File tree

3 files changed

+26
-16
lines changed

3 files changed

+26
-16
lines changed

CMakeLists.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,12 @@ file(COPY ${ENCRYPTION_CONFIG_PATH}/config.txt
268268
# ${LIB_RRG_DEST_DIR}/src/io)
269269

270270
# Logical Levels
271-
#message(STATUS "NOTE: PATCHING TimingReporter")
272-
#FILE(COPY ${TATUM_SRC_DIR}/TimingReporter.hpp
273-
# ${TATUM_SRC_DIR}/TimingReporter.cpp
274-
# DESTINATION
275-
# ${OPENFPGA_DEST_DIR}/vtr-verilog-to-routing/libs/EXTERNAL/libtatum/libtatum/tatum
276-
#)
271+
message(STATUS "NOTE: PATCHING TimingReporter")
272+
FILE(COPY ${TATUM_SRC_DIR}/TimingReporter.hpp
273+
${TATUM_SRC_DIR}/TimingReporter.cpp
274+
DESTINATION
275+
${OPENFPGA_DEST_DIR}/vtr-verilog-to-routing/libs/EXTERNAL/libtatum/libtatum/tatum
276+
)
277277

278278
# Logical Levels
279279
FILE(COPY ${UTIL_SRC_DIR}/rsbe_utils.cpp
@@ -284,10 +284,10 @@ FILE(COPY ${UTIL_SRC_DIR}/rsbe_utils.cpp
284284
message(STATUS "NOTE: ADDED to VPR src/util: rsbe_utils.cpp,h")
285285

286286
# Logical Levels
287-
#FILE(COPY ${ANALYSIS_SRC_DIR}/timing_reports.cpp
288-
# DESTINATION
289-
# ${VPR_DEST_DIR}/src/analysis
290-
#)
287+
FILE(COPY ${ANALYSIS_SRC_DIR}/timing_reports.cpp
288+
DESTINATION
289+
${VPR_DEST_DIR}/src/analysis
290+
)
291291

292292
message(STATUS "NOTE: DONE PATCHING\n")
293293

include/analysis_fix/timing_reports.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,18 @@
1212

1313
#include "VprTimingGraphResolver.h"
1414

15-
void generate_setup_timing_stats(const std::string& prefix, const SetupTimingInfo& timing_info, const AnalysisDelayCalculator& delay_calc, const t_analysis_opts& analysis_opts, bool is_flat) {
15+
void generate_setup_timing_stats(const std::string& prefix,
16+
const SetupTimingInfo& timing_info,
17+
const AnalysisDelayCalculator& delay_calc,
18+
const t_analysis_opts& analysis_opts,
19+
bool is_flat,
20+
const BlkLocRegistry& blk_loc_registry) {
1621
auto& timing_ctx = g_vpr_ctx.timing();
1722
auto& atom_ctx = g_vpr_ctx.atom();
1823

1924
print_setup_timing_summary(*timing_ctx.constraints, *timing_info.setup_analyzer(), "Final ", analysis_opts.write_timing_summary);
2025

21-
VprTimingGraphResolver resolver(atom_ctx.nlist, atom_ctx.lookup, *timing_ctx.graph, delay_calc, is_flat);
26+
VprTimingGraphResolver resolver(atom_ctx.nlist, atom_ctx.lookup, *timing_ctx.graph, delay_calc, is_flat, blk_loc_registry);
2227
resolver.set_detail_level(analysis_opts.timing_report_detail);
2328

2429
tatum::TimingReporter timing_reporter(resolver, *timing_ctx.graph, *timing_ctx.constraints);
@@ -32,13 +37,18 @@ void generate_setup_timing_stats(const std::string& prefix, const SetupTimingInf
3237
timing_reporter.report_unconstrained_setup(prefix + "report_unconstrained_timing.setup.rpt", *timing_info.setup_analyzer());
3338
}
3439

35-
void generate_hold_timing_stats(const std::string& prefix, const HoldTimingInfo& timing_info, const AnalysisDelayCalculator& delay_calc, const t_analysis_opts& analysis_opts, bool is_flat) {
40+
void generate_hold_timing_stats(const std::string& prefix,
41+
const HoldTimingInfo& timing_info,
42+
const AnalysisDelayCalculator& delay_calc,
43+
const t_analysis_opts& analysis_opts,
44+
bool is_flat,
45+
const BlkLocRegistry& blk_loc_registry) {
3646
auto& timing_ctx = g_vpr_ctx.timing();
3747
auto& atom_ctx = g_vpr_ctx.atom();
3848

3949
print_hold_timing_summary(*timing_ctx.constraints, *timing_info.hold_analyzer(), "Final ");
4050

41-
VprTimingGraphResolver resolver(atom_ctx.nlist, atom_ctx.lookup, *timing_ctx.graph, delay_calc, is_flat);
51+
VprTimingGraphResolver resolver(atom_ctx.nlist, atom_ctx.lookup, *timing_ctx.graph, delay_calc, is_flat, blk_loc_registry);
4252
resolver.set_detail_level(analysis_opts.timing_report_detail);
4353

4454
tatum::TimingReporter timing_reporter(resolver, *timing_ctx.graph, *timing_ctx.constraints);

include/tatum_fix/TimingReporter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ Time TimingReporter::report_timing_data_arrival_subpath(std::ostream& os,
610610

611611
{
612612
//Input constraint
613-
TATUM_ASSERT(subpath.elements().size() > 0);
613+
TATUM_ASSERT(!subpath.elements().empty());
614614
const TimingPathElem& path_elem = *(subpath.elements().begin());
615615

616616
Time input_constraint;
@@ -716,7 +716,7 @@ bool TimingReporter::nearly_equal(const Time& lhs, const Time& rhs) const {
716716

717717
size_t TimingReporter::estimate_point_print_width(const TimingPath& path) const {
718718
size_t width = 60; //default
719-
for(auto subpath : {path.clock_launch_path(), path.data_arrival_path(), path.clock_capture_path()}) {
719+
for(const auto& subpath : {path.clock_launch_path(), path.data_arrival_path(), path.clock_capture_path()}) {
720720
for(auto elem : subpath.elements()) {
721721
//Take the longest typical point name
722722
std::string point = name_resolver_.node_name(elem.node()) + " (" + name_resolver_.node_type_name(elem.node()) + ")";

0 commit comments

Comments
 (0)