OpenCores
URL https://opencores.org/ocsvn/pcie_ds_dma/pcie_ds_dma/trunk

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [core/] [wishbone/] [testbecnh/] [dev_pb_wishbone_ctrl/] [sim/] [tb.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dsmv
//////////////////////////////////////////////////////////////////////////////////
2
// Company:         ;)
3
// Engineer:        Kuzmi4
4
// 
5
// Create Date:     14:39:52 05/19/2010 
6
// Design Name:     
7
// Module Name:     tb/core64_pb_wishbone_ctrl
8
// Project Name:    DS_DMA
9
// Target Devices:  no
10
// Tool versions:   any with SV support
11
// Description: 
12
//                  
13
//                  Simple TB, waveform oriented.
14
//                  
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
//
19
//////////////////////////////////////////////////////////////////////////////////
20
`timescale 1ns / 1ps
21
 
22
//
23
`include "ds_dma_pb_if.v"
24
`include "wb_simple_ram_slave_if.v"
25
`include "wb_slave_if.v"
26
 
27
module tb;
28
//////////////////////////////////////////////////////////////////////////////////
29
//
30
parameter   p_Tclk  =   10ns;
31
parameter   p_Trst  =   120ns;
32
//////////////////////////////////////////////////////////////////////////////////
33
    // Declare SYS_CON stuff:
34
    reg     s_sys_clk;
35
    reg     s_sys_rst;
36
    // Declare 
37
    logic   [63:0]  sv_ds_dma_income_data_0;
38
    logic   [63:0]  sv_ds_dma_income_data_1 [512];
39
//////////////////////////////////////////////////////////////////////////////////
40
//
41
// System Clock:
42
//
43
always
44
begin   :   SYS_CLK
45
    #(p_Tclk/2) s_sys_clk <= !s_sys_clk;
46
end
47
//////////////////////////////////////////////////////////////////////////////////
48
//
49
// Instantiate TEST IF's:
50
//
51
// PB_IF:
52
ds_dma_pb_if                        DS_DMA_PB_IF(s_sys_clk);
53
// WBS IF (+TB params):
54
wb_simple_ram_slave_if #(32, 64, 8) WB_SLAVE(s_sys_clk, s_sys_rst);
55
//////////////////////////////////////////////////////////////////////////////////
56
//
57
// Local Initial PowerOnReset:
58
//
59
initial
60
begin   :   init_POR
61
    //
62
    $timeformat(-9, 3, " ns", 10);
63
    //
64
    s_sys_clk   <= 0;
65
    s_sys_rst   <= 0;
66
    DS_DMA_PB_IF.init();
67
 
68
    // PowerOnReset case
69
    s_sys_rst   <= 1; #p_Trst;
70
    s_sys_rst   <= 0;
71
 
72
end
73
//////////////////////////////////////////////////////////////////////////////////
74
//
75
// Test:
76
//
77
initial
78
begin   :   TB
79
    //
80
    do @(posedge s_sys_clk);
81
    while (s_sys_rst); #1us;
82
    // 
83
    DS_DMA_PB_IF.write_1_word  (32'h1234_5678, 64'h0123_4567_89AB_CDEF); #100ns;
84
    DS_DMA_PB_IF.write_1_word  (32'h5678_1234, 64'h89AB_CDEF_0123_4567); #100ns;
85
    DS_DMA_PB_IF.write_512_word(32'h8765_4321, 64'h0000_0000_0000_0001); #100ns;#6us; // for now, req w8 while previous transfer ends
86
    DS_DMA_PB_IF.read_1_word   (32'h5612_7834, sv_ds_dma_income_data_0); #100ns;
87
    DS_DMA_PB_IF.read_512_word (32'h7834_1256, sv_ds_dma_income_data_1); #100ns;
88
    //DS_DMA_PB_IF.write_512_word(32'h8765_4321, 64'hCDEF_4567_89AB_0123); #1us;
89
    // 
90
    #6us;
91
    $finish(2);
92
end
93
//////////////////////////////////////////////////////////////////////////////////
94
//
95
// Instantiate DesignUnderTest:
96
//
97
core64_pb_wishbone_ctrl
98
                    DUT
99
(
100
// SYS_CON (same for PB/WB bus)
101
.i_clk              (s_sys_clk),
102
.i_rst              (s_sys_rst),
103
//
104
// PB_MASTER (in) IF
105
.i_pb_master_stb0   (DS_DMA_PB_IF.o_pb_master_stb0),   // CMD STB
106
.i_pb_master_stb1   (DS_DMA_PB_IF.o_pb_master_stb1),   // DATA STB
107
.iv_pb_master_cmd   (DS_DMA_PB_IF.ov_pb_master_cmd),   // CMD
108
.iv_pb_master_addr  (DS_DMA_PB_IF.ov_pb_master_addr),  // ADDR
109
.iv_pb_master_data  (DS_DMA_PB_IF.ov_pb_master_data),  // DATA
110
//
111
// PB_SLAVE (out) IF:
112
.o_pb_slave_ready   (DS_DMA_PB_IF.i_pb_slave_ready),    // 
113
.o_pb_slave_complete(DS_DMA_PB_IF.i_pb_slave_complete), // 
114
.o_pb_slave_stb0    (DS_DMA_PB_IF.i_pb_slave_stb0),     // WR CMD ACK STB   (to pcie_core64_m6)
115
.o_pb_slave_stb1    (DS_DMA_PB_IF.i_pb_slave_stb1),     // DATA ACK STB     (to pcie_core64_m6)
116
.ov_pb_slave_data   (DS_DMA_PB_IF.iv_pb_slave_data),    // DATA             (to pcie_core64_m6)
117
.ov_pb_slave_dmar   (DS_DMA_PB_IF.iv_pb_slave_dmar),    // ...
118
.o_pb_slave_irq     (DS_DMA_PB_IF.i_pb_slave_irq),      // ...
119
//
120
// WB BUS:
121
.ov_wbm_addr        (WB_SLAVE.adr_i),
122
.ov_wbm_data        (WB_SLAVE.dat_i),
123
.ov_wbm_sel         (WB_SLAVE.sel_i),
124
.o_wbm_we           (WB_SLAVE.we_i),
125
.o_wbm_cyc          (WB_SLAVE.cyc_i),
126
.o_wbm_stb          (WB_SLAVE.stb_i),
127
.ov_wbm_cti         (),     // Cycle Type Identifier Address Tag
128
.ov_wbm_bte         (),     // Burst Type Extension Address Tag
129
 
130
.iv_wbm_data        (WB_SLAVE.dat_o),       // 
131
.i_wbm_ack          (WB_SLAVE.ack_o),       // 
132
.i_wbm_err          (WB_SLAVE.err_o),       // error input - abnormal cycle termination
133
.i_wbm_rty          (WB_SLAVE.rty_o),       // retry input - interface is not ready
134
 
135
.i_wdm_irq_0        (1'b0),
136
.iv_wbm_irq_dmar    (2'b0)
137
 
138
);
139
//////////////////////////////////////////////////////////////////////////////////
140
endmodule

powered by: WebSVN 2.1.0

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