3 ms·
Well comparing the FPGA world to the programming world cannot get any meaningless. If you read up about the state of HLS tools as of today, you will find enough
by blackSparrow 6y ago
Well comparing the FPGA world to the programming world cannot get any meaningless. If you read up about the state of HLS tools as of today, you will find enough experts telling you that they're nowhere near finding actual use in the industry, most of them only end up taking away the control you have over the design and all of them use way more resources when implemented than HDLs.
On the other end you have beginners asking stupid questions like 'okay how do I print hello world using python on this FPGA?' instead of thinking about the digital logic design that goes into it. Which is why I discourage the beginners from using anything but HDLs.
If anything HLS can be a good tool for professionals who already know what they're doing and understand what they're giving up by using an inherently sequential (programming) language to model inherently parallel hardware. They are in a position to use it as a tool to rapidly prototype their design and make incremental improvements thereafter, not beginners.
- bb88 6y ago> If you read up about the state of HLS tools as of today, you will find enough experts telling you that they're nowhere near finding actual use in the industry, most of them only end up taking away the control you have over the design and all of them use way more resources when implemented than HDLs. > On the other end you have beginners asking stupid questions like 'okay how do I print hello world using python on this FPGA?' And why is it not simple? Dogma? Industry standards? Drinking the FPGA vendor kool-aid? What's wrong with having "print('hello world')" run on a micropython running on a risc V core on an FPGA? Because that's not an optimal solution? Are you serious? To me that seems like an awesome first step.
- bsder 6y ago> What's wrong with having "print('hello world')" run on a micropython running on a risc V core on an FPGA? Because it betrays a misunderstanding of WHY you are using an FPGA in the first place. If you want to program a microcontroller, go get a microcontroller. You generally use an FPGA for a reason. And that reason almost always relates to speed (either latency or throughput). VERY occasionally it has to do with simply translating logic standards (changing from something like LVDS differential to standard CMOS, for example). If you don't need speed, you should go back to the microcontroller. And, even if you need speed, you should still go back to a microcontroller and see if you can bend it to your needs somehow. Programming an FPGA isn't just "throw some HDL around". Why do you need a clock? What are synchronizers and why do you need them? Why does my FPGA suddenly not have enough resources when I design a numerical divider and ask it to be fast? Digital design != programming. And vice versa. Programmers complain all the time "Git is easy. You just have to learn its mental model." and bitch about people that won't. So, why do you believe that wouldn't also hold for digital design? > And why is it not simple? How would you answer to someone complaining that "Why isn't programming simple? Dogma? Industry standards? Drinking the IDE vendor kool-aid?" As a reminder, remember, "Hello, world." is a very difficult hurdle for most non-programmers. > What's wrong with having "print('hello world')" run on a micropython running on a risc V core on an FPGA? RISC-V is slightly odd in that actual microcontroller hardware is a bit thin on the ground. However, wanting to play with RISC-V via an FPGA development board that isn't explicitly set up for that purpose is kind of like learning Rust by programming an STM32F7 development kit. You can, but boy are you making your life miserable.
- blackSparrow 6y agoThe first thing one needs to understand is that FPGAs are highly specialised tools. They're only used in cases where extraordinary performance is required, more than what processors can provide, just because there are tools nowadays that let you print hello world doesn't mean it's a good idea. The entire thought process behind digital design is very different from that of programming.
- bb88 6y agoWhether or not that's a valid critique, it puts you as a gatekeeper to who can or cannot learn what an FPGA can do. Sorry, I believe knowledge should not have gatekeepers.