Skip to content

Commit 8219f83

Browse files
authored
Merge pull request #743 from os-fpga/restored_timing_logic_level_patch
restored timing logic-level patch
2 parents 4539a09 + 6609826 commit 8219f83

File tree

4 files changed

+33
-10
lines changed

4 files changed

+33
-10
lines changed

CMakeLists.txt

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

263263
# Logical Levels
264-
#message(STATUS "NOTE: PATCHING TimingReporter")
265-
#FILE(COPY ${TATUM_SRC_DIR}/TimingReporter.hpp
266-
# ${TATUM_SRC_DIR}/TimingReporter.cpp
267-
# DESTINATION
268-
# ${OPENFPGA_DEST_DIR}/vtr-verilog-to-routing/libs/EXTERNAL/libtatum/libtatum/tatum
269-
#)
264+
message(STATUS "NOTE: PATCHING TimingReporter")
265+
FILE(COPY ${TATUM_SRC_DIR}/TimingReporter.hpp
266+
${TATUM_SRC_DIR}/TimingReporter.cpp
267+
DESTINATION
268+
${OPENFPGA_DEST_DIR}/vtr-verilog-to-routing/libs/EXTERNAL/libtatum/libtatum/tatum
269+
)
270270

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

279279
# Logical Levels
280-
#FILE(COPY ${ANALYSIS_SRC_DIR}/timing_reports.cpp
281-
# DESTINATION
282-
# ${VPR_DEST_DIR}/src/analysis
283-
#)
280+
FILE(COPY ${ANALYSIS_SRC_DIR}/timing_reports.cpp
281+
DESTINATION
282+
${VPR_DEST_DIR}/src/analysis
283+
)
284284

285285
message(STATUS "NOTE: DONE PATCHING\n")
286286

include/base_fix/PATCHED/vpr_context.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,9 @@ class VprContext : public Context {
714714
ServerContext& mutable_server() { return server_; }
715715
#endif /* NO_SERVER */
716716

717+
const rsbe::Levelized& logic_levels() const { return logic_levels_; }
718+
rsbe::Levelized& mutable_logic_levels() { return logic_levels_; }
719+
717720
private:
718721
DeviceContext device_;
719722

include/tatum_fix/TimingReporter.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,15 @@ void TimingReporter::report_timing_setup(std::ostream& os,
9999
report_timing(os, paths, num_logic_levels);
100100
}
101101

102+
void TimingReporter::report_timing_setup(std::vector<tatum::TimingPath>& paths,
103+
std::ostream& os,
104+
const SetupTimingAnalyzer& setup_analyzer,
105+
size_t npaths, const int num_logic_levels) const {
106+
paths = path_collector_.collect_worst_setup_timing_paths(timing_graph_, setup_analyzer, npaths);
107+
108+
report_timing(os, paths, num_logic_levels);
109+
}
110+
102111
void TimingReporter::report_timing_hold(std::string filename,
103112
const HoldTimingAnalyzer& hold_analyzer,
104113
size_t npaths, const int num_logic_levels) const {
@@ -114,6 +123,15 @@ void TimingReporter::report_timing_hold(std::ostream& os,
114123
report_timing(os, paths, num_logic_levels);
115124
}
116125

126+
void TimingReporter::report_timing_hold(std::vector<tatum::TimingPath>& paths,
127+
std::ostream& os,
128+
const HoldTimingAnalyzer& hold_analyzer,
129+
size_t npaths, const int num_logic_levels) const {
130+
paths = path_collector_.collect_worst_hold_timing_paths(timing_graph_, hold_analyzer, npaths);
131+
132+
report_timing(os, paths, num_logic_levels);
133+
}
134+
117135
void TimingReporter::report_skew_setup(std::string filename,
118136
const SetupTimingAnalyzer& setup_analyzer,
119137
size_t nworst) const {

include/tatum_fix/TimingReporter.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ class TimingReporter {
6464
public:
6565
void report_timing_setup(std::string filename, const tatum::SetupTimingAnalyzer& setup_analyzer, size_t npaths=REPORT_TIMING_DEFAULT_NPATHS, const int num_logic_levels=0) const;
6666
void report_timing_setup(std::ostream& os, const tatum::SetupTimingAnalyzer& setup_analyzer, size_t npaths=REPORT_TIMING_DEFAULT_NPATHS, const int num_logic_levels=0) const;
67+
void report_timing_setup(std::vector<tatum::TimingPath>& paths, std::ostream& os, const tatum::SetupTimingAnalyzer& setup_analyzer, size_t npaths=REPORT_TIMING_DEFAULT_NPATHS, const int num_logic_levels=0) const;
6768

6869
void report_timing_hold(std::string filename, const tatum::HoldTimingAnalyzer& hold_analyzer, size_t npaths=REPORT_TIMING_DEFAULT_NPATHS, const int num_logic_levels=0) const;
6970
void report_timing_hold(std::ostream& os, const tatum::HoldTimingAnalyzer& hold_analyzer, size_t npaths=REPORT_TIMING_DEFAULT_NPATHS, const int num_logic_levels=0) const;
71+
void report_timing_hold(std::vector<tatum::TimingPath>& paths, std::ostream& os, const tatum::HoldTimingAnalyzer& hold_analyzer, size_t npaths=REPORT_TIMING_DEFAULT_NPATHS, const int num_logic_levels=0) const;
7072

7173
void report_skew_setup(std::string filename, const tatum::SetupTimingAnalyzer& setup_analyzer, size_t nworst=REPORT_TIMING_DEFAULT_NPATHS) const;
7274
void report_skew_setup(std::ostream& os, const tatum::SetupTimingAnalyzer& setup_analyzer, size_t nworst=REPORT_TIMING_DEFAULT_NPATHS) const;

0 commit comments

Comments
 (0)