Hello, all. I have a problem on using Openlane to ...
# ieee-sscs-dc-23
j
Hello, all. I have a problem on using Openlane to synthesize and make gds from verilog code of combinational logic As shown below, I configured .json file and ran openlane, but error happend. How can I solve it?
m
@Junbeom Park It maybe that the default synthesized size is too small. If you don’t want to set an explicit size, maybe a lower utilization will work. (default is 50)
Copy code
"FP_CORE_UTIL": 10,
j
@Mitch Bailey Thank you! it works! After generating, I viewd layout as below. but it seems to be large due to distance between pins(left and right) I modifed some variables in config.json but effectless. Can you tell me an advice?
m
@Junbeom Park using
FP_PIN_ORDER_CFG
causes the pins to be distributed evenly along a side. There are a few things you can do to skip slots, but you’ll have to look through the documentation/code. Another way to handle pins is to define them in a def file. This is what
user_project_wrapper
does so that the pins are always in the expected location. As far as your example above, I think the
DIE_AREA
solved the original problem, not the
FP_CORE_UTIL
like I suggested.
See
FP_PIN_ORDER_CFG
and
FP_DEF_TEMPLATE
here.
j
@Mitch Bailey Thank you. I will try!
👍 2
🙂 1
@Mitch Bailey to make smaller, distance btw to pins needs to be short, so I set "FP_PDN_VOFFSET" and "FP_PDN_HOFFSET" as 3 but effectless. Why openlane set the wafer size bigger than actual chip size? It will be better that 1,2 marked in layout will be less
m
I think the FP_PDN variables only affect the power nets. To change the input/output pin locations, look into the pin_order.cfg options.
j
Thank you. I resized core and die area c by configuring variables.
m
@Junbeom Park Looks like the pins are distributed evenly over each side. From the configuration variable explanation
Copy code
Points to the pin order configuration file to set the pins in specific directions (S, W, E, N). If not set, then the IO pins will be placed based on one of the other methods depending on the rest of the configurations. 
$<number> i.e. $1 can be used to place a virtual pin where <number> is the count of virtual pins. This can create separation between pins. 
You can also use @min_distance=<number> i.e. @min_distance=0.8 to set preferred min distance between pins in a specific direction. 
See spm configuration file as an example.
(Default: None)
Here’s the example mentioned above. In your case, this would add dummy pins above and below to push the real pins more towards the middlle.
Copy code
#E
$5
*
$5