Ross Schlaikjer
5e763b1afc
Alter MULT18X18D timing db based on register config
...
If the REG_INPUTA_CLK and REG_INPUTB_CLK values are set, then we should
use the faster setup/hold timings for the 18x8 multiplier.
Similarly, check the value of REG_OUTPUT_CLK for whether or not to use
faster timings for the output.
This is based on how I currently understand the registers to work - if
anyone knows the actual rules for when each timing applies please do
chime in to correct this implementation if necessary.
Along the same lines, this PR does not address the case when the
pipeline registers are enabled, since it is not clear to me how exactly
that affects the timing.
2020-04-28 20:01:29 -04:00
David Shah
396dfb7d5e
Merge pull request #423 from rschlaikjer/rschlaikjer-regmode-timing-database
...
Add support for REGMODE to DP16KD
2020-04-07 20:02:29 +01:00
Ross Schlaikjer
3aecb3b08c
No need to fetch context
2020-04-07 14:44:19 -04:00
Ross Schlaikjer
fc591421f9
Change assert to error
2020-04-07 14:42:27 -04:00
Ross Schlaikjer
e46b990251
Rearrange bool algebra
2020-04-07 14:31:17 -04:00
Ross Schlaikjer
3257bdc8a1
Actually just move all the logic to ArchInfo
2020-04-07 14:11:49 -04:00
Ross Schlaikjer
0bdf1e05f1
Extract regmode configuration to ArchInfo
2020-04-07 14:03:55 -04:00
David Shah
f9a76c56f7
ecp5: Allow use of IDDRXN and ODDRXN type primitives on the same pin
...
Signed-off-by: David Shah <dave@ds0.me>
2020-04-03 09:53:14 +01:00
David Shah
3b5e64e8c6
ecp5: Fix tieoff of unused DELAY signals
...
Signed-off-by: David Shah <dave@ds0.me>
2020-01-21 19:02:26 +00:00
David Shah
349be76d26
ecp5: Add support for flipflops with preload
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-07 12:20:25 +00:00
David Shah
ff30bc87fe
ecp5: Fix placement of DDRDLLA
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-29 10:50:13 +00:00
David Shah
aee2e01983
ecp5: Improve flipflop packing density
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-20 18:22:22 +00:00
David Shah
c3d4117a21
ecp5: Fix handling of custom DEL_VALUE
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-18 22:03:11 +00:00
David Shah
9a848d9d76
ecp5: Add logic utilisation before packing statistics
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-18 16:54:42 +00:00
David Shah
d08e2ade88
Merge pull request #345 from YosysHQ/dave/sdf
...
Improve handling of top level IO and add SDF support
2019-11-18 14:28:40 +00:00
David Shah
21c09c8b8f
ecp5: Copy timing constraints across ECLKBRIDGECS
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-01 16:27:51 +00:00
David Shah
58b7cb920f
ecp5: Fix placement of ECLKBRIDGECS
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-01 16:07:51 +00:00
David Shah
cf5cbd1153
ecp5: Preserve top level IO properly
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-18 15:58:57 +01:00
David Shah
8f86ccc412
ecp5: Add support for ECLKBRIDGECS
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-11 14:52:31 +01:00
David Shah
f2fd1bf80a
ecp5: Fix tristate IO registers
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-09 14:35:16 +01:00
David Shah
c6401413a4
ecp5: Add support for IO registers
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-09 14:23:35 +01:00
David Shah
a14555c8d1
ecp5: Add IDDR71B support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-09 12:07:56 +01:00
David Shah
21847a55e0
ecp5: Add ODDR71B support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-09 11:23:20 +01:00
David Shah
cba36239a4
ecp5: Fix parameters
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-04 14:54:31 +01:00
David Shah
d04e5954a6
ecp5: Adding support for 36-bit wide PDP RAMs
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-01 12:01:33 +01:00
David Shah
2ace9b5ad3
ecp5: Move clock constraints across IO and DCCA
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-13 16:50:07 +01:00
David Shah
78f86ce67a
ecp5: Add GSR/SGSR support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-27 13:14:41 +01:00
David Shah
661237eb64
ecp5: Add --out-of-context for building hard macros
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 14:22:47 +01:00
David Shah
7126dacccd
ecp5: Add a check for legacy parameter values
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-06 09:53:33 +01:00
David Shah
ec48f8f464
ecp5: New Property interface
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 17:22:37 +01:00
David Shah
d297a96dc1
ecp5: Fix missing LUT inputs, fixes #301
...
Signed-off-by: David Shah <dave@ds0.me>
2019-07-10 09:34:22 +01:00
Miodrag Milanovic
36ccc22fc9
Use flags for each step
2019-06-14 09:59:04 +02:00
Miodrag Milanovic
d9b0bac248
Save top level attrs and store current step
2019-06-07 16:11:11 +02:00
David Shah
15a1d4f582
ecp5: Use an attribute to store is_global
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-07 11:55:20 +01:00
Miodrag Milanovic
1093d7e122
WIP saving/loading attributes
2019-06-07 11:48:15 +02:00
Miodrag Milanovic
d5d8213871
Added support for attributes/properties types
2019-06-01 15:52:32 +02:00
David Shah
12f375a239
ecp5: Fix USRMCLK primitive
...
Signed-off-by: David Shah <dave@ds0.me>
2019-05-10 18:51:45 +01:00
David Shah
df79d94944
ecp5: DELAY fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
95a85c8ea7
ecp5: Improve packing density
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
a0fa164399
ecp5: Add criticality-based LUT permutation
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
998d055ea7
ecp5: Speed up timing analysis
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
64dc453f12
ecp5: DELAYF/G fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 13:53:06 +00:00
David Shah
0d83f3fcfe
ecp5: Connect unused DQSBUF inputs to GND
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-24 10:28:25 +01:00
David Shah
ab50a6ef54
ecp5: Compute derived constraints iteratively
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-24 10:28:25 +01:00
David Shah
ae6c1170ef
ecp5: Derived constraint support for PLLs, clock dividers and oscillators
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-24 10:28:25 +01:00
David Shah
e50ab2106f
ecp5: Fixes for litedram
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-24 10:28:25 +01:00
David Shah
817ba5a4b9
ecp5: Add DELAYF/DELAYG support
...
Signed-off-by: David Shah <davey1576@gmail.com>
2019-02-24 10:28:25 +01:00
David Shah
491d64293d
ecp5: Add DDRDLLA support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
68abcb365a
ecp5: Add ECLKSYNCB support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
49e9453820
ecp5: Add TSHX2DQSA support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
82ad10a395
ecp5: Add TSHX2DQA support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
6e8fbe8cdf
ecp5: Add IDDRX2DQA support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
4e49ab1625
ecp5: Add ODDRX2DQSB suppport
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
6f203dfd7b
ecp5: Add ODDRX2DQA support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
4402361246
ecp5: Helper functions and bitstream for DQS
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
eb45956d0e
ecp5: Constraint checker and placer for DQSBUFM
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
fe2375324d
ecp5: Add OSHX2A support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
8a64a72a21
ecp5: Add IDDRX2F support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
52d1954d96
ecp5: Packing of ODDRX2F
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
63e1f02c65
ecp5: Helper functions for DQS and ECLK
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00
David Shah
1661350d25
ecp5: Check for incorrect use of TRELLIS_IO 'B' pin
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-25 19:45:10 +00:00
David Shah
dc10fe0319
ecp5: Fix ODDR when used with manually instantiated TRELLIS_IO
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-12-19 10:11:29 +00:00
David Shah
d75075e15c
ecp5: Fix IOLOGIC ports at the same constant value
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-12-15 13:52:18 +00:00
David Shah
c01bb88509
ecp5: Add IOLOGIC timing and bitstream; ODDR working
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-14 16:40:38 +00:00
David Shah
9dc845b20d
ecp5: Add ODDR packing
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-14 14:59:14 +00:00
David Shah
36b1650df7
ecp5: Adding IOLOGIC packing
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-14 09:55:04 +00:00
David Shah
5ddf99cf5d
ecp5: Pre-place PLLs and use dedicated routes into globals
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-30 16:09:56 +00:00
David Shah
76f575fb29
ecp5: Add support for LUT7 mux
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-18 17:17:46 +00:00
David Shah
458aa20161
ecp5: More optimal LUT6 placement
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 17:36:34 +00:00
David Shah
3ae8b86003
ecp5: Adding mux support up to LUT6
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 17:27:23 +00:00
David Shah
91a0927196
ecp5: Support LOC attribute on DCUs
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
0eba7d9789
ecp5: EXTREFB fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
bc022173f0
ecp5: clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
36178a5713
ecp5: Trim IO connected to top level ports
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
e9fe444dc7
ecp5: Adding ancillary DCU bels
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
37cbabecfb
ecp5: remove debug and clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
c5a3571a06
ecp5: Working on DCU
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
24a2feda30
ecp5: Separate global promotion and routing
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 16:22:34 +00:00
David Shah
c782f07b1b
ecp5: Add IO buffer insertion
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 11:30:09 +00:00
David Shah
0ac48c6a08
ecp5: DSP fixes
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-22 16:18:29 +01:00
David Shah
535a6f625a
ecp5: Working on DSPs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-22 11:19:59 +01:00
David Shah
d716292e3d
ecp5: BRAM improvements with constant/inverted inputs
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-06 15:59:22 +01:00
David Shah
cd688a2784
ecp5: Fixing EBR constant tie-offs
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-05 16:47:03 +01:00
David Shah
bf7161d2b4
ecp5: Negative clock support, general slice improvements
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-02 15:50:45 +01:00
David Shah
8cbc92b7f3
ecp5: Small DRAM routing fixes
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 18:45:14 +01:00
David Shah
9ebec3b87f
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 18:20:14 +01:00
David Shah
fd4498736e
ecp5: Fix packing of FFs into carry/DRAM slices
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 18:19:56 +01:00
David Shah
c8a9bb807c
ecp5: Debugging DRAM packing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 17:45:35 +01:00
David Shah
9518c5d762
ecp5: Working on DRAM packing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 17:05:02 +01:00
David Shah
d770eb672f
ecp5: Helper functions for distributed RAM support
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 15:23:12 +01:00
David Shah
931c78b1bb
ecp5: Improve handling of constant CCU2C inputs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 14:42:19 +01:00
David Shah
e7c8818424
ecp5: Fix carry feed out
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 19:27:06 +01:00
David Shah
6a1b49c311
ecp5: Improve mixed no-FF/FF placement
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 18:39:53 +01:00
David Shah
3e399c9f20
ecp5: Carry packing fixes
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 18:10:20 +01:00
David Shah
9218d2e56b
ecp5: Relative placement and bitstream gen for carries
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 17:42:47 +01:00
David Shah
fef29d8762
ecp5: First stages of carry packing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 17:18:30 +01:00
David Shah
e81a95cf7e
ecp5: Add ccu2c_to_slice
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 17:06:06 +01:00
David Shah
2628344298
ecp5: Support code for carry chain handling
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 16:58:02 +01:00
David Shah
a27c7b45de
Refactor chain finder to its own file
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 16:29:26 +01:00
David Shah
6afc2c75fd
ecp5: Adding carry helper functions
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 15:13:31 +01:00