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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [branches/] [new_alu/] [src/] [Module_AND_STATION.v] - Blame information for rev 220

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 209 diegovalve
`include "aDefinitions.v"
2
`define COMMIT_DST_RANGE 96+`DATA_ADDRESS_WIDTH:96
3
 
4
 
5
module AND_STATION
6
(
7
   input wire Clock,
8
   input wire Reset,
9
   input wire [`ISSUE_PACKET_SIZE-1:0]                       iIssueBus,
10
   input wire [`COMMIT_PACKET_SIZE-1:0]                      iCommitBus,
11
        output wire [`COMMIT_PACKET_SIZE-1:0]                     oCommitData,
12
        output wire                                               oCommitResquest,
13
        input wire                                                iCommitGranted,
14
        output wire                                               oBusy
15
 
16
);
17
 
18
 
19
wire                           wExeDone;
20
wire [2:0]                     wExeDoneTmp;
21
wire                           wRS1_2_ADD_Trigger;
22
wire [`DATA_ROW_WIDTH-1:0]     wRS1_OperandA;
23
wire [`DATA_ROW_WIDTH-1:0]     wRS1_OperandB;
24
wire [`DATA_ROW_WIDTH-1:0]     wResult;
25
 
26
ReservationStation RS1
27
(
28
        .Clock(              Clock                           ),
29
        .Reset(              Reset                           ),
30
        .iIssueBus(          iIssueBus                       ),
31
        .iCommitBus(         iCommitBus                      ),
32
        .iMyId(              4'b0010                         ),
33
        .iExecutionDone(     wExeDone                        ),
34
        .iResult(             wResult                        ),
35
        .iCommitGranted(     iCommitGranted                  ),
36
 
37
        .oOperandA(          wRS1_OperandA                   ),
38
        .oOperandB(          wRS1_OperandB                   ),
39
        .oBusy(              oBusy                           ),
40
        .oTrigger(           wRS1_2_ADD_Trigger              ),
41
        .oCommitRequest(     oCommitResquest                 ),
42
        .oId(              oCommitData[`COMMIT_RSID_RNG]                                ),
43
        .oWE(              oCommitData[`COMMIT_WE_RNG]                                  ),
44
        .oDestination(     oCommitData[`COMMIT_DST_RNG]                               ),
45
        .oResult(          {oCommitData[`X_RNG],oCommitData[`Y_RNG],oCommitData[`Z_RNG]})
46
 
47
);
48
 
49
assign wExeDone = wExeDoneTmp[0] & wExeDoneTmp[1] & wExeDoneTmp[2];
50
 
51
AND # (`WIDTH) AND_0
52
(
53
   .Clock(     Clock                   ),
54
        .Reset(     Reset                   ),
55
   .iTrigger(   wRS1_2_ADD_Trigger     ),
56
   .iA(        wRS1_OperandA[`X_RNG]   ),
57
        .iB(        wRS1_OperandB[`X_RNG]   ),
58
        .oDone(     wExeDoneTmp[0]          ),
59
   .oR(        wResult[`X_RNG]         )
60
);
61
 
62
AND # (`WIDTH) AND_1
63
(
64
   .Clock(     Clock                   ),
65
        .Reset(     Reset                   ),
66
   .iTrigger(   wRS1_2_ADD_Trigger     ),
67
   .iA(        wRS1_OperandA[`Y_RNG]   ),
68
        .iB(        wRS1_OperandB[`Y_RNG]   ),
69
        .oDone(     wExeDoneTmp[1]          ),
70
   .oR(        wResult[`Y_RNG]         )
71
);
72
 
73
AND # (`WIDTH) AND_2
74
(
75
   .Clock(     Clock                   ),
76
        .Reset(     Reset                   ),
77
   .iTrigger(   wRS1_2_ADD_Trigger     ),
78
   .iA(        wRS1_OperandA[`Z_RNG]   ),
79
        .iB(        wRS1_OperandB[`Z_RNG]   ),
80
        .oDone(     wExeDoneTmp[2]          ),
81
   .oR(        wResult[`Z_RNG]         )
82
);
83
 
84
endmodule

powered by: WebSVN 2.1.0

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