endmodule
// Max delay from: https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_hx1k.txt#L90
+// https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_lp1k.txt#L90
// Positive Edge SiliconBlue FF Cells
module SB_DFF (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, D
);
module SB_DFFE (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, D
);
module SB_DFFSR (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, R, D
);
module SB_DFFR (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, R, D
);
module SB_DFFSS (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, S, D
);
module SB_DFFS (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, S, D
);
module SB_DFFESR (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, R, D
);
module SB_DFFER (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, R, D
);
module SB_DFFESS (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, S, D
);
module SB_DFFES (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, S, D
);
module SB_DFFN (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, D
);
module SB_DFFNE (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, D
);
module SB_DFFNSR (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, R, D
);
module SB_DFFNR (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, R, D
);
module SB_DFFNSS (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, S, D
);
module SB_DFFNS (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, S, D
);
module SB_DFFNESR (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, R, D
);
module SB_DFFNER (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, R, D
);
module SB_DFFNESS (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, S, D
);
module SB_DFFNES (
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output `SB_DFF_REG,
input C, E, S, D
);
module SB_RAM40_4K (
`ABC_ARRIVAL_HX(2146) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_hx1k.txt#L401
+ `ABC_ARRIVAL_LP(3163) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_lp1k.txt#L401
output [15:0] RDATA,
input RCLK, RCLKE, RE,
input [10:0] RADDR,
module SB_RAM40_4KNR (
`ABC_ARRIVAL_HX(2146) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_hx1k.txt#L401
+ `ABC_ARRIVAL_LP(3163) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_lp1k.txt#L401
output [15:0] RDATA,
input RCLKN, RCLKE, RE,
input [10:0] RADDR,
module SB_RAM40_4KNW (
`ABC_ARRIVAL_HX(2146) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_hx1k.txt#L401
+ `ABC_ARRIVAL_LP(3163) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_lp1k.txt#L401
output [15:0] RDATA,
input RCLK, RCLKE, RE,
input [10:0] RADDR,
module SB_RAM40_4KNRNW (
`ABC_ARRIVAL_HX(2146) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_hx1k.txt#L401
+ `ABC_ARRIVAL_LP(3163) // https://github.com/cliffordwolf/icestorm/blob/95949315364f8d9b0c693386aefadf44b28e2cf6/icefuzz/timings_lp1k.txt#L401
output [15:0] RDATA,
input RCLKN, RCLKE, RE,
input [10:0] RADDR,
input I0, I1, I2, I3, CIN, CLK, CEN, SR,
output LO,
`ABC_ARRIVAL_HX(540)
+ `ABC_ARRIVAL_LP(795)
output O,
output COUT
);