aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/xilinx/abc_xc7.box
diff options
context:
space:
mode:
authorAman Goel <amangoel@umich.edu>2019-09-27 12:30:27 -0400
committerGitHub <noreply@github.com>2019-09-27 12:30:27 -0400
commitcb0dc6e68b9432edc9c30c153954be53c8576911 (patch)
treec137f970f949117d04632158d73bfe1f9c146e6f /techlibs/xilinx/abc_xc7.box
parent4d343fc1cdafe469484846051680ca0b1f948549 (diff)
parent4b15cf5f76e2226bbce1a73d1e0ff54fbf093fe8 (diff)
downloadyosys-cb0dc6e68b9432edc9c30c153954be53c8576911.tar.gz
yosys-cb0dc6e68b9432edc9c30c153954be53c8576911.tar.bz2
yosys-cb0dc6e68b9432edc9c30c153954be53c8576911.zip
Merge pull request #7 from YosysHQ/master
Syncing with official repo
Diffstat (limited to 'techlibs/xilinx/abc_xc7.box')
-rw-r--r--techlibs/xilinx/abc_xc7.box61
1 files changed, 61 insertions, 0 deletions
diff --git a/techlibs/xilinx/abc_xc7.box b/techlibs/xilinx/abc_xc7.box
new file mode 100644
index 000000000..20da3b8a0
--- /dev/null
+++ b/techlibs/xilinx/abc_xc7.box
@@ -0,0 +1,61 @@
+# Max delays from https://github.com/SymbiFlow/prjxray-db/blob/34ea6eb08a63d21ec16264ad37a0a7b142ff6031/artix7/timings/CLBLL_L.sdf
+# https://github.com/SymbiFlow/prjxray-db/blob/23c8b0851f979f0799318eaca90174413a46b257/artix7/timings/slicel.sdf
+
+# NB: Inputs/Outputs must be ordered alphabetically
+# (with exceptions for carry in/out)
+
+# Average across F7[AB]MUX
+# Inputs: I0 I1 S0
+# Outputs: O
+F7MUX 1 1 3 1
+204 208 286
+
+# Inputs: I0 I1 S0
+# Outputs: O
+MUXF8 2 1 3 1
+104 94 273
+
+# Box containing MUXF7.[AB] + MUXF8,
+# Necessary to make these an atomic unit so that
+# ABC cannot optimise just one of the MUXF7 away
+# and expect to save on its delay
+# Inputs: I0 I1 I2 I3 S0 S1
+# Outputs: O
+$__MUXF78 3 1 6 1
+294 297 311 317 390 273
+
+# CARRY4 + CARRY4_[ABCD]X
+# Inputs: CYINIT DI0 DI1 DI2 DI3 S0 S1 S2 S3 CI
+# Outputs: O0 O1 O2 O3 CO0 CO1 CO2 CO3
+# (NB: carry chain input/output must be last
+# input/output and the entire bus has been
+# moved there overriding the otherwise
+# alphabetical ordering)
+CARRY4 4 1 10 8
+482 - - - - 223 - - - 222
+598 407 - - - 400 205 - - 334
+584 556 537 - - 523 558 226 - 239
+642 615 596 438 - 582 618 330 227 313
+536 379 - - - 340 - - - 271
+494 465 445 - - 433 469 - - 157
+592 540 520 356 - 512 548 292 - 228
+580 526 507 398 385 508 528 378 380 114
+
+# SLICEM/A6LUT
+# Box to emulate comb/seq behaviour of RAMD{32,64} and SRL{16,32}
+# Necessary since RAMD* and SRL* have both combinatorial (i.e.
+# same-cycle read operation) and sequential (write operation
+# is only committed on the next clock edge).
+# To model the combinatorial path, such cells have to be split
+# into comb and seq parts, with this box modelling only the former.
+# Inputs: A S0 S1 S2 S3 S4 S5
+# Outputs: Y
+$__ABC_LUT6 2000 0 7 1
+0 642 631 472 407 238 127
+
+# SLICEM/A6LUT + F7BMUX
+# Box to emulate comb/seq behaviour of RAMD128
+# Inputs: A S0 S1 S2 S3 S4 S5 S6
+# Outputs: DPO SPO
+$__ABC_LUT7 2001 0 8 1
+0 1047 1036 877 812 643 532 478