-
Notifications
You must be signed in to change notification settings - Fork 4
/
data_generator.sv
58 lines (53 loc) · 1.76 KB
/
data_generator.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
`timescale 1ns/1fs
import SystemVerilogCSP::*;
module data_generator (interface r);
parameter WIDTH = 34;
parameter FL = 2; //ideal environment
parameter MAX=50;
logic [33:0] SendValue;
logic [15:0] zeros=0000_0000_0000_0000;
//always
initial
begin
//add a display here to see when this module starts its main loop
//$display("START_data_gen_time %m %d",$time);
//SendValue = {$random()} % MAX;
//SendValue={1000_0100,10,{16{1'b0}},0001_0011};//19---PE1
SendValue={8'b1000_0100,2'b10,{16{1'b0}},8'b0001_0011};//19---PE1
#FL;
r.Send(SendValue);
//$display("Send Value%d",SendValue);
SendValue={8'b1001_0100,2'b10,{16{1'b0}},8'b0000_1100};//12---PE2
#FL;
r.Send(SendValue);
//SendValue={8'b1010_0100,2'b10,{16{1'b0}},8'b0001_1101};//29---PE3
SendValue={8'b1010_0100,2'b10,{16{1'b0}},8'b0010_0111};//39---PE3
#FL;
r.Send(SendValue);
//SendValue=48;
//Communication action Send is about to start
// $display("Starting %m.Send @ %d", $time);
//Communication action Send is finished
// $display("Finished %m.Send @ %d", $time);
SendValue={8'b1000_0100,2'b10,{16{1'b0}},8'b0001_0011};//19---PE1
#FL;
r.Send(SendValue);
//$display("Send Value%d",SendValue);
SendValue={8'b1001_0100,2'b10,{16{1'b0}},8'b0001_0011};//19---PE2
#FL;
r.Send(SendValue);
SendValue={8'b1010_0100,2'b10,{16{1'b0}},8'b0000_1001};//9---PE3
#FL;
r.Send(SendValue);
SendValue={8'b1000_0100,2'b10,{16{1'b0}},8'b0001_1011};//27---PE1
#FL;
r.Send(SendValue);
//$display("Send Value%d",SendValue);
SendValue={8'b1001_0100,2'b10,{16{1'b0}},8'b0000_1000};//8---PE2
#FL;
r.Send(SendValue);
SendValue={8'b1010_0100,2'b10,{16{1'b0}},8'b0000_0000};//0---PE3
#FL;
r.Send(SendValue);
end
endmodule