Auto-generate primitives from techlib
Instead of handcoding the abstract primitives, they are now
auto-generated through the primgen script, hooked up as fusesoc
generator.
This requires a not-yet-released version of fusesoc to have all
information available that our generator needs. Use
`pip3 install --user -U -r python-requirements.txt` to get a supported
fusesoc version for this change.
After this commit, technology libraries can simply be added to the
fusesoc search path. A technology library is expected to be similar to
the `prim_xilinx` library we have in the tree today; copy this library
as a starting point.
```
fusesoc --cores-root=. --cores-root=path-to-your-other-techlib run ....
```
Signed-off-by: Philipp Wagner <phw@lowrisc.org>
diff --git a/hw/ip/prim/prim_flash.core b/hw/ip/prim/prim_flash.core
index aaf62c8..9d7b41e 100644
--- a/hw/ip/prim/prim_flash.core
+++ b/hw/ip/prim/prim_flash.core
@@ -4,19 +4,22 @@
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:prim:flash"
-description: "Flash memory primitive"
+description: "Flash memory"
filesets:
- files_rtl:
+ primgen_dep:
depend:
- - lowrisc:prim_generic:flash
- - lowrisc:prim:assert
- - lowrisc:ip:flash_ctrl_pkg
- lowrisc:prim:prim_pkg
- files:
- - abstract/prim_flash.sv
- file_type: systemVerilogSource
+ - lowrisc:prim:primgen
+
+generate:
+ impl:
+ generator: primgen
+ parameters:
+ prim_name: flash
targets:
default:
filesets:
- - files_rtl
+ - primgen_dep
+ generate:
+ - impl