Hello, for some reason I am getting a DRC error wi...
# caravel
n
Hello, for some reason I am getting a DRC error with Caravel when trying to do a tape out on efabless. Can somebody help? This is the error: STDERR: [ WARN ] Poly Density Check Result: 'caravel_24114807.oas' has 1132 DRC violations.
t
Yes, there is a new poly density rule. A new version of the PDK should be out before the next chipignite that has decap/fill cells that don't violate the new rule.
In the mean time you just best ignore those poly density violations ...
n
Is there a way that I can get over that so that the tape-out is successful on efabless? I am doing it for the UNIC-CASS program, and this is a mock-tape out
t
You'd have to use some script (like with gdstk or such) to manually edit your GDS and substiture
decap
cells for
fill
cells until you meed the 38% poly density rule.
m
@Nikola Babić There is an openlane parameter for the types of cells that can be used for decap. I think decap_3 is about the right density. If you remove the other decap cells from the list, you might be able to pass the density check.
n
Thank you, I will try it
@Mitch Bailey May I ask you, is the parameter in the complementary config.tcl file for the user project and user project wrapper?
m
In the
openlane/<cell>/runs
directories, I believe there’s a
config.tcl
file that contains all the implicit and explicit setting. Look for
decap
there and set that variable. Here’s and example of the
.tcl
setting.
Copy code
set ::env(DECAP_CELL) {sky130_ef_sc_hd__decap_12 sky130_fd_sc_hd__decap_8 sky130_fd_sc_hd__decap_6 sky130_fd_sc_hd__decap_4 sky130_fd_sc_hd__decap_3}
You could modify that for a json setting only using
decap_3
n
So I just delete all except decap_3?
m
From what I know, that’s all you need to do. Please post your results (whether it worked or not).
n
I will. Thank you. I couldn't find the directory that you pointed to on the efabless repo so I have tried another which seems to have the same, or similar structure. It's
signoff/<cell>/config.tcl
. I'll see whether that works or not.
m
Don’t modify that file. Just use it as a reference to find the configuration to add to your
openlane/user_proj_example/config.json
file.
a
@Nikola Babić Mitch is right and there's an extra line that should help too. Add both of these lines somewhere to
openlane/user_proj_example/config.json
(and delete existing 'DECAP_CELL' and 'FILL_CELL' lines if you any in that same file):
Copy code
"DECAP_CELL": "sky130_fd_sc_hd__decap_3",
"FILL_CELL": "sky130_fd_sc_hd__fill_2 sky130_fd_sc_hd__fill_1",
Please let us know your results: i.e. whether you reharden and this then allows you to pass tapeout, or if it does not work.
🙏 1
👀 1
n
@Anton Maurovic (efabless support) I'll try it, thanks. I'm currently away but when I get back I will inform you about the results.
@Anton Maurovic (efabless support) Unfortunately, it did not work. Do you maybe have some other suggestion?
a
@Nikola Babić At the moment we're waiting on an updated PDK with a different fill/decap solution, and for customer tapeouts we've been fixing the over-density decap cells on our side after the tapeout job has been run. I understand your need for the UNIC-CASS program, though. Can you tell me which shuttle you created your project on (CI2409 or CI2411), and what the repository URL is?
n
@Anton Maurovic (efabless support) Thank you. The shuttle is CI2411, and the repository URL is https://repositories.efabless.com/nikolab2809/UNIC_CASS_FP_Adder
m
What was the density after the change?
n
I am not sure. The only thing I noticed is that the number of DRC errors didn't change. I would have to look into it later as I am not at my computer right now.
👍 1
m
It would be nice if you could indeed verify that there were no
decap_12
cells used in the layout.
a
@Nikola Babić I can see in your latest commit on repositories.efabless.com that you added the correct lines to your config.json files, but the updated GDS (i.e. files in
gds/
) is not included in this commit. Our server uses whatever is in
gds/user_project_wrapper.gds
(for your type of standard Caravel project) to run the precheck & tapeout jobs, so in addition to changing config.json, you will also need to re-run the OpenLane flow on your side if you didn't already do so after the change (i.e. reharden by doing both
make user_proj_example
and then
make user_project_wrapper
) and ensure your updated GDS files are committed and pushed to your repo on our server.
I can verify the GDS still has decap_12 cells by opening your GDS in KLayout. In the screenshot below, after I've expanded the hierarchy on the left, I can see
...decap_12
cells. They are all of the black rectangles that look like bricks. These are the ones causing the problem, that the configuration lines we gave will prevent.
Note at this time that needing this additional step is not your fault, and in fact not even required for a customer tapeout -- it's a workaround for something being addressed now. It is necessary to use this workaround for the time being, though, iff you want to see zero "poly density" errors and therefore a 100% passing 'tapeout' job when using a digital block.
👍 1
n
@Anton Maurovic (efabless support) @Mitch Bailey It works now. Thanks a lot to both of you!
🎉 2
a
Great to hear, thanks for the feedback @Nikola Babić 🙂
🙂 1
108 Views