xilinx: Improve flip-flop handling.
authorMarcin Kościelnicki <marcin@symbioticeda.com>
Thu, 21 Nov 2019 05:30:06 +0000 (06:30 +0100)
committerMarcin Kościelnicki <mwk@0x04.net>
Wed, 18 Dec 2019 12:43:43 +0000 (13:43 +0100)
commitaff6ad1ce09264fb7fbf43a7456a746a586bea90
treebc8edef3141b31acac3c5dad428a8ff50f840cc0
parent22dd9f107c8986463041709aabcd0c886c87d33f
xilinx: Improve flip-flop handling.

This adds support for infering more kinds of flip-flops:

- FFs with async set/reset and clock enable
- FFs with sync set/reset
- FFs with sync set/reset and clock enable

Some passes have been moved (and some added) in order for dff2dffs to
work correctly.

This gives us complete coverage of Virtex 6+ and Spartan 6 flip-flop
capabilities (though not latch capabilities).  Older FPGAs also support
having both a set and a reset input, which will be handled at a later
data.
CHANGELOG
techlibs/xilinx/cells_map.v
techlibs/xilinx/synth_xilinx.cc
techlibs/xilinx/xc6s_ff_map.v
techlibs/xilinx/xc7_ff_map.v
tests/arch/xilinx/adffs.ys
tests/arch/xilinx/fsm.ys
tests/arch/xilinx/macc.ys