ok, here is my latest attempt to get the pdk insta...
# shuttle
m
ok, here is my latest attempt to get the pdk installed so I can simulate caravel: https://gist.github.com/mattvenn/242e9e72d6ede03a735ad61db4ca3cc9
🙌 1
d
I built it using the
make build-pdk
target instead which is s almost the same as your gist, maybe try that instead? https://github.com/efabless/openlane/blob/0fec8c8fb2382d3d487127face5109ec7d2baa51/Makefile#L80
m
I can still run openlane and get results, I just can't get any of the simulations in caravel to work
the mgmt sims (the wb tests I can do)
@drr can you take a look at what submodule libraries you added in skywater130?
did you have the same problem building the io library I did?
d
I don't remember those exact errors in the gist, I'll see what I've got
Copy code
~/hw/sky130A $ ls libs.ref/
sky130_fd_io		sky130_fd_sc_hd		sky130_fd_sc_hs		sky130_fd_sc_lp		sky130_fd_sc_ms
sky130_fd_pr		sky130_fd_sc_hdll	sky130_fd_sc_hvl	sky130_fd_sc_ls		sky130_osu_sc_t18
not sure if every one of those is needed, but that's what I've got here
m
me too
I've got 700M of files there (with du -sh)
could you check this file: sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v at line at line 20568
I'm wondering if that $PG is some problem with building the library
d
line 20568 of that file is different in my libraries, looks like autogen file so source input is probably from a different commit?
Copy code
20556 `ifdef USE_POWER_PINS
 20557 /*********************************************************/
 20558 
 20559 `celldefine
 20560 module sky130_fd_sc_hd__fill_4 (
 20561     VPWR,
 20562     VGND,
 20563     VPB ,
 20564     VNB
 20565 );
 20566 
 20567     input VPWR;
 20568     input VGND;
 20569     input VPB ;
 20570     input VNB ;
 20571     sky130_fd_sc_hd__fill base (
 20572         .VPWR(VPWR),
 20573         .VGND(VGND),
 20574         .VPB(VPB),
 20575         .VNB(VNB)
 20576     );
 20577 
 20578 endmodule
 20579 `endcelldefine
m
could you search for that string - pwrgood_pp and see if you have the $PG at the end?
d
sure does
Copy code
837 `celldefine
   838 module sky130_fd_sc_hd__nand3 (
   839     Y   ,
   840     A   ,
   841     B   ,
   842     C   ,
   843     VPWR,
   844     VGND,
   845     VPB ,
   846     VNB
   847 );
   848 
   849     // Module ports
   850     output Y   ;
   851     input  A   ;
   852     input  B   ;
   853     input  C   ;
   854     input  VPWR;
   855     input  VGND;
   856     input  VPB ;
   857     input  VNB ;
   858 
   859     // Local signals
   860     wire nand0_out_Y      ;
   861     wire pwrgood_pp0_out_Y;
   862 
   863     //                                 Name         Output             Other arguments
   864     nand                               nand0       (nand0_out_Y      , B, A, C                );
   865     sky130_fd_sc_hd__udp_pwrgood_pp$PG pwrgood_pp0 (pwrgood_pp0_out_Y, nand0_out_Y, VPWR, VGND);
   866     buf                                buf0        (Y                , pwrgood_pp0_out_Y      );
   867 
   868 endmodule
   869 `endcelldefine
m
ok dang it
my PDK_PATH should have been $PDK_ROOT/sky130A
so that solves all the missing modules
and running make -n
I can see iverilog isn't getting the pdk path
nope that wasn't it
still failing on unkown module type
a
@Matt Venn: If you're trying to use openlane:rc4, then I should probably tell you that it's not completely compatible with caravel. You'll need to handle the pdk installation outside of the openlane Makefile. Or else use the
develop
branch which is still under
develop
ment.
m
I'm on master for caravel, skywater and open_pdk now
but yeah, it doesn't work
a
@Matt Venn: you can switch to openlane:develop and use this script: https://github.com/efabless/openlane/blob/develop/travisCI/travisBuild.sh it will rule out any magic version issues you might have.
m
thanks