2013-01-05 11:13:26 +01:00
|
|
|
|
|
|
|
|
OBJS += passes/techmap/techmap.o
|
2013-11-24 22:52:30 +01:00
|
|
|
OBJS += passes/techmap/simplemap.o
|
2013-10-16 15:32:26 +02:00
|
|
|
OBJS += passes/techmap/dfflibmap.o
|
2014-12-30 11:41:24 +01:00
|
|
|
OBJS += passes/techmap/maccmap.o
|
2014-07-24 19:03:57 +02:00
|
|
|
OBJS += passes/techmap/libparse.o
|
|
|
|
|
|
2015-05-17 14:44:28 +02:00
|
|
|
ifeq ($(ENABLE_ABC),1)
|
|
|
|
|
OBJS += passes/techmap/abc.o
|
2019-02-08 22:58:47 +01:00
|
|
|
OBJS += passes/techmap/abc9.o
|
2020-01-07 00:52:59 +01:00
|
|
|
OBJS += passes/techmap/abc9_exe.o
|
2019-12-28 14:07:46 +01:00
|
|
|
OBJS += passes/techmap/abc9_ops.o
|
2016-03-19 20:02:40 +01:00
|
|
|
ifneq ($(ABCEXTERNAL),)
|
|
|
|
|
passes/techmap/abc.o: CXXFLAGS += -DABCEXTERNAL='"$(ABCEXTERNAL)"'
|
2019-06-28 20:54:58 +02:00
|
|
|
passes/techmap/abc9.o: CXXFLAGS += -DABCEXTERNAL='"$(ABCEXTERNAL)"'
|
2020-01-30 21:12:43 +01:00
|
|
|
passes/techmap/abc9_exe.o: CXXFLAGS += -DABCEXTERNAL='"$(ABCEXTERNAL)"'
|
2016-03-19 20:02:40 +01:00
|
|
|
endif
|
2015-05-17 14:44:28 +02:00
|
|
|
endif
|
|
|
|
|
|
2014-07-24 19:03:57 +02:00
|
|
|
ifneq ($(SMALL),1)
|
2013-10-16 16:16:06 +02:00
|
|
|
OBJS += passes/techmap/iopadmap.o
|
Add clock buffer insertion pass, improve iopadmap.
A few new attributes are defined for use in cell libraries:
- iopad_external_pin: marks PAD cell's external-facing pin. Pad
insertion will be skipped for ports that are already connected
to such a pin.
- clkbuf_sink: marks an input pin as a clock pin, requesting clock
buffer insertion.
- clkbuf_driver: marks an output pin as a clock buffer output pin.
Clock buffer insertion will be skipped for nets that are already
driven by such a pin.
All three are module attributes that should be set to a comma-separeted
list of pin names.
Clock buffer insertion itself works as follows:
1. All cell ports, starting from bottom up, can be marked as clock sinks
(requesting clock buffer insertion) or as clock buffer outputs.
2. If a wire in a given module is driven by a cell port that is a clock
buffer output, it is in turn also considered a clock buffer output.
3. If an input port in a non-top module is connected to a clock sink in a
contained cell, it is also in turn considered a clock sink.
4. If a wire in a module is driven by a non-clock-buffer cell, and is
also connected to a clock sink port in a contained cell, a clock
buffer is inserted in this module.
5. For the top module, a clock buffer is also inserted on input ports
connected to clock sinks, optionally with a special kind of input
PAD (such as IBUFG for Xilinx).
6. Clock buffer insertion on a given wire is skipped if the clkbuf_inhibit
attribute is set on it.
2019-08-12 17:57:43 +02:00
|
|
|
OBJS += passes/techmap/clkbufmap.o
|
2014-01-19 21:58:58 +01:00
|
|
|
OBJS += passes/techmap/hilomap.o
|
2014-02-08 14:39:15 +01:00
|
|
|
OBJS += passes/techmap/extract.o
|
2017-08-25 12:04:40 +02:00
|
|
|
OBJS += passes/techmap/extract_fa.o
|
2017-08-29 05:52:08 +02:00
|
|
|
OBJS += passes/techmap/extract_counter.o
|
2017-08-28 19:52:06 +02:00
|
|
|
OBJS += passes/techmap/extract_reduce.o
|
2014-09-14 10:02:00 +02:00
|
|
|
OBJS += passes/techmap/alumacc.o
|
2014-12-08 14:10:52 +01:00
|
|
|
OBJS += passes/techmap/dff2dffe.o
|
2015-04-04 19:00:15 +02:00
|
|
|
OBJS += passes/techmap/dffinit.o
|
2015-04-07 20:27:10 +02:00
|
|
|
OBJS += passes/techmap/pmuxtree.o
|
2015-04-07 15:42:25 +02:00
|
|
|
OBJS += passes/techmap/muxcover.o
|
2015-06-10 07:24:26 +02:00
|
|
|
OBJS += passes/techmap/aigmap.o
|
2015-08-16 12:55:25 +02:00
|
|
|
OBJS += passes/techmap/tribuf.o
|
2015-09-18 21:55:48 +02:00
|
|
|
OBJS += passes/techmap/lut2mux.o
|
2015-09-18 21:57:34 +02:00
|
|
|
OBJS += passes/techmap/nlutmap.o
|
2016-02-02 17:19:01 +01:00
|
|
|
OBJS += passes/techmap/dffsr2dff.o
|
2016-04-16 23:20:49 +02:00
|
|
|
OBJS += passes/techmap/shregmap.o
|
2016-06-19 13:08:16 +02:00
|
|
|
OBJS += passes/techmap/deminout.o
|
2016-08-02 10:37:19 +02:00
|
|
|
OBJS += passes/techmap/insbuf.o
|
2016-08-09 11:18:48 +02:00
|
|
|
OBJS += passes/techmap/attrmvcp.o
|
2016-08-09 19:56:55 +02:00
|
|
|
OBJS += passes/techmap/attrmap.o
|
2016-10-12 12:05:19 +02:00
|
|
|
OBJS += passes/techmap/zinit.o
|
2018-07-14 15:54:30 +02:00
|
|
|
OBJS += passes/techmap/dff2dffs.o
|
2019-01-02 15:09:53 +01:00
|
|
|
OBJS += passes/techmap/flowmap.o
|
2019-08-28 16:58:14 +02:00
|
|
|
OBJS += passes/techmap/extractinv.o
|
2014-07-24 19:03:57 +02:00
|
|
|
endif
|
2013-10-16 15:32:26 +02:00
|
|
|
|
2014-07-31 02:32:00 +02:00
|
|
|
GENFILES += passes/techmap/techmap.inc
|
2013-01-05 11:13:26 +01:00
|
|
|
|
2014-07-31 02:32:00 +02:00
|
|
|
passes/techmap/techmap.inc: techlibs/common/techmap.v
|
2015-08-12 15:04:44 +02:00
|
|
|
$(Q) mkdir -p $(dir $@)
|
2014-07-24 17:15:01 +02:00
|
|
|
$(P) echo "// autogenerated from $<" > $@.new
|
|
|
|
|
$(Q) echo "static char stdcells_code[] = {" >> $@.new
|
|
|
|
|
$(Q) od -v -td1 -An $< | $(SED) -e 's/[0-9][0-9]*/&,/g' >> $@.new
|
|
|
|
|
$(Q) echo "0};" >> $@.new
|
|
|
|
|
$(Q) mv $@.new $@
|
2013-01-05 11:13:26 +01:00
|
|
|
|
2014-07-31 02:32:00 +02:00
|
|
|
passes/techmap/techmap.o: passes/techmap/techmap.inc
|
2013-01-05 11:13:26 +01:00
|
|
|
|
2015-02-15 12:09:30 +01:00
|
|
|
ifneq ($(CONFIG),emcc)
|
2020-04-10 10:38:40 +02:00
|
|
|
TARGETS += $(PROGRAM_PREFIX)yosys-filterlib$(EXE)
|
2014-10-17 12:11:15 +02:00
|
|
|
EXTRA_OBJS += passes/techmap/filterlib.o
|
2013-10-16 15:32:26 +02:00
|
|
|
|
2020-04-10 10:38:40 +02:00
|
|
|
$(PROGRAM_PREFIX)yosys-filterlib$(EXE): passes/techmap/filterlib.o
|
2015-08-12 15:04:44 +02:00
|
|
|
$(Q) mkdir -p $(dir $@)
|
2020-04-10 10:38:40 +02:00
|
|
|
$(P) $(LD) -o $(PROGRAM_PREFIX)yosys-filterlib$(EXE) $(LDFLAGS) $^ $(LDLIBS)
|
2015-02-15 12:09:30 +01:00
|
|
|
endif
|