Skip to content

Commit 55069f5

Browse files
authored
Merge pull request #86 from akashlevy/libarcs_smallfix
Smallfix to get `liberty_arcs_one2one` tests consistently passing in regression
2 parents a095ef1 + 4f62e54 commit 55069f5

11 files changed

+137
-267
lines changed

test/get_filter.tcl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# Test get_* -filter
2+
13
# Read in design and libraries
24
read_liberty asap7_small.lib.gz
35
read_verilog reg1_asap7.v

test/liberty_arcs_one2one.ok

Lines changed: 0 additions & 220 deletions
This file was deleted.

test/liberty_arcs_one2one.tcl

Lines changed: 0 additions & 17 deletions
This file was deleted.

test/liberty_arcs_one2one.lib renamed to test/liberty_arcs_one2one_1.lib

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
library (one_to_one_mismatched_width) {
1+
library (liberty_arcs_one2one_1) {
22
delay_model : "table_lookup";
33
simulation : false;
44
capacitive_load_unit (1,pF);
@@ -47,34 +47,7 @@ library (one_to_one_mismatched_width) {
4747
direction : "output";
4848
timing () {
4949
related_pin : "A";
50-
cell_rise (scalar) {
51-
values ("1");
52-
}
53-
cell_fall (scalar) {
54-
values ("1");
55-
}
56-
rise_transition (scalar) {
57-
values ("1");
58-
}
59-
fall_transition (scalar) {
60-
values ("1");
61-
}
62-
}
63-
}
64-
}
65-
66-
cell (inv_4_to_8) {
67-
bus (A) {
68-
capacitance : 1;
69-
bus_type : "bus4";
70-
direction : "input";
71-
}
72-
bus (Y) {
73-
function : "!A";
74-
bus_type : "bus8";
75-
direction : "output";
76-
timing () {
77-
related_pin : "A";
50+
timing_sense : "negative_unate";
7851
cell_rise (scalar) {
7952
values ("1");
8053
}

test/liberty_arcs_one2one_1.ok

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Warning: liberty_arcs_one2one_1.lib line 48, timing port A and related port Y are different sizes.
2+
report_edges -from partial_wide_inv_cell/A[0]
3+
A[0] -> Y[0] combinational
4+
^ -> v 1.00:1.00
5+
v -> ^ 1.00:1.00
6+
report_edges -from partial_wide_inv_cell/A[1]
7+
A[1] -> Y[1] combinational
8+
^ -> v 1.00:1.00
9+
v -> ^ 1.00:1.00
10+
report_edges -from partial_wide_inv_cell/A[2]
11+
A[2] -> Y[2] combinational
12+
^ -> v 1.00:1.00
13+
v -> ^ 1.00:1.00
14+
report_edges -from partial_wide_inv_cell/A[3]
15+
A[3] -> Y[3] combinational
16+
^ -> v 1.00:1.00
17+
v -> ^ 1.00:1.00
18+
report_edges -from partial_wide_inv_cell/A[4]
19+
report_edges -from partial_wide_inv_cell/A[5]
20+
report_edges -from partial_wide_inv_cell/A[6]
21+
report_edges -from partial_wide_inv_cell/A[7]

test/liberty_arcs_one2one_1.tcl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Test one-to-one functionality with mismatched widths where A width (8) is larger than Y width (4)
2+
read_liberty liberty_arcs_one2one_1.lib
3+
read_verilog liberty_arcs_one2one_1.v
4+
link_design liberty_arcs_one2one_1
5+
create_clock -name clk -period 0
6+
set_input_delay -clock clk 0 [all_inputs]
7+
set_output_delay -clock clk 0 [all_outputs]
8+
for {set i 0} {$i < 8} {incr i} {
9+
puts "report_edges -from partial_wide_inv_cell/A[$i]"
10+
report_edges -from partial_wide_inv_cell/A[$i]
11+
}

test/liberty_arcs_one2one_2.lib

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
library (liberty_arcs_one2one_2) {
2+
delay_model : "table_lookup";
3+
simulation : false;
4+
capacitive_load_unit (1,pF);
5+
leakage_power_unit : "1pW";
6+
current_unit : "1A";
7+
pulling_resistance_unit : "1kohm";
8+
time_unit : "1ns";
9+
voltage_unit : "1v";
10+
library_features : "report_delay_calculation";
11+
input_threshold_pct_rise : 50;
12+
input_threshold_pct_fall : 50;
13+
output_threshold_pct_rise : 50;
14+
output_threshold_pct_fall : 50;
15+
slew_lower_threshold_pct_rise : 30;
16+
slew_lower_threshold_pct_fall : 30;
17+
slew_upper_threshold_pct_rise : 70;
18+
slew_upper_threshold_pct_fall : 70;
19+
slew_derate_from_library : 1.0;
20+
nom_process : 1.0;
21+
nom_temperature : 85.0;
22+
nom_voltage : 0.75;
23+
type (bus8) {
24+
base_type : "array";
25+
data_type : "bit";
26+
bit_width : 8;
27+
bit_from : 7;
28+
bit_to : 0;
29+
}
30+
type (bus4) {
31+
base_type : "array";
32+
data_type : "bit";
33+
bit_width : 4;
34+
bit_from : 3;
35+
bit_to : 0;
36+
}
37+
38+
cell (inv_4_to_8) {
39+
bus (A) {
40+
capacitance : 1;
41+
bus_type : "bus4";
42+
direction : "input";
43+
}
44+
bus (Y) {
45+
function : "!A";
46+
bus_type : "bus8";
47+
direction : "output";
48+
timing () {
49+
related_pin : "A";
50+
timing_sense : "negative_unate";
51+
cell_rise (scalar) {
52+
values ("1");
53+
}
54+
cell_fall (scalar) {
55+
values ("1");
56+
}
57+
rise_transition (scalar) {
58+
values ("1");
59+
}
60+
fall_transition (scalar) {
61+
values ("1");
62+
}
63+
}
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)