Logic API

addBuffer(String dinName, String tphlName, String tplhName)
  • dinName is the name of the buffer input signal. It can be a DigitalSignal, DigitalBus, or DigitalClock.

  • tphl (Optional) is the name of a User Delay which specifies the propagation delay when switching from “H” to “L”. If not specified, use “”;

  • tplh (Optional) is the name of a User Delay which specifies the propagation delay when switching from “L” to “H”. If not specified, use “”;

Example 1: A Buffer with no delays.

td.addBuffer("CLK,"","")

Example 2: A Buffer with tphl and tplh delays.

td.addUserDelay("tphl",tphlMin,tphlTyp,tphlMax, "tphl prop delay part xyz");
td.addUserDelay("tplh",tplhMin,tplhTyp,tplhMax, "tplh prop delay part xyz");

td.addBuffer("CLK","tphl","tplh");
addCounter(String cntrName, String clkName, boolean posEdge, String clk2qName, boolean upCounter, String enName, String ldName, String pinName, String rstName, String preName)
  • cntrName is the name of the counter output signal. A new DigitalBus will be added to the diagram with this name.

  • clkName is the name of the CLK input signal.

  • posEdge is true for rising edge triggered and false for falling edge triggerred.

  • clk2qName (Optional) is the name of a User Delay which specifies the clock to Q output delay. If not specified, use “”.

  • upCounter is true for an up counter and false for a down counter.

  • enName (Optional) is the name of the ENABLE input signal. If not specified, use “”.

  • ldName (Optional) is the name of the counter LOAD signal input. When active, the value of the parallel input (pinName) is loaded into the counter on the next clock edge.

  • pinName (Optional) is the name of the parallel input signal. This should be used with ldName. IF not specified, use “”.

  • rstName (Optional) is the name of the synchronous RESET input signal. If not specified, use “”.

  • preName (Optional) is the name of the synchronous PRESET input signal. If not specified, use “”.

Example 1: A 8 bit up counter, positive edge triggered, with clk2q delay, count enable and synchronous reset.

td.addUserDelay("clk2q",clk2qmin,clk2qTyp,clk2qMax, "Counter clock to Q delay part xyz");
td.addCounter("FIFO_WR_CNTR[7:0]","CLK",true,"clk2q",true,"FIFO_RD_CNTR_EN","","","RST","");
addDFF(String dinName, String clkName, boolean posEdge, String clk2qName, String enName, String rstName, String preName)
  • dinName is the name of the D input signal. It can be a DigitalSignal or a DigitalBus.

  • clkName is the name of the CLK input signal.

  • posEdge is true for rising edge triggered and false for falling edge triggerred.

  • clk2qName (Optional) is the name of a User Delay which specifies the clock to Q output delay. If not used, set to “”.

  • enName (Optional) is the name of the ENABLE input signal. If not used, set to “”.

  • rstName (Optional) is the name of the synchronous RESET input signal. If not used, set to “”.

  • preName (Optional) is the name of the synchronous PRESET input signal. If not used, set to “”.

Example 1: A positive edge triggered DFF with enable and clk2q delay.

td.addUserDelay("clk2q",clk2qmin,clk2qTyp,clk2qMax, "DFF clock to Q delay part xyz");
td.addDFF("FIFO_RD","CLK",true,"clk2q","FIFO_RD_EN","","");

Example 2: A positve edge triggered DFF with enable and clk2q delay and synchronous reset.

td.addUserDelay("clk2q",clk2qmin,clk2qTyp,clk2qMax, "DFF clock to Q delay part xyz");
td.addDFF("FIFO_RD","CLK",true,"clk2q","FIFO_RD_EN","FIFO_RST","");
addDifferentialDriver(String dinName, String name1, String startState1, double riseTime1, double fallTime1, String uDelayName1, String name2, String startState2, double riseTime2, double fallTime2, String uDelayName2)
  • dinName is the name of the input signal. It can be a DigitalSignal or a DigitalClock.

  • name1 is the name of the plus output signal.

  • startState1 is the start state of the plus output signal.

  • riseTime1 is the edge rise time of the plus output signal.

  • fallTime1 is the edge fall time of the plus output signal.

  • uDelayName1 (Optional) is the name of the user delay specified for the plus output signal. If not used, set to “None”

  • name2 is the name of the minus output signal.

  • startState2 is the start state of the minus output signal. It should be the startState1 inverted.

  • riseTime2 is the edge rise time of the minus output signal.

  • fallTime2 is the edge fall time of the minus output signal.

  • uDelayName2 (Optional) is the name of the user delay specified for the minus output signal. If not used, set to “None”

Example: A diff driver with user delays to model skew.

td.addDifferentialDriver("FCLK","FCLK+","LOW",2.0e-9,2.0e-9,"fclk_skew+","FCLK-","HIGH",2.0e-9,2.0e-9,"fclk_skew-" );
addInverter(String dinName, String tphlName, String tplhName)
  • dinName is the name of the Inverter input signal. It can be a DigitalSignal, DigitalBus, or DigitalClock.

  • tphl (Optional) is the name of a User Delay which specifies the propagation delay when switching from “H” to “L”. If not specified, use “”;

  • tplh (Optional) is the name of a User Delay which specifies the propagation delay when switching from “L” to “H”. If not specified, use “”;

Example 1: An Inverter with no delays.

td.addInverter("CLK,"","")

Example 2: An Inverter with tphl and tplh delays.

td.addUserDelay("tphl",tphlMin,tphlTyp,tphlMax, "tphl prop delay part xyz");
td.addUserDelay("tplh",tplhMin,tplhTyp,tplhMax, "tplh prop delay part xyz");

td.addInverter("CLK","tphl","tplh");