aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-09-30 15:39:24 -0700
committerEddie Hung <eddie@fpgeh.com>2019-09-30 15:39:24 -0700
commit5e9ae90cbba4e9c2abfe5d6a1b90c2256aae1615 (patch)
tree49817e592875ed5c36192f01c91e761d0cfb5259
parenteecfdda6144856f399f0440d82595ca05c11e41b (diff)
downloadyosys-5e9ae90cbba4e9c2abfe5d6a1b90c2256aae1615.tar.gz
yosys-5e9ae90cbba4e9c2abfe5d6a1b90c2256aae1615.tar.bz2
yosys-5e9ae90cbba4e9c2abfe5d6a1b90c2256aae1615.zip
Add explanation to abc_map.v
-rw-r--r--techlibs/xilinx/abc_map.v16
1 files changed, 16 insertions, 0 deletions
diff --git a/techlibs/xilinx/abc_map.v b/techlibs/xilinx/abc_map.v
index cb252b828..6a0e18abe 100644
--- a/techlibs/xilinx/abc_map.v
+++ b/techlibs/xilinx/abc_map.v
@@ -18,8 +18,24 @@
*
*/
+// The following techmapping rules are intended to be run (with -max_iter 1)
+// before invoking the `abc9` pass in order to transform the design into
+// a format that it understands.
+//
+// For example, (complex) flip-flops are expected to be described as an
+// combinatorial box (containing all control logic such as clock enable
+// or synchronous resets) followed by a basic D-Q flop.
+
// ============================================================================
+// The purpose of the following FD* rules are to wrap the flop (which, when
+// called with the `_ABC' macro set captures contains only its combinatorial
+// behaviour) with:
+// (a) a special $__ABC_FF_ in front of the FD*'s output, indicating to abc9
+// the location of its basic D-Q flop
+// (b) a special \$currQ connection that feeds back into the (combinatorial)
+// FD* cell to facilitate clock-enable behaviour -- note that \$currQ
+// isn't a real input port, it is one that is understood only by abc9
module FDRE (output reg Q, input C, CE, D, R);
parameter [0:0] INIT = 1'b0;
parameter [0:0] IS_C_INVERTED = 1'b0;