<@U0175T39732>: OpenLane probably does not have t...
# magic
t
@User: OpenLane probably does not have the update to magic that probably (?) addresses this issue. Would need to write GDS with magic version 1.8.180 and see if that version fixes the problem.
m
I believe I updated to 8.3.180 and I still get this. The bank is called "bank" in each so it is the last one read it. There are also lots of warnings like this: Reading "col_addr_dff". Warning: cell col_addr_dff already existed before reading GDS! Reading "wmask_dff". Warning: cell wmask_dff already existed before reading GDS! Reading "data_dff". Warning: cell data_dff already existed before reading GDS! 100 uses I'm not sure if those are related.
Copy code
$ make mount
cd /home/mrg/openlane && \
        docker run -it --rm -v /home/mrg/openlane:/openLANE_flow -v /software/PDKs:/software/PDKs -e PDK_ROOT=/software/PDKs -u 1000:1000 efabless/openlane:current
bash-4.2$ magic --version
8.3.180
t
It seems that there isn't a method for handling this, oddly enough. The behavior is to overwrite cells. This comes from earlier code that was meant to handle cells that were instanced before they were defined. Now I have added a method to allow abstract views to be read in first, and then the full view is ignored in favor of the abstract view. To support renaming duplicate cells, I could put in additional code and methods. However, I was intending soon to start adding checksums on cells, which means that the GDS read routine can check any cell to see if it has the same checksum as an existing cell already read in, and decide whether it it is the same cell and can keep the name, or if it is a different cell and needs to have the name changed. That's the ultimate solution to the problem. Meanwhile, maybe you could append the array size to the name "bank" so that banks of different sizes have different names?
m
This problem occurs all through my hierarchy and isn't limited to only the bank.
It would also require updating my characterization code which assumes the basic names.
Isn't there a way we could specify a macro as an alternate namespace during a merge and add a unique prefix/suffix? It seems that is what was done with the memory in the storage unit of Caravel.
I suppose I could write an external script that does this too.