So what's the current expected results ?
# shuttle-precheck
t
So what's the current expected results ?
a
@tnt: I set up a caravel CI to run the precheck on the caravel repo with every push, so you could always refer to that. Currently the DRC vios are 158. https://travis-ci.com/github/efabless/caravel/builds/207554534#L24424
t
Ok. unfortunately because that runs it on an empty design, the consistency check results are not really comparable I guess. I still have the pre-check complain about that and I have no idea what it wants from me πŸ€·β€β™‚οΈ
a
@tnt: What is the message that it displays for you?
t
"Consistency Checks Failed+ Reason: GDS Checks Failed: Hierarchy Matching Failed"
Copy code
STDOUT: Found (613583) user wrapper cell names differences: ['mprj', 'FILLER_601_708', 'FILLER_27_2563', 'FILLER_729_2099', 'FILLER_941_4795', 'PHY_39147', 'FILLER_337_4258', 'FILLER_704_520', 'FILLER_137_3514', 'FILLER_267_5674', 'FILLER_713_2416', 'PHY_4673', 'FILLER_236_5326', 'FILLER_724_1898', 'FILLER_573_2245', 'PHY_79162', 'ANTENNA_40', 'FILLER_157_2831', 'FILLER_314_4411', 'PHY_41683']
STDOUT: Found (35) user wrapper cell type differences: ['pyfive_top', 'sky130_fd_sc_hd__inv_8', 'sky130_fd_sc_hd__decap_3', 'sky130_fd_sc_hd__decap_12', 'sky130_fd_sc_hd__clkbuf_16', 'sky130_fd_sc_hd__fill_2', 'sky130_fd_sc_hd__nor3_4', 'sky130_fd_sc_hd__nor4_4', 'sky130_fd_sc_hd__buf_4', 'sky130_fd_sc_hd__buf_2', 'sky130_fd_sc_hd__conb_1', 'sky130_fd_sc_hd__nor2_4', 'sky130_fd_sc_hd__decap_6', 'sky130_fd_sc_hd__decap_4', 'sky130_fd_sc_hd__buf_1', 'sky130_fd_sc_hd__or2_4', 'sky130_fd_sc_hd__and2_4', 'sky130_fd_sc_hd__o21ai_4', 'sky130_fd_sc_hd__clkbuf_1', 'sky130_fd_sc_hd__a32oi_4']
STDOUT: Found (0) toplevel cell names differences: []
STDOUT: Found (0) toplevel cell type differences: []
a
@tnt: Did you move
openlane/user_project_wrapper/runs/user_project_wrapper/results/synthesis/user_project_wrapper.synthesis.v
to
verilog/gl/user_project_wrapper.v
?
@tnt: Actually, this means you probably didn't. You should tho.
t
Huh, no. I didn't know I was supposed to.
Ok, I guess I'll do that πŸ˜… Thanks !
a
@tnt: Yeah it wasn't very clear in the instructions in the past. I fixed that yesterday.
t
Given the
user_project_wrapper.synthesis.v
contains ... nothing but an instance of the subblock I harded, I supposed I need to put that
.v
in there as well ?
a
@tnt: It actually checks for the consistency one level down, so as long as what's under user_project_wrapper in the netlist and the GDS matches, you're good to go. (it's just a fuzzy consistency check after all). However, the DRC goes all the way down. And the "Check" after the "pre-check" will confirm that the user provided the rest of the source files.
t
Mmm ok. DRC fails with thousands of errors but I guess that's because I use SRAMs in my blocks.
a
@tnt: You can check the location of the DRCes from the .drc.mag or .drc.rdb files. However, I thought adding this would solve the SRAM issue https://github.com/efabless/open_mpw_precheck/blob/d0fe4f7b797610bc7a4215d6c417aa4bb275d9ac/drc_checks/magic_drc_check.tcl#L24 But it seems not.
t
Mm, yeah, at some point they "went away". But they re-appeared since I updated the SRAM macro to the new "fixed" one that mkk and @Ahmed Ghazy provided me. I'm wondering if the internal cell names of the new one I'm using don't match the old one and so that mag view is no good.
a
@tnt: I'll clone and check now.
t
Oh wait :
STDOUT: Precheck is running on REPO: <https://github.com/PyFive-RISC-V/caravel_pyfive.git> | BRANCH: master | COMMIT: e1e91ba
It's not using the latest commit πŸ˜•
a
@tnt: Also,
caravel.mag
is missing from the
.mag/
directory so it won't really run DRC.
t
I thought you said the .mag wasn't used in another thread.
a
The
gds/caravel.mag
isn't but the
mag/caravel.mag
is
t
Oh ... I had copied the first over the second and when you said it wasn't used, I just deleted it.
I'll restore that.
a
@tnt: Yeah, sorry for the confusion.
t
np. Just removed my removal commit from the history πŸ™‚
a
Copy code
{{PROGRESS}} Executing Step 2 of 4: Checking YAML description.                 
{{PROGRESS}} YAML file valid!
Step 2 done without fatal errors.
{{PROGRESS}} Executing Step 3 of 4: Executing Fuzzy Consistency Checks.        
{{WARNING}} Manifest Checks Failed. Please rebase your Repository to the latest
Caravel master.
{{PROGRESS}} Documentation Checks Passed.                                      
{{PROGRESS}} Makefile Checks Passed.
{{PROGRESS}} Basic Hierarchy Checks Passed.                                    
{{PROGRESS}} Running Magic Extractions From GDS...                             
{{PROGRESS}} Fuzzy Consistency Checks Passed!                                  
Step 3 done without fatal errors.
{{PROGRESS}} Executing Step 4 of 4: Checking DRC Violations.                   
{{FAIL}} DRC Checks on MAG Failed, Reason: MAG not found                       
TEST FAILED AT STEP 4
So this is from running your repo locally
the manifest checks failed because of the missing caravel.mag. That's the same reason for DRC
t
yup, just forced pushed the 'fixed' version with caravel.mag.
It's not the same version as the online one on efabless ? The DRC check is on the GDS according to the log.
a
@tnt: It should be the same. It's supposed to have been changed a day ago. Can you rerun and confirm?
t
sure
Yup , my bad, it says "DRC Checks on MAG Failed", I got confused with the "compressing gds" in the next lines πŸ˜… But it keeps using an old commit and just doesn't do a fresh checkout, so obviously it keeps failing with the same errors.
d
at some point I noticed the "sync" button disappeared from the projects page on the efabless portal. Is the precheck supposed to just pull the latest commit of the default branch now?
I submitted one a while ago just to see if I get the same 158-count result I get locally, which otherwise seems OK
t
Yeah no more sync button ... and it's definitely not updating for me.
It might be because I always rebase so you can't
git pull
you need to
reset --hard
or do a fresh clone ...
but it was working wiht the SYNC button.
@jeffdi Any idea what could be the issue ?
d
it might be the issue. It works as expected here but I made a new branch based on the mpw tag and just did a
reset --soft
, there was no rewriting history
j
@tnt @drr sorry for the delay. yes the sync button has been removed. the pre-check preforms a clone each time it is run.
@drr i just checked your last precheck job and you are getting the expected 158 DRC errors.
d
πŸ‘
t
@jeffdi but I ran a couple of pre-check last night and the full log shows the same commit was used each time even though it's not the latest commit on github.
Just re-did one this morning and same thing, it's running on an old commit, so the last 3 checks have been run on an old tree ...
a
@tnt: We expect the repo to be "pull-able".
t
Ah yeah, it's definitely not and no way I can make it so now ...
I always use rebase when adding custom stuff over someone elses tree, so pull would never work.
especially with all the binaries in caravel, merging always fails, it's just easier to re-apply on top of the new upstead master.
a
@tnt:
Copy code
git checkout HEAD --quiet
git pull --recurse-submodules --force --ff-only --quiet
git reset --hard HEAD --quiet
What can I change in this sequence of commands to "update" your repo with each run (without breaking it for other users)?
t
Mmm ...
git remote update
git reset --hard origin/master
git submodule update
is usually what I do, but that assumes the remote default branch is named
master
a
@tnt: I'll see what I can do.
t
origin/HEAD
might actually work.
a
@tnt: Can you do any small update so I could test something?
t
done.
a
@tnt: Well, the commands that the precheck uses worked in that case. So can you confirm by running it on the platform?
t
Ah yeah, the update I made was just a small tweak but it was fast-forwardable from the previous HEAD (hence pullable), it wasn't a rebase.
a
@tnt: Ah I noticed that. Can you ping me when you do a non-fast-forwadable change? (not necessarily now).
t
Are we supposed to use
master
or the
mpw-one-a
tag btw ?
a
@tnt: mpw-one-a
t
Ok. There I just did a squash of some small commits and force-pushed it.
a
Well, they're both the same. The only update is that I added the manifest files for precheck purposes
But they are not needed by the users
t
Also, I did make an online check run and it's still using e1e91ba which is from several days ago.
a
@tnt: I think this worked:
Copy code
git checkout HEAD --quiet
git pull --recurse-submodules --force --ff-only --quiet
git reset --hard origin/HEAD --quiet
* not that the
git pull
did anything * What update should I look for in the files to verify?
t
Well just doing
git log
should be enough and should show
faefdb3fee6661aba2b2aa396ca696efd17f3e21
a
Copy code
commit faefdb3fee6661aba2b2aa396ca696efd17f3e21 (HEAD -> master, origin/master, origin/HEAD)
t
ok yeah, that worked.
a
Okay, I'll ping the guys and see if this would affect any other repo. I guess we could get this up on the platform by Monday.
t
I guess the pull might throw an error or bad exit code because of non -fast-forward but it will still update the remote tree so the
git reset
does the rest.
So as long as it doesn't abort on wrong exit code, it's fine.
a
@tnt: And just to be 100% sure, ping me if you make another update. (not necessarily now)
t
Ok. Well for now I just deleted the project, created a new one and updated the request to force the update. And re-running the precheck it worked and used latest commit and check passed (consistency OK and 158 expected DRC errors).
πŸ™Œ 1