myrtle
55bd760808
ice40: Don't constrain multiple potentially-incompatible FFs to same tile ( #1413 )
...
Signed-off-by: gatecat <gatecat@ds0.me>
2025-01-02 11:08:42 +01:00
rowanG077
9e8f8b7b45
streamline constant_net detection
2023-02-06 17:05:28 +01:00
gatecat
c60fb94b6c
refactor: Use IdString::in instead of || chains
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-08-10 18:58:22 +01:00
gatecat
27966f101f
ice40: Fix propagation of constraints through SB_GB
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-05-08 12:44:03 +01:00
gatecat
5a9ddc0675
ice40: Merge driving LUT<=2s into carry-only LCs
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-03-29 13:37:14 +01:00
gatecat
07c8506372
ice40: Improve error reporting for PLL conflicts
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-03-25 15:55:07 +00:00
gatecat
14d53dfec8
clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-03-17 19:24:05 +00:00
Stefan Riesenberger
e9ce55bfd0
ice40: fix crash when packing LUTs with no output
2022-03-14 12:43:19 +01:00
gatecat
86699b42f6
Switch to potentially-sparse net users array
...
This uses a new data structure for net.users that allows gaps, so
removing a port from a net is no longer an O(n) operation on the number
of users the net has.
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-27 13:47:05 +00:00
gatecat
6a32aca4ac
refactor: New member functions to replace design_utils
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-18 11:13:18 +00:00
gatecat
76683a1e3c
refactor: Use constids instead of id("..")
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-16 17:09:54 +00:00
gatecat
30fd86ce69
refactor: New NetInfo and CellInfo constructors
2022-02-16 15:10:57 +00:00
gatecat
a946ed0206
ice40: Pack LUT at start of carry chain if there is 1 candidate
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-12-14 19:27:20 +00:00
gatecat
8f722a0d35
ice40: Use default value when IP is missing BUS_ADDR74 parameter
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-20 16:08:26 +01:00
gatecat
d290766101
ice40: Fix order of values in error
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-10 23:23:19 +01:00
gatecat
2ffb081442
Fixing old emails and names in copyrights
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-12 13:22:38 +01:00
gatecat
ecc19c2c08
Using hashlib in arches
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:05:19 +01:00
gatecat
579b98c596
Use hashlib for core netlist structures
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 14:27:56 +01:00
gatecat
7922b3bfc4
Replace DelayInfo with DelayPair/DelayQuad
...
This replaces the arch-specific DelayInfo structure with new DelayPair
(min/max only) and DelayQuad (min/max for both rise and fall) structures
that form part of common code.
This further reduces the amount of arch-specific code; and also provides
useful data structures for timing analysis which will need to delay
with pairs/quads of delays as it is improved.
While there may be a small performance cost to arches that didn't
separate the rise/fall cases (arches that aren't currently separating
the min/max cases just need to be fixed...) in DelayInfo, my expectation
is that inlining will mean this doesn't make much difference.
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-19 11:31:33 +00:00
D. Shah
a09a62bc4a
ice40: Use snake case for arch-specific functions
...
This makes the difference clearer between the general arch API that
everyone must implement; and helper functions specific to one arch.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-03 10:46:12 +00:00
D. Shah
b31b21fd51
ice40: Implement IdStringList for all arch object names
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:33 +00:00
D. Shah
9388df19d3
refactor: Replace getXName().c_str(ctx) with ctx->nameOfX
...
This makes the ongoing migration to IdStringList easier.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:14 +00:00
D. Shah
c10238de8c
ice40: Switch from RelPtr to RelSlice
...
This replaces RelPtrs and a separate length field with a Rust-style
slice containing both a pointer and a length; with bounds checking
always enforced.
Thus iterating over these structures is both cleaner and safer.
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 18:35:49 +00:00
David Shah
74c4fa6751
ice40: Nicer error for unconstrained SB_GB_IO
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-27 20:11:08 +00:00
David Shah
92ef01830c
ice40: Clarify feedback paths in PLL constraints code
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-03 11:40:00 +00:00
David Shah
940b7efa15
ice40: Derive PLL timing constraints
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-03 09:55:30 +00:00
Sylvain Munaut
bdc95b8dc0
ice40/pack/SB_PLL: Force fixed value to 4'b1111 if dynamic delay is used
...
It's been confirmed that :
(1) this is required by the hardware
(2) icecube will force that field to 4'b1111 in fixed mode
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-11-10 10:24:58 +01:00
Sylvain Munaut
33067130e5
ice40: If IO is used by SB_GB_IO, can't use it for PLL
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-07-09 13:04:19 +02:00
David Shah
98e2f9ea81
ice40: Derive oscillator frequency constraints
...
Signed-off-by: David Shah <dave@ds0.me>
2020-03-29 21:02:16 +01:00
David Shah
a621e04062
ice40: Always copy DFF attrs to LC
...
Signed-off-by: David Shah <dave@ds0.me>
2020-03-19 21:35:31 +00:00
David Shah
fe40094216
Preserve hierarchy through packing
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
28279b18fe
frontend/generic: Fix regressions
...
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
a22f86f861
ice40: Preserve top level IO properly
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-19 13:01:00 +01:00
David Shah
30e3c8469b
ice40: Add support for PLL DELAY_ADJUSTMENT_MODE
...
Fixes #336
Signed-off-by: David Shah <dave@ds0.me>
2019-09-23 19:46:31 +01:00
David Shah
9e8976996e
ice40: Move clock constraints across SB_IO and SB_GB_IO
...
Signed-off-by: David Shah <dave@ds0.me>
2019-09-13 16:59:41 +01:00
David Shah
eed85cda83
ice40: Add better stats on LC packing
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-08 20:56:30 +01:00
David Shah
c9ba81ab50
ice40: Fix regression
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 19:10:00 +01:00
David Shah
1839a3a770
Major Property improvements for common and iCE40
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 14:52:15 +01:00
Miodrag Milanovic
be47fc3e9a
clangformat run
2019-06-25 18:19:25 +02:00
Miodrag Milanovic
ec47ce2320
Merge master
2019-06-25 18:14:51 +02:00
David Shah
fa77a5ae4a
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-24 11:43:01 +01:00
Miodrag Milanovic
36ccc22fc9
Use flags for each step
2019-06-14 09:59:04 +02:00
Simon Schubert
88eeafae12
ice40: add RGB_DRV/LED_DRV_CUR support for u4k
2019-06-10 14:04:25 +02:00
Miodrag Milanovic
d9b0bac248
Save top level attrs and store current step
2019-06-07 16:11:11 +02:00
Miodrag Milanovic
07b21c5129
Add vcc and gnd nets and cells only if needed
2019-06-07 13:58:21 +02:00
Miodrag Milanovic
1093d7e122
WIP saving/loading attributes
2019-06-07 11:48:15 +02:00
Miodrag Milanovic
eff1a1341a
Revert "Do not add VCC if not used, loading json works"
...
This reverts commit f1b3a14bc2
.
2019-06-02 08:51:32 +02:00
Miodrag Milanovic
d5d8213871
Added support for attributes/properties types
2019-06-01 15:52:32 +02:00
Miodrag Milanovic
f1b3a14bc2
Do not add VCC if not used, loading json works
2019-05-31 13:38:18 +02:00
Sylvain Munaut
e17299a1ca
ice40: Add support for HFOSC trimming
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-05-13 12:52:58 +02:00