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

Subversion Repositories theia_gpu

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 230 diegovalve
`include "aDefinitions.v"
2
 
3 213 diegovalve
/**********************************************************************************
4
Theia, Ray Cast Programable graphic Processing Unit.
5
Copyright (C) 2012  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 230 diegovalve
***********************************************************************************/
22
 
23
//`define DEBUG_TO_STDOUT 1
24
 
25
`ifdef DEBUG_TO_STDOUT
26
        `define DWRITE $write(
27
`else
28
        `define DWRITE $fwrite(CP_LOG,
29
`endif
30
 
31
 
32
module ContolCode_Dumper;
33
//wait( `CP_TOP.Reset == 0 );
34
integer CP_LOG;
35
reg [255:1] CPLogFileName;
36
 
37
 
38
initial
39
begin
40
        //Open output file
41
 
42
        CP_LOG = $fopen("cp.log");
43
end
44
 
45
 
46
 
47
 
48
 
49
always @ ( posedge `CP_TOP.Clock )
50
begin
51
 
52
                case (`CP_TOP.wOperation)
53
                //-------------------------------------
54
                `CONTROL_PROCESSOR_OP_COPYBLOCK:
55
                begin
56
                        `DWRITE"\n%dns CP:    COPYBLOCK DSTID: %d    BLKLEN: %d  TAG: %d  DSTOFF: %h    SRCOFF: %h\n\n",$time,
57
                        `CP_TOP.oCopyBlockCommand[`MCU_COPYMEMBLOCKCMD_VPMASK_RNG],
58
                        `CP_TOP.oCopyBlockCommand[`MCU_COPYMEMBLOCKCMD_BLKLEN_RNG],
59
                        `CP_TOP.oCopyBlockCommand[`MCU_COPYMEMBLOCK_TAG_BIT],
60
                        `CP_TOP.oCopyBlockCommand[`MCU_COPYMEMBLOCKCMD_DSTOFF_RNG],
61
                        `CP_TOP.oCopyBlockCommand[`MCU_COPYMEMBLOCKCMD_SRCOFF_RNG]);
62
                end
63
                //-------------------------------------
64
                `CONTROL_PROCESSOR_OP_DELIVER_COMMAND:
65
                begin
66
                        `DWRITE"%dns CP: DELIVER_COMMAND VP[%d] ",$time,
67
                        `CP_TOP.wDestination);
68
 
69
                        case (`CP_TOP.wSourceAddr1)
70
                                `VP_COMMAND_START_MAIN_THREAD: `DWRITE " START_MAIN_THREAD ");
71
                                `VP_COMMAND_STOP_MAIN_THREAD: `DWRITE " STOP_MAIN_THREAD ");
72 213 diegovalve
                        endcase
73
                end
74
                //-------------------------------------
75
                `CONTROL_PROCESSOR_OP_NOP:
76 230 diegovalve
                begin
77
                        `DWRITE"%dns CP: NOP\n",$time);
78
                end
79
                //-------------------------------------
80 213 diegovalve
                `CONTROL_PROCESSOR_OP_EXIT:
81 230 diegovalve
                begin
82
                        `DWRITE"%dns CP: EXIT\n",$time);
83 213 diegovalve
                        //$stop;
84
                end
85
                //-------------------------------------
86
                `CONTROL_PROCESSOR_OP_ADD:
87 230 diegovalve
                begin
88
 
89
                if (`CP_TOP.rWriteEnable)
90
                        `DWRITE"%dns CP: ADD R[%d] R[%d]{%h} R[%d]{%h} = %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0,`CP_TOP.rResult);
91
                end
92 213 diegovalve
                //-------------------------------------
93
                `CONTROL_PROCESSOR_OP_SUB:
94 230 diegovalve
                begin
95
                        `DWRITE"%dns CP: SUB R[%d] R[%d]{%h} R[%d]{%h} = %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0,`CP_TOP.rResult);
96
                end
97 213 diegovalve
                //-------------------------------------
98
                `CONTROL_PROCESSOR_OP_AND:
99 230 diegovalve
                begin
100
                        `DWRITE"%dns CP: AND R[%d] R[%d]{%h} R[%d]{%h} = %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0,`CP_TOP.rResult);
101
                end
102 213 diegovalve
                //-------------------------------------
103
                `CONTROL_PROCESSOR_OP_OR:
104 230 diegovalve
                begin
105
                `DWRITE"%dns CP: OR R[%d] R[%d]{%h} R[%d]{%h} = %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0,`CP_TOP.rResult);
106
                end
107 213 diegovalve
                //-------------------------------------
108
                `CONTROL_PROCESSOR_OP_SHL:
109 230 diegovalve
                begin
110
                `DWRITE"%dns CP: SHL R[%d] R[%d]{%h} R[%d]{%h} = %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0,`CP_TOP.rResult);
111
                end
112 213 diegovalve
                //-------------------------------------
113
                `CONTROL_PROCESSOR_OP_SHR:
114 230 diegovalve
                begin
115
                `DWRITE"%dns CP: SHR R[%d] R[%d]{%h} R[%d]{%h} = %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0,`CP_TOP.rResult);
116 213 diegovalve
                end
117
                //-------------------------------------
118
                `CONTROL_PROCESSOR_OP_BLE:
119
                begin
120 230 diegovalve
                        `DWRITE"%dns CP: BLE\n",$time);
121 213 diegovalve
 
122 230 diegovalve
                end
123 213 diegovalve
                //-------------------------------------
124
                `CONTROL_PROCESSOR_OP_BL:
125
                begin
126 230 diegovalve
                        `DWRITE"%dns CP: BL\n",$time);
127 213 diegovalve
 
128 230 diegovalve
                end
129 213 diegovalve
                //-------------------------------------
130
                `CONTROL_PROCESSOR_OP_BG:
131
                begin
132 230 diegovalve
                        `DWRITE"%dns CP: BG\n",$time);
133 213 diegovalve
 
134 230 diegovalve
                end
135 213 diegovalve
                //-------------------------------------
136
                `CONTROL_PROCESSOR_OP_BGE:
137
                begin
138 230 diegovalve
                        `DWRITE"%dns CP: BGE\n",$time);
139
                end
140 213 diegovalve
                //-------------------------------------
141
                `CONTROL_PROCESSOR_OP_BEQ:
142
                begin
143 230 diegovalve
                        `DWRITE"%dns CP: BEQ %d,   R[%d] {%h} R[%d] {%h}\n",$time,`CP_TOP.wDestination,`CP_TOP.wSourceAddr1,`CP_TOP.wSourceData1,`CP_TOP.wSourceAddr0,`CP_TOP.wSourceData0);
144 213 diegovalve
 
145 230 diegovalve
                end
146 213 diegovalve
                //-------------------------------------
147
                `CONTROL_PROCESSOR_OP_BNE:
148
                begin
149 230 diegovalve
                        `DWRITE"%dns CP: BNE\n",$time);
150 213 diegovalve
 
151 230 diegovalve
                end
152 213 diegovalve
                //------------------------------------- 
153
                `CONTROL_PROCESSOR_OP_BRANCH:
154
                begin
155 230 diegovalve
                        `DWRITE"%dns CP: BRANCH %h\n",$time,`CP_TOP.wDestination );
156 213 diegovalve
                end
157
                //-------------------------------------
158 230 diegovalve
                `CONTROL_PROCESSOR_ASSIGN:
159
                begin
160
                        `DWRITE"%dns CP: ASSIGN R[%d] I(%h)= %h\n",$time,`CP_TOP.wDestination,`CP_TOP.wImmediateValue,`CP_TOP.rResult);
161
 
162
                end
163
                //-------------------------------------
164 213 diegovalve
                default:
165
                begin
166
 
167
                end
168 230 diegovalve
                //-------------------------------------         
169
                endcase
170
 
171
 
172
end
173
endmodule
174
 

powered by: WebSVN 2.1.0

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