Thanks for implementing digital cells (and pcells). However, visually they don't look correct in the Notebook. Following your tutorial, (better to use sky130_fd_sc_hd__inv_1 as the simplest cell), all the layers should be visible to the designer similar to other tools (e.g. KLayout) either semi-transparent or hatched. Otherwise, it is very difficult to judge if they are correctly connected, and we need to see the ports to decide on the connections.
Secondly, digital cells are not placed randomly, hence a move() command is not enough. We have to pay attention to layer 236/0 in the gds. This shows the logical border of the cell. So ideally, a cell should be placed exactly adjacent to the other cell's border. Failing to do so will generate DRC errors. Of course, the cells can be further away from each other if the routing is too dense. Overall digital cells are placed on rails in rows and columns. Moving using a small grid move() will be tedious.
PS: keeping a consistent color scheme for each layer across all the tools is very important. This avoids confusion and potential errors porting between each tool.
Thanks for implementing digital cells (and pcells). However, visually they don't look correct in the Notebook. Following your tutorial, (better to use
sky130_fd_sc_hd__inv_1
as the simplest cell), all the layers should be visible to the designer similar to other tools (e.g. KLayout) either semi-transparent or hatched. Otherwise, it is very difficult to judge if they are correctly connected, and we need to see the ports to decide on the connections.Secondly, digital cells are not placed randomly, hence a
move()
command is not enough. We have to pay attention to layer 236/0 in the gds. This shows the logical border of the cell. So ideally, a cell should be placed exactly adjacent to the other cell's border. Failing to do so will generate DRC errors. Of course, the cells can be further away from each other if the routing is too dense. Overall digital cells are placed on rails in rows and columns. Moving using a small gridmove()
will be tedious.PS: keeping a consistent color scheme for each layer across all the tools is very important. This avoids confusion and potential errors porting between each tool.