Live data from Hacker News

FPGA Design for Software Engineers

walknsqualk.com

31–40 of 84 posts

Re: FPGA Design for Software Engineers

#31
post #25

Ten years ago, in grad school, I co-wrote a video conferencing module in VHDL [0]. I haven't touched HDLs since but here's what I remember very clearly from that project: * It took > 3 minutes to compile our code. * DMA made a huge performance difference once we figured it out. * Realizing that we had to be one with the clock tick took a lot of time. Understanding synchronous based programming (if that's the term) wa…

Your PDF link is a 404.

Re: FPGA Design for Software Engineers

#32
post #7

Earlier quoted context omitted.

Good on you, every idiot can count to one. https://en.wikipedia.org/wiki/Bob_Widlar#Fairchild_Semicondu...

This audience is software developers. They will not have an appreciation for Widlar's genius.

Where do all the EEs hang out?

Re: FPGA Design for Software Engineers

#33
post #25

Ten years ago, in grad school, I co-wrote a video conferencing module in VHDL [0]. I haven't touched HDLs since but here's what I remember very clearly from that project: * It took > 3 minutes to compile our code. * DMA made a huge performance difference once we figured it out. * Realizing that we had to be one with the clock tick took a lot of time. Understanding synchronous based programming (if that's the term) wa…

Your PDF link is a 404.

Maybe fixed? Not a 404 for me anyway.

Re: FPGA Design for Software Engineers

#34

Small error in the article: 200*10e6 is 2GHz, not 200MHz.

Ha, good eye. corrected to 1e6 :)

Nice work. FPGA design appears to be very similar to GPU shader programming. First time I've read anything about FPGA design that connected. Usually FPGA stories get lost in data flow jargon and I learn nothing.

Re: FPGA Design for Software Engineers

#35
post #28

The problem of FPGAs is their proprietary nature, and Verilog/VHDL are far from the best languages. Gladly there is a number of open-source projects aiming to close this gap - Yosys[1], SymbiFlow[2], Chisel3[3]/FIRRTL[4]. Some time ago I suggested[5] different open source projects should unite and reuse the common intermediate language, akin to LLVM in many software development and analysis tools. From my point of vi…

Just want add Spatial [1] to your list. It is a inovative high level language, very different from the the traditional HDL.

[1] https://spatial-lang.org/

Re: FPGA Design for Software Engineers

#36

I'm surprised that no one has brought up the Lattice IceStick. It's an oversized USB stick with an ice40 FPGA on it and it's the cheapest option I've seen.

The cheapest options with much larger amount of logic are: Upduino v2.1 ($20) and the never dying EP2C5T144 board ($10).

The latter requires a USB blaster dongle to program things so the Upduino has the upper hand IMO, especially because it also has very lightweight open source tools.

Re: FPGA Design for Software Engineers

#37
post #34

Earlier quoted context omitted.

Ha, good eye. corrected to 1e6 :)

Nice work. FPGA design appears to be very similar to GPU shader programming. First time I've read anything about FPGA design that connected. Usually FPGA stories get lost in data flow jargon and I learn nothing.

I don’t really see how FPGA programming is similar to shader programming.

Re: FPGA Design for Software Engineers

#38
post #6

I recently got a TinyFPGA-BX, and have been slowly working through the tutorials. The amusing thing is that, for the actual applications I'm working on, a contemporary microcontroller can actually keep up just fine, and is easier for me to comprehend. Still, one of these days, a use will for an FPGA will crop up for which I'll be glad that I learned.

I picked up a TinyFPGA BX to make a VU-meter with strips of neopixels for a Halloween project (keystep+volca keytar with lots of reactive lights). You can do this with microcontrollers but I wanted to stretch myself and see if I could get a crazy-responsive 7-band meter working. I'm like 95% of the way there after several months learning verilog, testbenches, how a few modules off github work, the I2C protocol, and how to use a logic analyzer -- but I'm stuck trying to get a ADS1115 to do one-shot conversions reliably and probably have to implement the VU-meter with an arduino to get it done for Halloween. It's absolutely thrilling to be working with nanosecond-scale operations and totally parallel design though.

Re: FPGA Design for Software Engineers

#40

Great article, I wish the discussions around clocks had gone a bit more into how the tradeoff of pipelining vs longest operation ends up impacting designs. That and SRAM vs DRAM access latencies were the things that really connected the dots from how performance optimization on the software side of things is rooted in physical hardware limitations.

Might you or anyone else have some links or references you could share on these two topics? Was there a specific book that helped connect the dots that you could recommend?
Post reply on HN