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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [branches/] [beta_2.0/] [testbench/] [testbench_theia_icarus.v] - Blame information for rev 230

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 219 diegovalve
`timescale 1ns / 1ps
2
 
3
 
4 229 diegovalve
`define MAIN_MEMORY_DEPTH (255 * 2)                                             //Each entry is 64 bits = 32 *2 * 255 entries
5
 
6 219 diegovalve
module testbench_theia_icarus;
7
 
8
 
9
        reg Clock;
10
        reg Reset;
11
        reg iEnable;
12
        reg [31:0] iMemReadData;
13
        wire [31:0] oMemReadAddress;
14
        reg iMemDataAvailable;
15
        wire oMEM_ReadRequest;
16
 
17
 
18
        THEIA uut
19
        (
20 229 diegovalve
                .Clock(                  Clock             ),
21
                .Reset(                  Reset             ),
22
                .iEnable(                iEnable           ),
23
                .iMemReadData(           iMemReadData      ),
24
                .iMemDataAvailable(      iMemDataAvailable ),
25
                .oMEM_ReadRequest(       oMEM_ReadRequest  ),
26
                .oMemReadAddress(        oMemReadAddress   )
27 219 diegovalve
        );
28
//---------------------------------------------
29
 //generate the clock signal here
30
 always begin
31
  #10  Clock =  ! Clock;
32
 end
33
 //---------------------------------------------
34
 
35 230 diegovalve
 //Code dumpers and checker stuff 
36 219 diegovalve
 ContolCode_Dumper           CP_Dumper();
37
 VectorProcessor_Dumper #(0) VP_Dump0();
38
 VectorProcessor_Dumper #(1) VP_Dump1();
39
 VectorProcessor_Dumper #(2) VP_Dump2();
40
 VectorProcessor_Dumper #(3) VP_Dump3();
41
 
42
 
43 229 diegovalve
 reg [31:0] MainMemory [`MAIN_MEMORY_DEPTH-1:0];
44 230 diegovalve
 reg [31:0] TMemory [`MAIN_MEMORY_DEPTH-1:0];
45 219 diegovalve
 
46 229 diegovalve
 
47 219 diegovalve
        always @ (posedge Clock )
48
        begin
49
                if (oMEM_ReadRequest)
50
                        iMemDataAvailable <= 1;
51
                else
52
                        iMemDataAvailable <= 0;
53
 
54
                iMemReadData <=         MainMemory[oMemReadAddress];
55
 
56
        end
57
 
58
        initial begin
59
                Clock = 0;
60
                Reset = 0;
61
                iEnable = 0;
62
                $readmemh("control_code.mem", uut.CP.InstructionRam.Ram);
63
                $readmemh("code.mem", MainMemory);
64 230 diegovalve
                $readmemh("tmem.mem",TMemory);
65
                uut.BANK[0].TMEM.Ram[0] = TMemory[0];
66
                uut.BANK[1].TMEM.Ram[0] = TMemory[1];
67
                uut.BANK[2].TMEM.Ram[0] = TMemory[2];
68 219 diegovalve
                #110;
69 230 diegovalve
                Reset = 1;
70 219 diegovalve
                #40;
71
                Reset = 0;
72 230 diegovalve
 
73
                $dumpfile("testbench_theia_icarus.vcd");
74
                $dumpvars(0,testbench_theia_icarus);
75 219 diegovalve
        end
76 229 diegovalve
 
77
 
78 219 diegovalve
 
79
endmodule
80
 

powered by: WebSVN 2.1.0

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