Hi everyone. Have you ever synthesis a design with...
# sky130
y
Hi everyone. Have you ever synthesis a design with sky130_fd_sc_hdll with cadence genus? I am facing this error when i was synthesizing.
m
Thanks for reporting this, I don’t believe the
hdll
library has been used as much as the
hd
library. Looking at the lib file, it seems to be in the type definitions of the buses.
Copy code
type ("bus4") {
        base_type : "array";
        bit_from : 3.0000000000;
        bit_to : 0.0000000000;
        bit_width : 4.0000000000;
        data_type : "bit";
        downto : "true";
    }
    type ("bus8") {
        base_type : "array";
        bit_from : 7.0000000000;
        bit_to : 0.0000000000;
        bit_width :  8.000000000;
        data_type : "bit";
        downto : "true";
    }
    type ("bus16") {
        base_type : "array";
        bit_from : 15.000000000;
        bit_to : 0.0000000000;
        bit_width : 16.000000000;
        data_type : "bit";
        downto : "true";
    }
The bit related values should be integers. From what I could tell, these bus types are only used in the
hdll
library. I’m not sure if this is a
skywater-pdks
problem or an
open_pdks
problem, but if you could log an issue here, https://github.com/RTimothyEdwards/open_pdks @Tim Edwards might be able to correct it.
m
@Ethan Mahintorabi is this in the original skywater data? It seems an unlikely mistake
e
The liberties in the skywater pdk are generated by a Python script from json data
It looks like this script has a type conversion issue.
m
it seems that script needs fixing then
y
Yes. I generated the timing library with "make timing" in skywater-pdk directory
e
m
Looking quickly I wonder if it is using liberty_guess and picking liberty_float
y
So, how can i make it to be integer data type instead of float type?
m
@Yana Tejasukmana a “quick” fix would be to change the floats to ints like this
Copy code
type ("bus4") {
        base_type : "array";
        bit_from : 3;
        bit_to : 0;
        bit_width : 4;
        data_type : "bit";
        downto : "true";
    }
    type ("bus8") {
        base_type : "array";
        bit_from : 7;
        bit_to : 0;
        bit_width :  8;
        data_type : "bit";
        downto : "true";
    }
    type ("bus16") {
        base_type : "array";
        bit_from : 15;
        bit_to : 0;
        bit_width : 16;
        data_type : "bit";
        downto : "true";
    }
but there’s the same problem in these libraries:
Copy code
sky130_fd_sc_hdll__ff_100C_1v65.lib
sky130_fd_sc_hdll__ff_100C_1v95.lib
sky130_fd_sc_hdll__ff_n40C_1v56.lib
sky130_fd_sc_hdll__ff_n40C_1v65.lib
sky130_fd_sc_hdll__ff_n40C_1v95.lib
sky130_fd_sc_hdll__ff_n40C_1v95_ccsnoise.lib
sky130_fd_sc_hdll__ss_100C_1v60.lib
sky130_fd_sc_hdll__ss_n40C_1v28.lib
sky130_fd_sc_hdll__ss_n40C_1v44.lib
sky130_fd_sc_hdll__ss_n40C_1v60.lib
sky130_fd_sc_hdll__ss_n40C_1v60_ccsnoise.lib
sky130_fd_sc_hdll__ss_n40C_1v76.lib
sky130_fd_sc_hdll__tt_025C_1v80.lib
y
Alright, thanks. I'll try it