// auto-generated by timings.py from ../icefuzz/timings_*.txt
#include <string>
#include <stdio.h>
#include <stdlib.h>

double get_delay_lp8k(std::string cell_type, std::string in_port, std::string out_port)
{
  if (cell_type == "CascadeBuf") {
    if (in_port == "I" && out_port == "O") return 0.26876;
  }
  if (cell_type == "CascadeMux") {
    if (in_port == "I" && out_port == "O") return 0.00000;
  }
  if (cell_type == "CEMux") {
    if (in_port == "I" && out_port == "O") return 0.88898;
  }
  if (cell_type == "ClkMux") {
    if (in_port == "I" && out_port == "O") return 0.45482;
  }
  if (cell_type == "gio2CtrlBuf") {
    if (in_port == "I" && out_port == "O") return 0.00000;
  }
  if (cell_type == "Glb2LocalMux") {
    if (in_port == "I" && out_port == "O") return 0.66156;
  }
  if (cell_type == "GlobalMux") {
    if (in_port == "I" && out_port == "O") return 0.22741;
  }
  if (cell_type == "ICE_CARRY_IN_MUX") {
    if (in_port == "carryinitin" && out_port == "carryinitout") return 0.28943;
  }
  if (cell_type == "ICE_GB") {
    if (in_port == "USERSIGNALTOGLOBALBUFFER" && out_port == "GLOBALBUFFEROUTPUT") return 0.90965;
  }
  if (cell_type == "InMux") {
    if (in_port == "I" && out_port == "O") return 0.38247;
  }
  if (cell_type == "INV") {
    if (in_port == "I" && out_port == "O") return 0.00000;
  }
  if (cell_type == "IO_PAD") {
    if (in_port == "DIN" && out_port == "PACKAGEPIN") return 2.35320;
    if (in_port == "OE" && out_port == "PACKAGEPIN") return 1.99000;
    if (in_port == "OE" && out_port == "PACKAGEPIN") return 1.97300;
    if (in_port == "OE" && out_port == "PACKAGEPIN") return 2.35320;
    if (in_port == "PACKAGEPIN" && out_port == "DOUT") return 0.59000;
  }
  if (cell_type == "IoInMux") {
    if (in_port == "I" && out_port == "O") return 0.38247;
  }
  if (cell_type == "IoSpan4Mux") {
    if (in_port == "I" && out_port == "O") return 0.47550;
  }
  if (cell_type == "LocalMux") {
    if (in_port == "I" && out_port == "O") return 0.48583;
  }
  if (cell_type == "LogicCell40") {
    if (in_port == "ce" && out_port == "*setup*") return 0.00000;
    if (in_port == "in0" && out_port == "*setup*") return 0.58921;
    if (in_port == "in1" && out_port == "*setup*") return 0.55819;
    if (in_port == "in2" && out_port == "*setup*") return 0.47550;
    if (in_port == "in3" && out_port == "*setup*") return 0.32044;
    if (in_port == "sr" && out_port == "*setup*") return 0.20674;
    if (in_port == "ce" && out_port == "*setup*") return 0.00000;
    if (in_port == "in0" && out_port == "*setup*") return 0.69257;
    if (in_port == "in1" && out_port == "*setup*") return 0.58921;
    if (in_port == "in2" && out_port == "*setup*") return 0.54786;
    if (in_port == "in3" && out_port == "*setup*") return 0.40314;
    if (in_port == "sr" && out_port == "*setup*") return 0.29977;
    if (in_port == "carryin" && out_port == "carryout") return 0.18607;
    if (in_port == "in0" && out_port == "lcout") return 0.66156;
    if (in_port == "in0" && out_port == "ltout") return 0.56853;
    if (in_port == "in1" && out_port == "carryout") return 0.38247;
    if (in_port == "in1" && out_port == "lcout") return 0.58921;
    if (in_port == "in1" && out_port == "ltout") return 0.55819;
    if (in_port == "in2" && out_port == "carryout") return 0.34112;
    if (in_port == "in2" && out_port == "lcout") return 0.55819;
    if (in_port == "in2" && out_port == "ltout") return 0.50651;
    if (in_port == "in3" && out_port == "lcout") return 0.46516;
    if (in_port == "in3" && out_port == "ltout") return 0.40314;
    if (in_port == "*clkedge*" && out_port == "lcout") return 0.79594;
    if (in_port == "sr" && out_port == "lcout") return 0.88313;
    if (in_port == "sr" && out_port == "lcout") return 0.88308;
  }
  if (cell_type == "Odrv4") {
    if (in_port == "I" && out_port == "O") return 0.54786;
  }
  if (cell_type == "Odrv12") {
    if (in_port == "I" && out_port == "O") return 0.79594;
  }
  if (cell_type == "PLL40") {
    if (in_port == "PLLIN" && out_port == "PLLOUTCORE") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTGLOBAL") return 0.00000;
  }
  if (cell_type == "PLL40_2") {
    if (in_port == "PLLIN" && out_port == "PLLOUTCOREA") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTCOREB") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTGLOBALA") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTGLOBALB") return 0.00000;
  }
  if (cell_type == "PLL40_2F") {
    if (in_port == "PLLIN" && out_port == "PLLOUTCOREA") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTCOREB") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTGLOBALA") return 0.00000;
    if (in_port == "PLLIN" && out_port == "PLLOUTGLOBALB") return 0.00000;
  }
  if (cell_type == "PRE_IO") {
    if (in_port == "CLOCKENABLE" && out_port == "*setup*") return 0.10337;
    if (in_port == "CLOCKENABLE" && out_port == "*setup*") return 0.10337;
    if (in_port == "DOUT0" && out_port == "*setup*") return 0.10337;
    if (in_port == "DOUT1" && out_port == "*setup*") return 0.10337;
    if (in_port == "OUTPUTENABLE" && out_port == "*setup*") return 0.10337;
    if (in_port == "PADIN" && out_port == "*setup*") return 2.77877;
    if (in_port == "PADIN" && out_port == "*setup*") return 2.77877;
    if (in_port == "CLOCKENABLE" && out_port == "*setup*") return 0.11371;
    if (in_port == "CLOCKENABLE" && out_port == "*setup*") return 0.11371;
    if (in_port == "DOUT0" && out_port == "*setup*") return 0.11371;
    if (in_port == "DOUT1" && out_port == "*setup*") return 0.11371;
    if (in_port == "OUTPUTENABLE" && out_port == "*setup*") return 0.11371;
    if (in_port == "PADIN" && out_port == "*setup*") return 2.78911;
    if (in_port == "PADIN" && out_port == "*setup*") return 2.78911;
    if (in_port == "DOUT0" && out_port == "PADOUT") return 3.29748;
    if (in_port == "LATCHINPUTVALUE" && out_port == "DIN0") return 0.54786;
    if (in_port == "*clkedge*" && out_port == "DIN1") return 0.20674;
    if (in_port == "*clkedge*" && out_port == "PADOUT") return 0.20674;
    if (in_port == "OUTPUTENABLE" && out_port == "PADOEN") return 0.31011;
    if (in_port == "PADIN" && out_port == "DIN0") return 0.90965;
    if (in_port == "*clkedge*" && out_port == "DIN0") return 0.20674;
    if (in_port == "*clkedge*" && out_port == "PADOEN") return 0.20674;
    if (in_port == "*clkedge*" && out_port == "PADOUT") return 0.20674;
  }
  if (cell_type == "PRE_IO_GBUF") {
    if (in_port == "PADSIGNALTOGLOBALBUFFER" && out_port == "GLOBALBUFFEROUTPUT") return 2.74476;
  }
  if (cell_type == "SB_PLL40_2F_CORE") {
    if (in_port == "REFERENCECLK" && out_port == "PLLOUTCOREA") return 0.00000;
    if (in_port == "REFERENCECLK" && out_port == "PLLOUTCOREB") return 0.00000;
    if (in_port == "REFERENCECLK" && out_port == "PLLOUTGLOBALA") return 0.00000;
    if (in_port == "REFERENCECLK" && out_port == "PLLOUTGLOBALB") return 0.00000;
  }
  if (cell_type == "SB_PLL40_CORE") {
    if (in_port == "REFERENCECLK" && out_port == "PLLOUTCORE") return 0.00000;
    if (in_port == "REFERENCECLK" && out_port == "PLLOUTGLOBAL") return 0.00000;
  }
  if (cell_type == "SB_RAM40_4K") {
    if (in_port == "MASK[0]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[1]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[2]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[3]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[4]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[5]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[6]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[7]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[8]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[9]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[10]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[11]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[12]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[13]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[14]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[15]" && out_port == "*setup*") return 0.40314;
    if (in_port == "RADDR[0]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[1]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[2]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[3]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[4]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[5]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[6]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[7]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[8]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[9]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[10]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RCLKE" && out_port == "*setup*") return 0.39280;
    if (in_port == "RE" && out_port == "*setup*") return 0.14472;
    if (in_port == "WADDR[0]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[1]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[2]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[3]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[4]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[5]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[6]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[7]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[8]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[9]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[10]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WCLKE" && out_port == "*setup*") return 0.39280;
    if (in_port == "WDATA[0]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[1]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[2]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[3]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[4]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[5]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[6]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[7]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[8]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[9]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[10]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[11]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[12]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[13]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[14]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[15]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WE" && out_port == "*setup*") return 0.19640;
    if (in_port == "MASK[0]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[1]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[2]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[3]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[4]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[5]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[6]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[7]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[8]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[9]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[10]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[11]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[12]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[13]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[14]" && out_port == "*setup*") return 0.40314;
    if (in_port == "MASK[15]" && out_port == "*setup*") return 0.40314;
    if (in_port == "RADDR[0]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[1]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[2]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[3]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[4]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[5]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[6]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[7]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[8]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[9]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RADDR[10]" && out_port == "*setup*") return 0.29977;
    if (in_port == "RCLKE" && out_port == "*setup*") return 0.39280;
    if (in_port == "RE" && out_port == "*setup*") return 0.14472;
    if (in_port == "WADDR[0]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[1]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[2]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[3]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[4]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[5]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[6]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[7]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[8]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[9]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WADDR[10]" && out_port == "*setup*") return 0.33078;
    if (in_port == "WCLKE" && out_port == "*setup*") return 0.39280;
    if (in_port == "WDATA[0]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[1]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[2]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[3]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[4]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[5]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[6]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[7]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[8]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[9]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[10]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[11]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[12]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[13]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[14]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WDATA[15]" && out_port == "*setup*") return 0.23775;
    if (in_port == "WE" && out_port == "*setup*") return 0.19640;
    if (in_port == "*clkedge*" && out_port == "RDATA[0]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[1]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[2]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[3]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[4]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[5]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[6]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[7]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[8]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[9]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[10]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[11]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[12]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[13]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[14]") return 3.16310;
    if (in_port == "*clkedge*" && out_port == "RDATA[15]") return 3.16310;
  }
  if (cell_type == "Sp12to4") {
    if (in_port == "I" && out_port == "O") return 0.66156;
  }
  if (cell_type == "Span4Mux_h0") {
    if (in_port == "I" && out_port == "O") return 0.21707;
  }
  if (cell_type == "Span4Mux_h1") {
    if (in_port == "I" && out_port == "O") return 0.25842;
  }
  if (cell_type == "Span4Mux_h2") {
    if (in_port == "I" && out_port == "O") return 0.29977;
  }
  if (cell_type == "Span4Mux_h3") {
    if (in_port == "I" && out_port == "O") return 0.34112;
  }
  if (cell_type == "Span4Mux_h4") {
    if (in_port == "I" && out_port == "O") return 0.46516;
  }
  if (cell_type == "Span4Mux_v0") {
    if (in_port == "I" && out_port == "O") return 0.29977;
  }
  if (cell_type == "Span4Mux_v1") {
    if (in_port == "I" && out_port == "O") return 0.29977;
  }
  if (cell_type == "Span4Mux_v2") {
    if (in_port == "I" && out_port == "O") return 0.37213;
  }
  if (cell_type == "Span4Mux_v3") {
    if (in_port == "I" && out_port == "O") return 0.49617;
  }
  if (cell_type == "Span4Mux_v4") {
    if (in_port == "I" && out_port == "O") return 0.54786;
  }
  if (cell_type == "Span12Mux_h0") {
    if (in_port == "I" && out_port == "O") return 0.21707;
  }
  if (cell_type == "Span12Mux_h1") {
    if (in_port == "I" && out_port == "O") return 0.19640;
  }
  if (cell_type == "Span12Mux_h2") {
    if (in_port == "I" && out_port == "O") return 0.24809;
  }
  if (cell_type == "Span12Mux_h3") {
    if (in_port == "I" && out_port == "O") return 0.26876;
  }
  if (cell_type == "Span12Mux_h4") {
    if (in_port == "I" && out_port == "O") return 0.32044;
  }
  if (cell_type == "Span12Mux_h5") {
    if (in_port == "I" && out_port == "O") return 0.38247;
  }
  if (cell_type == "Span12Mux_h6") {
    if (in_port == "I" && out_port == "O") return 0.41348;
  }
  if (cell_type == "Span12Mux_h7") {
    if (in_port == "I" && out_port == "O") return 0.47550;
  }
  if (cell_type == "Span12Mux_h8") {
    if (in_port == "I" && out_port == "O") return 0.56853;
  }
  if (cell_type == "Span12Mux_h9") {
    if (in_port == "I" && out_port == "O") return 0.64089;
  }
  if (cell_type == "Span12Mux_h10") {
    if (in_port == "I" && out_port == "O") return 0.69257;
  }
  if (cell_type == "Span12Mux_h11") {
    if (in_port == "I" && out_port == "O") return 0.77527;
  }
  if (cell_type == "Span12Mux_h12") {
    if (in_port == "I" && out_port == "O") return 0.79594;
  }
  if (cell_type == "Span12Mux_v0") {
    if (in_port == "I" && out_port == "O") return 0.15505;
  }
  if (cell_type == "Span12Mux_v1") {
    if (in_port == "I" && out_port == "O") return 0.15505;
  }
  if (cell_type == "Span12Mux_v2") {
    if (in_port == "I" && out_port == "O") return 0.22741;
  }
  if (cell_type == "Span12Mux_v3") {
    if (in_port == "I" && out_port == "O") return 0.24809;
  }
  if (cell_type == "Span12Mux_v4") {
    if (in_port == "I" && out_port == "O") return 0.31011;
  }
  if (cell_type == "Span12Mux_v5") {
    if (in_port == "I" && out_port == "O") return 0.39280;
  }
  if (cell_type == "Span12Mux_v6") {
    if (in_port == "I" && out_port == "O") return 0.42381;
  }
  if (cell_type == "Span12Mux_v7") {
    if (in_port == "I" && out_port == "O") return 0.46516;
  }
  if (cell_type == "Span12Mux_v8") {
    if (in_port == "I" && out_port == "O") return 0.57887;
  }
  if (cell_type == "Span12Mux_v9") {
    if (in_port == "I" && out_port == "O") return 0.62022;
  }
  if (cell_type == "Span12Mux_v10") {
    if (in_port == "I" && out_port == "O") return 0.64089;
  }
  if (cell_type == "Span12Mux_v11") {
    if (in_port == "I" && out_port == "O") return 0.67190;
  }
  if (cell_type == "Span12Mux_v12") {
    if (in_port == "I" && out_port == "O") return 0.79594;
  }
  if (cell_type == "SRMux") {
    if (in_port == "I" && out_port == "O") return 0.68224;
  }
  if (in_port == "*clkedge*"|| out_port == "*setup*") return 0;
  fprintf(stderr, "Unable to resolve delay for path %s -> %s in cell type %s!\n", in_port.c_str(), out_port.c_str(), cell_type.c_str());
  exit(1);
}
