Line 46... |
Line 46... |
wire [1:0] wBusSelect;
|
wire [1:0] wBusSelect;
|
|
|
//wire wSTB_O_0,wSTB_O_1,wSTB_O_2,wSTB_O_3;
|
//wire wSTB_O_0,wSTB_O_1,wSTB_O_2,wSTB_O_3;
|
//wire wWE_O_0,wWE_O_1,wWE_O_2,wWE_O_3;
|
//wire wWE_O_0,wWE_O_1,wWE_O_2,wWE_O_3;
|
|
|
wire [`MAX_CORES-1:0] wSTB_O,wWE_O;
|
wire [`MAX_CORES-1:0] wSTB_O,wWE_O,wACK_O;
|
|
|
wire wACK_O_0,wACK_O_1,wACK_O_2,wACK_O_3;
|
|
|
|
wire [`MAX_CORES-1:0] wSTB_I;
|
wire [`MAX_CORES-1:0] wSTB_I;
|
wire [`MAX_CORES-1:0] wMST_I;
|
wire [`MAX_CORES-1:0] wMST_I;
|
wire [`MAX_CORES-1:0] wACK_I;
|
wire [`MAX_CORES-1:0] wACK_I;
|
wire [`MAX_CORES-1:0] wCYC_I;
|
wire [`MAX_CORES-1:0] wCYC_I;
|
wire [1:0] wTGA_I[`MAX_CORES-1:0];
|
wire [1:0] wTGA_I[`MAX_CORES-1:0];
|
|
|
//assign DONE_O = wDone[0] & wDone[1] & wDone[2] & wDone[3];
|
assign DONE_O = wDone[0] & wDone[1] & wDone[2] & wDone[3];
|
//assign DONE_O = wDone[1];
|
//assign DONE_O = wDone[0];
|
assign DONE_O = wDone[0] & wDone[1];
|
//assign DONE_O = wDone[0] & wDone[1];// & wDone[2];
|
|
|
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
// assign wDone[3:1] = 3'b111;
|
// assign wDone[3:1] = 3'b111;
|
assign wBusRequest[3:2] = 0;
|
// assign wBusRequest[3:2] = 0;
|
assign wSTB_O[3:2] = 0;
|
// assign wSTB_O[3:2] = 0;
|
assign wWE_O[3:2] = 0;
|
// assign wWE_O[3:2] = 0;
|
Module_BusArbitrer ARB1
|
Module_BusArbitrer ARB1
|
(
|
(
|
.Clock( CLK_I ),
|
.Clock( CLK_I ),
|
.Reset( RST_I ),
|
.Reset( RST_I ),
|
.iRequest( wBusRequest ),
|
.iRequest( wBusRequest ),
|
Line 132... |
Line 131... |
.I4(wTGA_O_3),
|
.I4(wTGA_O_3),
|
.O1( TGA_O )
|
.O1( TGA_O )
|
);
|
);
|
|
|
|
|
assign ACK_O = (wACK_O_0 | wACK_O_1);// | wACK_O_2 | wACK_O_3);
|
assign ACK_O = (wACK_O[0] | wACK_O[1] | wACK_O[2] | wACK_O[3]);
|
|
|
assign wMST_I[0] = (SEL_I[0]) ? MST_I : 0;
|
assign wMST_I[0] = (SEL_I[0]) ? MST_I : 0;
|
assign wMST_I[1] = (SEL_I[1]) ? MST_I : 0;
|
assign wMST_I[1] = (SEL_I[1]) ? MST_I : 0;
|
assign wMST_I[2] = (SEL_I[2]) ? MST_I : 0;
|
assign wMST_I[2] = (SEL_I[2]) ? MST_I : 0;
|
assign wMST_I[3] = (SEL_I[3]) ? MST_I : 0;
|
assign wMST_I[3] = (SEL_I[3]) ? MST_I : 0;
|
Line 155... |
Line 154... |
assign wTGA_I[1] = (SEL_I[1]) ? TGA_I : 0;
|
assign wTGA_I[1] = (SEL_I[1]) ? TGA_I : 0;
|
assign wTGA_I[2] = (SEL_I[2]) ? TGA_I : 0;
|
assign wTGA_I[2] = (SEL_I[2]) ? TGA_I : 0;
|
assign wTGA_I[3] = (SEL_I[3]) ? TGA_I : 0;
|
assign wTGA_I[3] = (SEL_I[3]) ? TGA_I : 0;
|
|
|
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
wire foo;
|
|
assign foo = ACK_I;
|
|
THEIACORE THEIA_CORE0
|
THEIACORE THEIA_CORE0
|
(
|
(
|
.CLK_I( CLK_I ),
|
.CLK_I( CLK_I ),
|
.RST_I( RST_I ),
|
.RST_I( RST_I ),
|
.RENDREN_I( RENDREN_I[0] ),
|
.RENDREN_I( RENDREN_I[0] ),
|
Line 170... |
Line 168... |
.WE_I( WE_I ),
|
.WE_I( WE_I ),
|
.STB_I( wSTB_I[0] ),
|
.STB_I( wSTB_I[0] ),
|
//-----------------------------------
|
//-----------------------------------
|
//This signal behaves in a very funny way...
|
//This signal behaves in a very funny way...
|
//
|
//
|
.ACK_I( ACK_I ),//& wBusGranted[0] ),//wACK_I[0] ), //WTF??? ok I think it works fine like this...
|
.ACK_I( ACK_I ),
|
//-----------------------------------
|
//-----------------------------------
|
.CYC_I( wCYC_I[0] ),
|
.CYC_I( wCYC_I[0] ),
|
.MST_I( wMST_I[0] ),
|
.MST_I( wMST_I[0] ),
|
.TGA_I( wTGA_I[0] ),
|
.TGA_I( wTGA_I[0] ),
|
.CREG_I( CREG_I ),
|
.CREG_I( CREG_I ),
|
|
|
//Master Signals
|
//Master Signals
|
.WE_O ( wWE_O[0] ),
|
.WE_O ( wWE_O[0] ),
|
.STB_O( wSTB_O[0] ),
|
.STB_O( wSTB_O[0] ),
|
.ACK_O( wACK_O_0 ),
|
.ACK_O( wACK_O[0] ),
|
.DAT_O( wDAT_O_0 ),
|
.DAT_O( wDAT_O_0 ),
|
.ADR_O( wADR_O_0 ),
|
.ADR_O( wADR_O_0 ),
|
.CYC_O( wBusRequest[0] ),
|
.CYC_O( wBusRequest[0] ),
|
.GNT_I( wBusGranted[0] ),
|
.GNT_I( wBusGranted[0] ),
|
.TGA_O( wTGA_O_0 ),
|
.TGA_O( wTGA_O_0 ),
|
Line 205... |
Line 203... |
|
|
//Slave signals
|
//Slave signals
|
.ADR_I( ADR_I ),
|
.ADR_I( ADR_I ),
|
.WE_I( WE_I ),
|
.WE_I( WE_I ),
|
.STB_I( wSTB_I[1] ),//ok
|
.STB_I( wSTB_I[1] ),//ok
|
.ACK_I( ACK_I ),//& wBusGranted[1] ),//wACK_I[0] ), //WTF??? ok I think it works fine like this...
|
.ACK_I( ACK_I ),
|
.CYC_I( wCYC_I[1] ),//ok
|
.CYC_I( wCYC_I[1] ),//ok
|
.MST_I( wMST_I[1] ),//ok
|
.MST_I( wMST_I[1] ),//ok
|
.TGA_I( wTGA_I[1] ),//ok
|
.TGA_I( wTGA_I[1] ),//ok
|
.CREG_I( CREG_I ),
|
.CREG_I( CREG_I ),
|
|
|
//Master Signals
|
//Master Signals
|
.WE_O ( wWE_O[1] ),
|
.WE_O ( wWE_O[1] ),
|
.STB_O( wSTB_O[1] ),
|
.STB_O( wSTB_O[1] ),
|
.ACK_O( wACK_O_1 ),
|
.ACK_O( wACK_O[1] ),
|
.DAT_O( wDAT_O_1 ),
|
.DAT_O( wDAT_O_1 ),
|
.ADR_O( wADR_O_1 ),
|
.ADR_O( wADR_O_1 ),
|
.CYC_O( wBusRequest[1] ),
|
.CYC_O( wBusRequest[1] ),
|
.GNT_I( wBusGranted[1] ),
|
.GNT_I( wBusGranted[1] ),
|
.TGA_O( wTGA_O_1 ),
|
.TGA_O( wTGA_O_1 ),
|
Line 229... |
Line 227... |
.DAT_I( DAT_I ),
|
.DAT_I( DAT_I ),
|
.DONE_O( wDone[1] )
|
.DONE_O( wDone[1] )
|
|
|
);
|
);
|
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
|
THEIACORE THEIA_CORE2
|
|
(
|
|
.CLK_I( CLK_I ),
|
|
.RST_I( RST_I ),
|
|
.RENDREN_I( RENDREN_I[2] ),
|
|
|
|
//Slave signals
|
|
.ADR_I( ADR_I ),
|
|
.WE_I( WE_I ),
|
|
.STB_I( wSTB_I[2] ),
|
|
.ACK_I( ACK_I ),
|
|
.CYC_I( wCYC_I[2] ),
|
|
.MST_I( wMST_I[2] ),
|
|
.TGA_I( wTGA_I[2] ),
|
|
.CREG_I( CREG_I ),
|
|
|
|
//Master Signals
|
|
.WE_O ( wWE_O[2] ),
|
|
.STB_O( wSTB_O[2] ),
|
|
.ACK_O( wACK_O[2] ),
|
|
.DAT_O( wDAT_O_2 ),
|
|
.ADR_O( wADR_O_2 ),
|
|
.CYC_O( wBusRequest[2] ),
|
|
.GNT_I( wBusGranted[2] ),
|
|
.TGA_O( wTGA_O_2 ),
|
|
`ifdef DEBUG
|
|
.iDebug_CoreID( `MAX_CORES'd2 ),
|
|
`endif
|
|
//Other
|
|
.DAT_I( DAT_I ),
|
|
.DONE_O( wDone[2] )
|
|
|
|
);
|
|
//----------------------------------------------------------------
|
|
THEIACORE THEIA_CORE3
|
|
(
|
|
.CLK_I( CLK_I ),
|
|
.RST_I( RST_I ),
|
|
.RENDREN_I( RENDREN_I[3] ),
|
|
|
|
//Slave signals
|
|
.ADR_I( ADR_I ),
|
|
.WE_I( WE_I ),
|
|
.STB_I( wSTB_I[3] ),
|
|
.ACK_I( ACK_I ),
|
|
.CYC_I( wCYC_I[3] ),
|
|
.MST_I( wMST_I[3] ),
|
|
.TGA_I( wTGA_I[3] ),
|
|
.CREG_I( CREG_I ),
|
|
|
|
//Master Signals
|
|
.WE_O ( wWE_O[3] ),
|
|
.STB_O( wSTB_O[3] ),
|
|
.ACK_O( wACK_O[3] ),
|
|
.DAT_O( wDAT_O_3 ),
|
|
.ADR_O( wADR_O_3 ),
|
|
.CYC_O( wBusRequest[3] ),
|
|
.GNT_I( wBusGranted[3] ),
|
|
.TGA_O( wTGA_O_3 ),
|
|
`ifdef DEBUG
|
|
.iDebug_CoreID( `MAX_CORES'd3 ),
|
|
`endif
|
|
//Other
|
|
.DAT_I( DAT_I ),
|
|
.DONE_O( wDone[3] )
|
|
|
|
);
|
|
//----------------------------------------------------------------
|
endmodule
|
endmodule
|
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
|
|
No newline at end of file
|
No newline at end of file
|