Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20645 Discussions

which altera board should i use in my robotic project

Altera_Forum
Honored Contributor II
998 Views

Hi  

I have a robotic project in which i have to controlle 3 powerful steppers motor ,keyboard, VGA, and 40 leds . 

I did work with altera de1 board only when i was in school, i don't know about the others altera products . 

So please can anyone advise me which board is good for my project ? 

i liked de1 board is it good for this project ?
0 Kudos
8 Replies
Altera_Forum
Honored Contributor II
301 Views

The DE1 would be a good choice, in my view, for 3 reasons: 1) it directly supports VGA, b) it directly supports a keyboard and c) you've used it before. It's also pretty cheap - make that 4 reasons :) 

 

It will also quite happily control the stepper motors - but isn't suitable for actually driving them. You will need additional circuitry for this - discrete FETs or other appropriate driver circuitry. 

 

It doesn't have 40 LEDs either, but I have to assume you're putting these elsewhere too. The DE1 has sufficient spare I/O for 40 LEDs and control signal for the stepper. 

 

There may be other boards worth considering, but they're unlikely to be as cheap. If you wish to look beyond the DE1 let me know. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

thank you Alex  

i think i'll go for de1 board.  

for steppers i will purchse motordriver 

one more question : i have to always upload my programe in de1 board every time i shut it down ?(i want my programe to stay permanent on it).
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

Look at chapter 4 of the DE1 board's user manual. If you don't have it you can download the manual from here: de1 user manual (http://www.terasic.com.tw/cgi-bin/page/archive_download.pl?language=english&no=83&fid=91d2cf46f90973377b1f71bd42040740

 

It discusses putting the FPGA's configuration image into an EEPROM using Active Serial (AS) mode. Once done your board will automatically load the FPGA, from the EEPROM, when the board is powered up. 

 

Regards, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

Hi ther again 

I purchased altera De1 board and begin my development in it. 

i had to display in VGA some data 

and control X Y and Z axes steppers to 600 positions. 

but when i was programming some characters to display in VGA i got this error message : 

"170011 Design contains 20486 blocks of type combinational node. However, device contains only 18752" 

"171000 Can't fit design in device" 

So, it means de1 board is not good enough for my design, and i have to purchase another development board more powerful ?
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

You could by another, bigger board - yes... 

 

However, I recommend you consider your code and whether it's written sensibly. The DE1 board should have plenty of FPGA resource to drive the VGA port it supports - as well as everything else. If you've written your code inefficiently you could end up with that error. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

hi thank you for respond  

her it'is one function to display an O: 

--O 

Function Ch_O (y,x,Y_O,X_O,Taille:integer) return std_logic is --x and y are pixel column and row  

begin --Y_O and X_O are position wher to diplay O 

--Taille is size of character O 

if((x-(x_O+(50*Taille/100)))*(x-(x_O+(50*Taille/100)))+(y-(Y_O+(50*Taille/100)))*(y-(Y_O+(50*Taille/100)))<=(50*Taille/100)*(50*Taille/100) and (x-(x_O+(50*Taille/100)))*(x-(x_O+(50*Taille/100)))+(y-(Y_O+(50*Taille/100)))*(y-(Y_O+(50*Taille/100)))>=(40*Taille/100)*(40*Taille/100) ) then 

return '1'; 

else return '0'; 

end if; 

end function Ch_O; 

 

so like that i create for evry character(A B C D E ....) a funcion with mathematical equation to display them. 

so when i display ABCDEFGHIJKLMNOPQRS at S its the error comme out :confused: . 

i didnt even programme the motors drive yet.
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

I'm afraid my suspicion was about right - your code doesn't really lend itself to FPGA gates...:oops: 

 

You have 18 (yes - eighteen!) multipliers instantiated in your statement. Furthermore, you're asking your FPGA to evaluate this statement in a single clock cycle. Finally, you say you're intending to have a statement like this for every letter of the alphabet... 

 

So, I'm not surprised you've run out of FPGA resource. 

 

You need to reconsider how your code is written having first (I suggest) done a little more background reading. Whilst FPGAs can create multipliers it really can't implement them as you've written. 

 

To do what you're trying to do you need to learn about pipe-lining your code. This means splitting your code up to evaluate your statement over multiple clock cycles. Do little pieces at a time. Given what you're trying to do you will have plenty of clock cycles in which to do this. 

 

I've not had a good look through this link but the opening paragraph tells me it's on the right lines - what is pipelining? explanation with a simple example in vhdl (http://vhdlguru.blogspot.co.uk/2011/01/what-is-pipelining-explanation-with.html). Start inserting some (lots) of flip flops in your code. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
301 Views

Thank you very much for your help. 

Now i understand i will modify my code with pipeline, thank you again :D
0 Kudos
Reply