Skip to content

Commit

Permalink
Add FuseSoC support for spm design
Browse files Browse the repository at this point in the history
This adds a core description file for the spm core that exposes targets
for linting and for building a GDSII using OpenLANE.

Quick FuseSoC instructions:

 #install FuseSoC
pip3 install fusesoc
 #Create and enter a new workspace
mkdir workspace && cd workspace
 #Register spm as a library in the workspace
fusesoc library add spm /path/to/spm
 #...if repo is available locally or...
fusesoc library add spm https://github.com/The-OpenROAD-Project/OpenLane
 #...to get the upstream repo

 #To run lint
fusesoc run --target=lint efabless::spm
 #To build with OpenLANE running in a docker container
EDALIZE_LAUNCHER=el_docker fusesoc run --target=sky130 efabless::spm
 #List all targets
fusesoc core show efabless::spm
  • Loading branch information
olofk committed Oct 30, 2022
1 parent 41ed003 commit d69b407
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
9 changes: 9 additions & 0 deletions designs/spm/sky130.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
set ::env(DESIGN_NAME) "spm"
set ::env(CLOCK_PERIOD) 10
set ::env(CLOCK_PORT) "clk"
set ::env(CLOCK_NET) "clk"
set ::env(FP_PDN_VOFFSET) 7
set ::env(FP_PDN_HOFFSET) 7
set ::env(FP_PIN_ORDER_CFG) "pin_order.cfg"
set ::env(FP_PDN_SKIPTRIM) true
set ::env(FP_CORE_UTIL) 45
28 changes: 28 additions & 0 deletions designs/spm/spm.core
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
CAPI=2:

name : efabless::spm:0

filesets:
rtl:
files: [src/spm.v : {file_type : verilogSource}]

sky130:
files:
- pin_order.cfg : {file_type : user, copyto : .}
- sky130.tcl : {file_type : tclSource}

targets:
default:
filesets : [spm]

lint:
default_tool : verilator
filesets : [rtl]
tools:
verilator: {mode: lint-only}
toplevel: spm

sky130:
default_tool : openlane
filesets: [rtl, sky130]
toplevel : spm

0 comments on commit d69b407

Please sign in to comment.