blob: 6548c39b8da51cf1b99eb0f30ea6ffb604938918 [file] [log] [blame]
library (sram_1rw1r_32_256_8_sky130_FF_1p8V_25C_lib){
delay_model : "table_lookup";
time_unit : "1ns" ;
voltage_unit : "1V" ;
current_unit : "1mA" ;
resistance_unit : "1kohm" ;
capacitive_load_unit(1, pF) ;
leakage_power_unit : "1mW" ;
pulling_resistance_unit :"1kohm" ;
operating_conditions(OC){
process : 1.0 ;
voltage : 1.8 ;
temperature : 25;
}
input_threshold_pct_fall : 50.0 ;
output_threshold_pct_fall : 50.0 ;
input_threshold_pct_rise : 50.0 ;
output_threshold_pct_rise : 50.0 ;
slew_lower_threshold_pct_fall : 10.0 ;
slew_upper_threshold_pct_fall : 90.0 ;
slew_lower_threshold_pct_rise : 10.0 ;
slew_upper_threshold_pct_rise : 90.0 ;
nom_voltage : 1.8;
nom_temperature : 25;
nom_process : 1.0;
default_cell_leakage_power : 0.0 ;
default_leakage_power_density : 0.0 ;
default_input_pin_cap : 1.0 ;
default_inout_pin_cap : 1.0 ;
default_output_pin_cap : 0.0 ;
default_max_transition : 0.5 ;
default_fanout_load : 1.0 ;
default_max_fanout : 4.0 ;
default_connection_class : universal ;
voltage_map ( VDD, 1.8 );
voltage_map ( GND, 0 );
lu_table_template(CELL_TABLE){
variable_1 : input_net_transition;
variable_2 : total_output_net_capacitance;
index_1("0.00125, 0.005, 0.04");
index_2("0.0017225, 0.00689, 0.02756");
}
lu_table_template(CONSTRAINT_TABLE){
variable_1 : related_pin_transition;
variable_2 : constrained_pin_transition;
index_1("0.00125, 0.005, 0.04");
index_2("0.00125, 0.005, 0.04");
}
default_operating_conditions : OC;
type (data){
base_type : array;
data_type : bit;
bit_width : 32;
bit_from : 0;
bit_to : 31;
}
type (addr){
base_type : array;
data_type : bit;
bit_width : 8;
bit_from : 0;
bit_to : 7;
}
type (wmask){
base_type : array;
data_type : bit;
bit_width : 4;
bit_from : 0;
bit_to : 3;
}
cell (sram_1rw1r_32_256_8_sky130){
memory(){
type : ram;
address_width : 8;
word_width : 32;
}
interface_timing : true;
dont_use : true;
map_only : true;
dont_touch : true;
area : 167998.5528;
pg_pin(vdd) {
voltage_name : VDD;
pg_type : primary_power;
}
pg_pin(gnd) {
voltage_name : GND;
pg_type : primary_ground;
}
leakage_power () {
value : 0.009512;
}
cell_leakage_power : 0.009512;
bus(din0){
bus_type : data;
direction : input;
capacitance : 0.006889999999999999;
memory_write(){
address : addr0;
clocked_on : clk0;
}
pin(din0[31:0]){
timing(){
timing_type : setup_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
}
bus(dout0){
bus_type : data;
direction : output;
max_capacitance : 0.027559999999999998;
min_capacitance : 0.0017224999999999999;
memory_read(){
address : addr0;
}
pin(dout0[31:0]){
timing(){
timing_sense : non_unate;
related_pin : "clk0";
timing_type : falling_edge;
cell_rise(CELL_TABLE) {
values("0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535");
}
cell_fall(CELL_TABLE) {
values("0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535");
}
rise_transition(CELL_TABLE) {
values("0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015");
}
fall_transition(CELL_TABLE) {
values("0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015");
}
}
}
}
bus(addr0){
bus_type : addr;
direction : input;
capacitance : 0.006889999999999999;
max_transition : 0.04;
pin(addr0[7:0]){
timing(){
timing_type : setup_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
}
bus(wmask0){
bus_type : wmask;
direction : input;
capacitance : 0.006889999999999999;
max_transition : 0.04;
pin(wmask0[3:0]){
timing(){
timing_type : setup_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
}
pin(csb0){
direction : input;
capacitance : 0.006889999999999999;
timing(){
timing_type : setup_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
pin(web0){
direction : input;
capacitance : 0.006889999999999999;
timing(){
timing_type : setup_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk0";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
pin(clk0){
clock : true;
direction : input;
capacitance : 0.006889999999999999;
internal_power(){
when : "!csb0 & !web0";
rise_power(scalar){
values("2.114785e+01");
}
fall_power(scalar){
values("2.114785e+01");
}
}
internal_power(){
when : "csb0 & !web0";
rise_power(scalar){
values("2.114785e+01");
}
fall_power(scalar){
values("2.114785e+01");
}
}
internal_power(){
when : "!csb0 & web0";
rise_power(scalar){
values("2.114785e+01");
}
fall_power(scalar){
values("2.114785e+01");
}
}
internal_power(){
when : "csb0 & web0";
rise_power(scalar){
values("2.114785e+01");
}
fall_power(scalar){
values("2.114785e+01");
}
}
timing(){
timing_type :"min_pulse_width";
related_pin : clk0;
rise_constraint(scalar) {
values("0.0535");
}
fall_constraint(scalar) {
values("0.0535");
}
}
timing(){
timing_type :"minimum_period";
related_pin : clk0;
rise_constraint(scalar) {
values("0.107");
}
fall_constraint(scalar) {
values("0.107");
}
}
}
bus(dout1){
bus_type : data;
direction : output;
max_capacitance : 0.027559999999999998;
min_capacitance : 0.0017224999999999999;
memory_read(){
address : addr1;
}
pin(dout1[31:0]){
timing(){
timing_sense : non_unate;
related_pin : "clk1";
timing_type : falling_edge;
cell_rise(CELL_TABLE) {
values("0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535");
}
cell_fall(CELL_TABLE) {
values("0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535",\
"0.404, 0.43, 0.535");
}
rise_transition(CELL_TABLE) {
values("0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015");
}
fall_transition(CELL_TABLE) {
values("0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015",\
"0.002, 0.004, 0.015");
}
}
}
}
bus(addr1){
bus_type : addr;
direction : input;
capacitance : 0.006889999999999999;
max_transition : 0.04;
pin(addr1[7:0]){
timing(){
timing_type : setup_rising;
related_pin : "clk1";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk1";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
}
bus(wmask1){
bus_type : wmask;
direction : input;
capacitance : 0.006889999999999999;
max_transition : 0.04;
pin(wmask1[3:0]){
timing(){
timing_type : setup_rising;
related_pin : "clk1";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk1";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
}
pin(csb1){
direction : input;
capacitance : 0.006889999999999999;
timing(){
timing_type : setup_rising;
related_pin : "clk1";
rise_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
fall_constraint(CONSTRAINT_TABLE) {
values("0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165",\
"0.165, 0.165, 0.165");
}
}
timing(){
timing_type : hold_rising;
related_pin : "clk1";
rise_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
fall_constraint(CONSTRAINT_TABLE) {
values("-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052",\
"-0.052, -0.052, -0.052");
}
}
}
pin(clk1){
clock : true;
direction : input;
capacitance : 0.006889999999999999;
internal_power(){
when : "!csb1";
rise_power(scalar){
values("2.114785e+01");
}
fall_power(scalar){
values("2.114785e+01");
}
}
internal_power(){
when : "csb1";
rise_power(scalar){
values("2.114785e+01");
}
fall_power(scalar){
values("2.114785e+01");
}
}
timing(){
timing_type :"min_pulse_width";
related_pin : clk1;
rise_constraint(scalar) {
values("0.0535");
}
fall_constraint(scalar) {
values("0.0535");
}
}
timing(){
timing_type :"minimum_period";
related_pin : clk1;
rise_constraint(scalar) {
values("0.107");
}
fall_constraint(scalar) {
values("0.107");
}
}
}
}
}