Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Advice needed for FPGA project

Advice needed for FPGA project

Scheduled Pinned Locked Moved The Lounge
hardwarealgorithmstestingbeta-testingperformance
23 Posts 13 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Patrice T
    wrote on last edited by
    #1

    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

    R G R M J 10 Replies Last reply
    0
    • P Patrice T

      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

      R Offline
      R Offline
      raddevus
      wrote on last edited by
      #2

      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. :)

      P 1 Reply Last reply
      0
      • P Patrice T

        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

        G Offline
        G Offline
        glennPattonWork3
        wrote on last edited by
        #3

        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.

        P 1 Reply Last reply
        0
        • P Patrice T

          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

          R Offline
          R Offline
          Rick York
          wrote on last edited by
          #4

          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?"

          P 1 Reply Last reply
          0
          • P Patrice T

            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

            M Offline
            M Offline
            Maximilien
            wrote on last edited by
            #5

            what's FPGA ?

            I'd rather be phishing!

            Z Richard Andrew x64R 2 Replies Last reply
            0
            • M Maximilien

              what's FPGA ?

              I'd rather be phishing!

              Z Offline
              Z Offline
              ZurdoDev
              wrote on last edited by
              #6

              Maximilien wrote:

              what's FPGA ?

              Female golfing.

              Social Media - A platform that makes it easier for the crazies to find each other. Everyone is born right handed. Only the strongest overcome it. Fight for left-handed rights and hand equality.

              1 Reply Last reply
              0
              • M Maximilien

                what's FPGA ?

                I'd rather be phishing!

                Richard Andrew x64R Offline
                Richard Andrew x64R Offline
                Richard Andrew x64
                wrote on last edited by
                #7

                Field Programmable Gate Array

                The difficult we do right away... ...the impossible takes slightly longer.

                1 Reply Last reply
                0
                • P Patrice T

                  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

                  J Offline
                  J Offline
                  JohnRowe
                  wrote on last edited by
                  #8

                  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

                  P 1 Reply Last reply
                  0
                  • P Patrice T

                    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

                    S Offline
                    S Offline
                    Stuart Dootson
                    wrote on last edited by
                    #9

                    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

                    P 1 Reply Last reply
                    0
                    • P Patrice T

                      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

                      R Offline
                      R Offline
                      RichB2000
                      wrote on last edited by
                      #10

                      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[^]

                      P 1 Reply Last reply
                      0
                      • P Patrice T

                        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

                        B Offline
                        B Offline
                        bigjosh2
                        wrote on last edited by
                        #11

                        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

                        P 1 Reply Last reply
                        0
                        • P Patrice T

                          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

                          C Offline
                          C Offline
                          CoolTeddyBear
                          wrote on last edited by
                          #12

                          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

                          P 1 Reply Last reply
                          0
                          • P Patrice T

                            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

                            M Offline
                            M Offline
                            Member 13883552
                            wrote on last edited by
                            #13

                            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

                            P 1 Reply Last reply
                            0
                            • R raddevus

                              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. :)

                              P Offline
                              P Offline
                              Patrice T
                              wrote on last edited by
                              #14

                              Hi all Thanks for advices. I will need time to study all those options.

                              Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                              1 Reply Last reply
                              0
                              • G glennPattonWork3

                                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.

                                P Offline
                                P Offline
                                Patrice T
                                wrote on last edited by
                                #15

                                Hi all Thanks for advices. I will need time to study all those options.

                                Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                                G 1 Reply Last reply
                                0
                                • R Rick York

                                  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?"

                                  P Offline
                                  P Offline
                                  Patrice T
                                  wrote on last edited by
                                  #16

                                  Hi all Thanks for advices. I will need time to study all those options.

                                  Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                                  1 Reply Last reply
                                  0
                                  • J JohnRowe

                                    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

                                    P Offline
                                    P Offline
                                    Patrice T
                                    wrote on last edited by
                                    #17

                                    Hi all Thanks for advices. I will need time to study all those options.

                                    Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                                    1 Reply Last reply
                                    0
                                    • S Stuart Dootson

                                      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

                                      P Offline
                                      P Offline
                                      Patrice T
                                      wrote on last edited by
                                      #18

                                      Hi all Thanks for advices. I will need time to study all those options.

                                      Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                                      1 Reply Last reply
                                      0
                                      • R RichB2000

                                        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[^]

                                        P Offline
                                        P Offline
                                        Patrice T
                                        wrote on last edited by
                                        #19

                                        Hi all Thanks for advices. I will need time to study all those options.

                                        Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                                        1 Reply Last reply
                                        0
                                        • B bigjosh2

                                          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

                                          P Offline
                                          P Offline
                                          Patrice T
                                          wrote on last edited by
                                          #20

                                          Hi all Thanks for advices. I will need time to study all those options.

                                          Patrice “Everything should be made as simple as possible, but no simpler.” Albert Einstein

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups