I am trying to update some tools in openlane using...
# openlane
p
I am trying to update some tools in openlane using the steps given in the GitHub page. But I am getting the following errors. How to resolve this?
a
which tool is giving you those errors?
p
Replace
I want to update the version
a
If you'd like to use a recent enough version of replace, which will be used by default in the next release, modify
scripts/tcl_commands/placement.tcl
, change
global_placement
into
global_placement_or
in the
run_placement
proc.
p
Ok will try that
@Ahmed Ghazy did the above. The replace.def file is not generated in tmp folder. Attaching the error
IMG_20200820_150204__01.jpg
a
Are you using a macro with a custom LEF view?
p
Yes
@Ahmed Ghazy anything different to be done for macro?
a
@Praharsha: You need to use an interactive script in this case for now. Check https://github.com/efabless/openlane/blob/f5dc481ea0a857d0cb4ab9d69161fbc45534a06a/designs/striVe_soc_oram/script.tcl for reference. (You can run an interactive script with
./flow.tcl -interactive -file /path/to/script.tcl
)
p
@Ahmed Ghazy Thank you. Will try this out
@Ahmed Ghazy after global_placement_or getting error as global_placement positional arguments not supported
IMG_20200820_153216__01__01.jpg
a
could you share the script you're using?
p
@Ahmed Ghazy Currently I ran till placement only. This is the script
a
I had a look at your verilog files, you want to mark the AMUX macro as a black box by either adding the
(* blackbox *)
attribute on top in AMUX2_3V.v file or specify it in the
config.tcl
file as
VERILOG_FILES_BLACKBOX
and remove the ``include` line from the top level verilog. Are you doing that already?
p
@Ahmed Ghazy :Yeah. I was trying to figure how to make that as black box. Thank you for informing. Is that what is causing the error in placement as well?
a
No, it's not what is causing that; we're not explicitly using the
global_placement
command of openroad, so that error doesn't make much sense.
Since you're trying to harden a top module with only 1 macro, I suggest setting the core utilization to a low value ( around 20%), so that you get a floorplan that is big enough for placement and the other steps to make sense.
p
Yes I have set the core utilisation to 10%
@Ahmed Ghazy yeah. global_placement is not being used. So, what do you suggest, I do to successfully place it?
@Ahmed Ghazy found why it is calling global_placement. The proc global_placement_or is calling or_replace.tcl which in turn is calling global_ placement
IMG_20200820_161427__01.jpg,IMG_20200820_161325__01__01.jpg
@Ahmed Ghazy but I have set the pl_target_density to 0.9
a
@Parth Parikh: This block of code is commented out on the repo (https://github.com/efabless/openlane/blob/master/scripts/openroad/or_replace.tcl#L25)
🤓 1
p
@Ahmed Ghazy ohh. Well in my file it was not commented. After commenting, that error is gone. Now I am getting floating point exception error after implementing global_placement_or. It is coming on running 'replace_initial_place_cmd' in or_replace.tcl
IMG_20200820_203738__01.jpg
a
@Praharsha can you, as a start, reduce the 0.9 in PL_TARGET_DENSITY because this value is too high. Set it to a value that is <0.4. This is probably not the issue here, but it will eventually cause other issues. Check this for more details: https://github.com/efabless/openlane/wiki#what-is-the-difference-between-fp_core_util-and-pl_target_density
p
@Amr Gouhar Okay. I'll do that. Although ,in my design there is only 1 cell. So it shouldn't make much difference right?
a
@Praharsha technically yes, I'm just saying it's a good practice to get used to, since it will cause other issues later in other designs.
p
@Amr Gouhar yes. Thank you for educating. Also, if you have any idea why floating point exception is arising, it would be really helpful
@Ahmed Ghazy @Amr Gouhar actually the issue is with replace_nesterov_place_cmd. Even earlier with global_placement same place it was crashing. Could you tell me how to update RePlAce?
a
@Praharsha you can switch to the openroad version by replacing global_placement with global_placement_or, or if you already switched to that. You can do one of two things: 1. change the commit hash of replace in the replace dockerfile 2. change the commit hash of openroad app (if your using global_placement_or) in the dockerfile then inside the ./docker_build/ if 1 then run:
Copy code
make build-replace
make export-replace
make merge
if 2 then run:
Copy code
make build-openroad_flow
make export-openroad_flow
make merge
Beware that changing the commit hash to a newer version may not always succeed because the dependencies might have changed in those newer versions, so if it failed, make sure to check the dependencies on the respective repos. We will try to replicate your issue as soon as we can, and see if we can solve it. You can open an issue on the replace repo as well.
p
@Amr Gouhar Thank you so much
@Ahmed Ghazy @Amr Gouhar I am getting this error at routing stage. My macro has VDD and VSS pins. I tried changing the power_pins and ground_pins name in common_pdn.tcl file. But no effect. Can you help me out? Also, where to include lib file for macro? Like lef, is there any command to include lib file as well?
a
Adding additional liberty files is not there yet, but if you open an issue on the GH repo, it will help us keep track of it.
The error above shouldn't happen anymore with the latest openroad app.
p
Ok sure. I'll open an issue.
I actually resolved the above error
But right now I am getting overlaps. I have pasted my layout as an other thread.