Update to prjtrellis 6d2d00db04d298ee228ec4cf37223f332d9f767d
Signed-off-by: David Shah <dave@ds0.me>
diff --git a/ECP5/timing/speed_6/cells.json b/ECP5/timing/speed_6/cells.json
index 3f88701..a253f86 100644
--- a/ECP5/timing/speed_6/cells.json
+++ b/ECP5/timing/speed_6/cells.json
@@ -13957,6 +13957,568 @@
"type": "IOPath"
}
],
+ "MULT18X18D:REGS=ALL": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "A",
+ "setup": [
+ 53,
+ 68,
+ 84
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "B",
+ "setup": [
+ 53,
+ 68,
+ 84
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 199,
+ 252
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 137,
+ 152,
+ 168
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 137,
+ 152,
+ 168
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 63,
+ 73,
+ 84
+ ],
+ "pin": "RST0",
+ "setup": [
+ 63,
+ 79,
+ 95
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 578,
+ 656,
+ 735
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 578,
+ 656,
+ 735
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=INPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "A",
+ "setup": [
+ 53,
+ 68,
+ 84
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "B",
+ "setup": [
+ 53,
+ 68,
+ 84
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 199,
+ 252
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 137,
+ 152,
+ 168
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 137,
+ 152,
+ 168
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 63,
+ 73,
+ 84
+ ],
+ "pin": "RST0",
+ "setup": [
+ 63,
+ 79,
+ 95
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 2856,
+ 3360,
+ 3864
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 2856,
+ 3360,
+ 3864
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=NONE": [
+ {
+ "falling": [
+ 2740,
+ 3234,
+ 3728
+ ],
+ "from_pin": "SIGNEDA",
+ "rising": [
+ 2740,
+ 3234,
+ 3728
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2740,
+ 3234,
+ 3728
+ ],
+ "from_pin": "SIGNEDB",
+ "rising": [
+ 2740,
+ 3234,
+ 3728
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2909,
+ 3418,
+ 3927
+ ],
+ "from_pin": "A",
+ "rising": [
+ 2909,
+ 3418,
+ 3927
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2909,
+ 3418,
+ 3927
+ ],
+ "from_pin": "B",
+ "rising": [
+ 2909,
+ 3418,
+ 3927
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=OUTPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 3035,
+ 3260,
+ 3486
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 3035,
+ 3260,
+ 3486
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 2877,
+ 3082,
+ 3287
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 2877,
+ 3082,
+ 3287
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 199,
+ 252
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 63,
+ 73,
+ 84
+ ],
+ "pin": "RST0",
+ "setup": [
+ 63,
+ 79,
+ 95
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 578,
+ 656,
+ 735
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 578,
+ 656,
+ 735
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=PIPELINE": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 2405,
+ 2515,
+ 2625
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 2405,
+ 2515,
+ 2625
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 2247,
+ 2336,
+ 2425
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 2247,
+ 2336,
+ 2425
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 199,
+ 252
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 63,
+ 73,
+ 84
+ ],
+ "pin": "RST0",
+ "setup": [
+ 63,
+ 79,
+ 95
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 1302,
+ 1318,
+ 1334
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 1302,
+ 1318,
+ 1334
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
"PIO:IOTYPE=LVCMOS12": [
{
"clock": [
diff --git a/ECP5/timing/speed_7/cells.json b/ECP5/timing/speed_7/cells.json
index 8e53614..b9c105b 100644
--- a/ECP5/timing/speed_7/cells.json
+++ b/ECP5/timing/speed_7/cells.json
@@ -13957,6 +13957,568 @@
"type": "IOPath"
}
],
+ "MULT18X18D:REGS=ALL": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 189,
+ 231
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 26
+ ],
+ "pin": "A",
+ "setup": [
+ 37,
+ 50,
+ 63
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 26
+ ],
+ "pin": "B",
+ "setup": [
+ 37,
+ 50,
+ 63
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 131,
+ 144,
+ 158
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 131,
+ 144,
+ 158
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 53,
+ 63,
+ 74
+ ],
+ "pin": "RST0",
+ "setup": [
+ 74,
+ 89,
+ 105
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 530,
+ 593,
+ 656
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 530,
+ 593,
+ 656
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=INPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 189,
+ 231
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 26
+ ],
+ "pin": "A",
+ "setup": [
+ 37,
+ 50,
+ 63
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 26
+ ],
+ "pin": "B",
+ "setup": [
+ 37,
+ 50,
+ 63
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 131,
+ 144,
+ 158
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 131,
+ 144,
+ 158
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 53,
+ 63,
+ 74
+ ],
+ "pin": "RST0",
+ "setup": [
+ 74,
+ 89,
+ 105
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 2583,
+ 3019,
+ 3455
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 2583,
+ 3019,
+ 3455
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=NONE": [
+ {
+ "falling": [
+ 2473,
+ 2898,
+ 3323
+ ],
+ "from_pin": "SIGNEDA",
+ "rising": [
+ 2473,
+ 2898,
+ 3323
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2473,
+ 2898,
+ 3323
+ ],
+ "from_pin": "SIGNEDB",
+ "rising": [
+ 2473,
+ 2898,
+ 3323
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2620,
+ 3058,
+ 3497
+ ],
+ "from_pin": "A",
+ "rising": [
+ 2620,
+ 3058,
+ 3497
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2620,
+ 3058,
+ 3497
+ ],
+ "from_pin": "B",
+ "rising": [
+ 2620,
+ 3058,
+ 3497
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=OUTPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 2699,
+ 2880,
+ 3061
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 2699,
+ 2880,
+ 3061
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 2557,
+ 2722,
+ 2888
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 2557,
+ 2722,
+ 2888
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 189,
+ 231
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 53,
+ 63,
+ 74
+ ],
+ "pin": "RST0",
+ "setup": [
+ 74,
+ 89,
+ 105
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 530,
+ 593,
+ 656
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 530,
+ 593,
+ 656
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=PIPELINE": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 2121,
+ 2213,
+ 2305
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 2121,
+ 2213,
+ 2305
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 1979,
+ 2055,
+ 2131
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 1979,
+ 2055,
+ 2131
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 189,
+ 231
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 53,
+ 63,
+ 74
+ ],
+ "pin": "RST0",
+ "setup": [
+ 74,
+ 89,
+ 105
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 1192,
+ 1207,
+ 1223
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 1192,
+ 1207,
+ 1223
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
"PIO:IOTYPE=LVCMOS12": [
{
"clock": [
diff --git a/ECP5/timing/speed_8/cells.json b/ECP5/timing/speed_8/cells.json
index 438383a..0c1a1a6 100644
--- a/ECP5/timing/speed_8/cells.json
+++ b/ECP5/timing/speed_8/cells.json
@@ -13957,6 +13957,568 @@
"type": "IOPath"
}
],
+ "MULT18X18D:REGS=ALL": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 178,
+ 210
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 5,
+ 32
+ ],
+ "pin": "A",
+ "setup": [
+ 21,
+ 31,
+ 42
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 5,
+ 32
+ ],
+ "pin": "B",
+ "setup": [
+ 21,
+ 31,
+ 42
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 126,
+ 136,
+ 147
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 126,
+ 136,
+ 147
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 42,
+ 52,
+ 63
+ ],
+ "pin": "RST0",
+ "setup": [
+ 84,
+ 100,
+ 116
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 483,
+ 530,
+ 578
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 483,
+ 530,
+ 578
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=INPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 178,
+ 210
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 5,
+ 32
+ ],
+ "pin": "A",
+ "setup": [
+ 21,
+ 31,
+ 42
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 5,
+ 32
+ ],
+ "pin": "B",
+ "setup": [
+ 21,
+ 31,
+ 42
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 126,
+ 136,
+ 147
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 126,
+ 136,
+ 147
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 42,
+ 52,
+ 63
+ ],
+ "pin": "RST0",
+ "setup": [
+ 84,
+ 100,
+ 116
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 2310,
+ 2677,
+ 3045
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 2310,
+ 2677,
+ 3045
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=NONE": [
+ {
+ "falling": [
+ 2205,
+ 2562,
+ 2919
+ ],
+ "from_pin": "SIGNEDA",
+ "rising": [
+ 2205,
+ 2562,
+ 2919
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2205,
+ 2562,
+ 2919
+ ],
+ "from_pin": "SIGNEDB",
+ "rising": [
+ 2205,
+ 2562,
+ 2919
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2331,
+ 2698,
+ 3066
+ ],
+ "from_pin": "A",
+ "rising": [
+ 2331,
+ 2698,
+ 3066
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 2331,
+ 2698,
+ 3066
+ ],
+ "from_pin": "B",
+ "rising": [
+ 2331,
+ 2698,
+ 3066
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=OUTPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 2363,
+ 2499,
+ 2635
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 2363,
+ 2499,
+ 2635
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 2236,
+ 2362,
+ 2489
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 2236,
+ 2362,
+ 2489
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 178,
+ 210
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 42,
+ 52,
+ 63
+ ],
+ "pin": "RST0",
+ "setup": [
+ 84,
+ 100,
+ 116
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 483,
+ 530,
+ 578
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 483,
+ 530,
+ 578
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=PIPELINE": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 1838,
+ 1911,
+ 1985
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 1838,
+ 1911,
+ 1985
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 1712,
+ 1775,
+ 1838
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 1712,
+ 1775,
+ 1838
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 21
+ ],
+ "pin": "CE0",
+ "setup": [
+ 147,
+ 178,
+ 210
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 42,
+ 52,
+ 63
+ ],
+ "pin": "RST0",
+ "setup": [
+ 84,
+ 100,
+ 116
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 1082,
+ 1097,
+ 1113
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 1082,
+ 1097,
+ 1113
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
"PIO:IOTYPE=LVCMOS12": [
{
"clock": [
diff --git a/ECP5/timing/speed_8_5G/cells.json b/ECP5/timing/speed_8_5G/cells.json
index 98efe0b..a6df9a0 100644
--- a/ECP5/timing/speed_8_5G/cells.json
+++ b/ECP5/timing/speed_8_5G/cells.json
@@ -13957,6 +13957,568 @@
"type": "IOPath"
}
],
+ "MULT18X18D:REGS=ALL": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 17
+ ],
+ "pin": "CE0",
+ "setup": [
+ 121,
+ 147,
+ 173
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 4,
+ 26
+ ],
+ "pin": "A",
+ "setup": [
+ 17,
+ 25,
+ 34
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 4,
+ 26
+ ],
+ "pin": "B",
+ "setup": [
+ 17,
+ 25,
+ 34
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 104,
+ 112,
+ 121
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 104,
+ 112,
+ 121
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 34,
+ 43,
+ 52
+ ],
+ "pin": "RST0",
+ "setup": [
+ 69,
+ 82,
+ 96
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 399,
+ 438,
+ 478
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 399,
+ 438,
+ 478
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=INPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 17
+ ],
+ "pin": "CE0",
+ "setup": [
+ 121,
+ 147,
+ 173
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 4,
+ 26
+ ],
+ "pin": "A",
+ "setup": [
+ 17,
+ 25,
+ 34
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 4,
+ 26
+ ],
+ "pin": "B",
+ "setup": [
+ 17,
+ 25,
+ 34
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 104,
+ 112,
+ 121
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 104,
+ 112,
+ 121
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 0,
+ 0,
+ 0
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 34,
+ 43,
+ 52
+ ],
+ "pin": "RST0",
+ "setup": [
+ 69,
+ 82,
+ 96
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 1912,
+ 2216,
+ 2521
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 1912,
+ 2216,
+ 2521
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=NONE": [
+ {
+ "falling": [
+ 1825,
+ 2120,
+ 2416
+ ],
+ "from_pin": "SIGNEDA",
+ "rising": [
+ 1825,
+ 2120,
+ 2416
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 1825,
+ 2120,
+ 2416
+ ],
+ "from_pin": "SIGNEDB",
+ "rising": [
+ 1825,
+ 2120,
+ 2416
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 1930,
+ 2234,
+ 2538
+ ],
+ "from_pin": "A",
+ "rising": [
+ 1930,
+ 2234,
+ 2538
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ },
+ {
+ "falling": [
+ 1930,
+ 2234,
+ 2538
+ ],
+ "from_pin": "B",
+ "rising": [
+ 1930,
+ 2234,
+ 2538
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=OUTPUT": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 1956,
+ 2068,
+ 2181
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 1956,
+ 2068,
+ 2181
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 1851,
+ 1955,
+ 2060
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 1851,
+ 1955,
+ 2060
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 17
+ ],
+ "pin": "CE0",
+ "setup": [
+ 121,
+ 147,
+ 173
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 34,
+ 43,
+ 52
+ ],
+ "pin": "RST0",
+ "setup": [
+ 69,
+ 82,
+ 96
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 399,
+ 438,
+ 478
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 399,
+ 438,
+ 478
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
+ "MULT18X18D:REGS=PIPELINE": [
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "A",
+ "setup": [
+ 1521,
+ 1582,
+ 1643
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "B",
+ "setup": [
+ 1521,
+ 1582,
+ 1643
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDA",
+ "setup": [
+ 1417,
+ 1469,
+ 1521
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 0
+ ],
+ "pin": "SIGNEDB",
+ "setup": [
+ 1417,
+ 1469,
+ 1521
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 0,
+ 0,
+ 17
+ ],
+ "pin": "CE0",
+ "setup": [
+ 121,
+ 147,
+ 173
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "clock": [
+ "posedge",
+ "CLK0"
+ ],
+ "hold": [
+ 34,
+ 43,
+ 52
+ ],
+ "pin": "RST0",
+ "setup": [
+ 69,
+ 82,
+ 96
+ ],
+ "type": "SetupHold"
+ },
+ {
+ "falling": [
+ 895,
+ 908,
+ 921
+ ],
+ "from_pin": "CLK0",
+ "rising": [
+ 895,
+ 908,
+ 921
+ ],
+ "to_pin": "P",
+ "type": "IOPath"
+ }
+ ],
"PIO:IOTYPE=LVCMOS12": [
{
"clock": [