OpenCores
URL https://opencores.org/ocsvn/6809_6309_compatible_core/6809_6309_compatible_core/trunk

Subversion Repositories 6809_6309_compatible_core

[/] [6809_6309_compatible_core/] [trunk/] [syn/] [lattice/] [tb_bios2k_tmpl.v] - Blame information for rev 8

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 ale500
//Verilog testbench template generated by SCUBA Diamond_2.2_Production (99)
2
`timescale 1 ns / 1 ps
3
module tb;
4
    reg [7:0] DataInA = 8'b0;
5
    reg [7:0] DataInB = 8'b0;
6
    reg [10:0] AddressA = 11'b0;
7
    reg [10:0] AddressB = 11'b0;
8
    reg ClockA = 0;
9
    reg ClockB = 0;
10
    reg ClockEnA = 0;
11
    reg ClockEnB = 0;
12
    reg WrA = 0;
13
    reg WrB = 0;
14
    reg ResetA = 0;
15
    reg ResetB = 0;
16
    wire [7:0] QA;
17
    wire [7:0] QB;
18
 
19
    integer i0 = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
20
 
21
    GSR GSR_INST (.GSR(1'b1));
22
    PUR PUR_INST (.PUR(1'b1));
23
 
24
    bios2k u1 (.DataInA(DataInA), .DataInB(DataInB), .AddressA(AddressA),
25
        .AddressB(AddressB), .ClockA(ClockA), .ClockB(ClockB), .ClockEnA(ClockEnA),
26
        .ClockEnB(ClockEnB), .WrA(WrA), .WrB(WrB), .ResetA(ResetA), .ResetB(ResetB),
27
        .QA(QA), .QB(QB)
28
    );
29
 
30
    initial
31
    begin
32
       DataInA <= 0;
33
      #100;
34
      @(ResetA == 1'b0);
35
      for (i1 = 0; i1 < 2051; i1 = i1 + 1) begin
36
        @(posedge ClockA);
37
        #1  DataInA <= DataInA + 1'b1;
38
      end
39
    end
40
    initial
41
    begin
42
       DataInB <= 0;
43
      #100;
44
      @(ResetB == 1'b0);
45
      @(WrB == 1'b1);
46
      for (i2 = 0; i2 < 2051; i2 = i2 + 1) begin
47
        @(posedge ClockB);
48
        #1  DataInB <= DataInB + 1'b1;
49
      end
50
    end
51
    initial
52
    begin
53
       AddressA <= 0;
54
      #100;
55
      @(ResetA == 1'b0);
56
      for (i3 = 0; i3 < 4102; i3 = i3 + 1) begin
57
        @(posedge ClockA);
58
        #1  AddressA <= AddressA + 1'b1;
59
      end
60
    end
61
    initial
62
    begin
63
       AddressB <= 0;
64
      #100;
65
      @(ResetB == 1'b0);
66
      @(WrB == 1'b1);
67
      for (i4 = 0; i4 < 4102; i4 = i4 + 1) begin
68
        @(posedge ClockB);
69
        #1  AddressB <= AddressB + 1'b1;
70
      end
71
    end
72
    always
73
    #5.00 ClockA <= ~ ClockA;
74
 
75
    always
76
    #5.00 ClockB <= ~ ClockB;
77
 
78
    initial
79
    begin
80
       ClockEnA <= 1'b0;
81
      #100;
82
      @(ResetA == 1'b0);
83
       ClockEnA <= 1'b1;
84
    end
85
    initial
86
    begin
87
       ClockEnB <= 1'b0;
88
      #100;
89
      @(ResetB == 1'b0);
90
       ClockEnB <= 1'b1;
91
    end
92
    initial
93
    begin
94
       WrA <= 1'b0;
95
      @(ResetA == 1'b0);
96
      for (i9 = 0; i9 < 2051; i9 = i9 + 1) begin
97
        @(posedge ClockA);
98
        #1  WrA <= 1'b1;
99
      end
100
       WrA <= 1'b0;
101
    end
102
    initial
103
    begin
104
       WrB <= 1'b0;
105
      @(ResetB == 1'b0);
106
      @(WrA == 1'b1);
107
      @(WrA == 1'b0);
108
      for (i10 = 0; i10 < 2051; i10 = i10 + 1) begin
109
        @(posedge ClockA);
110
      end
111
      for (i10 = 0; i10 < 2051; i10 = i10 + 1) begin
112
        @(posedge ClockB);
113
        #1  WrB <= 1'b1;
114
      end
115
       WrB <= 1'b0;
116
    end
117
    initial
118
    begin
119
       ResetA <= 1'b1;
120
      #100;
121
       ResetA <= 1'b0;
122
    end
123
    initial
124
    begin
125
       ResetB <= 1'b1;
126
      #100;
127
       ResetB <= 1'b0;
128
    end
129
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.