Skip to content

Commit 333de67

Browse files
committed
[vpr][analysis] add generate_net_timing_report
1 parent e275a82 commit 333de67

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

vpr/src/analysis/timing_reports.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,10 @@ void generate_hold_timing_stats(const std::string& prefix,
2121
bool is_flat,
2222
const BlkLocRegistry& blk_loc_registry);
2323

24+
void generate_net_timing_report(const std::string& prefix,
25+
const SetupHoldTimingInfo& timing_info,
26+
const AnalysisDelayCalculator& delay_calc,
27+
const t_analysis_opts& analysis_opts,
28+
const BlkLocRegistry& blk_loc_registry);
29+
2430
#endif

vpr/src/base/SetupVPR.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,7 @@ static void SetupAnalysisOpts(const t_options& Options, t_analysis_opts& analysi
715715

716716
analysis_opts.timing_update_type = Options.timing_update_type;
717717
analysis_opts.write_timing_summary = Options.write_timing_summary;
718+
analysis_opts.generate_net_timing_report = Options.generate_net_timing_report;
718719
}
719720

720721
static void SetupPowerOpts(const t_options& Options, t_power_opts* power_opts, t_arch* Arch) {

vpr/src/base/read_options.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3011,7 +3011,7 @@ argparse::ArgumentParser create_arg_parser(const std::string& prog_name, t_optio
30113011
.help("Writes implemented design final timing summary to the specified JSON, XML or TXT file.")
30123012
.show_in(argparse::ShowIn::HELP_ONLY);
30133013

3014-
analysis_grp.add_argument(args.generate_net_timing_report, "--generate_net_timing_report")
3014+
analysis_grp.add_argument<bool, ParseOnOff>(args.generate_net_timing_report, "--generate_net_timing_report")
30153015
.help("Generates a net timing report for each net in the design.")
30163016
.default_value("off")
30173017
.show_in(argparse::ShowIn::HELP_ONLY);

vpr/src/base/vpr_api.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,6 +1476,11 @@ void vpr_analysis(const Netlist<>& net_list,
14761476
merged_netlist_writer(atom_ctx.netlist().netlist_name(), analysis_delay_calc, Arch.models, vpr_setup.AnalysisOpts);
14771477
}
14781478

1479+
if (vpr_setup.AnalysisOpts.generate_net_timing_report) {
1480+
generate_net_timing_report(/*prefix=*/"", *timing_info, *analysis_delay_calc,
1481+
vpr_setup.AnalysisOpts, blk_loc_registry);
1482+
}
1483+
14791484
//Do power analysis
14801485
// TODO: Still assumes that cluster net list is used
14811486
if (vpr_setup.PowerOpts.do_power) {

vpr/src/base/vpr_types.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,6 +1285,7 @@ struct t_analysis_opts {
12851285
bool timing_report_skew;
12861286
std::string echo_dot_timing_graph_node;
12871287
std::string write_timing_summary;
1288+
bool generate_net_timing_report;
12881289

12891290
e_timing_update_type timing_update_type;
12901291
};

0 commit comments

Comments
 (0)