aboutsummaryrefslogtreecommitdiffstats
path: root/icetime
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-02-26 11:45:54 +0100
committerClifford Wolf <clifford@clifford.at>2017-02-26 11:45:54 +0100
commit7d98cd82f93d5d23d8dcc647a727504c37a2ced0 (patch)
tree694e6a7a4e70a7a09d861785d2cf85d644299c24 /icetime
parentce4e1bcfd8c791fe3fb6f991fbfaed309bc1f5ad (diff)
downloadicestorm-7d98cd82f93d5d23d8dcc647a727504c37a2ced0.tar.gz
icestorm-7d98cd82f93d5d23d8dcc647a727504c37a2ced0.tar.bz2
icestorm-7d98cd82f93d5d23d8dcc647a727504c37a2ced0.zip
Add "icetime -N"
Diffstat (limited to 'icetime')
-rw-r--r--icetime/icetime.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/icetime/icetime.cc b/icetime/icetime.cc
index 723cc4b..5f0face 100644
--- a/icetime/icetime.cc
+++ b/icetime/icetime.cc
@@ -1892,6 +1892,9 @@ void help(const char *cmd)
printf(" -T <net_name>\n");
printf(" print a timing report for the specified net\n");
printf("\n");
+ printf(" -N\n");
+ printf(" list valid net names for -T <net_name>\n");
+ printf("\n");
printf(" -c <Mhz>\n");
printf(" check timing estimate against clock constraint\n");
printf("\n");
@@ -1903,13 +1906,14 @@ void help(const char *cmd)
int main(int argc, char **argv)
{
+ bool listnets = false;
bool print_timing = false;
bool interior_timing = false;
double clock_constr = 0;
std::vector<std::string> print_timing_nets;
int opt;
- while ((opt = getopt(argc, argv, "p:P:g:o:r:j:d:mitT:vc:C:")) != -1)
+ while ((opt = getopt(argc, argv, "p:P:g:o:r:j:d:mitT:Nvc:C:")) != -1)
{
switch (opt)
{
@@ -1964,6 +1968,9 @@ int main(int argc, char **argv)
case 'T':
print_timing_nets.push_back(optarg);
break;
+ case 'N':
+ listnets = true;
+ break;
case 'c':
clock_constr = strtod(optarg, NULL);
break;
@@ -2219,7 +2226,7 @@ device_chip_mismatch:
if (fjson)
fprintf(fjson, "[\n");
- if (print_timing || !print_timing_nets.empty())
+ if (print_timing || listnets || !print_timing_nets.empty())
{
TimingAnalysis ta(interior_timing);
@@ -2243,6 +2250,10 @@ device_chip_mismatch:
if (print_timing)
max_path_delay = ta.report();
+
+ if (listnets)
+ for (auto &it : ta.net_max_path_delay)
+ fprintf(frpt, "%s\n", it.first.c_str());
}
else
{