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 226

Go to most recent revision | 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
        output wire [`WB_WIDTH-1:0]         OMEM_DATA
42
 
43
 
44
 
45
);
46
wire [`INSTRUCTION_ADDR_WIDTH-1:0] wIO_2_MEM__InstructionWriteAddress;
47
wire [`INSTRUCTION_WIDTH-1:0]      wIO_2_MEM__Instruction;
48
wire                               wIO_2_MEM__InstructionWriteEnable;
49
wire                               wControl_2_Exe_Enabled;
50
wire [`DATA_ROW_WIDTH-1:0]         wEXE_2_IO__OMEM_WriteAddress;
51
wire [`DATA_ROW_WIDTH-1:0]         wEXE_2_IO__OMEM_WriteData;
52
wire                               wEXE_2_IO__OMEM_WriteEnable;
53
 
54
 
55
ControlUnit CONTROL
56
(
57
.Clock(       Clock                  ),
58
.Reset(       Reset                  ),
59
.iCpCommand(  iCpCommand             ),
60
.iVPID(       iVPID                  ),
61
.oVpEnabled(  wControl_2_Exe_Enabled )
62
);
63
 
64
 
65
 
66
Unit_IO IO
67
(
68
//WB Input signals
69
.CLK_I(                     Clock            ),
70
.RST_I(                     Reset            ),
71
.MCU_STB_I(                 MCU_STB_I        ),
72
.MCU_WE_I(                  MCU_WE_I         ),
73
.MCU_DAT_I(                 MCU_DAT_I        ),
74
.MCU_ADR_I(                 MCU_ADR_I        ),
75
.MCU_TGA_I(                 MCU_TAG_I        ),
76
.MCU_ACK_O(                 MCU_ACK_O        ),
77
.MCU_MST_I(                 MCU_MST_I        ),
78
.MCU_CYC_I(                 MCU_CYC_I        ),
79
 
80
//.oDataWriteAddress,
81
//.oDataBus,
82
.oInstructionWriteAddress(  wIO_2_MEM__InstructionWriteAddress ),
83
.oInstructionBus(           wIO_2_MEM__Instruction             ),
84
//.oDataWriteEnable(         wIO_2_MEM__DataWriteEnable  ),
85
.oInstructionWriteEnable(    wIO_2_MEM__InstructionWriteEnable  ),
86
 
87
.iOMEM_WriteAddress(          wEXE_2_IO__OMEM_WriteAddress     ),
88
.iOMEM_WriteData(             wEXE_2_IO__OMEM_WriteData        ),
89
.iOMEM_WriteEnable(           wEXE_2_IO__OMEM_WriteEnable      ),
90
.OMEM_DAT_O(                  OMEM_DATA                        ),
91
.OMEM_ADR_O(                  OMEM_ADDR                        ),
92
.OMEM_WE_O(                   OMEM_WE                          )
93
 
94
 
95
 
96
);
97
 
98
Unit_Execution EXE
99
(
100
.Clock(                        Clock                                 ),
101
.Reset(                        Reset                                 ),
102
.iEnable(                      wControl_2_Exe_Enabled                ),
103
.iInstructionMem_WriteAddress( wIO_2_MEM__InstructionWriteAddress    ),
104
.iInstructionMem_WriteEnable(  wIO_2_MEM__InstructionWriteEnable     ),
105
.iInstructionMem_WriteData(    wIO_2_MEM__Instruction                ),
106
.oOMEMWriteAddress(            wEXE_2_IO__OMEM_WriteAddress          ),
107
.oOMEMWriteData(               wEXE_2_IO__OMEM_WriteData             ),
108
.oOMEMWriteEnable(             wEXE_2_IO__OMEM_WriteEnable           )
109
 
110
);
111
 
112
endmodule

powered by: WebSVN 2.1.0

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