RTimothyEdwards / qflow

Qflow full end-to-end digital synthesis flow for ASIC designs
183 stars 36 forks source link

Vesta multiple libraries issue #49

Open IvanDenisov-IC opened 1 year ago

IvanDenisov-IC commented 1 year ago

According to code Vesta was thought of to be able to parse several libraries. In fact it can parse several, but only the cells of the last one are used. Cells from previous libs are not seen.

Log:

Parsing library "gscl45nm" End of library at line 6016 Lib read /usr/local/share/qflow/tech/gscl45nm/gscl45nm.lib: Processed 6017 lines. Parsing library "sp_sram32x512_freepdk45_FF_1p0V_25C_lib" End of library at line 342 Lib read /design/library/sp_sram32x512_freepdk45/sp_sram32x512_freepdk45_FF_1p0V_25C.lib: Processed 343 lines. Parsing library "sp_sram32x64_freepdk45_FF_1p0V_25C_lib" End of library at line 342 Cell "CLKBUF1" was not in the liberty database!

Most probably the problem is in vesta.c lines 3945 - 3956, where flib in for loop is just rewritten every time:

/*------------------------------------------------------------------*/
/* Read all liberty format files (everything on the command line    */
/* after the verilog source file).                  */
/*------------------------------------------------------------------*/

for (i = 1; firstarg + i < objc; i++) {

flib = fopen(argv[firstarg + i], "r");
if (flib == NULL) {
    fprintf(stderr, "Cannot open %s for reading\n", argv[firstarg + i]);
    exit (1);
}