AUCOHL / DFFRAM

Standard Cell Library based Memory Compiler using FF/Latch cells
Apache License 2.0
128 stars 32 forks source link

"nix-shell" command's execution time #189

Closed Shehab-Naga closed 8 months ago

Shehab-Naga commented 11 months ago

Greetings,

I am in the process of installing and using the DFFRAM compiler, and I am following the steps mentioned in "Usage.md" file (https://github.com/AUCOHL/DFFRAM/blob/main/docs/Usage.md). However, since I ran the "nix-shell" command, it is taking so much time, almost 3 hours now. I am writing to ask if it is normal for the "nix-shell" to be running for a long time or there is a mistake somewhere.

As a side note, maybe it helps in identifying the problem, I am using openLane from this repo (https://github.com/The-OpenROAD-Project/OpenLane).

Thanks in advance.

donn commented 11 months ago

This may happen if you forgot the Cachix step or did not execute it correctly- it will build every tool included with OpenLane from scratch. Needless to say, this will take forever: https://github.com/AUCOHL/DFFRAM/blob/main/docs/Usage.md#setting-up-the-binary-cache

Some logs would be helpful.

As a side note, maybe it helps in identifying the problem, I am using openLane from this repo (The-OpenROAD-Project/OpenLane).

DFFRAM pulls its own OpenLane as part of nix-shell, so that's not an issue.

Shehab-Naga commented 11 months ago

Thanks for your answer.

I did the Cachix step correctly. Here is what happened. It took this long time only the first time I executed this command, but now it opens immediately.

Another question, is there an instructions file for porting the DFFRAM compiler to another PDK other than "gf180mcu_fd_sc_mcu7t5v0" and "sky130_fd_sc_hd"?

donn commented 11 months ago

Sorry, never got around to it. You can start by copying platform/sky130A and altering as necessary

donn commented 11 months ago

It took this long time only the first time I executed this command, but now it opens immediately.

So as a small primer, nix will cache the result of any nix-shell on your computer, which is why it doesn't take that long the second time.

What Cachix tries to do is insert an alternative cache where OpenLane's dependencies are already built, so you don't have to do that too. So it's weird that it didn't pull dependencies.

THAT SAID; out of curiosity, are you on an Apple Silicon Mac? If so, that would explain the lack of binaries.