Arithmetic (from Shift Registers) Using the Tang Nano 9K FPGA Board

Поділитися
Вставка
  • Опубліковано 30 тра 2024
  • This video shows an FPGA project (my first) that interacts with a Raspberry Pi. The FPGA implements registers A, B, and C. It supports serial loading of A and B, the math operation C = C + A*B, and serial reading of C. It uses the educational version of the Gowin IDE, and shows how a parallel-in, parallel-out shift register is synthesized.
    Chapters
    0:00 FPGA resources to be used.
    0:35 Project goals and function.
    1:05 Design.
    2:43 Hardware setup.
    2:57 Pin assignments on FPGA and Raspberry Pi.
    3:36 Tour of project running.
    5:40 Verilog introduction.
    6:22 Serial-in, parallel-out shift register.
    7:45 Parallel-in, parallel-out shift register.
    10:28 What the PIPO synthesizes to.
    15:16 Top-level module design.
    16:02 Top-level module Verilog.
    18:31 FPGA constraints file (assigns pins)
    19:03 C program for the Raspberry Pi
    21:03 Wrapping up.
    See here for project source codes:
    github.com/grughuhler/tang_ma...
    See here for my getting started video on the Tang Nano 9K:
    • Getting started with t...
  • Наука та технологія

КОМЕНТАРІ • 4

  • @DrKnow65
    @DrKnow65 Місяць тому

    nice timing, just watched the getting started video and a minute later this is here :)

  • @phillipneal8194
    @phillipneal8194 Місяць тому

    Thank you. Very nice. Simple interface to an FPGA.

  • @jaroslavpsenicka
    @jaroslavpsenicka Місяць тому

    I'd be interested in I2C communication between the RPi and the FPGA as it seems a bit more standardized way of data exchange, I can imagine this on the RPi side, but the FPGA remains a mystery for me ATM... thanks for the tutorial BTW it's really nice

    • @electronics.tinker
      @electronics.tinker  Місяць тому

      Gowin has some i2c soft ip that might simplify the test, but it looks like the slave was written for a different FPGA than the one on the Tang Nano 9K. I plan to look into it. It may take some time. I think I must figure out bidirectional signals in a simpler context first.