mirror of https://github.com/YosysHQ/yosys.git
Renamed "stdcells.v" to "techmap.v"
This commit is contained in:
parent
6ca0c569d9
commit
1202f7aa4b
|
@ -124,7 +124,7 @@ Things to do right away:
|
||||||
- Add to kernel/celltypes.h (incl. eval() handling for non-mem cells)
|
- Add to kernel/celltypes.h (incl. eval() handling for non-mem cells)
|
||||||
- Add to InternalCellChecker::check() in kernel/rtlil.cc
|
- Add to InternalCellChecker::check() in kernel/rtlil.cc
|
||||||
- Add to techlibs/common/simlib.v
|
- Add to techlibs/common/simlib.v
|
||||||
- Add to techlibs/common/stdcells.v
|
- Add to techlibs/common/techmap.v
|
||||||
|
|
||||||
Things to do after finalizing the cell interface:
|
Things to do after finalizing the cell interface:
|
||||||
|
|
||||||
|
|
3
README
3
README
|
@ -304,8 +304,7 @@ Roadmap / Large-scale TODOs
|
||||||
- yosys-bigsim: https://github.com/cliffordwolf/yosys-bigsim
|
- yosys-bigsim: https://github.com/cliffordwolf/yosys-bigsim
|
||||||
|
|
||||||
- Technology mapping for real-world applications
|
- Technology mapping for real-world applications
|
||||||
- Add bit-wise const-folding via cell parameters to techmap pass
|
- Rewrite current techmap.v rules (modular and clean)
|
||||||
- Rewrite current stdcells.v techmap rules (modular and clean)
|
|
||||||
- Improve Xilinx FGPA synthesis (RAMB, CARRY4, SLR, etc.)
|
- Improve Xilinx FGPA synthesis (RAMB, CARRY4, SLR, etc.)
|
||||||
|
|
||||||
- Implement SAT-based formal equivialence checker
|
- Implement SAT-based formal equivialence checker
|
||||||
|
|
|
@ -27,7 +27,7 @@ cells with the provided implementation.
|
||||||
|
|
||||||
When no map file is provided, {\tt techmap} uses a built-in map file that
|
When no map file is provided, {\tt techmap} uses a built-in map file that
|
||||||
maps the Yosys RTL cell types to the internal gate library used by Yosys.
|
maps the Yosys RTL cell types to the internal gate library used by Yosys.
|
||||||
The curious reader may find this map file as {\tt techlibs/common/stdcells.v} in
|
The curious reader may find this map file as {\tt techlibs/common/techmap.v} in
|
||||||
the Yosys source tree.
|
the Yosys source tree.
|
||||||
|
|
||||||
Additional features have been added to {\tt techmap} to allow for conditional
|
Additional features have been added to {\tt techmap} to allow for conditional
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
stdcells.inc
|
techmap.inc
|
||||||
|
|
|
@ -10,16 +10,16 @@ OBJS += passes/techmap/hilomap.o
|
||||||
OBJS += passes/techmap/extract.o
|
OBJS += passes/techmap/extract.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
GENFILES += passes/techmap/stdcells.inc
|
GENFILES += passes/techmap/techmap.inc
|
||||||
|
|
||||||
passes/techmap/stdcells.inc: techlibs/common/stdcells.v
|
passes/techmap/techmap.inc: techlibs/common/techmap.v
|
||||||
$(P) echo "// autogenerated from $<" > $@.new
|
$(P) echo "// autogenerated from $<" > $@.new
|
||||||
$(Q) echo "static char stdcells_code[] = {" >> $@.new
|
$(Q) echo "static char stdcells_code[] = {" >> $@.new
|
||||||
$(Q) od -v -td1 -An $< | $(SED) -e 's/[0-9][0-9]*/&,/g' >> $@.new
|
$(Q) od -v -td1 -An $< | $(SED) -e 's/[0-9][0-9]*/&,/g' >> $@.new
|
||||||
$(Q) echo "0};" >> $@.new
|
$(Q) echo "0};" >> $@.new
|
||||||
$(Q) mv $@.new $@
|
$(Q) mv $@.new $@
|
||||||
|
|
||||||
passes/techmap/techmap.o: passes/techmap/stdcells.inc
|
passes/techmap/techmap.o: passes/techmap/techmap.inc
|
||||||
|
|
||||||
TARGETS += yosys-filterlib
|
TARGETS += yosys-filterlib
|
||||||
GENFILES += passes/techmap/filterlib.o
|
GENFILES += passes/techmap/filterlib.o
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "passes/techmap/stdcells.inc"
|
#include "passes/techmap/techmap.inc"
|
||||||
|
|
||||||
// see simplemap.cc
|
// see simplemap.cc
|
||||||
extern void simplemap_get_mappers(std::map<std::string, void(*)(RTLIL::Module*, RTLIL::Cell*)> &mappers);
|
extern void simplemap_get_mappers(std::map<std::string, void(*)(RTLIL::Module*, RTLIL::Cell*)> &mappers);
|
||||||
|
@ -790,7 +790,7 @@ struct TechmapPass : public Pass {
|
||||||
RTLIL::Design *map = new RTLIL::Design;
|
RTLIL::Design *map = new RTLIL::Design;
|
||||||
if (map_files.empty()) {
|
if (map_files.empty()) {
|
||||||
FILE *f = fmemopen(stdcells_code, strlen(stdcells_code), "rt");
|
FILE *f = fmemopen(stdcells_code, strlen(stdcells_code), "rt");
|
||||||
Frontend::frontend_call(map, f, "<stdcells.v>", verilog_frontend);
|
Frontend::frontend_call(map, f, "<techmap.v>", verilog_frontend);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
} else
|
} else
|
||||||
for (auto &fn : map_files)
|
for (auto &fn : map_files)
|
||||||
|
|
|
@ -5,7 +5,7 @@ techlibs/common/blackbox.v: techlibs/common/blackbox.sed techlibs/common/simlib.
|
||||||
$(P) cat techlibs/common/simlib.v techlibs/common/simcells.v | $(SED) -rf techlibs/common/blackbox.sed > techlibs/common/blackbox.v.new
|
$(P) cat techlibs/common/simlib.v techlibs/common/simcells.v | $(SED) -rf techlibs/common/blackbox.sed > techlibs/common/blackbox.v.new
|
||||||
$(Q) mv techlibs/common/blackbox.v.new techlibs/common/blackbox.v
|
$(Q) mv techlibs/common/blackbox.v.new techlibs/common/blackbox.v
|
||||||
|
|
||||||
EXTRA_TARGETS += share/simlib.v share/simcells.v share/blackbox.v share/pmux2mux.v
|
EXTRA_TARGETS += share/simlib.v share/simcells.v share/techmap.v share/blackbox.v share/pmux2mux.v
|
||||||
|
|
||||||
share/simlib.v: techlibs/common/simlib.v
|
share/simlib.v: techlibs/common/simlib.v
|
||||||
$(P) mkdir -p share
|
$(P) mkdir -p share
|
||||||
|
@ -15,6 +15,10 @@ share/simcells.v: techlibs/common/simcells.v
|
||||||
$(P) mkdir -p share
|
$(P) mkdir -p share
|
||||||
$(Q) cp techlibs/common/simcells.v share/simcells.v
|
$(Q) cp techlibs/common/simcells.v share/simcells.v
|
||||||
|
|
||||||
|
share/techmap.v: techlibs/common/techmap.v
|
||||||
|
$(P) mkdir -p share
|
||||||
|
$(Q) cp techlibs/common/techmap.v share/techmap.v
|
||||||
|
|
||||||
share/blackbox.v: techlibs/common/blackbox.v
|
share/blackbox.v: techlibs/common/blackbox.v
|
||||||
$(P) mkdir -p share
|
$(P) mkdir -p share
|
||||||
$(Q) cp techlibs/common/blackbox.v share/blackbox.v
|
$(Q) cp techlibs/common/blackbox.v share/blackbox.v
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
*
|
*
|
||||||
* This verilog library contains simple simulation models for the internal
|
* This verilog library contains simple simulation models for the internal
|
||||||
* logic cells ($_INV_ , $_AND_ , ...) that are generated by the default technology
|
* logic cells ($_INV_ , $_AND_ , ...) that are generated by the default technology
|
||||||
* mapper (see "stdcells.v" in this directory) and expected by the "abc" pass.
|
* mapper (see "techmap.v" in this directory) and expected by the "abc" pass.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue