mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-07 01:54:10 +00:00
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.
65 lines
1.9 KiB
Makefile
65 lines
1.9 KiB
Makefile
|
|
OBJS += passes/techmap/techmap.o
|
|
OBJS += passes/techmap/simplemap.o
|
|
OBJS += passes/techmap/dfflibmap.o
|
|
OBJS += passes/techmap/maccmap.o
|
|
OBJS += passes/techmap/libparse.o
|
|
|
|
ifeq ($(ENABLE_ABC),1)
|
|
OBJS += passes/techmap/abc.o
|
|
OBJS += passes/techmap/abc9.o
|
|
ifneq ($(ABCEXTERNAL),)
|
|
passes/techmap/abc.o: CXXFLAGS += -DABCEXTERNAL='"$(ABCEXTERNAL)"'
|
|
passes/techmap/abc9.o: CXXFLAGS += -DABCEXTERNAL='"$(ABCEXTERNAL)"'
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(SMALL),1)
|
|
OBJS += passes/techmap/iopadmap.o
|
|
OBJS += passes/techmap/clkbufmap.o
|
|
OBJS += passes/techmap/hilomap.o
|
|
OBJS += passes/techmap/extract.o
|
|
OBJS += passes/techmap/extract_fa.o
|
|
OBJS += passes/techmap/extract_counter.o
|
|
OBJS += passes/techmap/extract_reduce.o
|
|
OBJS += passes/techmap/alumacc.o
|
|
OBJS += passes/techmap/dff2dffe.o
|
|
OBJS += passes/techmap/dffinit.o
|
|
OBJS += passes/techmap/pmuxtree.o
|
|
OBJS += passes/techmap/muxcover.o
|
|
OBJS += passes/techmap/aigmap.o
|
|
OBJS += passes/techmap/tribuf.o
|
|
OBJS += passes/techmap/lut2mux.o
|
|
OBJS += passes/techmap/nlutmap.o
|
|
OBJS += passes/techmap/dffsr2dff.o
|
|
OBJS += passes/techmap/shregmap.o
|
|
OBJS += passes/techmap/deminout.o
|
|
OBJS += passes/techmap/insbuf.o
|
|
OBJS += passes/techmap/attrmvcp.o
|
|
OBJS += passes/techmap/attrmap.o
|
|
OBJS += passes/techmap/zinit.o
|
|
OBJS += passes/techmap/dff2dffs.o
|
|
OBJS += passes/techmap/flowmap.o
|
|
endif
|
|
|
|
GENFILES += passes/techmap/techmap.inc
|
|
|
|
passes/techmap/techmap.inc: techlibs/common/techmap.v
|
|
$(Q) mkdir -p $(dir $@)
|
|
$(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 $@
|
|
|
|
passes/techmap/techmap.o: passes/techmap/techmap.inc
|
|
|
|
ifneq ($(CONFIG),emcc)
|
|
TARGETS += yosys-filterlib$(EXE)
|
|
EXTRA_OBJS += passes/techmap/filterlib.o
|
|
|
|
yosys-filterlib$(EXE): passes/techmap/filterlib.o
|
|
$(Q) mkdir -p $(dir $@)
|
|
$(P) $(LD) -o yosys-filterlib$(EXE) $(LDFLAGS) $^ $(LDLIBS)
|
|
endif
|