summaryrefslogtreecommitdiff
path: root/spi_tb.v
blob: f042f8daea696b82bd91202d7fe9da698e109082 (plain)
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
`timescale 1ns/1ps

module main;
  reg clk = 0;
  always #1 clk = ~clk;

  reg go = 0;
  reg rst = 1;
  reg [7:0] i_data = 8'hAA;
  wire [7:0] o_data;
  wire busy;

  wire spi_clk;
  wire spi_mosi;
  reg spi_miso = 0;

  spi_controller dut(
    .clk(clk), .rst(rst), .go(go /*& ~busy*/),
    .i_data(i_data), .o_data(o_data),
    .busy(busy),

    .spi_clk(spi_clk),
    .spi_mosi(spi_mosi),
    .spi_miso(spi_miso));

  initial begin
    $dumpfile("main.vcd");
    $dumpvars(2, main);

    //$display("Hello world!");
    //$monitor("T%03d | clk: %0d", $time, clk);

    #2 rst = 0;
       go = 1;
    #2 go = 0;

    #3 spi_miso = 1;
    #4 spi_miso = 0;
    #4 spi_miso = 1;
    #4 spi_miso = 0;
    #4 spi_miso = 1;
    #4 spi_miso = 0;
    #4 spi_miso = 1;
    #4 spi_miso = 0;
    #4 spi_miso = 1;
    #4 spi_miso = 0;
    #4 spi_miso = 1;

    #32 $finish;
  end

  initial begin
    #34 i_data = 8'h55;
        go = 1;
    #2  go = 0;
  end
endmodule