Advice needed for FPGA project
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
I was considering something of the sort -- but not related to huge computation. There's an arduino library that will generate SHA-256 hashes. I had an arduino that was set up with a 16 x 4 LCD. I then had a bluetooth module connected to the Arduino. I could send any text to the arduino via Android app, that received the text string. The Arduino would pass it through the SHA-256 generator and calculate the hash and pass the hash back. Yes, you can generate the SHA-256 hash on the android phone itself much easier, but this was a prototype and has some of the pieces you are interested in. If you later need more computational power you can get one of the Arduinos that have those ARM chips for like $30 or cheaper and then very little of your code would have to change. Just some ideas. :)
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
Hmmm, For shear number crunching I have used Lattice, I am told that Altera are better for number crunching they are an art to use. If you can use an ARM it may be easier to do the number cruching in that and keep it all on one chip.
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
Is it something that can be done in parallel? If so, you might be able to adapt it to run on a GPU. That's what I've been doing lately and it is fascinating. For parallel computing they can be very, very fast.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
what's FPGA ?
I'd rather be phishing!
-
what's FPGA ?
I'd rather be phishing!
-
what's FPGA ?
I'd rather be phishing!
Field Programmable Gate Array
The difficult we do right away... ...the impossible takes slightly longer.
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
For a reasonably inexpensive FPGA development platform with support processor - have a look at the Evo M51 from Alorium Technology. Evo M51 | Arduino Compatible FPGA Module | Alorium Technology[^] It is an FPGA-enhanced embedded Arduino compatible microcontroller module. features a 32-bit SAMD51 microcontroller along with an Intel (Altera) MAX 10 FPGA. Atmel SAMD51 32-bit ARM Cortex-M4 Micro Intel MAX 10 FPGA Programmable with Arduino
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
I've used Xilinx products, mainly the Zynq Z7, which has a dual-core ARM together with a bunch of FPGA gates. I wasn't developing directly on the FPGA (I was putting together a Linux distro using [Xilinx's PetaLinux tools](https://www.xilinx.com/products/design-tools/embedded-software/petalinux-sdk.html)), but did have a little play with Vivado, which is Xilinx's GUI design tool, which was OK. They also do [high level synthesis](https://www.xilinx.com/html\_docs/xilinx2020\_1/vitis\_doc/introductionvitishls.html), which will translate C/C++ functions into bitstreams that you load into the FPGA and can then use from your code running on the ARM cores. Overall - a Xilinx or Altera dev kit, maybe like [this](https://www.amazon.co.uk/Diymore-Cyslonell-EP2C5T144-Learning-Development/dp/B01NCEJ8YI/ref=sr\_1\_3?crid=2YHGOLUDTBWIH&dchild=1&keywords=fpga+development+board&qid=1594297478&sprefix=fpga+%2Caps%2C187&sr=8-3) or [this](https://www.amazon.co.uk/JENOR-XC6SLX16-Spartan-Xilinx-Development/dp/B07JGLM71T/ref=pd\_sbs\_328\_6/258-6311312-7032527?\_encoding=UTF8&pd\_rd\_i=B07JGLM71T&pd\_rd\_r=382f0d1b-e743-4fdf-9bdd-eed643933073&pd\_rd\_w=3Xa6I&pd\_rd\_wg=ajxt0&pf\_rd\_p=2773aa8e-42c5-4dbe-bda8-5cdf226aa078&pf\_rd\_r=SQQAX3S047DX0DRYVAJ2&psc=1&refRID=SQQAX3S047DX0DRYVAJ2) - just be aware that you also need something on your PC to be able to produce the FPGA bitstream, and some sort of cable (like [this for Xilinx boards](https://www.amazon.co.uk/Waveshare-Download-Debugger-Compatible-Programmer/dp/B07D74PBGS/ref=sr\_1\_3?dchild=1&keywords=Xilinx+USB+Platform+Cable+Download+Debugger&qid=1594297972&s=computers&sr=1-3)) to be able to get the bitstream into the FPGA device.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
Maybe take a look at the Parallela project: Parallella[^] https://www.digikey.com/products/en/development-boards-kits-programmers/evaluation-boards-embedded-mcu-dsp/786?FV=-1|1554[^]
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
If no budget and you are mostly a software guy and are doing this because if might be useful if you can get the performance you are looking for, then consider an AWS Cloud FPGA... Amazon EC2 F1 Instances[^] No messing with drivers installing tools and and all the other stuff that you have to do before you can do what you want to do. Nicely documented with low slope paths for people coming from a software background. Probably the very fastest and cheapest way to get your algorithm actually running on an FPGA. And if it does turn out that your new FPGA is useful, you can make an image deploy it on effectively an infinite number of hardware units with a click of the mouse.
-josh
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
depends on your budget. I bought a few EP2C5T144C8N mini boards through Amazon for under $20 each but you would also need the $10 'Blaster' programming cable. Look up "RioRand EP2C5T144 Altera Cyclone II FPGA Mini Development Board " on Amazon.(free shipping) just connect to 5 volts. The Software is free from Altera (now Intel) I use Altera Quartus II 13 sp1 I have several 8 bit microprocessor emulator projects I run in them
Live long and prosper
-
Hi all, I am thinking of FPGA for an algorithm of mine, but lack of any experience with FPGAs. The activity is number crunching, no fancy IO or A/D conversion. I send a very large number, it crunch, and I get answer as a single number. One can think of it as integer factorization. Crunching is made of large additions, subtractions, shift operations (*2 and /2), increments/decrements and logical operation and bits testing, and storage in local memory. May be an embedded ARM processor to handle communication and data conversion. Algorithm can be adapted for treading. It is for hobby, so no real budget. What hardware/software would you recommend ? Already posted in Hardware forum, but no activity :(
Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein
A while back, Michaela Blott of Xilinx was the first I know of to do it all, communications and otherwise, to put a KVS onto an FPGA that handled IP requests at line rates up to 10gbps (and they projected they could do 100gbps with one FPGA node.) https://www.usenix.org/sites/default/files/conference/protected-files/blott\_hotcloud13\_slides.pdf Since then many have repeated this work in conferences, but I believe you can get her code and help if you use a Xilinx FPGA. Nice lady.
Charlie Johnson
-
I was considering something of the sort -- but not related to huge computation. There's an arduino library that will generate SHA-256 hashes. I had an arduino that was set up with a 16 x 4 LCD. I then had a bluetooth module connected to the Arduino. I could send any text to the arduino via Android app, that received the text string. The Arduino would pass it through the SHA-256 generator and calculate the hash and pass the hash back. Yes, you can generate the SHA-256 hash on the android phone itself much easier, but this was a prototype and has some of the pieces you are interested in. If you later need more computational power you can get one of the Arduinos that have those ARM chips for like $30 or cheaper and then very little of your code would have to change. Just some ideas. :)
-
Hmmm, For shear number crunching I have used Lattice, I am told that Altera are better for number crunching they are an art to use. If you can use an ARM it may be easier to do the number cruching in that and keep it all on one chip.
-
Is it something that can be done in parallel? If so, you might be able to adapt it to run on a GPU. That's what I've been doing lately and it is fascinating. For parallel computing they can be very, very fast.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
-
For a reasonably inexpensive FPGA development platform with support processor - have a look at the Evo M51 from Alorium Technology. Evo M51 | Arduino Compatible FPGA Module | Alorium Technology[^] It is an FPGA-enhanced embedded Arduino compatible microcontroller module. features a 32-bit SAMD51 microcontroller along with an Intel (Altera) MAX 10 FPGA. Atmel SAMD51 32-bit ARM Cortex-M4 Micro Intel MAX 10 FPGA Programmable with Arduino
-
I've used Xilinx products, mainly the Zynq Z7, which has a dual-core ARM together with a bunch of FPGA gates. I wasn't developing directly on the FPGA (I was putting together a Linux distro using [Xilinx's PetaLinux tools](https://www.xilinx.com/products/design-tools/embedded-software/petalinux-sdk.html)), but did have a little play with Vivado, which is Xilinx's GUI design tool, which was OK. They also do [high level synthesis](https://www.xilinx.com/html\_docs/xilinx2020\_1/vitis\_doc/introductionvitishls.html), which will translate C/C++ functions into bitstreams that you load into the FPGA and can then use from your code running on the ARM cores. Overall - a Xilinx or Altera dev kit, maybe like [this](https://www.amazon.co.uk/Diymore-Cyslonell-EP2C5T144-Learning-Development/dp/B01NCEJ8YI/ref=sr\_1\_3?crid=2YHGOLUDTBWIH&dchild=1&keywords=fpga+development+board&qid=1594297478&sprefix=fpga+%2Caps%2C187&sr=8-3) or [this](https://www.amazon.co.uk/JENOR-XC6SLX16-Spartan-Xilinx-Development/dp/B07JGLM71T/ref=pd\_sbs\_328\_6/258-6311312-7032527?\_encoding=UTF8&pd\_rd\_i=B07JGLM71T&pd\_rd\_r=382f0d1b-e743-4fdf-9bdd-eed643933073&pd\_rd\_w=3Xa6I&pd\_rd\_wg=ajxt0&pf\_rd\_p=2773aa8e-42c5-4dbe-bda8-5cdf226aa078&pf\_rd\_r=SQQAX3S047DX0DRYVAJ2&psc=1&refRID=SQQAX3S047DX0DRYVAJ2) - just be aware that you also need something on your PC to be able to produce the FPGA bitstream, and some sort of cable (like [this for Xilinx boards](https://www.amazon.co.uk/Waveshare-Download-Debugger-Compatible-Programmer/dp/B07D74PBGS/ref=sr\_1\_3?dchild=1&keywords=Xilinx+USB+Platform+Cable+Download+Debugger&qid=1594297972&s=computers&sr=1-3)) to be able to get the bitstream into the FPGA device.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
-
Maybe take a look at the Parallela project: Parallella[^] https://www.digikey.com/products/en/development-boards-kits-programmers/evaluation-boards-embedded-mcu-dsp/786?FV=-1|1554[^]
-
If no budget and you are mostly a software guy and are doing this because if might be useful if you can get the performance you are looking for, then consider an AWS Cloud FPGA... Amazon EC2 F1 Instances[^] No messing with drivers installing tools and and all the other stuff that you have to do before you can do what you want to do. Nicely documented with low slope paths for people coming from a software background. Probably the very fastest and cheapest way to get your algorithm actually running on an FPGA. And if it does turn out that your new FPGA is useful, you can make an image deploy it on effectively an infinite number of hardware units with a click of the mouse.
-josh