|
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] |
5 | 5 | } |
6 | | - return $result |
| 6 | + return $pins |
7 | 7 | } |
8 | 8 |
|
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 | | - |
23 | 9 | set assignments [list \ |
24 | 10 | top \ |
25 | 11 | [ 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_.*] \ |
28 | 14 | ] \ |
29 | 15 | bottom \ |
30 | 16 | [ 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_.*] \ |
33 | 19 | ] \ |
34 | 20 | left \ |
35 | 21 | [ 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_.*] \ |
38 | 24 | ] \ |
39 | 25 | right \ |
40 | 26 | [ 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_.*] \ |
44 | 30 | ] \ |
45 | 31 | ] |
46 | 32 |
|
|
0 commit comments