[HN Gopher] FPGA Advent Calendar
       ___________________________________________________________________
        
       FPGA Advent Calendar
        
       Author : hasheddan
       Score  : 58 points
       Date   : 2021-12-19 13:41 UTC (9 hours ago)
        
 (HTM) web link (twitter.com)
 (TXT) w3m dump (twitter.com)
        
       | justwannalearn wrote:
       | All that looks so fun! I'm in university right now and I have the
       | means to do things - the uni provides an oscilloscope and a bunch
       | of electronics free to use. I bought my own FPGA, but currently
       | have no lecturers who know their way around them. I really want
       | to do something cool with it, I've spent money on Udemy courses
       | but everything is still so intimidating even after finishing
       | them. I could at least interface with an i2c sensor. But man,
       | even just a simple matrix multiplication module/architecture is
       | beyond my means.
       | 
       | What should I do to learn so I can join in on making projects
       | like in the FPGA Advent Calendar?
        
         | mysterydip wrote:
         | May I also recommend this cheap but excellent logic analyzer:
         | https://www.amazon.com/dp/B077LSG5P2/ref=cm_sw_r_cp_api_glt_...
         | That combined with the open source PulseView software
         | (https://www.sigrok.org/wiki/PulseView) has been invaluable
         | with my debugging.
        
         | niccl wrote:
         | I think the key to learning FPGAs, as in most other languages,
         | is to find a small project that really grabs you and blunder
         | along with that until you've got something that works. Then you
         | realise how you'd do it better and what you don't know and ...
         | 
         | For me and FPGA's it came out of a friend asking why you have
         | 12 semitones in a scale, and what would happen if you had 13.
         | The idea of a polyphonic synth with 13 semitones in a scale was
         | born. That led to trying to understand clocks, dividers,
         | metastability on inputs, synthesis for testing and test rigs,
         | simple DAC and all sorts that I can't recall now.
         | 
         | And 13 semitones in a musical scale is a really dumb idea. A
         | great way to twist the head of musician friends but dumb...
        
           | dtgriscom wrote:
           | > And 13 semitones in a musical scale is a really dumb idea.
           | 
           | But, now you know that for sure!
        
         | wrycoder wrote:
         | You need a solid background in digital electronics to start.
         | 
         | 1. Nand2Tetris
         | 
         | 2. Books:
         | 
         | The Art of Electronics, especially the last half.
         | 
         | Learning the Art of Electronics. Also especially the last half.
         | 
         | 3. You should have a good understanding of programming in C.
        
           | vlovich123 wrote:
           | With FPGAs? It's been a long time since college but I recall
           | my FPGA experience being very much like programming once you
           | realized all lines of code executed in parallel and
           | "function" calls were just connecting wires. I don't recall
           | many issues. Maybe some things around synthesizability but I
           | can't recall anymore if this applied to FPGAs or just ASICs
        
             | wrycoder wrote:
             | The first half of Nand2Tetris is about synthesizing a small
             | computer using a hardware definition language (HDL) that
             | was invented for the book[0]. It's similar to Verilog.
             | 
             | It's true that creating a design in Verilog is similar to
             | conventional programming, but looks are deceiving. While
             | conventional software (in C, for example) is a series of
             | sequential steps, Verilog has two types of statements:
             | combinational, which combine inputs and outputs using
             | boolean logic, and sequential, which are structures
             | implemented by networks of flip-flops, and which are
             | clocked and which act as memory elements. All the
             | combinational statements take place "instantly", while all
             | the sequential statements in the program are executed at
             | the same time when the clock pulses. The clock causes the
             | whole program to make a step and then re-evaluate the
             | combinatorial statements in preparation for the next clock.
             | 
             | I suppose one could write Verilog code without any
             | knowledge of electronics, and I imagine some programmers do
             | that under the direction of engineers who do understand
             | digital design.
             | 
             | The last halves of the two books I suggested teach digital
             | design. I think it's necessary, at a minimum, to understand
             | something about the possibilities, limitations, and
             | conventional approaches before expecting to produce a
             | useful FPGA design. You don't usually want to spend a lot
             | of time re-implementing something in an FPGA that you could
             | just buy from Mouser and which would be much cheaper and a
             | lot faster.
             | 
             | Also, it's necessary to understand how to interface the
             | FPGA to the real world, so a knowledge of digital design is
             | required.
             | 
             | The first halves of those two books is about analog design,
             | which is also useful when interfacing to real world sensors
             | and actuators.
             | 
             | [0] https://www.nand2tetris.org/book
        
         | anfractuosity wrote:
         | I found playing with ws2811 lights fun with an FPGA. I created
         | a little double buffer in BRAM and was going to build an SPI
         | interface to drive them via a Pi, which I need to get round to.
        
       | WillFlux wrote:
       | Twitter thread author here. If this inspires you to learn more
       | about FPGAs:
       | 
       | 1. Recommended FPGA Sites: https://projectf.io/recommended-fpga-
       | sites/
       | 
       | 2. Project F: https://projectf.io/sitemap/
       | 
       | 3. Project F GitHub: https://github.com/projf/projf-explore
        
         | anfractuosity wrote:
         | I really like Hamsterworks too -
         | https://web.archive.org/web/20191020204100/http://www.hamste...
         | shame it's only on archive.org now :(
        
           | WillFlux wrote:
           | Yes. Hamsterworks is a great resource. I learnt a fair bit
           | from this site when I started with FPGAs. I'll add the
           | archived version to my recommended resources page.
        
       | progbits wrote:
       | Really cool stuff there, this can satisfy my rabbit hole needs
       | for the next month :)
       | 
       | BTW, slightly better UX here:
       | https://threadreaderapp.com/thread/1465268154733637633.html
        
       | mysterydip wrote:
       | Some really neat stuff on there. My favorite is this minecraft
       | clone on a tiny FPGA: https://github.com/nickmqb/fpga_craft
        
       ___________________________________________________________________
       (page generated 2021-12-19 23:02 UTC)