| //---------------------------------------------------------------------------- |
| // 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 |