Ask HN: Are you interested Q&A with the FPGA hackers of HN?

I thought it might be of interest to the community for those of us with fpga/asic experience here, professional or otherwise, to do a Q&A.

I do fpga and asic design, and verification, for a living; with a little clojure mixed in.

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!

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&A itself.

I have a lot of experience but in a narrow field, so I’ll answer what I can.

But I really hope other asic/fpga hackers will jump in. I have as much to learn as anyone.

Well, let’s see what happens.

13 points | by FPGAhacker 1922 days ago

6 comments

  • walterbell 1922 days ago
    Possible topic: open-source and FPGAs, https://web.archive.org/web/20170401020525/https://www.blink...

    > 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

    • goekce 1920 days ago
      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

    • FPGAhacker 1922 days ago
      I very much agree about the "on-ramp" aspect. With very capable FPGAs having low-cost entries (comparatively), and even some open source synthesis tools available, the future of people being able to pick this stuff up purely out of curiosity is starting to look good.

      I've made some effort in the past to put together materials for an "on ramp," but at the time Project IceStorm wasn't a thing. The best I could offer was just simulation. Not being able to build something physical doesn't generate much motivation.

      Things are definitely different now, and I'm thinking about revisiting the topic. I need to survey what's out there already though.

  • injb 1920 days ago
    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 1920 days ago
      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 1920 days ago
    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 1920 days ago
    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 1919 days ago
      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 1919 days ago
        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 1922 days ago
    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 1922 days ago
      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 1922 days ago
    Definitely! Would love to see some discussions about Open Source FPGA development (ex. TinyFPGA, iCEBreaker, FOMU)!
    • FPGAhacker 1922 days ago
      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.