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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [tags/] [Beta_0.2/] [rtl/] [MEM/] [Module_ROM.v] - Diff between revs 63 and 74

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 63 Rev 74
Line 102... Line 102...
 
 
 0: I =  { `ZERO ,`CREG_LAST_t ,`VOID ,`VOID };
 0: I =  { `ZERO ,`CREG_LAST_t ,`VOID ,`VOID };
 //Set the last 't' to very positive value(500) 
 //Set the last 't' to very positive value(500) 
 1: I =  { `SETX ,`CREG_LAST_t ,32'h1F40000  };
 1: I =  { `SETX ,`CREG_LAST_t ,32'h1F40000  };
2: I =  { `ZERO ,`OREG_PIXEL_COLOR ,`VOID ,`VOID };
2: I =  { `ZERO ,`OREG_PIXEL_COLOR ,`VOID ,`VOID };
3: I =  { `NOP ,`RT_FALSE   }; //{ `ZERO ,`CREG_PIXEL_2D_POSITION ,`VOID ,`VOID }; 
3: I =  { `COPY ,`CREG_PIXEL_2D_POSITION,`CREG_PIXEL_2D_INITIAL_POSITION, `VOID   };
4: I =  { `ZERO ,`OREG_PIXEL_PITCH ,`VOID,`VOID};
4: I =  { `ZERO ,`OREG_PIXEL_PITCH ,`VOID,`VOID};
5: I =  { `ZERO ,`R1 ,`VOID ,`VOID };
5: I =  { `ZERO ,`R1 ,`VOID ,`VOID };
6: I =  { `ZERO ,`R2 ,`VOID ,`VOID };
6: I =  { `ZERO ,`R2 ,`VOID ,`VOID };
7: I =  { `ZERO ,`R3 ,`VOID ,`VOID };
7: I =  { `ZERO ,`R3 ,`VOID ,`VOID };
8: I =  { `ZERO ,`R4 ,`VOID ,`VOID };
8: I =  { `ZERO ,`R4 ,`VOID ,`VOID };
9: I =  { `ZERO ,`R5 ,`VOID ,`VOID };
9: I =  { `ZERO ,`R5 ,`VOID ,`VOID };
 //Harode texture size for now ...
 //Harode texture size for now ...
10: I =  { `NOP ,`RT_FALSE   };//{ `SETX ,`CREG_TEXTURE_SIZE ,32'h1FE0000  }; 
10: I =  { `NOP ,`RT_FALSE   };//{ `SETX ,`CREG_TEXTURE_SIZE ,32'h1FE0000  }; 
11: I =  { `NOP ,`RT_FALSE   };//{ `SETY ,`CREG_TEXTURE_SIZE ,32'h1FE0000  }; 
11: I =  { `NOP ,`RT_FALSE   };//{ `SETY ,`CREG_TEXTURE_SIZE ,32'h1FE0000  }; 
12: I =  { `NOP ,`RT_FALSE   };//{ `SETZ ,`CREG_TEXTURE_SIZE ,32'h1FE0000  }; 
12: I =  { `RETURN ,`RT_TRUE   };
13: I =  { `RETURN ,`RT_TRUE   };
13: I =  { `NOP ,`RT_FALSE   };//{ `SETZ ,`CREG_TEXTURE_SIZE ,32'h1FE0000  }; 
 
 
 
 
 
 
//----------------------------------------------------------------------          
//----------------------------------------------------------------------          
//Micro code for CPPU
//Micro code for CPPU
//TAG_CPPU_UCODE_ADDRESS:
//TAG_CPPU_UCODE_ADDRESS:
Line 158... Line 159...
//----------------------------------------------------------------------
//----------------------------------------------------------------------
//Micro code for AABBIU
//Micro code for AABBIU
//TAG_AABBIU_UCODE_ADDRESS:
//TAG_AABBIU_UCODE_ADDRESS:
 
 
33: I =  { `ZERO ,`R3 ,`VOID ,`VOID };
33: I =  { `ZERO ,`R3 ,`VOID ,`VOID };
34: I =  { `ZERO ,`R5 ,`VOID ,`VOID };
34: I =  { `SETX ,`CREG_LAST_t ,32'h1F40000  }; //{ `ZERO ,`R5 ,`VOID ,`VOID }; 
35: I =  { `NOP ,`RT_FALSE   };
35: I =  { `RETURN ,`RT_TRUE };//{ `ZERO ,`R6, `VOID, `VOID }; 
 
 
//LABEL_TEST_RAY_X_ORIGEN:
//LABEL_TEST_RAY_X_ORIGEN:
36: I =  { `JGEX ,`LABEL_ELSE_IFX ,`CREG_CAMERA_POSITION ,`CREG_AABBMIN };
36: I =  { `JGEX ,`LABEL_ELSE_IFX ,`CREG_CAMERA_POSITION ,`CREG_AABBMIN };
37: I =  { `SUB ,`R1 ,`CREG_AABBMIN ,`CREG_CAMERA_POSITION };
37: I =  { `SUB ,`R1 ,`CREG_AABBMIN ,`CREG_CAMERA_POSITION };
38: I =  { `JLEX ,`LABEL1 ,`R1 ,`CREG_UNORMALIZED_DIRECTION };
38: I =  { `JLEX ,`LABEL1 ,`R1 ,`CREG_UNORMALIZED_DIRECTION };
Line 238... Line 239...
80: I =  { `SETZ ,`R5 ,32'b1  };
80: I =  { `SETZ ,`R5 ,32'b1  };
 
 
//LABEL_RAY_INSIDE_BOX:
//LABEL_RAY_INSIDE_BOX:
81: I =  { `ZERO ,`R1 ,`VOID ,`VOID };
81: I =  { `ZERO ,`R1 ,`VOID ,`VOID };
82: I =  { `JEQX ,`LABEL_TEST_YZ_PLANE ,`R1 ,`RAY_INSIDE_BOX };
82: I =  { `JEQX ,`LABEL_TEST_YZ_PLANE ,`R1 ,`RAY_INSIDE_BOX };
 
//BUG, need a NOP here, else pipeline gets confused
83: I =  { `RETURN ,`RT_TRUE   };
83: I =  { `RETURN ,`RT_TRUE   };
 
 
//LABEL_TEST_YZ_PLANE:
//LABEL_TEST_YZ_PLANE:
84: I =  { `JNEX ,`LABEL_TEST_XZ_PLANE ,`R5 ,`R1 };
84: I =  { `JNEX ,`LABEL_TEST_XZ_PLANE ,`R5 ,`R1 };
85: I =  { `SWIZZLE3D ,`R6 ,`SWIZZLE_XXX  };
85: I =  { `SWIZZLE3D ,`R6 ,`SWIZZLE_XXX  };
Line 366... Line 368...
155: I =  { `SUB ,`R1 ,`CREG_UV1_LAST ,`CREG_UV0_LAST };
155: I =  { `SUB ,`R1 ,`CREG_UV1_LAST ,`CREG_UV0_LAST };
156: I =  { `SUB ,`R2 ,`CREG_UV2_LAST ,`CREG_UV0_LAST };
156: I =  { `SUB ,`R2 ,`CREG_UV2_LAST ,`CREG_UV0_LAST };
157: I =  { `MUL ,`R1 ,`CREG_LAST_u ,`R1 };
157: I =  { `MUL ,`R1 ,`CREG_LAST_u ,`R1 };
158: I =  { `MUL ,`R2 ,`CREG_LAST_v ,`R2 };
158: I =  { `MUL ,`R2 ,`CREG_LAST_v ,`R2 };
159: I =  { `ADD ,`R1 ,`R1 ,`R2 };
159: I =  { `ADD ,`R1 ,`R1 ,`R2 };
160: I =  { `ADD ,`R1 ,`R1 ,`CREG_UV0 };
160: I =  { `ADD ,`R1 ,`R1 ,`CREG_UV0_LAST };
 
 
//R7x : fu = (u_coordinate) * gTexture.mWidth;
//R7x : fu = (u_coordinate) * gTexture.mWidth;
//R7y : fv = (v_coordinate) * gTexture.mWidth;
//R7y : fv = (v_coordinate) * gTexture.mWidth;
//R7z : 0
//R7z : 0
161: I =  { `MUL ,`R7 ,`R1 ,`CREG_TEXTURE_SIZE };
161: I =  { `MUL ,`R7 ,`R1 ,`CREG_TEXTURE_SIZE };
Line 410... Line 412...
 
 
//R4 = [u1, u2 0]
//R4 = [u1, u2 0]
167: I =  { `XCHANGEX ,`R4 ,`R2 ,`R1 };
167: I =  { `XCHANGEX ,`R4 ,`R2 ,`R1 };
 
 
//R2 = [v2*H, v1*H, 0]
//R2 = [v2*H, v1*H, 0]
//R2 = FixedToInteger(R3*CREG_TEXTURE_SIZE)
 
168: I =  { `UNSCALE ,`R9 ,`R3 ,`VOID };
168: I =  { `UNSCALE ,`R9 ,`R3 ,`VOID };
169: I =  { `UNSCALE ,`R8 ,`CREG_TEXTURE_SIZE ,`VOID };
169: I =  { `UNSCALE ,`R8 ,`CREG_TEXTURE_SIZE ,`VOID };
170: I =  { `IMUL ,`R2 ,`R9 ,`R8 };
170: I =  { `IMUL ,`R2 ,`R9 ,`R8 };
 
 
//OREG_TEX_COORD1 = [u1 + v2*H, u2 + v1*H, 0]
//OREG_TEX_COORD1 = [u1 + v2*H, u2 + v1*H, 0]
//R4 = FixedToIinteger(R4)
//R4 = FixedToIinteger(R4)
171: I =  { `UNSCALE ,`R4 ,`R4 ,`VOID };
171: I =  { `UNSCALE ,`R4 ,`R4 ,`VOID };
172: I =  { `ADD ,`OREG_TEX_COORD1 ,`R2 ,`R4 };
172: I =   { `ADD ,`R12 ,`R2 ,`R4 };  // { `ADD ,`OREG_TEX_COORD1 ,`R2 ,`R4 }; 
173: I =  { `SETX ,`R5 ,32'h3  };
173: I =  { `SETX ,`R5 ,32'h3  };
174: I =  { `SETY ,`R5 ,32'h3  };
174: I =  { `SETY ,`R5 ,32'h3  };
175: I =  { `SETZ ,`R5 ,32'h3  };
175: I =  { `SETZ ,`R5 ,32'h3  };
//Multiply by 3 (the pitch)
//Multiply by 3 (the pitch)
176: I =  { `IMUL ,`OREG_TEX_COORD1 ,`OREG_TEX_COORD1 ,`R5 };
176: I =  { `IMUL ,`OREG_TEX_COORD1 ,`R12 ,`R5 };
 
 
//R4 = [u2 u1 0]
//R4 = [u2 u1 0]
177: I =  { `SWIZZLE3D ,`R4 ,`SWIZZLE_YXZ  };
177: I =  { `SWIZZLE3D ,`R4 ,`SWIZZLE_YXZ  };
 
 
 
 
//OREG_TEX_COORD2 [u2 + v2*H, u1 + v1*H, 0]
//OREG_TEX_COORD2 [u2 + v2*H, u1 + v1*H, 0]
178: I =  { `ADD ,`OREG_TEX_COORD2 ,`R2 ,`R4 };
178: I =  { `ADD ,`R12 ,`R2 ,`R4 };
//Multiply by 3 (the pitch)
//Multiply by 3 (the pitch)
179: I =  { `IMUL ,`OREG_TEX_COORD2 ,`OREG_TEX_COORD2 ,`R5 };
179: I =  { `IMUL ,`OREG_TEX_COORD2 ,`R12 ,`R5 };
 
 
 
 
//Cool now get the weights
//Cool now get the weights
 
 
//w1 = (1 - fracu) * (1 - fracv);
//w1 = (1 - fracu) * (1 - fracv);
Line 463... Line 464...
184: I =  { `INC ,`R5 ,`R5 ,`VOID };
184: I =  { `INC ,`R5 ,`R5 ,`VOID };
 
 
//R5x: 1 - fracv 
//R5x: 1 - fracv 
//R5y: 1 - fracu 
//R5y: 1 - fracu 
//R5y: (1 - fracv)(1 - fracu) 
//R5y: (1 - fracv)(1 - fracu) 
185: I =  { `MULP ,`OREG_TEXWEIGHT1 ,`R5 ,`VOID };
185: I =  { `MULP ,`CREG_TEXWEIGHT1 ,`R5 ,`VOID };
 
 
//OREG_TEXWEIGHT1.x = (1 - fracv)(1 - fracu) 
//CREG_TEXWEIGHT1.x = (1 - fracv)(1 - fracu) 
//OREG_TEXWEIGHT1.y = (1 - fracv)(1 - fracu) 
//CREG_TEXWEIGHT1.y = (1 - fracv)(1 - fracu) 
//OREG_TEXWEIGHT1.z = (1 - fracv)(1 - fracu) 
//CREG_TEXWEIGHT1.z = (1 - fracv)(1 - fracu) 
186: I =  { `SWIZZLE3D ,`OREG_TEXWEIGHT1 ,`SWIZZLE_ZZZ  };
186: I =  { `SWIZZLE3D ,`CREG_TEXWEIGHT1 ,`SWIZZLE_ZZZ  };
 
 
 
 
//R6x: w2: fracu * (1 - fracv )
//R6x: w2: fracu * (1 - fracv )
//R6y: w3: fracv * (1 - fracu )
//R6y: w3: fracv * (1 - fracu )
//R6z: 0
//R6z: 0
187: I =  { `MUL ,`R6 ,`R4 ,`R5 };
187: I =  { `MUL ,`R6 ,`R4 ,`R5 };
 
 
//OREG_TEXWEIGHT2.x = fracu * (1 - fracv )
//CREG_TEXWEIGHT2.x = fracu * (1 - fracv )
//OREG_TEXWEIGHT2.y = fracu * (1 - fracv )
//CREG_TEXWEIGHT2.y = fracu * (1 - fracv )
//OREG_TEXWEIGHT2.z = fracu * (1 - fracv )
//CREG_TEXWEIGHT2.z = fracu * (1 - fracv )
188: I =  { `COPY ,`OREG_TEXWEIGHT2 ,`R6 ,`VOID };
188: I =  { `COPY ,`CREG_TEXWEIGHT2 ,`R6 ,`VOID };
189: I =  { `SWIZZLE3D ,`OREG_TEXWEIGHT2 ,`SWIZZLE_XXX  };
189: I =  { `SWIZZLE3D ,`CREG_TEXWEIGHT2 ,`SWIZZLE_XXX  };
 
 
//OREG_TEXWEIGHT3.x = fracv * (1 - fracu )
//CREG_TEXWEIGHT3.x = fracv * (1 - fracu )
//OREG_TEXWEIGHT3.y = fracv * (1 - fracu )
//CREG_TEXWEIGHT3.y = fracv * (1 - fracu )
//OREG_TEXWEIGHT3.z = fracv * (1 - fracu )
//CREG_TEXWEIGHT3.z = fracv * (1 - fracu )
190: I =  { `COPY ,`OREG_TEXWEIGHT3 ,`R6 ,`VOID };
190: I =  { `COPY ,`CREG_TEXWEIGHT3 ,`R6 ,`VOID };
191: I =  { `SWIZZLE3D ,`OREG_TEXWEIGHT3 ,`SWIZZLE_YYY  };
191: I =  { `SWIZZLE3D ,`CREG_TEXWEIGHT3 ,`SWIZZLE_YYY  };
 
 
 
 
//R4x: fracu
//R4x: fracu
//R4y: fracv
//R4y: fracv
//R4z: fracu * fracv
//R4z: fracu * fracv
192: I =  { `MULP ,`R4 ,`R4 ,`VOID };
192: I =  { `MULP ,`R4 ,`R4 ,`VOID };
 
 
//OREG_TEXWEIGHT4.x = fracv * fracu 
//CREG_TEXWEIGHT4.x = fracv * fracu 
//OREG_TEXWEIGHT4.y = fracv * fracu 
//CREG_TEXWEIGHT4.y = fracv * fracu 
//OREG_TEXWEIGHT4.z = fracv * fracu 
//CREG_TEXWEIGHT4.z = fracv * fracu 
193: I =  { `COPY ,`OREG_TEXWEIGHT4 ,`R4 ,`VOID };
193: I =  { `COPY ,`CREG_TEXWEIGHT4 ,`R4 ,`VOID };
194: I =  { `SWIZZLE3D ,`OREG_TEXWEIGHT4 ,`SWIZZLE_ZZZ  };
194: I =  { `SWIZZLE3D ,`CREG_TEXWEIGHT4 ,`SWIZZLE_ZZZ  };
 
 
 
 
//LABEL_TCC_EXIT:
//LABEL_TCC_EXIT:
195: I =  { `RETURN ,`RT_TRUE   };
195: I =  { `RETURN ,`RT_TRUE   };
 
 
Line 541... Line 542...
//CColor TextureColor;
//CColor TextureColor;
//TextureColor.R = c1.R * w1 + c2.R * w2 + c3.R * w3 + c4.R * w4;
//TextureColor.R = c1.R * w1 + c2.R * w2 + c3.R * w3 + c4.R * w4;
//TextureColor.G = c1.G * w1 + c2.G * w2 + c3.G * w3 + c4.G * w4;
//TextureColor.G = c1.G * w1 + c2.G * w2 + c3.G * w3 + c4.G * w4;
//TextureColor.B = c1.B * w1 + c2.B * w2 + c3.B * w3 + c4.B * w4;
//TextureColor.B = c1.B * w1 + c2.B * w2 + c3.B * w3 + c4.B * w4;
 
 
212: I =  { `MUL ,`R1 ,`CREG_TEX_COLOR5 ,`OREG_TEXWEIGHT1 };
212: I =  { `MUL ,`R1 ,`CREG_TEX_COLOR5 ,`CREG_TEXWEIGHT1 };
213: I =  { `MUL ,`R2 ,`CREG_TEX_COLOR2 ,`OREG_TEXWEIGHT2 };
213: I =  { `MUL ,`R2 ,`CREG_TEX_COLOR2 ,`CREG_TEXWEIGHT2 };
214: I =  { `MUL ,`R3 ,`CREG_TEX_COLOR1 ,`OREG_TEXWEIGHT3 };
214: I =  { `MUL ,`R3 ,`CREG_TEX_COLOR1 ,`CREG_TEXWEIGHT3 };
215: I =  { `MUL ,`R4 ,`CREG_TEX_COLOR4 ,`OREG_TEXWEIGHT4 };
215: I =  { `MUL ,`R4 ,`CREG_TEX_COLOR4 ,`CREG_TEXWEIGHT4 };
216: I =  { `ADD ,`CREG_TEXTURE_COLOR ,`R1 ,`R2 };
216: I =  { `ADD ,`CREG_TEXTURE_COLOR ,`R1 ,`R2 };
217: I =  { `ADD ,`CREG_TEXTURE_COLOR ,`CREG_TEXTURE_COLOR ,`R3 };
217: I =  { `ADD ,`CREG_TEXTURE_COLOR ,`CREG_TEXTURE_COLOR ,`R3 };
218: I =  { `ADD ,`CREG_TEXTURE_COLOR ,`CREG_TEXTURE_COLOR ,`R4 };
218: I =  { `ADD ,`CREG_TEXTURE_COLOR ,`CREG_TEXTURE_COLOR ,`R4 };
219: I =  { `RETURN ,`RT_TRUE   };
219: I =  { `RETURN ,`RT_TRUE   };
 
 

powered by: WebSVN 2.1.0

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