-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathmisc_dynamic_array.sv
98 lines (78 loc) · 1.91 KB
/
misc_dynamic_array.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//==============================================================================
//
// The code is generated by Intel Compiler for SystemC, version 1.6.6
// see more information at https://github.com/intel/systemc-compiler
//
//==============================================================================
//==============================================================================
//
// Module: B_top ()
//
module B_top // "b_mod"
(
input logic clk
);
// Variables generated for SystemC signals
logic sig1[3];
logic sig2[3];
logic sig3[3];
logic sig4[3];
//------------------------------------------------------------------------------
// Child module instances
A a_mod
(
.clk(clk),
.p1(sig1),
.p2(sig2)
);
A p_mod
(
.clk(clk),
.p1(sig3),
.p2(sig4)
);
endmodule
//==============================================================================
//
// Module: A (test_dynamic_array.cpp:56:5)
//
module A // "b_mod.a_mod"
(
input logic clk,
input logic p1[3],
output logic p2[3]
);
// Variables generated for SystemC signals
logic signed [31:0] s1[3];
logic dummy;
//------------------------------------------------------------------------------
// Method process: proc1 (test_dynamic_array.cpp:30:5)
always_comb
begin : proc1 // test_dynamic_array.cpp:30:5
s1[0] = dummy ? 1 : 2;
p2[0] = dummy;
end
//------------------------------------------------------------------------------
// Clocked THREAD: proc2 (test_dynamic_array.cpp:35:5)
// Thread-local variables
logic dummy_next;
// Next-state combinational logic
always_comb begin : proc2_comb // test_dynamic_array.cpp:35:5
proc2_func;
end
function void proc2_func;
integer j;
integer i;
dummy_next = dummy;
j = s1[0];
i = p1[0] ? 1 : 2;
dummy_next = |(i + j);
endfunction
// Synchronous register update
always_ff @(posedge clk)
begin : proc2_ff
begin
dummy <= dummy_next;
end
end
endmodule