Closed passant5 closed 2 years ago
Specifically, the cell fill1
has a file with an entry for fill10
. This means that when compiled into a library, every library has two entries for fill10
and no entries for fill1
, both of which are errors. Looks like a parsing error in the audit scripts caused by a partial string match. The fill10
cell in the I/O library is the only cell that would exhibit such a problem.
More to the point:
cd cells/fill1
grep fill10 *
returns the following list of incorrect entries:
gf180mcu_fd_io__fill10__ff_125C_2v75.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ff_125C_2v75.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ff_125C_3v63.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ff_125C_3v63.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ff_125C_5v50.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ff_125C_5v50.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ff_n40C_2v75.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ff_n40C_2v75.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ff_n40C_3v63.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ff_n40C_3v63.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ff_n40C_5v50.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ff_n40C_5v50.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ss_125C_2v25.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ss_125C_2v25.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ss_125C_2v97.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ss_125C_2v97.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__ss_125C_4v50.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__ss_125C_4v50.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__tt_025C_2v50.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__tt_025C_2v50.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__tt_025C_3v30.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__tt_025C_3v30.lib.json: "cell gf180mcu_fd_io__fill10": {
gf180mcu_fd_io__fill10__tt_025C_5v00.lib: cell ("gf180mcu_fd_io__fill10") {
gf180mcu_fd_io__fill10__tt_025C_5v00.lib.json: "cell gf180mcu_fd_io__fill10": {
FYI - @proppy / @mkkassem
@RTimothyEdwards would removing them from the fill1
directory be enough to fix this? (see #8)
@proppy : It looks that way, yes. I didn't realize the correct files were also there.
Is fill1
a duplicate of fill10
or did it just get the wrong name?
@mithro : I originally thought it was the the wrong name, but it appears it's a duplicate.
This produces an error in reading the liberties for timing analysis. The duplicate definitions could be found in all liberties starting at lines
2906
and2929
For example:The reason probably is that the cell has a definition
cell ("gf180mcu_fd_io__fill10")
inside the filecells/fill1/gf180mcu_fd_io__fill10__ff_n40C_5v50.lib
andcells/fill10/gf180mcu_fd_io__fill10__ff_n40C_5v50.lib