1

I'm working on a project that requires reading and writing data to an SD card, and I want to make the algorithms that evaluate incoming data in hardware. I found out that the only way to read/write to an SD card through my FPGA board would be to implement a processor and then write software, which would defeat the purpose of using the FPGA board in the first place.

So, I've decided that I'm going to use my Arduino Yun to read information from a micro SD card, and then encode it into binary and send each piece of data to the FPGA in UART.

(The data consists of base pairs in DNA, so I'm making each base pair take up four bits, and making it into more of a logic map rather than any kind of ASCII map or anything - the details of this choice aren't very important, but it makes using UART and binary valid for this application.)

However, the only thing that can carry the UART signal for the FPGA board is the micro USB slot, so I have to plug a cable into that, and the other end of it into the USB Host of the Arduino.

I've come to understand that the Yun's USB Host is connected solely to the on-board Linux processor, and while I understand that this means that I need to install various packages onto the micro SD card that I've used to extend the Yun's memory, I'm not sure what packages to use, or even how to go about using them.

Could anyone point me in the direction of libraries/packages that I should install, and what sort of code I should write to implement this functionality?

Any help would be greatly appreciated.

Please let me know if I've left out any details!

  • 1
    "which would defeat the purpose of using the FPGA board in the first place". I beg to differ! Many FPGA application have an in board softcore (Xilinx MicroBlaze or Altera Nios II) or hardcore (Xilinx Zynq or Alters SoC) CPU. This is actually the preferred way, exactly because of the reason you describe: they offer a good interface between the processing system and the programmable logic. – JHBonarius Jan 07 '18 at 08:42
  • @JHBonarius but wouldn't that make it run software instead of hardware when analyzing the information? The whole point of using the board is that hardware is faster than software, right? – Peter Ferrarotto Jan 07 '18 at 16:11
  • I'm not sure you know what an FPGA does. It 'runs' nothing on its own(, just like a microcontroller): You program it to do something. So what the 'hardware' or 'software' does all depends on how you program it. 'Hardware' is not necessarily faster then 'software'. It depends on the hardware and software and how it's programmed. Having a (soft)uC in an FPGA does not mean the FPGA will be filled up. There are actually a large number of designs around that actually utilize *multiple* (soft)uC next to each other in one FPGA working together with the programmable logic. – JHBonarius Jan 08 '18 at 08:23
  • Multiple things: To read data from an SD card, you don't need a CPU. To read text based data from the filesystem on your SD card, you don't need a CPU either, but doing it in FPGA will take a while.You don't need to put a filesystem on your SD card, you could just as well write binary data straight to the card. In that case, going through a CPU is probably pointless, be they soft-cores on FPGA or your arduino. – DLnd Jan 08 '18 at 19:34
  • "The whole point[...] is that hardware is faster than software, right?"-There is no way to compare speeds of FPGA or CPU-based solutions if the problem is unknown. It's like comparing how fast you can get something from A to B with a sports car or an 18 wheeler-if you need to get yourself from A to B, a sports car will be faster, but if you need to transport ten tons of bricks, going round twenty times with a sports car will be slower than going once with the big rig. The process of reading from SD is serial, so a CPU would be just as fast as FPGA. Processing might benefit from the FPGA tough. – DLnd Jan 08 '18 at 19:44

0 Answers0