
Ask HN: Are you interested Q&A with the FPGA hackers of HN? - FPGAhacker
I thought it might be of interest to the community for those of us with fpga&#x2F;asic experience here, professional or otherwise, to do a Q&amp;A.<p>I do fpga and asic design, and verification, for a living; with a little clojure mixed in.<p>I’ve seen a number of others here that do the same or similar.  Hobbyists, pros, people that have picked it up by osmosis, what have you.   Please join in!<p>I haven’t really thought this through beyond asking the question.  So maybe this thread will be both the gauge of interest and also be the Q&amp;A itself.<p>I have a lot of experience but in a narrow field, so I’ll answer what I can.<p>But <i>I really hope other asic&#x2F;fpga hackers will jump in</i>. I have as much to learn as anyone.<p>Well, let’s see what happens.
======
walterbell
Possible topic: open-source and FPGAs,
[https://web.archive.org/web/20170401020525/https://www.blink...](https://web.archive.org/web/20170401020525/https://www.blinklight.io/blog/2017-03-31/)

 _> Open source projects die from diffusion. If there's not enough
contributors concentrated in one place, code rots, bugs persist, and projects
get abandoned. In contrast, where lots of traffic is concentrated in a
relatively small bundle of code paths, the virtuous feedback loops kick in ...
FPGA development has always been an industrial activity, dominated by
brutalist, opaque, and proprietary tools. There are open source tools and
communities, and I don't want to diminish their significant achievements, but
there is simply no comparison between the ease of jumping into open source
programming versus open source chip design. OSS needs FPGAs, and FPGAs need
what programming had back in the 1980s: an on-ramp. A place where people can
get up to speed in a friendly environment explicitly designed for that
purpose._

There's an OSS FPGA workshop in March 2019 at DATE in Florence, [https://date-
conference.com/conference/workshop-w10](https://date-
conference.com/conference/workshop-w10)

~~~
goekce
It is good to hear that there is even an OSS FPGA workshop! They have even a
panel discussion about how to run a sustainable business with open source
hardware development. I would like attend!

Aside from open source on-ramp efforts the FPGAs should be easily usable by
software developers. So more software developers would work with FPGAs instead
of the electrical engineers mostly without the knowledge and appreciation of a
convenient software development environment. For example, most of the time I
try to utilize Makefiles, git, continuous integration in my FPGA projects.
Some of my former FPGA developer colleagues are electrical engineers which
became FPGA developers later. These colleagues were just happy when they could
draw something on the GUI, and did not pay any attention to the garbage of
files generated by the CAD tool during commit at all.

An idea to make the FPGAs more tasteful is the Pynq platform [1] that I
discovered last year. The platform can leverage FPGA acceleration in Python
environment, and the different bitstreams are loaded on-demand (in an app
fashion). I am planning to give workshops about this platform.

[1] [http://www.pynq.io](http://www.pynq.io)

------
injb
I'm just starting to learn the Project Icestorm tools as an FPGA beginner
(using the Nandland Go board). I'm just a hobbyist, but I'm really interested
in seeing how FPGAs can be used for custom hardware acceleration. These days
you can't hear anything about the cloud without hearing about FPGAs being used
for acceleration, but all the big companies are pretty tight lipped about the
details of what they're actually doing with them. Realistically, could I take
a frequently used C library, implement it as a hardware function in an FPGA,
and integrate that with my computer via PCI Express, or USB 3 etc., and
actually get a speed improvement?

~~~
zerohp
No. It's not realistic to get an improvement that way. FPGAs can provide
improvement in some important cases but the system design (software and
hardware co-design) is radically different. You can't expect to iterate your
way there when you're starting with a conventional software-only system
running on a generic white-box server.

------
goekce
I also work with FPGAs since 2010. I love especially the minimalism that an
FPGA can offer despite the verification effort.

I would also like to meet FPGA developers with the hacking and open source
culture in mind.

Even I had the luck of being involved mostly in FPGA-related projects in my
career, I also see the trend of using more standardized hardware platforms for
embedded systems. This means that Linux-based systems are preferred over bare-
metal solutions, which can decrease development time but in the same time
increase fault and attack surface. What do you think?

------
tjkrusinski
An area of FPGA development and process that I generally don't full grasp is
how to interact with FPGAs in a high bandwidth way with a computer. That is,
say I want to use an FPGA to process output from a high bandwidth sensor,
operate on it, then make that available to a process. What does that look like
practically?

~~~
injb
It might help to elaborate a little - are you asking about how your device
would be connected to the computer (USB, Ethernet etc.) or how each end of
those protocols is implemented, or something else? And what do you mean by
"high bandwidth"? I'm not really qualified to answer you anyway, but I know
you can implement things like USB and Ethernet in an FPGA, or you can use
separate ICs that handle these things by exposing a serial or parallel
interface to your FPGA (UART, SPI etc.).

~~~
tjkrusinski
Yeah I mean I guess I'm looking for what options there are for interfacing
with computers in a standard way. I get needing to implement something like
SPI or I2C or etc but I'm curious to know what the best options are,
especially if you are wanting to interface with PCIe.

Is it best to interface directly with the PCIe bus from the FPGA? Is it better
to abstract with some kind of IC? Is the board or the computer the master
clock? Is there some kind of encoding scheme that needs to be adhered to?

------
yamrzou
Thank you! What kind of personal projects could a beginner (recent electronics
graduate, with little knowledge of FPGA) hack with FPGA that would be
valuable:

1- In terms of skills learned?

2- To increase her attractiveness in the job market?

~~~
FPGAhacker
I'm not sure what topics are covered by 'electronics graduate.' Did this cover
things like digital design/logic design?

I should make a list of topics from the absolute basics like binary arithmetic
through more complex things like sequential logic and state machines.

The job aspect is more complicated for me. In the areas I've worked, a 4 year
bachelors in CS, CE or EE is a prerequisite. Sometimes a masters degree as
well, although that has varied over the years.

Startups are, I think, more likely to bring someone in based on their public
work. I don't have startup experience so I'm not the right person to answer
that beyond speculating.

If I were founding a startup and needed FPGA talent, I'd be open to
interviewing someone that could demonstrate understanding of clock domains,
synchronization schemes, state machine design, pipelining, AMBA. If you had
demonstrated board design/prototyping, even better.

One of the projects I would have liked to have done in the past personally
would be to make an effects processor for an electric guitar/bass. Really,
even without any signal processing, this would be an impressive project.
Making use of analog-to-digital converter(s), bringing in the data to the
FPGA, having a place holder block that just passed the data through, and an
interface piping data to a digital-to-analog converter would be a useful
platform for demonstrating digital design understanding.

And really this could apply to any sort of "signal." Guitar just happens to be
a place where digital logic and signal processing intersects nicely.
Microphone and voice would work too.

You could really go nuts with this though, use it as a platform to learn about
filtering, frequency shifting. You could make a harmonizer. Come up with your
own auto-tune. It would be fun with immediate feedback.

------
hongseleco
Definitely! Would love to see some discussions about Open Source FPGA
development (ex. TinyFPGA, iCEBreaker, FOMU)!

~~~
FPGAhacker
iCEbreaker looks pretty great as a starter platform. I hope if it takes off
that they offer a larger FPGA core module.

I need to spend some time looking this over.

