-
Notifications
You must be signed in to change notification settings - Fork 0
/
Slave_testbench.v
81 lines (77 loc) · 2.67 KB
/
Slave_testbench.v
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
module Slave_tb;
reg [7:0] slaveDataIN;
wire [7:0] slaveDataOUT;
reg reset, cpha, mosi, clk, cs;
wire miso;
reg [7:0] test;
Slave s (slaveDataIN,slaveDataOUT,reset,cpha, miso,mosi,clk,cs);
always #5 clk=~clk;
initial
begin
$display("Test case 1: cpha = 0");
$display("by entering the following in the mosi 10101101");
test = 8'b10101101;
$display("slaveDataOUT \t cpha \t mosi \t miso \t cs");
slaveDataIN = 0;
cs = 1;
reset = 1;
cpha = 0;
clk = 0;
mosi = 0;
#5 reset = 0;
cs = 0;
mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 0;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 0;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 0;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 cs = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
if (test === slaveDataOUT) begin
$display("Test 1: TESTED OK");
end else begin
$display("Test 1: TEST FAILED");
end
$display("Test case 2: cpha = 1");
$display("by entering the following in the mosi 01101001");
test = 8'b01101001;
$display("slaveDataOUT \t cpha \t mosi \t miso \t cs");
cpha = 1;
clk = 0;
#5 cs = 0;
mosi = 0;
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 0;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 0;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 0;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 mosi = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
#10 cs = 1;
$display(" %b \t %b \t %b \t %b \t %b ",slaveDataOUT, cpha,mosi,miso,cs);
if (test === slaveDataOUT) begin
$display("Test 2: TESTED OK");
end else begin
$display("Test 2: TEST FAILED");
end
$finish;
end
endmodule