Skip to content

Commit 3003841

Browse files
committed
mock-array-big: Add combinational paths through Element
Does not yet include timing constraints. Co-authored-by: Øyvind Harboe <[email protected]> Signed-off-by: Jake Taylor <[email protected]> Signed-off-by: Øyvind Harboe <[email protected]>
1 parent c6a65c3 commit 3003841

File tree

5 files changed

+3695
-1078
lines changed

5 files changed

+3695
-1078
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ proc pin1 {fmt p} {
77
}
88

99
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}]
1011

1112
set assignments [list \
1213
top bottom \
@@ -27,6 +28,13 @@ set assignments [list \
2728
{*}[pin1 {io_outs_right[%d]} $data_width] \
2829
{*}[pin1 {io_ins_left[%d]} $data_width] \
2930
]] \
31+
left right \
32+
[list [ concat \
33+
{*}[pin1 {io_lsbIns_%d} $cols] \
34+
] \
35+
[ concat \
36+
{*}[pin1 {io_lsbOuts_%d} $cols] \
37+
]]
3038
]
3139

3240
proc zip {list1 list2} {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
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+
19
proc pin2 {fmt p q} {
210
set result [list]
311
for {set m 0} {$m < $p} {incr m} {
@@ -32,6 +40,7 @@ set assignments [list \
3240
[ concat \
3341
{*}[pin2 {io_insLeft_%d[%d]} $rows $data_width] \
3442
{*}[pin2 {io_outsRight_%d[%d]} $rows $data_width] \
43+
{*}[pin1 {io_lsbs_%d} $cols] \
3544
] \
3645
]
3746

flow/designs/src/mock-array-big/Element.v

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,57 @@
11
module Element(
22
input clock,
3-
input [7:0] io_ins_down, // @[src/test/scala/MockArray.scala 54:9]
4-
input [7:0] io_ins_right, // @[src/test/scala/MockArray.scala 54:9]
5-
input [7:0] io_ins_up, // @[src/test/scala/MockArray.scala 54:9]
6-
input [7:0] io_ins_left, // @[src/test/scala/MockArray.scala 54:9]
7-
output [7:0] io_outs_down, // @[src/test/scala/MockArray.scala 54:9]
8-
output [7:0] io_outs_right, // @[src/test/scala/MockArray.scala 54:9]
9-
output [7:0] io_outs_up, // @[src/test/scala/MockArray.scala 54:9]
10-
output [7:0] io_outs_left // @[src/test/scala/MockArray.scala 54:9]
3+
input [7:0] io_ins_down, // @[src/test/scala/MockArray.scala 55:9]
4+
input [7:0] io_ins_right, // @[src/test/scala/MockArray.scala 55:9]
5+
input [7:0] io_ins_up, // @[src/test/scala/MockArray.scala 55:9]
6+
input [7:0] io_ins_left, // @[src/test/scala/MockArray.scala 55:9]
7+
output [7:0] io_outs_down, // @[src/test/scala/MockArray.scala 55:9]
8+
output [7:0] io_outs_right, // @[src/test/scala/MockArray.scala 55:9]
9+
output [7:0] io_outs_up, // @[src/test/scala/MockArray.scala 55:9]
10+
output [7:0] io_outs_left, // @[src/test/scala/MockArray.scala 55:9]
11+
input io_lsbIns_0, // @[src/test/scala/MockArray.scala 55:9]
12+
input io_lsbIns_1, // @[src/test/scala/MockArray.scala 55:9]
13+
input io_lsbIns_2, // @[src/test/scala/MockArray.scala 55:9]
14+
input io_lsbIns_3, // @[src/test/scala/MockArray.scala 55:9]
15+
input io_lsbIns_4, // @[src/test/scala/MockArray.scala 55:9]
16+
input io_lsbIns_5, // @[src/test/scala/MockArray.scala 55:9]
17+
input io_lsbIns_6, // @[src/test/scala/MockArray.scala 55:9]
18+
input io_lsbIns_7, // @[src/test/scala/MockArray.scala 55:9]
19+
output io_lsbOuts_0, // @[src/test/scala/MockArray.scala 55:9]
20+
output io_lsbOuts_1, // @[src/test/scala/MockArray.scala 55:9]
21+
output io_lsbOuts_2, // @[src/test/scala/MockArray.scala 55:9]
22+
output io_lsbOuts_3, // @[src/test/scala/MockArray.scala 55:9]
23+
output io_lsbOuts_4, // @[src/test/scala/MockArray.scala 55:9]
24+
output io_lsbOuts_5, // @[src/test/scala/MockArray.scala 55:9]
25+
output io_lsbOuts_6, // @[src/test/scala/MockArray.scala 55:9]
26+
output io_lsbOuts_7 // @[src/test/scala/MockArray.scala 55:9]
1127
);
1228
`ifdef RANDOMIZE_REG_INIT
1329
reg [31:0] _RAND_0;
1430
reg [31:0] _RAND_1;
1531
reg [31:0] _RAND_2;
1632
reg [31:0] _RAND_3;
1733
`endif // RANDOMIZE_REG_INIT
18-
reg [7:0] REG; // @[src/test/scala/MockArray.scala 61:56]
19-
reg [7:0] REG_1; // @[src/test/scala/MockArray.scala 61:56]
20-
reg [7:0] REG_2; // @[src/test/scala/MockArray.scala 61:56]
21-
reg [7:0] REG_3; // @[src/test/scala/MockArray.scala 61:56]
22-
assign io_outs_down = REG_3; // @[src/test/scala/MockArray.scala 61:87]
23-
assign io_outs_right = REG_2; // @[src/test/scala/MockArray.scala 61:87]
24-
assign io_outs_up = REG_1; // @[src/test/scala/MockArray.scala 61:87]
25-
assign io_outs_left = REG; // @[src/test/scala/MockArray.scala 61:87]
34+
reg [7:0] REG; // @[src/test/scala/MockArray.scala 66:56]
35+
reg [7:0] REG_1; // @[src/test/scala/MockArray.scala 66:56]
36+
reg [7:0] REG_2; // @[src/test/scala/MockArray.scala 66:56]
37+
reg [7:0] REG_3; // @[src/test/scala/MockArray.scala 66:56]
38+
assign io_outs_down = REG_3; // @[src/test/scala/MockArray.scala 66:87]
39+
assign io_outs_right = REG_2; // @[src/test/scala/MockArray.scala 66:87]
40+
assign io_outs_up = REG_1; // @[src/test/scala/MockArray.scala 66:87]
41+
assign io_outs_left = REG; // @[src/test/scala/MockArray.scala 66:87]
42+
assign io_lsbOuts_0 = io_lsbIns_1; // @[src/test/scala/MockArray.scala 71:16]
43+
assign io_lsbOuts_1 = io_lsbIns_2; // @[src/test/scala/MockArray.scala 71:16]
44+
assign io_lsbOuts_2 = io_lsbIns_3; // @[src/test/scala/MockArray.scala 71:16]
45+
assign io_lsbOuts_3 = io_lsbIns_4; // @[src/test/scala/MockArray.scala 71:16]
46+
assign io_lsbOuts_4 = io_lsbIns_5; // @[src/test/scala/MockArray.scala 71:16]
47+
assign io_lsbOuts_5 = io_lsbIns_6; // @[src/test/scala/MockArray.scala 71:16]
48+
assign io_lsbOuts_6 = io_lsbIns_7; // @[src/test/scala/MockArray.scala 71:16]
49+
assign io_lsbOuts_7 = io_outs_left[0]; // @[src/test/scala/MockArray.scala 71:62]
2650
always @(posedge clock) begin
27-
REG <= io_ins_down; // @[src/test/scala/MockArray.scala 61:56]
28-
REG_1 <= io_ins_right; // @[src/test/scala/MockArray.scala 61:56]
29-
REG_2 <= io_ins_up; // @[src/test/scala/MockArray.scala 61:56]
30-
REG_3 <= io_ins_left; // @[src/test/scala/MockArray.scala 61:56]
51+
REG <= io_ins_down; // @[src/test/scala/MockArray.scala 66:56]
52+
REG_1 <= io_ins_right; // @[src/test/scala/MockArray.scala 66:56]
53+
REG_2 <= io_ins_up; // @[src/test/scala/MockArray.scala 66:56]
54+
REG_3 <= io_ins_left; // @[src/test/scala/MockArray.scala 66:56]
3155
end
3256
// Register and memory initialization
3357
`ifdef RANDOMIZE_GARBAGE_ASSIGN

0 commit comments

Comments
 (0)