Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

draw lines, circles, squares on FPGA by mouse and display on VGA ( not use NIOS)

Status
Not open for further replies.

gunnerunbeaten

Member level 2
Joined
Nov 15, 2010
Messages
42
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
1,551
hi everybody !! im from vietnam . this web is very useful ..;)
.....
the project is "draw lines, circles, squares on FPGA by mouse and display on VGA " .I have to completed within a month..
...
plesea help me , all friend in the world !
What is the algorithm ???


thanks you so much !

p/s: my english is not good . hope everyone will understand what I mean !
---------
update :
v. i have connected mouse and VGA to DE2 .
----------------------------------------------------------now , im doing draw line but deadlock-------------------------------
 
Last edited:

sounds pretty hard - what have you done so far?
 

Who knows how to do this month will not ask. And who asks - will not do. Even owning a video output via VGA, work with a ps / 2 mouse I would not dare put a date month
 

sounds pretty hard - what have you done so far?
..i have connected mouse and VGA to DE2 . display point mouse on VGA . now , im coding draw line .. thanks for helping !
...................
when i code , have a problem :


Code:
else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + p_regb- 5) && Cursor_X <=(p_reg1 +p_regb+5 )&& Cursor_Y >=(l_reg1 +l_regb- 5) && Cursor_Y <=(l_reg1 +l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
			
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 2*p_regb- 5) && Cursor_X <=(p_reg1 + 2*p_regb+5 )&& Cursor_Y >=(l_reg1 +2*l_regb- 5) && Cursor_Y <=(l_reg1 +2*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 3*p_regb- 5) && Cursor_X <=(p_reg1 +3*p_regb+5 )&& Cursor_Y >=(l_reg1 +3*l_regb- 5) && Cursor_Y <=(l_reg1 +3*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 4*p_regb- 5) && Cursor_X <=(p_reg1 +4*p_regb+5 )&& Cursor_Y >=(l_reg1 +4*l_regb- 5) && Cursor_Y <=(l_reg1 +4*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 5*p_regb- 5) && Cursor_X <=(p_reg1 +5*p_regb+5 )&& Cursor_Y >=(l_reg1 +5*l_regb- 5) && Cursor_Y <=(l_reg1 +5*l_regb 
					data_r <= 10'd0;+5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 6*p_regb- 5) && Cursor_X <=(p_reg1 +6*p_regb+5 )&& Cursor_Y >=(l_reg1 +6*l_regb- 5) && Cursor_Y <=(l_reg1 +6*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 7*p_regb- 5) && Cursor_X <=(p_reg1 +7*p_regb+5 )&& Cursor_Y >=(l_reg1 +7*l_regb- 5) && Cursor_Y <=(l_reg1 +7*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 8*p_regb- 5) && Cursor_X <=(p_reg1 +8*p_regb+5 )&& Cursor_Y >=(l_reg1 +8*l_regb- 5) && Cursor_Y <=(l_reg1 +8*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 9*p_regb- 5) && Cursor_X <=(p_reg1 +9*p_regb+5 )&& Cursor_Y >=(l_reg1 +9*l_regb- 5) && Cursor_Y <=(l_reg1 +9*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 10*p_regb- 5) && Cursor_X <=(p_reg1 +10*p_regb+5 )&& Cursor_Y >=(l_reg1 +10*l_regb- 5) && Cursor_Y <=(l_reg1 +10*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end
		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 11*p_regb- 5) && Cursor_X <=(p_reg1 + 11*p_regb+5 )&& Cursor_Y >=(l_reg1 + 11*l_regb- 5) && Cursor_Y <=(l_reg1 +11*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
			
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 12*p_regb- 5) && Cursor_X <=(p_reg1 + 12*p_regb+5 )&& Cursor_Y >=(l_reg1 +12*l_regb- 5) && Cursor_Y <=(l_reg1 +12*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 13*p_regb- 5) && Cursor_X <=(p_reg1 +13*p_regb+5 )&& Cursor_Y >=(l_reg1 +13*l_regb- 5) && Cursor_Y <=(l_reg1 +13*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 14*p_regb- 5) && Cursor_X <=(p_reg1 +14*p_regb+5 )&& Cursor_Y >=(l_reg1 +14*l_regb- 5) && Cursor_Y <=(l_reg1 +14*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 15*p_regb- 5) && Cursor_X <=(p_reg1 +15*p_regb+5 )&& Cursor_Y >=(l_reg1 +15*l_regb- 5) && Cursor_Y <=(l_reg1 +15*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 16*p_regb- 5) && Cursor_X <=(p_reg1 +16*p_regb+5 )&& Cursor_Y >=(l_reg1 +16*l_regb- 5) && Cursor_Y <=(l_reg1 +16*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 17*p_regb- 5) && Cursor_X <=(p_reg1 +17*p_regb+5 )&& Cursor_Y >=(l_reg1 +17*l_regb- 5) && Cursor_Y <=(l_reg1 +17*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 18*p_regb- 5) && Cursor_X <=(p_reg1 +18*p_regb+5 )&& Cursor_Y >=(l_reg1 +18*l_regb- 5) && Cursor_Y <=(l_reg1 +18*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 19*p_regb- 5) && Cursor_X <=(p_reg1 +19*p_regb+5 )&& Cursor_Y >=(l_reg1 +19*l_regb- 5) && Cursor_Y <=(l_reg1 +19*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end		
		else if ((p_reg2 >= p_reg1)&&(l_reg2 >= l_reg1)&&en&&Cursor_X >=(p_reg1 + 20*p_regb- 5) && Cursor_X <=(p_reg1 +20*p_regb+5 )&& Cursor_Y >=(l_reg1 +20*l_regb- 5) && Cursor_Y <=(l_reg1 +20*l_regb +5 ))
				begin
					data_r <= 10'd0;
					data_g <= 10'd0;
					data_b <= 10'd0; 
				end

----- it run oke but too long , so i change to for loop:
Code:
integer i;
  else if ((p_reg2 >= p_reg1)&& (l_reg2 >= l_reg1)&& en)
		        begin
				   
                    for(i=0;i<21;i=i+1)
                       begin
                         if( Cursor_X >=(p_reg1 + i*p_regb- 5) && Cursor_X <=(p_reg1 +i*p_regb+5 )&& Cursor_Y >=(l_reg1 +i*l_regb- 5) && Cursor_Y <=(l_reg1 +i*l_regb +5 ))
                            begin
					          data_r <= 10'd0;
					          data_g <= 10'd0;
					          data_b <= 10'd0; 
				            end
				     end
				end
..... but it not run ??? what eros ?
 
Last edited by a moderator:

Looks like its not running because you think that HDL is a programming language.

I suggest you go and start a digital logic course. you really need to go back to basics. And I really doubt you'll complete this in a month.
 

device must be divided into 4 modules.
1. video card
2. mouse interface
3. telemetry module
4. graphic processing unit.

each of these modules being debugged separately.
must start with the telemetry module, which enables the COM port to watch the state of the blocks.

video card consists of a sync generator control of the display. Dual-port memory.

---------- Post added at 08:43 ---------- Previous post was at 08:41 ----------

Ultimately, this task of creating a personal computer.
 

every body please help me ! please send me data about project :-?
 

I already told you the problem, and gave you a solution.

Have you drawn your circuit diagram out on paper?
 

I already told you the problem, and gave you a solution.

Have you drawn your circuit diagram out on paper?
hi. i have connected three point but have problem with four point !
code :
begin
if( btnm[0]&&a==2'b00) // first click left mouse . save point 1
begin
#10000;
p_reg1 <= p_reg;
l_reg1 <= l_reg;
en=0;
LEDR=4'b0001;
a=2'b01;

end
else if(btnm[0]&&a==2'b01) // second click left mouse . save point 2.
begin
#10000;
p_reg2 <= p_reg;
l_reg2 <= l_reg;
LEDR=4'b0010;
en=0;
a=2'b10;
end
else if(btnm[0]&&a==2'b10) // third click left mouse . save point3.
begin
#10000;
p_reg3 <= p_reg;
l_reg3 <= l_reg;
LEDR=4'b0100;
en=0;
end
else if(btnm[1]) // click right mouse . save point 4.
begin
#10000;
p_reg4 = p_reg;
l_reg4 = l_reg;
LEDR=4'b1000;
en=1;
end
problems :
1. when i click first , sencond , third left mouse . all value of "en , LEDR " are value of "en , LEDR" in state third click left mouse ( en =0; LEDR=4'b0100) .
2. point 2 doesn't saved . only saved ponit 1 , 3 ,4 .
 

vhdl is not a programming language
 

to do something in C + + certainly started with a hello world! Here and there, before taking over the project, which is not easy even for a developer with experience in 10 years, we must learn the syntax of the language and make a simple project. Then the project is more complicated. Then try to do, such as mouse controller. And so on. And do not set goals, the complexity and which are not even

---------- Post added at 16:53 ---------- Previous post was at 16:52 ----------

how to edit the code no understand what to do

---------- Post added at 16:55 ---------- Previous post was at 16:53 ----------

code of this size will be a few thousand lines of text
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top