ah, it seems I’ll need to modify a couple of lines...
# openlane
u
ah, it seems I’ll need to modify a couple of lines to be able to use run_designs.py on macOS
Copy code
[2020-08-01 21:55:36,437 -  INFO] copperv config_test finished   Writing report..
sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
       sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
sed: illegal option -- r
s
Hi, I’m struggling to get the skywater-pdk “make” running on my Mac. There is no conda package for “netlistsvg”. How did you work around this (My work around was ordering a Linux workstation, but I guess there is a cheaper solution)
u
just install that separately and comment it from the yml file
s
Thanks, that did the trick. Next: Yosys conda module seems to be unhappy with the python version 3.8.3, but i guess I can work around this. Is it OK if I ask you some further questions regarding the flow on macOS?
u
no prob mate. I’m running with Python 3.7.4 and yosys below:
Copy code
yosys --version
Yosys 0.9+2406 (git sha1 000fd081, clang 11.0.3 -fPIC -Os)
s
Thanks. I already have another question: did you use the dockerized version of openLane? I would prefer to have the tools built/installed natively (I have had some bad experiences with docker)
u
xD that seems to be the general feeling. I installed openroad nativelly and works fine, there are some scripts that need to get modified, but is just a matter of replacing some of the run_* procs inside scripts/tcl_commands/* to use the *_or version instead
s
OK.. so get a full Openroad install and then adapt the scripts in the openlane repo is a feasible road to take? Is this documented somewhere and are you using macports or brew?
I’ve been in a lot of rather complex software projects in the last few years, but this is crazy mikado when it comes to dependencies. 😆
u
😄 totally doable, the scripts edit are minimal
Copy code
diff --git a/scripts/tcl_commands/placement.tcl b/scripts/tcl_commands/placement.tcl
index 95f596d..38ef9b0 100755
--- a/scripts/tcl_commands/placement.tcl
+++ b/scripts/tcl_commands/placement.tcl
@@ -112,7 +112,7 @@ proc run_placement {args} {
 # |----------------------------------------------------|
        set ::env(CURRENT_STAGE) placement

-       global_placement
+       global_placement_or
        if { $::env(RUN_RESIZER_OVERBUFFER) == 1} {
                repair_wire_length
        }
@@ -132,7 +132,7 @@ proc run_placement {args} {
        # outputs: 4_1_place_gp.def

        # detailed 4_placement
-       detailed_placement
+       detailed_placement_or
 }
then
Copy code
+++ b/scripts/tcl_commands/placement.tcl
@@ -112,7 +112,7 @@ proc run_placement {args} {
 # |----------------------------------------------------|
        set ::env(CURRENT_STAGE) placement

-       global_placement
+       global_placement_or
        if { $::env(RUN_RESIZER_OVERBUFFER) == 1} {
                repair_wire_length
        }
@@ -132,7 +132,7 @@ proc run_placement {args} {
        # outputs: 4_1_place_gp.def

        # detailed 4_placement
-       detailed_placement
+       detailed_placement_or
 }
I’m mostly using brew… I think had to use macports for installing X11 dependencies, as magic was not working with Quartz, I think that was the most challenging aspect of the whole build