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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [fpga/] [altera_de0_nano_soc/] [rtl/] [verilog/] [opengfx430/] [openGFX430_defines.v] - Rev 224

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

//----------------------------------------------------------------------------
// Copyright (C) 2009 , Olivier Girard
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//     * Redistributions of source code must retain the above copyright
//       notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above copyright
//       notice, this list of conditions and the following disclaimer in the
//       documentation and/or other materials provided with the distribution.
//     * Neither the name of the authors nor the names of its contributors
//       may be used to endorse or promote products derived from this software
//       without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
// OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
// THE POSSIBILITY OF SUCH DAMAGE
//
//----------------------------------------------------------------------------
//
// *File Name: openGFX430_defines.v
//
// *Module Description:
//                      oMSP Graphic Controller Configuration file
//
// *Author(s):
//              - Olivier Girard,    olgirard@gmail.com
//
//----------------------------------------------------------------------------
// $Rev: 103 $
// $LastChangedBy: olivier.girard $
// $LastChangedDate: 2011-03-05 15:44:48 +0100 (Sat, 05 Mar 2011) $
//----------------------------------------------------------------------------
//`define OGFX_NO_INCLUDE
`ifdef OGFX_NO_INCLUDE
`else
`include "openGFX430_undefines.v"
`endif
 
//============================================================================
// GRAPHIC CONTROLLER USER CONFIGURATION
//============================================================================
 
//-----------------------------------------------------
// Video display maximum pixel height/width
//-----------------------------------------------------
//`define MAX_DISPLAY_PIXEL_LENGTH_4096
//`define MAX_DISPLAY_PIXEL_LENGTH_2048
//`define MAX_DISPLAY_PIXEL_LENGTH_1024
`define MAX_DISPLAY_PIXEL_LENGTH_512
//`define MAX_DISPLAY_PIXEL_LENGTH_256
//`define MAX_DISPLAY_PIXEL_LENGTH_128
//`define MAX_DISPLAY_PIXEL_LENGTH_64
//`define MAX_DISPLAY_PIXEL_LENGTH_32
 
//-----------------------------------------------------
// Video memory address width
//-----------------------------------------------------
`define VRAM_AWIDTH  17
 
//-----------------------------------------------------
// Define if the Video memory is bigger than 4k Words
// (should be defined if VRAM_AWIDTH is bigger than 12)
//-----------------------------------------------------
`define VRAM_BIGGER_4_KW
 
//-----------------------------------------------------
// Include/Exclude Frame buffer pointers from the
// register map
// (Frame pointer 0 is always included)
//-----------------------------------------------------
`define WITH_FRAME1_POINTER
//`define WITH_FRAME2_POINTER
//`define WITH_FRAME3_POINTER
 
//-----------------------------------------------------
// LUT Configuration
//-----------------------------------------------------
`define WITH_PROGRAMMABLE_LUT
`define WITH_EXTRA_LUT_BANK
 
 
 
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//=====        SYSTEM CONSTANTS --- !!!!!!!! DO NOT EDIT !!!!!!!!      =====//
//==========================================================================//
//==========================================================================//
//==========================================================================//
//==========================================================================//
 
`ifdef MAX_DISPLAY_PIXEL_LENGTH_4096
  `define LPIX_MSB    11
  `define LPIX_SIZE 4096
  `define WITH_DISPLAY_SIZE_HI
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_2048
  `define LPIX_MSB    10
  `define LPIX_SIZE 2048
  `define WITH_DISPLAY_SIZE_HI
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_1024
  `define LPIX_MSB     9
  `define LPIX_SIZE 1024
  `define WITH_DISPLAY_SIZE_HI
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_512
  `define LPIX_MSB     8
  `define LPIX_SIZE  512
  `define WITH_DISPLAY_SIZE_HI
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_256
  `define LPIX_MSB     7
  `define LPIX_SIZE  256
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_128
  `define LPIX_MSB     6
  `define LPIX_SIZE  128
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_64
  `define LPIX_MSB     5
  `define LPIX_SIZE   64
`endif
`ifdef MAX_DISPLAY_PIXEL_LENGTH_32
  `define LPIX_MSB     4
  `define LPIX_SIZE   32
`endif
`define   SPIX_MSB     (((`LPIX_MSB+1)*2)-1)
`ifdef WITH_DISPLAY_SIZE_HI
  `define SPIX_HI_MSB  (`SPIX_MSB-16)
  `define SPIX_LO_MSB  15
`else
  `define SPIX_LO_MSB  `SPIX_MSB
`endif
 
`define  VRAM_MSB    (`VRAM_AWIDTH-1)
 
`define  APIX_WIDTH  (`VRAM_AWIDTH+4)
`define  APIX_MSB    (`APIX_WIDTH-1)
`ifdef VRAM_BIGGER_4_KW
 `define APIX_HI_MSB (`APIX_MSB-16)
 `define APIX_LO_MSB 15
`else
 `define APIX_LO_MSB `APIX_MSB
`endif
 
`ifdef WITH_EXTRA_LUT_BANK
 `define LRAM_AWIDTH 9
`else
 `define LRAM_AWIDTH 8
`endif
`define LRAM_MSB  (`LRAM_AWIDTH-1)
 
 
// Opcodes for GPU commands
`define OP_EXEC_FILL         2'b00
`define OP_EXEC_COPY         2'b01
`define OP_EXEC_COPY_TRANS   2'b10
`define OP_REC_WIDTH         4'b1100
`define OP_REC_HEIGHT        4'b1101
`define OP_SRC_PX_ADDR      {4'b1111, 2'b10, 10'b0000000000}
`define OP_DST_PX_ADDR      {4'b1111, 2'b10, 10'b0000000001}
`define OP_OF0_ADDR         {4'b1111, 2'b10, 10'b0000010000}
`define OP_OF1_ADDR         {4'b1111, 2'b10, 10'b0000010001}
`define OP_OF2_ADDR         {4'b1111, 2'b10, 10'b0000010010}
`define OP_OF3_ADDR         {4'b1111, 2'b10, 10'b0000010011}
`define OP_SET_FILL         {4'b1111, 2'b01, 10'b0000100000}
`define OP_SET_TRANSPARENT  {4'b1111, 2'b01, 10'b0000100001}
 
// Bit possitions of the GPU Command
`define SRC_OFFSET          13:12
`define SRC_X_SWAP          11
`define SRC_Y_SWAP          10
`define SRC_CL_SWAP          9
`define PX_OP                8:5
`define DST_OFFSET           4:3
`define DST_X_SWAP           2
`define DST_Y_SWAP           1
`define DST_CL_SWAP          0
 
 
//----------------------------------
// Configuration checkers
//----------------------------------
`ifdef WITH_FRAME2_POINTER
 `ifdef WITH_FRAME1_POINTER
 `else
GFX CONTROLLER CONFIGURATION ERROR: ENABLED FRAME2 POINTER WITHOUT FRAME1 POINTER
 `endif
`endif
`ifdef WITH_FRAME3_POINTER
 `ifdef WITH_FRAME2_POINTER
 `else
GFX CONTROLLER CONFIGURATION ERROR: ENABLED FRAME2 POINTER WITHOUT FRAME1 POINTER
 `endif
`endif
`ifdef WITH_PROGRAMMABLE_LUT
`else
`ifdef WITH_EXTRA_LUT_BANK
GFX CONTROLLER CONFIGURATION ERROR: NOT ALLOWED TO ENABLE EXTRA LUT BANK IF PROGRAMMABLE LUT SUPPORT IS DISABLED
`endif
`endif
 

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.