From a5703903e0a09fa84bbdd6b56923e11002513c91 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Wed, 5 May 2021 23:12:53 -0700 Subject: [PATCH] write_sdc skip -waveform when 1/2 of period --- sdc/WriteSdc.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sdc/WriteSdc.cc b/sdc/WriteSdc.cc index 52df8594..124f26b9 100644 --- a/sdc/WriteSdc.cc +++ b/sdc/WriteSdc.cc @@ -44,6 +44,7 @@ #include "DataCheck.hh" #include "DeratingFactors.hh" #include "Sdc.hh" +#include "Fuzzy.hh" #include "WriteSdcPvt.hh" #include "StaState.hh" @@ -425,9 +426,15 @@ WriteSdc::writeClock(Clock *clk) const if (clk->addToPins()) fprintf(stream_, " -add"); fprintf(stream_, " -period "); - writeTime(clk->period()); - fprintf(stream_, " -waveform "); - writeFloatSeq(clk->waveform(), scaleTime(1.0)); + float period = clk->period(); + writeTime(period); + FloatSeq *waveform = clk->waveform(); + if (!(waveform->size() == 2 + && (*waveform)[0] == 0.0 + && fuzzyEqual((*waveform)[1], period / 2.0))) { + fprintf(stream_, " -waveform "); + writeFloatSeq(waveform, scaleTime(1.0)); + } writeCmdComment(clk); fprintf(stream_, " "); writeClockPins(clk);