Skip to content

Commit 4ad47a4

Browse files
authored
Merge pull request #764 from Pinata-Consulting/mirrored-pins
Mirrored pins
2 parents 50d7f98 + bbfc23a commit 4ad47a4

File tree

15 files changed

+2754
-2
lines changed

15 files changed

+2754
-2
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export DESIGN_NAME = Element
2+
export DESIGN_NICKNAME = mock-array-big_Element
3+
4+
export VERILOG_FILES = designs/src/mock-array-big/*.v
5+
export SDC_FILE = designs/asap7/mock-array-big/constraints.sdc
6+
7+
export PLATFORM = asap7
8+
9+
export PLACE_DENSITY = 0.40
10+
export CORE_UTILIZATION = 20
11+
export CORE_ASPECT_RATIO = 1
12+
export CORE_MARGIN = 2
13+
14+
export IO_CONSTRAINTS = designs/asap7/mock-array-big/Element/io.tcl
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
proc pin1 {fmt p} {
2+
set result [list]
3+
for {set m 0} {$m < $p} {incr m} {
4+
lappend result [format $fmt $m]
5+
}
6+
return $result
7+
}
8+
9+
set data_width 8
10+
set assignments [list \
11+
top bottom \
12+
[list [ concat \
13+
{*}[pin1 {io_ins_2[%d]} $data_width] \
14+
{*}[pin1 {io_outs_2[%d]} $data_width] \
15+
] \
16+
[ concat \
17+
{*}[pin1 {io_outs_0[%d]} $data_width] \
18+
{*}[pin1 {io_ins_0[%d]} $data_width] \
19+
]] \
20+
left right \
21+
[list [ concat \
22+
{*}[pin1 {io_ins_3[%d]} $data_width] \
23+
{*}[pin1 {io_outs_3[%d]} $data_width] \
24+
] \
25+
[ concat \
26+
{*}[pin1 {io_outs_1[%d]} $data_width] \
27+
{*}[pin1 {io_ins_1[%d]} $data_width] \
28+
]] \
29+
]
30+
31+
proc zip {list1 list2} {
32+
set result {}
33+
set length [llength $list1]
34+
for {set i 0} {$i < $length} {incr i} {
35+
lappend result [lindex $list1 $i] [lindex $list2 $i]
36+
}
37+
return $result
38+
}
39+
40+
41+
foreach {direction direction2 names} $assignments {
42+
set mirrored [zip {*}$names]
43+
set_io_pin_constraint -region $direction:* -pin_names [lindex $names 0]
44+
set_io_pin_constraint -region $direction2:* -pin_names [lindex $names 1]
45+
set_io_pin_constraint -mirrored_pins $mirrored
46+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
export DESIGN_NAME = MockArray
2+
export DESIGN_NICKNAME = mock-array-big
3+
4+
export VERILOG_FILES_BLACKBOX = designs/src/mock-array-big/Element.v
5+
export VERILOG_FILES = designs/src/mock-array-big/*.v
6+
7+
export SDC_FILE = designs/asap7/mock-array-big/constraints.sdc
8+
9+
export PLATFORM = asap7
10+
11+
export PLACE_DENSITY = 0.30
12+
13+
export CORE_UTILIZATION = 20
14+
export CORE_ASPECT_RATIO = 1
15+
export CORE_MARGIN = 2
16+
17+
BLOCKS = Element
18+
19+
export GDS_ALLOW_EMPTY = Element
20+
21+
export MACRO_PLACEMENT = ./designs/asap7/mock-array-big/macro-placement.cfg
22+
23+
export IO_CONSTRAINTS = designs/asap7/mock-array-big/io.tcl
24+
25+
export MACRO_PLACE_HALO = 2 2
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
set sdc_version 2.0
2+
create_clock [get_ports clock] -period 250 -waveform {0 125}
3+
4+
set clk_name clock
5+
set clk_port_name clock
6+
set clk_period 250
7+
set clk_io_pct 0.2
8+
9+
set clk_port [get_ports $clk_port_name]
10+
11+
set non_clock_inputs [lsearch -inline -all -not -exact [all_inputs] $clk_port]
12+
13+
set_input_delay [expr $clk_period * $clk_io_pct] -clock $clk_name $non_clock_inputs
14+
set_output_delay [expr $clk_period * $clk_io_pct] -clock $clk_name [all_outputs]
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
proc pin2 {fmt p q} {
2+
set result [list]
3+
for {set m 0} {$m < $p} {incr m} {
4+
for {set n 0} {$n < $q} {incr n} {
5+
lappend result [format $fmt $m $n]
6+
}
7+
}
8+
return $result
9+
}
10+
11+
set data_width 8
12+
set rows 8
13+
set cols 8
14+
15+
set assignments [list \
16+
top \
17+
[ concat \
18+
{*}[pin2 {io_insHorizontal_1_%d[%d]} $cols $data_width] \
19+
{*}[pin2 {io_outsHorizontal_1_%d[%d]} $cols $data_width] \
20+
] \
21+
bottom \
22+
[ concat \
23+
{*}[pin2 {io_insHorizontal_0_%d[%d]} $cols $data_width] \
24+
{*}[pin2 {io_outsHorizontal_0_%d[%d]} $cols $data_width] \
25+
] \
26+
left \
27+
[ concat \
28+
{*}[pin2 {io_insVertical_1_%d[%d]} $rows $data_width] \
29+
{*}[pin2 {io_outsVertical_1_%d[%d]} $rows $data_width] \
30+
] \
31+
right \
32+
[ concat \
33+
{*}[pin2 {io_insVertical_0_%d[%d]} $rows $data_width] \
34+
{*}[pin2 {io_outsVertical_0_%d[%d]} $rows $data_width] \
35+
] \
36+
]
37+
38+
foreach {direction names} $assignments {
39+
set_io_pin_constraint -region $direction:* -pin_names $names
40+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
ces_0_0 R0 10 10
2+
ces_0_1 R0 35 10
3+
ces_0_2 R0 60 10
4+
ces_0_3 R0 85 10
5+
ces_0_4 R0 110 10
6+
ces_0_5 R0 135 10
7+
ces_0_6 R0 160 10
8+
ces_0_7 R0 185 10
9+
ces_1_0 R0 10 35
10+
ces_1_1 R0 35 35
11+
ces_1_2 R0 60 35
12+
ces_1_3 R0 85 35
13+
ces_1_4 R0 110 35
14+
ces_1_5 R0 135 35
15+
ces_1_6 R0 160 35
16+
ces_1_7 R0 185 35
17+
ces_2_0 R0 10 60
18+
ces_2_1 R0 35 60
19+
ces_2_2 R0 60 60
20+
ces_2_3 R0 85 60
21+
ces_2_4 R0 110 60
22+
ces_2_5 R0 135 60
23+
ces_2_6 R0 160 60
24+
ces_2_7 R0 185 60
25+
ces_3_0 R0 10 85
26+
ces_3_1 R0 35 85
27+
ces_3_2 R0 60 85
28+
ces_3_3 R0 85 85
29+
ces_3_4 R0 110 85
30+
ces_3_5 R0 135 85
31+
ces_3_6 R0 160 85
32+
ces_3_7 R0 185 85
33+
ces_4_0 R0 10 110
34+
ces_4_1 R0 35 110
35+
ces_4_2 R0 60 110
36+
ces_4_3 R0 85 110
37+
ces_4_4 R0 110 110
38+
ces_4_5 R0 135 110
39+
ces_4_6 R0 160 110
40+
ces_4_7 R0 185 110
41+
ces_5_0 R0 10 135
42+
ces_5_1 R0 35 135
43+
ces_5_2 R0 60 135
44+
ces_5_3 R0 85 135
45+
ces_5_4 R0 110 135
46+
ces_5_5 R0 135 135
47+
ces_5_6 R0 160 135
48+
ces_5_7 R0 185 135
49+
ces_6_0 R0 10 160
50+
ces_6_1 R0 35 160
51+
ces_6_2 R0 60 160
52+
ces_6_3 R0 85 160
53+
ces_6_4 R0 110 160
54+
ces_6_5 R0 135 160
55+
ces_6_6 R0 160 160
56+
ces_6_7 R0 185 160
57+
ces_7_0 R0 10 185
58+
ces_7_1 R0 35 185
59+
ces_7_2 R0 60 185
60+
ces_7_3 R0 85 185
61+
ces_7_4 R0 110 185
62+
ces_7_5 R0 135 185
63+
ces_7_6 R0 160 185
64+
ces_7_7 R0 185 185

0 commit comments

Comments
 (0)