Skip to content

Commit 369a6fc

Browse files
committed
designs/asap7/mock-array-big: simplify io constraints tcl
No longer rely on env vars to enumerate pins, simply use regexp. Signed-off-by: Øyvind Harboe <[email protected]>
1 parent 45d741a commit 369a6fc

File tree

2 files changed

+29
-46
lines changed

2 files changed

+29
-46
lines changed

flow/designs/asap7/mock-array-big/Element/io.tcl

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,36 @@
1-
proc pin1 {fmt p} {
2-
set result [list]
3-
for {set m 0} {$m < $p} {incr m} {
4-
lappend result [format $fmt $m]
1+
proc match_pins { regex } {
2+
set pins {}
3+
foreach pin [get_ports -regexp $regex] {
4+
lappend pins [get_property $pin name]
55
}
6-
return $result
6+
return $pins
77
}
88

9-
set data_width [expr {[info exists ::env(MOCK_ARRAY_DATAWIDTH)] ? $::env(MOCK_ARRAY_DATAWIDTH) : 8}]
10-
set cols [expr {[info exists ::env(MOCK_ARRAY_WIDTH)] ? $::env(MOCK_ARRAY_WIDTH) : 8}]
11-
129
set assignments [list \
1310
top bottom \
1411
[list [ concat \
15-
{*}[pin1 {io_ins_down[%d]} $data_width] \
16-
{*}[pin1 {io_outs_up[%d]} $data_width] \
12+
{*}[match_pins io_ins_down.*] \
13+
{*}[match_pins io_outs_up.*] \
1714
] \
1815
[ concat \
19-
{*}[pin1 {io_outs_down[%d]} $data_width] \
20-
{*}[pin1 {io_ins_up[%d]} $data_width] \
16+
{*}[match_pins io_outs_down.*] \
17+
{*}[match_pins io_ins_up.*] \
2118
]] \
2219
left right \
2320
[list [ concat \
24-
{*}[pin1 {io_ins_right[%d]} $data_width] \
25-
{*}[pin1 {io_outs_left[%d]} $data_width] \
21+
{*}[match_pins io_ins_right.*] \
22+
{*}[match_pins io_outs_left.*] \
2623
] \
2724
[ concat \
28-
{*}[pin1 {io_outs_right[%d]} $data_width] \
29-
{*}[pin1 {io_ins_left[%d]} $data_width] \
25+
{*}[match_pins io_outs_right.*] \
26+
{*}[match_pins io_ins_left.*] \
3027
]] \
3128
left right \
3229
[list [ concat \
33-
{*}[pin1 {io_lsbIns_%d} $cols] \
30+
{*}[match_pins io_lsbIns_.*] \
3431
] \
3532
[ concat \
36-
{*}[pin1 {io_lsbOuts_%d} $cols] \
33+
{*}[match_pins io_lsbOuts_.*] \
3734
]]
3835
]
3936

flow/designs/asap7/mock-array-big/io.tcl

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,32 @@
1-
proc pin1 {fmt p} {
2-
set result [list]
3-
for {set m 0} {$m < $p} {incr m} {
4-
lappend result [format $fmt $m]
1+
proc match_pins { regex } {
2+
set pins {}
3+
foreach pin [get_ports -regexp $regex] {
4+
lappend pins [get_property $pin name]
55
}
6-
return $result
6+
return $pins
77
}
88

9-
proc pin2 {fmt p q} {
10-
set result [list]
11-
for {set m 0} {$m < $p} {incr m} {
12-
for {set n 0} {$n < $q} {incr n} {
13-
lappend result [format $fmt $m $n]
14-
}
15-
}
16-
return $result
17-
}
18-
19-
set data_width [expr {[info exists ::env(MOCK_ARRAY_DATAWIDTH)] ? $::env(MOCK_ARRAY_DATAWIDTH) : 8}]
20-
set rows [expr {[info exists ::env(MOCK_ARRAY_HEIGHT)] ? $::env(MOCK_ARRAY_HEIGHT) : 8}]
21-
set cols [expr {[info exists ::env(MOCK_ARRAY_WIDTH)] ? $::env(MOCK_ARRAY_WIDTH) : 8}]
22-
239
set assignments [list \
2410
top \
2511
[ concat \
26-
{*}[pin2 {io_insDown_%d[%d]} $cols $data_width] \
27-
{*}[pin2 {io_outsUp_%d[%d]} $cols $data_width] \
12+
{*}[match_pins io_insDown_.*] \
13+
{*}[match_pins io_outsUp_.*] \
2814
] \
2915
bottom \
3016
[ concat \
31-
{*}[pin2 {io_insUp_%d[%d]} $cols $data_width] \
32-
{*}[pin2 {io_outsDown_%d[%d]} $cols $data_width] \
17+
{*}[match_pins io_insUp_.*] \
18+
{*}[match_pins io_outsDown_.*] \
3319
] \
3420
left \
3521
[ concat \
36-
{*}[pin2 {io_insRight_%d[%d]} $rows $data_width] \
37-
{*}[pin2 {io_outsLeft_%d[%d]} $rows $data_width] \
22+
{*}[match_pins io_insRight_.*] \
23+
{*}[match_pins io_outsLeft_.*] \
3824
] \
3925
right \
4026
[ concat \
41-
{*}[pin2 {io_insLeft_%d[%d]} $rows $data_width] \
42-
{*}[pin2 {io_outsRight_%d[%d]} $rows $data_width] \
43-
{*}[pin1 {io_lsbs_%d} $cols] \
27+
{*}[match_pins io_insLeft_.*] \
28+
{*}[match_pins io_outsRight_.*] \
29+
{*}[match_pins io_lsbs_.*] \
4430
] \
4531
]
4632

0 commit comments

Comments
 (0)