whitequark
93ef516d91
Merge pull request #1603 from whitequark/ice40-ram_style
...
ice40/ecp5: add support for both 1364.1 and Synplify/LSE RAM/ROM attributes
2020-04-10 14:51:01 +00:00
whitequark
ebee746ad2
ice40: do not map FFRAM if explicitly requested otherwise.
2020-04-03 05:51:40 +00:00
Eddie Hung
956ecd48f7
kernel: big fat patch to use more ID::*, otherwise ID(*)
2020-04-02 09:51:32 -07:00
Eddie Hung
fdafb74eb7
kernel: use more ID::*
2020-04-02 07:14:08 -07:00
Alberto Gonzalez
fc6b898178
Fix indentation in `techlibs/ice40/synth_ice40.cc`.
2020-04-01 16:29:56 +00:00
David Shah
beab15b77c
Merge pull request #1794 from YosysHQ/dave/mince-abc9-fix
...
ice40: Map unmapped 'mince' DFFs to gate level
2020-03-21 17:35:27 +00:00
Sylvain Munaut
c15ce5a73e
ice40: Fix typos in SPRAM ABC9 timing specs
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-03-20 22:19:55 +01:00
David Shah
e813624f21
ice40: Map unmapped 'mince' DFFs to gate level
...
Signed-off-by: David Shah <dave@ds0.me>
2020-03-20 20:29:16 +00:00
Sylvain Munaut
acd9eeef7c
ice40: Fix SPRAM model to keep data stable if chipselect is low
...
According to the official simulation model, and also cross-checked
on real hardware, the data output of the SPRAM when chipselect is
low is kept stable. It doesn't go undefined.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-03-14 21:01:42 +01:00
Eddie Hung
69f1555058
ice40: fix specify for ICE40_{LP,U}
2020-03-05 08:11:49 -08:00
Eddie Hung
0930c00f03
ice40: fix implicit signal in specify, also clamp negative times to 0
2020-03-04 15:28:17 -08:00
N. Engelhardt
0ec971444b
Merge pull request #1691 from ZirconiumX/use-flowmap-in-noabc
...
Add -flowmap option to `synth{,_ice40}`
2020-03-03 19:15:41 +01:00
Dan Ravensloft
d7987fec12
Add -flowmap to synth and synth_ice40
2020-02-28 14:29:57 +00:00
Eddie Hung
6bd9550100
ice40: add delays to SB_CARRY
2020-02-27 10:17:29 -08:00
Eddie Hung
aa969f8778
More +/ice40/cells_sim.v fixes
2020-02-27 10:17:29 -08:00
Eddie Hung
3728ef1765
ice40: fix specify for inverted clocks
2020-02-27 10:17:29 -08:00
Eddie Hung
a76520112d
ice40: specify fixes
2020-02-27 10:17:29 -08:00
Eddie Hung
fb60d82971
ice40: move over to specify blocks for -abc9
2020-02-27 10:17:29 -08:00
whitequark
3f4460a186
ice40: match memory inference attribute values case insensitive.
...
LSE/Synplify use case insensitive matching.
2020-02-06 14:58:20 +00:00
whitequark
fc28bf55aa
ice40: add support for both 1364.1 and LSE RAM/ROM attributes.
...
This commit tries to carefully follow the documented behavior of LSE
and Synplify. It will use `syn_ramstyle` attribute if there are any
write ports, and `syn_romstyle` attribute otherwise.
* LSE supports both `syn_ramstyle` and `syn_romstyle`.
* Synplify only supports `syn_ramstyle`, with same values as LSE.
* Synplify also supports `syn_rw_conflict_logic`, which is not
documented as supported for LSE.
Limitations of the Yosys implementation:
* LSE/Synplify appear to interpret attribute values insensitive
to case. There is currently no way to do this in Yosys (attrmap
can only change case of attribute names).
* LSE/Synplify support `syn_ramstyle="block_ram,no_rw_check"`
syntax to turn off insertion of transparency logic. There is
currently no way to support multiple valued attributes in
memory_bram. It is also not clear if that is a good idea, since
it can cause sim/synth mismatches.
* LSE/Synplify/1364.1 support block ROM inference from full case
statements. Yosys does not currently perform this transformation.
* LSE/Synplify propagate `syn_ramstyle`/`syn_romstyle` attributes
from the module to the inner memories. There is currently no way
to do this in Yosys (attrmvcp only works on cells and wires).
2020-02-06 14:58:20 +00:00
Eddie Hung
0b0148399c
synth_*: call 'opt -fast' after 'techmap'
2020-02-05 18:39:01 -08:00
Eddie Hung
e18aeda7ed
Fix $lut input ordering -- SigSpec(std::initializer_list<>) is backwards
...
Just like Verilog...
2020-01-27 14:02:13 -08:00
Eddie Hung
cfb0366a18
Import tests from #1628
2020-01-27 13:56:16 -08:00
Eddie Hung
ce6a690d27
xilinx/ice40/ecp5: undo permuting LUT masks in lut_map
...
Now done in read_aiger
2020-01-27 13:30:27 -08:00
Eddie Hung
af8281d2f5
Merge pull request #1656 from YosysHQ/eddie/ice40_abc9_warnings
...
ice40: reduce ABC9 internal fanout warnings with a param for CI->I3
2020-01-27 09:54:04 -08:00
Eddie Hung
81e6b040a4
ice40: add SB_SPRAM256KA arrival time
2020-01-24 12:17:09 -08:00
Eddie Hung
b178761551
ice40: reduce ABC9 internal fanout warnings with a param for CI->I3
2020-01-24 11:59:48 -08:00
David Shah
a4cfd1237f
Merge pull request #1602 from niklasnisbeth/ice40-init-vals-warning
...
ice40: Demote conflicting FF init values to a warning
2020-01-18 09:47:17 +00:00
Eddie Hung
78ffd5d193
synth_ice40: call wreduce before mul2dsp
2020-01-17 15:41:55 -08:00
Eddie Hung
c0b55deb0b
synth_ice40: -abc2 to always use `abc` even if `-abc9`
2020-01-12 11:26:05 -08:00
Eddie Hung
19541640ee
Merge remote-tracking branch 'origin/master' into xaig_dff
2020-01-06 09:31:28 -08:00
Miodrag Milanovic
c5d28f5d6b
Valid to have attribute starting with SB_CARRY.
2020-01-04 19:00:44 +01:00
Eddie Hung
b454735bea
Merge remote-tracking branch 'origin/master' into xaig_dff
2020-01-02 12:44:06 -08:00
Eddie Hung
2358320f51
Cleanup ice40 boxes
2019-12-31 18:29:37 -08:00
Niklas Nisbeth
379dcda139
ice40: Demote conflicting FF init values to a warning
2019-12-31 02:38:10 +01:00
Eddie Hung
79448f9be0
Update doc that "-retime" calls abc with "-dff -D 1"
2019-12-30 13:28:29 -08:00
Eddie Hung
aa6d06c1b5
Revert "Revert "synth_* with -retime option now calls abc with -D 1 as well""
...
This reverts commit 6008bb7002
.
2019-12-30 13:28:29 -08:00
Eddie Hung
10e82e103f
Revert "Optimise write_xaiger"
2019-12-20 12:05:45 -08:00
Eddie Hung
df626ee7ab
Merge pull request #1558 from YosysHQ/eddie/xaiger_cleanup
...
Optimise write_xaiger
2019-12-19 12:24:03 -05:00
Eddie Hung
fb203d2a2c
ice40_opt to restore attributes/name when unwrapping
2019-12-09 14:29:29 -08:00
Eddie Hung
500ed9b501
Sensitive to direct inst of $__ICE40_CARRY_WRAPPER; recreate SB_LUT4
2019-12-09 12:45:22 -08:00
Eddie Hung
e05372778a
ice40_wrapcarry to really preserve attributes via -unwrap option
2019-12-09 11:48:28 -08:00
Eddie Hung
98c9ea605b
techmap/aigmap of whiteboxes to occur before abc9 instead of in write_xaiger
2019-12-06 17:05:02 -08:00
Eddie Hung
ed3f359175
$__ICE40_CARRY_WRAPPER to use _TECHMAP_REPLACE_ for SB_CARRY to preserve
...
name and attr
2019-12-03 14:49:10 -08:00
Eddie Hung
1ea9ce0ad7
ice40_opt to ignore (* keep *) -ed cells
2019-12-03 14:48:39 -08:00
Clifford Wolf
e907ee4fde
Merge pull request #1490 from YosysHQ/clifford/autoname
...
Add "autoname" pass and use it in "synth_ice40"
2019-11-14 18:03:44 +01:00
Clifford Wolf
056ef76711
Merge pull request #1465 from YosysHQ/dave/ice40_timing_sim
...
ice40: Support for post-place-and-route timing simulations
2019-11-14 12:07:25 +01:00
Clifford Wolf
07c854b7af
Add "autoname" pass and use it in "synth_ice40"
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2019-11-13 13:41:16 +01:00
David Shah
e135ed5d80
ice40: Add post-pnr ICESTORM_RAM model and fix FFs
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-23 18:44:34 +01:00
David Shah
37dd3ad3fe
ice40: Support for post-pnr timing simulation
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-23 12:03:31 +01:00