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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [branches/] [icarus_version/] [rtl/] [Unit_Control.v] - Rev 214

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

/**********************************************************************************
Theia, Ray Cast Programable graphic Processing Unit.
Copyright (C) 2010  Diego Valverde (diego.valverde.g@gmail.com)
 
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
***********************************************************************************/
/**********************************************************************************
Description:
 
This is the main Finite State Machine.
 
**********************************************************************************/
 
 
 
`timescale 1ns / 1ps
`include "aDefinitions.v"
`ifdef VERILATOR
`include "Collaterals.v"
`endif
 
`define CU_AFTER_RESET_STATE                0
`define CU_WAIT_FOR_INITIAL_CONFIGURATION   1
`define CU_TRIGGER_CONFIGURATION_DATA_READ  2
`define CU_WAIT_FOR_CONFIG_DATA_READ        3
`define CU_ACK_CONFIG_DATA_READ             4
`define CU_PRECALCULATE_CONSTANTS           5
`define CU_WAIT_FOR_CONSTANT                6
`define CU_ACK_PRECALCULATE_CONSTANTS       7
`define CU_TRIGGER_MAIN                     8
`define CU_WAIT_FOR_MAIN                    9
`define CU_ACK_MAIN                         10
`define CU_CLEAR_REGISTERS                  11
`define CU_WAIT_CLEAR_REGISTERS             12
`define CU_ACK_CLEAR_REGISTERS              13
`define CU_PERFORM_INTIAL_CONFIGURATION     14
`define CU_TRIGGER_USERCONSTANTS            15
`define CU_WAIT_USERCONSTANTS               16
`define CU_ACK_USERCONSTANTS                17
`define CU_DONE                             18
`define CU_WAIT_FOR_RENDER_ENABLE           19
`define CU_WAIT_FOR_HOST_DATA_AVAILABLE     20
`define CU_WAIT_FOR_HOST_DATA_ACK           21
`define CU_COMMIT_PIXEL_RESULT              22
//--------------------------------------------------------------
module ControlUnit
(
 
input  wire                                  Clock,
input  wire                                  Reset,
input  wire[15:0]                            iControlRegister,
output reg                                   oGFUEnable,
input	 wire                                  iTriggerAABBIURequest,
input	wire                                   iTriggerBIURequest,
input wire                                   iTriggertTCCRequest,
output reg                                   oUCodeEnable,
output reg[`ROM_ADDRESS_WIDTH-1:0]           oCodeInstructioPointer,
input	wire                                   iUCodeDone,
input wire                                   iUCodeReturnValue,
input wire                                   iGFUDone,
input wire                                   iGEOSync,
output reg                                   oTriggerTFF,
input wire                                   iTFFDone,
input wire                                   MST_I,
//output reg[2:0]                              //oRamBusOwner,
input wire                                   iIODone,
output reg                                   oSetCurrentPitch,
output reg                                   oFlipMemEnabled,
output reg                                   oFlipMem,
output reg                                   oIOWritePixel,
input wire                                   iRenderEnable,
input wire                                   iSceneTraverseComplete,
input wire                                   iHostDataAvailable,
input wire                                   iHostAckDataRead,
 
`ifdef DEBUG
input wire[`MAX_CORES-1:0]                  iDebug_CoreID,
`endif
 
output reg                                   oResultCommited,
output reg                                   oDone
 
);
 
//Internal State Machine varibles
reg	[5:0]	CurrentState;
reg	[5:0]	NextState;
integer ucode_file;
reg rResetHitFlop,rHitFlopEnable;
wire wHit;
 
`ifdef DUMP_CODE
	integer log;
 
	initial
	begin
 
	//$display("Opening ucode dump file....\n");
	ucode_file = $fopen("CU.log","w");
	end
 
`endif
 
 
 
//--------------------------------------------------------------
FFToggleOnce_1Bit FFTO1
(
	.Clock( Clock ),
	.Reset( rResetHitFlop ),
	.Enable( rHitFlopEnable && iUCodeDone ),
	.S( iUCodeReturnValue ),
	.Q( wHit )
);
//--------------------------------------------------------------
 
 
//Next states logic and Reset sequence
always @(posedge Clock or posedge Reset) 
  begin 
 
    if (Reset)  
		CurrentState <= `CU_AFTER_RESET_STATE; 
    else        
		CurrentState <= NextState; 
 
  end
 
//--------------------------------------------------------------
always @ ( * )
begin
	case (CurrentState)
	//-----------------------------------------
	`CU_AFTER_RESET_STATE:
	begin
 
	`ifdef DEBUG_CU	
		$display("%d CU_AFTER_RESET_STATE\n",$time);
	`endif
 
		//oRamBusOwner 				= 0;
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_INITIAL; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0;	
		oIOWritePixel				= 0;
		rResetHitFlop				= 1;
		rHitFlopEnable				= 0;
		oTriggerTFF             = 0;
		oSetCurrentPitch        = 1;
		oFlipMemEnabled         = 0; 
		oFlipMem						= 0;
		oDone                   = 0;
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;
 
		NextState 					= `CU_WAIT_FOR_INITIAL_CONFIGURATION;
 
	end
	//-----------------------------------------
 
	`CU_WAIT_FOR_INITIAL_CONFIGURATION:
	begin
 
		oCodeInstructioPointer	= 0; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0;	
		oIOWritePixel				= 0;		
		rResetHitFlop				= 1;	
		rHitFlopEnable				= 0;
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 0;
		oDone                   = 0;
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;		
 
		if ( MST_I  )	
			NextState = `CU_PERFORM_INTIAL_CONFIGURATION;//`CU_WAIT_FOR_CONFIG_DATA_READ;
		else
			NextState = `CU_WAIT_FOR_INITIAL_CONFIGURATION;
 
 
	end
	//-----------------------------------------
	`CU_PERFORM_INTIAL_CONFIGURATION:
	begin
 
	//oRamBusOwner 				= 0;
		oCodeInstructioPointer	= 0; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0;	
		oIOWritePixel				= 0;		
		rResetHitFlop				= 1;	
		rHitFlopEnable				= 0;
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 0;
		oDone                   = 0;
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;		
 
		if ( MST_I  == 0 && iRenderEnable == 1'b1)	
			NextState = `CU_CLEAR_REGISTERS;//`CU_WAIT_FOR_CONFIG_DATA_READ;
		else 
			NextState = `CU_PERFORM_INTIAL_CONFIGURATION;
 
 
	end
	//-----------------------------------------
	`CU_CLEAR_REGISTERS:
	begin
 
	`ifdef DEBUG_CU	
		$display("%d CU_CLEAR_REGISTERS\n",$time);
	`endif	
 
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_INITIAL; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 1;	//*
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;
		rHitFlopEnable				= 0;
		oTriggerTFF             = 0;
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 1;  
		oFlipMem						= 0;
		oDone                   = 0;
		oResultCommited			= 0;			
 
 
		NextState 					= `CU_WAIT_CLEAR_REGISTERS;
	end
//-----------------------------------------	
	`CU_WAIT_CLEAR_REGISTERS:
	begin
 
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_INITIAL; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0; 	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 1; 
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;
 
		if ( iUCodeDone )
			NextState = `CU_ACK_CLEAR_REGISTERS;
		else
			NextState = `CU_WAIT_CLEAR_REGISTERS;
 
	end
	//-----------------------------------------
	`CU_ACK_CLEAR_REGISTERS:
	begin
 
	`ifdef DEBUG_CU
		$display("%d CU_ACK_CLEAR_REGISTERS\n", $time);
	`endif	
 
	//$display("CORE: %d CU_ACK_CLEAR_REGISTERS", iDebug_CoreID);
 
		//oRamBusOwner 				= 0;
		oCodeInstructioPointer	= 0; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0; //* 	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0; 
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;
 
		NextState = `CU_WAIT_FOR_CONFIG_DATA_READ;
	end	
 
 
 
	//-----------------------------------------
	`CU_WAIT_FOR_CONFIG_DATA_READ:
	begin
 
		oCodeInstructioPointer	= 0; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0;	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 0;
		oDone                   = 0;
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;
 
		if ( MST_I == 0  )
			NextState = `CU_PRECALCULATE_CONSTANTS;
		else
			NextState = `CU_WAIT_FOR_CONFIG_DATA_READ;
 
	end
	//-----------------------------------------
	`CU_PRECALCULATE_CONSTANTS:
	begin
//$display("CORE: %d CU_PRECALCULATE_CONSTANTS", iDebug_CoreID);
	`ifdef DEBUG_CU
		$display("%d Control: CU_PRECALCULATE_CONSTANTS\n", $time);
	`endif
 
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_CPPU; 
		oGFUEnable 				= 0;
		oUCodeEnable				= 1; //*	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0; 
		oFlipMem						= 0;	
		oDone                   = 0;	
		oResultCommited			= 0;		
		//oIncCurrentPitch        = 0;
 
		NextState = `CU_WAIT_FOR_CONSTANT;
 
	end
	//-----------------------------------------
	`CU_WAIT_FOR_CONSTANT:
	begin
//	`ifdef DEBUG_CU
//		$display("%d Control: CU_WAIT_FOR_CONSTANT\n", $time);
//	`endif
 
 
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_CPPU; 
		oGFUEnable 				   = 0;
		oUCodeEnable				= 0; //* 	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;
 
		if ( iUCodeDone )
			NextState = `CU_ACK_PRECALCULATE_CONSTANTS;
		else
			NextState = `CU_WAIT_FOR_CONSTANT;
 
	end
	//-----------------------------------------
	`CU_ACK_PRECALCULATE_CONSTANTS:
	begin
	//$display("CORE: %d CU_ACK_PRECALCULATE_CONSTANTS", iDebug_CoreID);
	`ifdef DEBUG_CU
		$display("%d Control: CU_ACK_PRECALCULATE_CONSTANTS\n", $time);
	`endif
 
 
		//oRamBusOwner 				= 0;//`REG_BUS_OWNED_BY_BCU;
		oCodeInstructioPointer	= 0; 
		oGFUEnable 				   = 0;
		oUCodeEnable				= 0; //* 	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;
		oSetCurrentPitch        = 0;		
		oFlipMemEnabled         = 0;
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;
 
		NextState = `CU_TRIGGER_USERCONSTANTS;//CU_WAIT_FOR_TASK;
 
	end
	//-----------------------------------------
 
	`CU_TRIGGER_USERCONSTANTS:
	begin
	`ifdef DEBUG_CU
		$display("%d Control: CU_TRIGGER_USERCONSTANTS\n",$time);
	`endif
 
		//$display("CORE: %d CU_TRIGGER_USERCONSTANTS", iDebug_CoreID);
 
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_USERCONSTANTS; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 1;	//*
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;				
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0; 
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;
 
		NextState = `CU_WAIT_USERCONSTANTS;
	end
	//-----------------------------------------
	`CU_WAIT_USERCONSTANTS:
	begin
 
//	`ifdef DEBUG_CU
//		$display("%d Control: CU_WAIT_FOR_RGU\n",$time);
//	`endif
 
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= `ENTRYPOINT_INDEX_USERCONSTANTS; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0;	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;
		oSetCurrentPitch        = 0;		
		oFlipMemEnabled         = 0; 
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;
 
		if ( iUCodeDone )
			NextState = `CU_ACK_USERCONSTANTS;
		else
			NextState = `CU_WAIT_USERCONSTANTS;
	end
	//-----------------------------------------
	`CU_ACK_USERCONSTANTS:
	begin
 
	`ifdef DEBUG_CU
		$display("%d Control: CU_ACK_RGU\n",$time);
	`endif
 
	//$display("CORE: %d CU_ACK_USERCONSTANTS", iDebug_CoreID);
 
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= 0; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0; //*	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;			
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;
 
		if ( iUCodeDone  == 0)
			NextState = `CU_WAIT_FOR_RENDER_ENABLE;
		else
			NextState = `CU_ACK_USERCONSTANTS;
 
	end
	//-----------------------------------------
	`CU_WAIT_FOR_RENDER_ENABLE:
	begin
	`ifdef DEBUG_CU
	$display("CORE: %d CU_WAIT_FOR_RENDER_ENABLE", iDebug_CoreID);
	`endif
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= 0; 
		oGFUEnable 					= 0;
		oUCodeEnable				= 0; //*	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;			
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 0;
		oDone                   = 0;	
		oResultCommited			= 0;	
		//oIncCurrentPitch        = 0;
 
		if ( iRenderEnable)
			NextState = `CU_WAIT_FOR_HOST_DATA_AVAILABLE;//`CU_TRIGGER_RGU;
		else
			NextState = `CU_WAIT_FOR_RENDER_ENABLE;
	end
	//-----------------------------------------
	`CU_WAIT_FOR_HOST_DATA_ACK:
	begin
	   oCodeInstructioPointer	= 0;
		oUCodeEnable				= 0;
		oGFUEnable					= 0;	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;
		oTriggerTFF             = 0;      
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;
		oFlipMem						= 0;
		oDone                   = 0;		
		oResultCommited			= 0;
 
		if ( iHostAckDataRead )
			NextState = `CU_WAIT_FOR_HOST_DATA_AVAILABLE;
		else
			NextState = `CU_WAIT_FOR_HOST_DATA_ACK;
	end
	//-----------------------------------------
	//Wait until data from Host becomes available
	`CU_WAIT_FOR_HOST_DATA_AVAILABLE:
	begin
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= 0;
		oUCodeEnable				= 0;
		oGFUEnable					= 0;	
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;
		oTriggerTFF             = 0;      
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;
		oFlipMem						= 0;
		oDone                   = 0;		
		oResultCommited			= 0;
 
		if ( iHostDataAvailable )
			NextState = `CU_TRIGGER_MAIN;
		else
			NextState = `CU_WAIT_FOR_HOST_DATA_AVAILABLE;
 
 
	end
	//-----------------------------------------
	`CU_TRIGGER_MAIN:
	begin
	`ifdef DEBUG_CU
		$display("%d CORE: %d Control: CU_TRIGGER_MAIN\n",$time,iDebug_CoreID);
	`endif
 
			//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
			oCodeInstructioPointer	= `ENTRYPOINT_INDEX_MAIN;
			oUCodeEnable				= 1;
			oGFUEnable					= 1;
			oIOWritePixel				= 0;
			rResetHitFlop				= 0;	
			rHitFlopEnable				= 0;		
         oTriggerTFF             = 0;					
			oSetCurrentPitch        = 0;
			oFlipMemEnabled         = 1;  
			oFlipMem						= 1;
			oDone                   = 0;	
			oResultCommited			= 0;	
			////$display("\n\n %d XOXOXOXOX FLIP XOXOXOXOXOX\n\n",$time);
			//oIncCurrentPitch        = 0;
		//	$stop();
 
			NextState = `CU_WAIT_FOR_MAIN;
 
	end
	//-----------------------------------------
	`CU_WAIT_FOR_MAIN:
	begin
//	`ifdef DEBUG_CU
//		$display("%d Control: CU_WAIT_FOR_MAIN\n",$time);
//	`endif
 
			//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
			oCodeInstructioPointer	= `ENTRYPOINT_INDEX_MAIN;
			oUCodeEnable				= 0;
			oGFUEnable					= 1;
			oIOWritePixel				= 0;
			rResetHitFlop				= 0;	
			rHitFlopEnable				= 1;	
         oTriggerTFF             = 0;
			oSetCurrentPitch        = 0;	
			oFlipMemEnabled         = 1;  
			oFlipMem						= 0;
			oDone                   = 0;	
			oResultCommited			= 0;	
			//oIncCurrentPitch        = 0;
 
			//NextState = `CU_WAIT_FOR_MAIN;
 
 
		if ( iUCodeDone )
			NextState = `CU_ACK_MAIN;
		else
			NextState = `CU_WAIT_FOR_MAIN;
 
	end
	//-----------------------------------------
	/*
		ACK UCODE by setting oUCodeEnable = 0
	*/
	`CU_ACK_MAIN:
	begin
	`ifdef DEBUG_CU
		$display("%d CORE: %d Control: CU_ACK_MAIN\n",$time, iDebug_CoreID);
	`endif
 
			//oRamBusOwner 				= `REG_BUS_OWNED_BY_GFU;
			oCodeInstructioPointer	= 0; //*
			oUCodeEnable				= 0;	//*
			oGFUEnable					= 0; 
			oIOWritePixel				= 0;
			rResetHitFlop				= 0;
			rHitFlopEnable				= 1;			
         oTriggerTFF             = 0;					
			oSetCurrentPitch        = 0;
			oFlipMemEnabled         = 0;  
			oFlipMem						= 0;
			oDone                   = 0;
			oResultCommited			= 0;
 
		if (iUCodeDone == 1'b0 && iUCodeReturnValue == 0)
			NextState = `CU_WAIT_FOR_HOST_DATA_AVAILABLE;
		else if (iUCodeDone == 1'b0 && iUCodeReturnValue == 1)
         NextState = `CU_COMMIT_PIXEL_RESULT;
		else
			NextState = `CU_ACK_MAIN;
 
	end
	//-----------------------------------------
	`CU_COMMIT_PIXEL_RESULT:
	begin
		oCodeInstructioPointer	= 0;
		oUCodeEnable				= 0;
		oGFUEnable					= 0;
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
		oTriggerTFF             = 0;		
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;
		oFlipMem						= 0;		
		oDone                   = 0;
		oResultCommited			= 1;
 
 
		NextState = `CU_WAIT_FOR_HOST_DATA_AVAILABLE;
	end	
	//-----------------------------------------
	//-----------------------------------------
	`CU_DONE:
	begin
		//oRamBusOwner 				= `REG_BUS_OWNED_BY_UCODE;
		oCodeInstructioPointer	= 0;	
		oUCodeEnable				= 0;	
		oGFUEnable					= 0;
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;		
      oTriggerTFF             = 0;				
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 1;
		oDone                   = 1;
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;
 
 
		NextState = `CU_DONE;
 
	end
	//---------------------------------------------------
	default:
	begin
 
	`ifdef DEBUG_CU
		$display("%d Control: ERROR Undefined State\n",$time);
	`endif
 
		//oRamBusOwner 				= 0;
		oCodeInstructioPointer	= 0;	
		oUCodeEnable				= 0;
		oGFUEnable					= 0;		
		oIOWritePixel				= 0;
		rResetHitFlop				= 0;	
		rHitFlopEnable				= 0;	
      oTriggerTFF             = 0;				
		oSetCurrentPitch        = 0;
		oFlipMemEnabled         = 0;  
		oFlipMem						= 0;
		oDone                   = 0;
		oResultCommited			= 0;
		//oIncCurrentPitch        = 0;
 
		NextState = `CU_AFTER_RESET_STATE;
	end
	//-----------------------------------------
 
	endcase
 
end //always	
endmodule
 

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

powered by: WebSVN 2.1.0

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