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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [branches/] [beta_2.0/] [rtl/] [Module_VectorProcessor.v] - Blame information for rev 230

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 213 diegovalve
`timescale 1ns / 1ps
2
`include "aDefinitions.v"
3
/**********************************************************************************
4
Theia, Ray Cast Programable graphic Processing Unit.
5
Copyright (C) 2010  Diego Valverde (diego.valverde.g@gmail.com)
6
 
7
This program is free software; you can redistribute it and/or
8
modify it under the terms of the GNU General Public License
9
as published by the Free Software Foundation; either version 2
10
of the License, or (at your option) any later version.
11
 
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
GNU General Public License for more details.
16
 
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20
 
21
***********************************************************************************/
22
//--------------------------------------------------------
23
 
24
module VectorProcessor
25
(
26
        input wire                          Clock,
27
        input wire                          Reset,
28
        input wire                          iEnable,
29
        input wire [`CBC_BUS_WIDTH-1:0]     iCpCommand,
30
        input wire [`VPID_WIDTH-1:0]        iVPID,
31
        input wire                          MCU_WE_I,
32
        input wire                          MCU_MST_I,
33
        input wire                          MCU_STB_I,
34
        input wire                          MCU_CYC_I,
35
        input wire [`MCU_TAG_SIZE-1:0]      MCU_TAG_I,
36
        input wire [`WB_WIDTH-1:0]          MCU_DAT_I,
37
        input wire [`WB_WIDTH-1:0]          MCU_ADR_I,
38
        output wire                         MCU_ACK_O,
39
        output wire                         OMEM_WE,
40
        output wire [`WB_WIDTH-1:0]              OMEM_ADDR,
41 230 diegovalve
        output wire [`WB_WIDTH-1:0]         OMEM_DATA,
42
        input wire                          TMEM_ACK_I,
43
   input wire [`WB_WIDTH-1:0]          TMEM_DAT_I ,
44
   output wire [`WB_WIDTH-1:0]         TMEM_ADR_O ,
45
   output wire                         TMEM_WE_O,
46
   output wire                         TMEM_STB_O,
47
   output wire                         TMEM_CYC_O,
48
   input wire                          TMEM_GNT_I
49 213 diegovalve
 
50
 
51
 
52
);
53
wire [`INSTRUCTION_ADDR_WIDTH-1:0] wIO_2_MEM__InstructionWriteAddress;
54
wire [`INSTRUCTION_WIDTH-1:0]      wIO_2_MEM__Instruction;
55
wire                               wIO_2_MEM__InstructionWriteEnable;
56
wire                               wControl_2_Exe_Enabled;
57
wire [`DATA_ROW_WIDTH-1:0]         wEXE_2_IO__OMEM_WriteAddress;
58
wire [`DATA_ROW_WIDTH-1:0]         wEXE_2_IO__OMEM_WriteData;
59
wire                               wEXE_2_IO__OMEM_WriteEnable;
60
 
61 230 diegovalve
 
62
wire [`DATA_ROW_WIDTH-1:0] wEXE_2__IO_TMEMAddress;
63
wire [`DATA_ROW_WIDTH-1:0] wIO_2_EXE__TMEMData;
64
wire wIO_2_EXE__DataAvailable;
65
wire wEXE_2_IO__DataRequest;
66 213 diegovalve
 
67
ControlUnit CONTROL
68
(
69
.Clock(       Clock                  ),
70
.Reset(       Reset                  ),
71
.iCpCommand(  iCpCommand             ),
72
.iVPID(       iVPID                  ),
73
.oVpEnabled(  wControl_2_Exe_Enabled )
74
);
75
 
76
 
77
 
78
Unit_IO IO
79
(
80
//WB Input signals
81
.CLK_I(                     Clock            ),
82
.RST_I(                     Reset            ),
83
.MCU_STB_I(                 MCU_STB_I        ),
84
.MCU_WE_I(                  MCU_WE_I         ),
85
.MCU_DAT_I(                 MCU_DAT_I        ),
86
.MCU_ADR_I(                 MCU_ADR_I        ),
87
.MCU_TGA_I(                 MCU_TAG_I        ),
88
.MCU_ACK_O(                 MCU_ACK_O        ),
89
.MCU_MST_I(                 MCU_MST_I        ),
90
.MCU_CYC_I(                 MCU_CYC_I        ),
91
 
92
//.oDataWriteAddress,
93
//.oDataBus,
94
.oInstructionWriteAddress(  wIO_2_MEM__InstructionWriteAddress ),
95
.oInstructionBus(           wIO_2_MEM__Instruction             ),
96
//.oDataWriteEnable(         wIO_2_MEM__DataWriteEnable  ),
97
.oInstructionWriteEnable(    wIO_2_MEM__InstructionWriteEnable  ),
98
 
99
.iOMEM_WriteAddress(          wEXE_2_IO__OMEM_WriteAddress     ),
100
.iOMEM_WriteData(             wEXE_2_IO__OMEM_WriteData        ),
101
.iOMEM_WriteEnable(           wEXE_2_IO__OMEM_WriteEnable      ),
102
.OMEM_DAT_O(                  OMEM_DATA                        ),
103
.OMEM_ADR_O(                  OMEM_ADDR                        ),
104 230 diegovalve
.OMEM_WE_O(                   OMEM_WE                          ),
105 213 diegovalve
 
106
 
107 230 diegovalve
 .oTMEMReadData(      wIO_2_EXE__TMEMData      ),
108
 .iTMEMDataRequest(   wEXE_2_IO__DataRequest   ),
109
 .iTMEMReadAddress(   wEXE_2__IO_TMEMAddress   ),
110
 .oTMEMDataAvailable( wIO_2_EXE__DataAvailable ),
111 213 diegovalve
 
112 230 diegovalve
.TMEM_ACK_I( TMEM_ACK_I ),
113
.TMEM_DAT_I( TMEM_DAT_I ),
114
.TMEM_ADR_O( TMEM_ADR_O ),
115
.TMEM_WE_O(  TMEM_WE_O  ),
116
.TMEM_STB_O( TMEM_STB_O ),
117
.TMEM_CYC_O( TMEM_CYC_O ),
118
.TMEM_GNT_I( TMEM_GNT_I )
119
 
120 213 diegovalve
);
121
 
122
Unit_Execution EXE
123
(
124
.Clock(                        Clock                                 ),
125
.Reset(                        Reset                                 ),
126
.iEnable(                      wControl_2_Exe_Enabled                ),
127
.iInstructionMem_WriteAddress( wIO_2_MEM__InstructionWriteAddress    ),
128
.iInstructionMem_WriteEnable(  wIO_2_MEM__InstructionWriteEnable     ),
129
.iInstructionMem_WriteData(    wIO_2_MEM__Instruction                ),
130
.oOMEMWriteAddress(            wEXE_2_IO__OMEM_WriteAddress          ),
131
.oOMEMWriteData(               wEXE_2_IO__OMEM_WriteData             ),
132 230 diegovalve
.oOMEMWriteEnable(             wEXE_2_IO__OMEM_WriteEnable           ),
133 213 diegovalve
 
134 230 diegovalve
 
135
.oTMEMReadAddress(   wEXE_2__IO_TMEMAddress   ),
136
.iTMEMReadData(      wIO_2_EXE__TMEMData      ),
137
.iTMEMDataAvailable( wIO_2_EXE__DataAvailable ),
138
.oTMEMDataRequest(   wEXE_2_IO__DataRequest   )
139
 
140 213 diegovalve
);
141
 
142
endmodule

powered by: WebSVN 2.1.0

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