Line 72... |
Line 72... |
//You can play around with the size of instuctions, but keep
|
//You can play around with the size of instuctions, but keep
|
//in mind that Bits 3 and 4 of the Operand have a special meaning
|
//in mind that Bits 3 and 4 of the Operand have a special meaning
|
//that is used for the jump familiy of instructions (see Documentation).
|
//that is used for the jump familiy of instructions (see Documentation).
|
//Also the MSB of Operand is used by the decoder to distinguish
|
//Also the MSB of Operand is used by the decoder to distinguish
|
//between Type I and Type II instructions.
|
//between Type I and Type II instructions.
|
`define INSTRUCTION_WIDTH 64//55
|
`define INSTRUCTION_WIDTH 64
|
`define INSTRUCTION_OP_LENGTH 16//7
|
`define INSTRUCTION_OP_LENGTH 16
|
`define INSTRUCTION_IMM_BITPOS 54
|
`define INSTRUCTION_IMM_BITPOS 54
|
`define INSTRUCTION_IMM_BIT 6 //don't change this!
|
`define INSTRUCTION_IMM_BIT 6 //don't change this!
|
|
|
//Defines the Lenght of Memory blocks
|
//Defines the Lenght of Memory blocks
|
`define DATA_ROW_WIDTH 96
|
`define DATA_ROW_WIDTH 96
|
Line 167... |
Line 167... |
//need to be in that specific order for the triangle fetcher to work
|
//need to be in that specific order for the triangle fetcher to work
|
//correctly!
|
//correctly!
|
|
|
`define CREG_AABBMIN `DATA_ADDRESS_WIDTH'd42
|
`define CREG_AABBMIN `DATA_ADDRESS_WIDTH'd42
|
`define CREG_AABBMAX `DATA_ADDRESS_WIDTH'd43
|
`define CREG_AABBMAX `DATA_ADDRESS_WIDTH'd43
|
`define CREG_V0 `DATA_ADDRESS_WIDTH'd44 //002a
|
`define CREG_V0 `DATA_ADDRESS_WIDTH'd44
|
`define CREG_UV0 `DATA_ADDRESS_WIDTH'd45 //002b
|
`define CREG_UV0 `DATA_ADDRESS_WIDTH'd45
|
`define CREG_V1 `DATA_ADDRESS_WIDTH'd46 //002c
|
`define CREG_V1 `DATA_ADDRESS_WIDTH'd46
|
`define CREG_UV1 `DATA_ADDRESS_WIDTH'd47 //002d
|
`define CREG_UV1 `DATA_ADDRESS_WIDTH'd47
|
`define CREG_V2 `DATA_ADDRESS_WIDTH'd48 //002e
|
`define CREG_V2 `DATA_ADDRESS_WIDTH'd48
|
`define CREG_UV2 `DATA_ADDRESS_WIDTH'd49 //002f
|
`define CREG_UV2 `DATA_ADDRESS_WIDTH'd49
|
`define CREG_TRI_DIFFUSE `DATA_ADDRESS_WIDTH'd50 //0030
|
`define CREG_TRI_DIFFUSE `DATA_ADDRESS_WIDTH'd50
|
`define CREG_TEX_COLOR1 `DATA_ADDRESS_WIDTH'd53
|
`define CREG_TEX_COLOR1 `DATA_ADDRESS_WIDTH'd53
|
`define CREG_TEX_COLOR2 `DATA_ADDRESS_WIDTH'd54
|
`define CREG_TEX_COLOR2 `DATA_ADDRESS_WIDTH'd54
|
`define CREG_TEX_COLOR3 `DATA_ADDRESS_WIDTH'd55
|
`define CREG_TEX_COLOR3 `DATA_ADDRESS_WIDTH'd55
|
`define CREG_TEX_COLOR4 `DATA_ADDRESS_WIDTH'd56
|
`define CREG_TEX_COLOR4 `DATA_ADDRESS_WIDTH'd56
|
`define CREG_TEX_COLOR5 `DATA_ADDRESS_WIDTH'd57
|
`define CREG_TEX_COLOR5 `DATA_ADDRESS_WIDTH'd57
|
Line 194... |
Line 194... |
`define C3 `DATA_ADDRESS_WIDTH'd66
|
`define C3 `DATA_ADDRESS_WIDTH'd66
|
`define C4 `DATA_ADDRESS_WIDTH'd67
|
`define C4 `DATA_ADDRESS_WIDTH'd67
|
`define C5 `DATA_ADDRESS_WIDTH'd68
|
`define C5 `DATA_ADDRESS_WIDTH'd68
|
`define C6 `DATA_ADDRESS_WIDTH'd69
|
`define C6 `DATA_ADDRESS_WIDTH'd69
|
`define C7 `DATA_ADDRESS_WIDTH'd70
|
`define C7 `DATA_ADDRESS_WIDTH'd70
|
`define R1 `DATA_ADDRESS_WIDTH'd71 //0x47
|
`define R1 `DATA_ADDRESS_WIDTH'd71
|
`define R2 `DATA_ADDRESS_WIDTH'd72 //0x48
|
`define R2 `DATA_ADDRESS_WIDTH'd72
|
`define R3 `DATA_ADDRESS_WIDTH'd73 //0x49
|
`define R3 `DATA_ADDRESS_WIDTH'd73
|
`define R4 `DATA_ADDRESS_WIDTH'd74
|
`define R4 `DATA_ADDRESS_WIDTH'd74
|
`define R5 `DATA_ADDRESS_WIDTH'd75
|
`define R5 `DATA_ADDRESS_WIDTH'd75
|
`define R6 `DATA_ADDRESS_WIDTH'd76
|
`define R6 `DATA_ADDRESS_WIDTH'd76
|
`define R7 `DATA_ADDRESS_WIDTH'd77
|
`define R7 `DATA_ADDRESS_WIDTH'd77
|
`define R8 `DATA_ADDRESS_WIDTH'd78
|
`define R8 `DATA_ADDRESS_WIDTH'd78
|
Line 276... |
Line 276... |
`define ADD `INSTRUCTION_OP_LENGTH'b0_000001 //1
|
`define ADD `INSTRUCTION_OP_LENGTH'b0_000001 //1
|
`define SUB `INSTRUCTION_OP_LENGTH'b0_000010 //2
|
`define SUB `INSTRUCTION_OP_LENGTH'b0_000010 //2
|
`define DIV `INSTRUCTION_OP_LENGTH'b0_000011 //3
|
`define DIV `INSTRUCTION_OP_LENGTH'b0_000011 //3
|
`define MUL `INSTRUCTION_OP_LENGTH'b0_000100 //4
|
`define MUL `INSTRUCTION_OP_LENGTH'b0_000100 //4
|
`define MAG `INSTRUCTION_OP_LENGTH'b0_000101 //5
|
`define MAG `INSTRUCTION_OP_LENGTH'b0_000101 //5
|
//`define NOP `INSTRUCTION_OP_LENGTH'b0_000110 //6
|
|
`define COPY `INSTRUCTION_OP_LENGTH'b0_000111 //7
|
`define COPY `INSTRUCTION_OP_LENGTH'b0_000111 //7
|
`define JGX `INSTRUCTION_OP_LENGTH'b0_001_000 //8
|
`define JGX `INSTRUCTION_OP_LENGTH'b0_001_000 //8
|
`define JLX `INSTRUCTION_OP_LENGTH'b0_001_001 //9
|
`define JLX `INSTRUCTION_OP_LENGTH'b0_001_001 //9
|
`define JEQX `INSTRUCTION_OP_LENGTH'b0_001_010 //10 - A
|
`define JEQX `INSTRUCTION_OP_LENGTH'b0_001_010 //10 - A
|
`define JNEX `INSTRUCTION_OP_LENGTH'b0_001_011 //11 - B
|
`define JNEX `INSTRUCTION_OP_LENGTH'b0_001_011 //11 - B
|