⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rasterizer_11_07_2008_18_46.v.bak

📁 Implementation of GPU (Graphics Processing Unit) that rendered triangle based models. Our goal was t
💻 BAK
📖 第 1 页 / 共 2 页
字号:
//		det <= det;
//	end
//	
//	//eventually do culling test here
//	//for now do every triangle
//	//need to set up to start incrementing here
//	else
//	begin
//	// CAN ACTUALLY DO THIS AS COMBINATORIAL LOGIC TO SAVE A CYCLE
//	
//	
//		//xmax
//		if (vertex1_x > vertex2_x & vertex1_x > vertex3_x)
//		begin
//			xMax <= vertex1_x;
//			
//		end
//		
//		else if (vertex2_x > vertex1_x & vertex2_x > vertex3_x)
//		begin
//			xMax <= vertex2_x;
//			
//		end
//		else
//		begin
//			xMax <= vertex3_x;
//			
//		end
//		
//		//xmin	
//		if (vertex1_x < vertex2_x & vertex1_x < vertex3_x)
//		begin
//			xMin <= vertex1_x;
//			fragment_x <= vertex1_x;
//		end
//		
//		else if (vertex2_x < vertex1_x & vertex2_x < vertex3_x)
//		begin
//			xMin <= vertex2_x;
//			fragment_x <= vertex2_x;
//			
//		end
//		
//		else
//		begin
//			xMin <= vertex3_x;
//			fragment_x <= vertex3_x;
//		end
//		
//		//ymax
//		if (vertex1_y > vertex2_y & vertex1_y > vertex3_y)
//		begin
//			yMax <= vertex1_y;
//			
//		end
//		
//		else if (vertex2_y > vertex1_y & vertex2_y > vertex3_y)
//		begin
//			yMax <= vertex2_y;
//			
//		end
//
//		else
//		begin
//			yMax <= vertex3_y;
//			
//		end
//		
//		//ymin
//		if (vertex1_y < vertex2_y & vertex1_y < vertex3_y)
//		begin
//			yMin <= vertex1_y;
//			fragment_y <= vertex1_y;
//		end
//		
//		else if (vertex2_y < vertex1_y & vertex2_y < vertex3_y)
//		begin
//			yMin <= vertex2_y;
//			fragment_y <= vertex2_y;
//		end
//		
//		else
//		begin
//			yMin <= vertex3_y;
//			fragment_y <= vertex3_y;
//		end
//		
//		/////CULL TRIANGLES
//		
//		//if (det < 0)
//		//	stallOUT <= 1'b0;
//		//else
//		//	stallOUT <= 1'b1;
//		
//		fragment_c <= 16'b0000000000111111;
//		
//		setup_counter <= 2'b00;
//		
//		stallOUT <= 1'b1;
//	end
//end
//
//endmodule
//
//
//////// NEED TO PASS A WRITE ENABLE OUT FOR THE SRAM
////
////
////module Rasterizer	(
////						clock,
////						reset,
////						
////						vertex1_x,
////						vertex1_y, 
//////						vertex1_c, 
////						
////						vertex2_x, 
////						vertex2_y, 
//////						vertex3_c, 
////						
////						vertex3_x, 
////						vertex3_y, 
//////						vertex3_c, 
////						
////						fragment_x, 
////						fragment_y, 
////						fragment_c,
////						
////						stallOUT,
////						stallIN,
////						out
////					);
////					
////output [17:0] out;
////wire [17:0] out;
////
////input clock;
////input reset;
////
////input [9:0] vertex1_x;
////input [9:0] vertex1_y;
//////input [15:0] vertex1_c;
////
////input [9:0] vertex2_x;
////input [9:0] vertex2_y;
//////input [15:0] vertex2_c;
////
////input [9:0] vertex3_x;
////input [9:0] vertex3_y;
//////input [15:0] vertex3_c;
////
////output [9:0] fragment_x;
////output [9:0] fragment_y;
////output [15:0] fragment_c;
////
////reg [9:0] fragment_x;
////reg [9:0] fragment_y;
////reg [15:0] fragment_c;
////
////input stallIN;
////wire stallIN;
////
////output stallOUT;
////reg stallOUT;
////
////reg [9:0] xMin, xMax;
////reg [9:0] yMin, yMax;
////
////reg [1:0] setup_counter;
////
////wire signed [10:0] r_minus_r3_x, r_minus_r3_y;
////
////assign r_minus_r3_x = fragment_x - vertex3_x;
////assign r_minus_r3_y = fragment_y - vertex3_y;
////
////wire signed [10:0] x1_x3, x2_x3, y1_y3, y2_y3;
////
////assign x1_x3 = vertex1_x - vertex3_x;
////assign x2_x3 = vertex2_x - vertex3_x;
////
////assign y1_y3 = vertex1_y - vertex3_y;
////assign y2_y3 = vertex2_y - vertex3_y;
////
//////wire signed[17:0] det1, det2;
//////reg signed[17:0] det;
////
//////assign det1 = x1_x3 * y2_y3;
//////assign det2 = x2_x3 * y1_y3;
////
////wire signed [17:0] lambda1, lambda2;
////reg signed[17:0] lambda3;
////
////wire signed [10:0] a,b,d,e;
////reg signed [10:0] c,f;
////
////wire [17:0] clamb, flamb;
////
////assign a = y2_y3 * r_minus_r3_x;
////assign b = x2_x3 * r_minus_r3_y;
////
////assign d = y1_y3 * r_minus_r3_x;
////assign e = x1_x3 * r_minus_r3_y;
////
////
////wire [17:0] lamb1, sub1, sub2, sub3;
////
////assign lamb1 = 18'b101110111101001000;
////
//////int2fp (lamb1, 10'b1101001000, 8'b1110111);
////int2fp (clamb, c, 0);
////int2fp (flamb, f, 0);
////
////int2fp (sub2, 1, 0);
////
////fpmult f1 (lambda1, clamb, lamb1);
////fpmult f2 (lambda2, flamb, lamb1);
////
////fpadd a1(sub1, sub2, {~lambda1[17],lambda1[16:0]});
//////fpadd a2(sub3, lambda3, {~lambda2[17],lambda2[16:0]});
////
////assign out = flamb;
////
////always @(posedge clock)
////begin
////	if (reset)
////	begin
////		stallOUT <= 1'b0;
////		
////		fragment_x <= 10'd0;
////		fragment_y <= 10'd0;
////		fragment_c <= 16'b0;
////		
////		xMin <= 10'b0;
////		xMax <= 10'b0;
////		
////		yMin <= 10'b0;
////		yMax <= 10'b0;
////		
////		setup_counter <= 2'b00;
////	end
////	
////	else if (stallOUT & !stallIN)
////	begin
////		if (fragment_y < yMax)
////		begin
////			if (fragment_x < xMax)
////			begin
////				stallOUT <= 1'b1;
////				
////				fragment_x <= fragment_x + 10'd1;
////				fragment_y <= fragment_y;
////		
////				xMin <= xMin;
////				xMax <= xMax;
////		
////				yMin <= yMin;
////				yMax <= yMax;
////				
////				if (lambda1[17] == 0 & lambda2[17] == 0 & lambda3[17] == 0)
////					fragment_c <= 16'b0000000000111111;
////				else
////					fragment_c <= 16'b0;
////			end
////			
////			else
////			begin
////				fragment_y <= fragment_y + 1'b1;
////				fragment_x <= xMin;
////				fragment_c <= fragment_c;
////				
////				stallOUT <= 1'b1;
////				
////				xMin <= xMin;
////				xMax <= xMax;
////		
////				yMin <= yMin;
////				yMax <= yMax;
////				
////			end
////		end
////		
////		else
////		begin
////			stallOUT <= 1'b0;
////			
////			fragment_x <= fragment_x;
////			fragment_y <= fragment_y;
////			fragment_c <= 16'b0;
////		
////			xMin <= xMin;
////			xMax <= xMax;
////		
////			yMin <= yMin;
////			yMax <= yMax;
////		end
////	end
////	
////	else if (stallOUT & stallIN)
////	begin
////		stallOUT <= stallOUT;
////		fragment_x <= fragment_x;
////		fragment_y <= fragment_y;
////		fragment_c <= fragment_c;
////		////		xMin <= xMin;
////		xMax <= xMax;
////		
////		yMin <= yMin;
////		yMax <= yMax;
////	end
////	
////	//eventually do culling test here
////	//for now do every triangle
////	//need to set up to start incrementing here
////	else
////	begin
////	if (setup_counter == 2'b00)
////	begin
////		//xmax
////		if (vertex1_x > vertex2_x & vertex1_x > vertex3_x)
////			xMax <= vertex1_x;
////		
////		else if (vertex2_x > vertex1_x & vertex2_x > vertex3_x)
////			xMax <= vertex2_x;
////			
////		else
////			xMax <= vertex3_x;
////		
////		//xmin	
////		if (vertex1_x < vertex2_x & vertex1_x < vertex3_x)
////		begin
////			xMin <= vertex1_x;
////			fragment_x <= vertex1_x;
////		end
////		
////		else if (vertex2_x < vertex1_x & vertex2_x < vertex3_x)
////		begin
////			xMin <= vertex2_x;
////			fragment_x <= vertex2_x;
////		end
////		
////		else
////		begin
////			xMin <= vertex3_x;
////			fragment_x <= vertex3_x;
////		end
////		
////		//ymax
////		if (vertex1_y > vertex2_y & vertex1_y > vertex3_y)
////			yMax <= vertex1_y;
////		
////		else if (vertex2_y > vertex1_y & vertex2_y > vertex3_y)
////			yMax <= vertex2_y;
////
////		else
////			yMax <= vertex3_y;
////		
////		//ymin
////		if (vertex1_y < vertex2_y & vertex1_y < vertex3_y)
////		begin
////			yMin <= vertex1_y;
////			fragment_y <= vertex1_y;
////		end
////		
////		else if (vertex2_y < vertex1_y & vertex2_y < vertex3_y)
////		begin
////			yMin <= vertex2_y;
////			fragment_y <= vertex2_y;
////		end
////		
////		else
////		begin
////			yMin <= vertex3_y;
////			fragment_y <= vertex3_y;
////		end
////		
////		//if (det < 0)
////		//	stallOUT <= 1'b0;
////		//else
////		//	stallOUT <= 1'b1;
////		
////		fragment_c <= 16'b0000000000111111;
////		
////		setup_counter <= 2'b01;
////	end
////	else if (setup_counter == 2'b01)
////	begin
////		//det <= det1 - det2;
////		c <= a - b;
////		f <= e - d;
////		
////		setup_counter <= 2'b10;
////	end
////	
////	else if (setup_counter == 2'b10)
////	begin
////		lambda3 <= sub1;		
////		setup_counter <= 2'b11;
////	end
////	
////	else
////	begin
////		//lambda3 <= sub3;
////		stallOUT <= 1'b1;
////		setup_counter <= 2'b00;
////	end
////	end
////end
////
////endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -