WebFPGA (2019)

(webfpga.io)

93 points by gurjeet9 hours ago

15 comments

  • zamadatix8 hours ago
    (2019). What's the latest on sub-$100 FPGAs this decade, anything significantly better than the Mojo I picked up back in 2013 to tinker with?
    • fny1 minute ago
      I just picked up this as a dev board which has an RPi mcu attached and supports Diligent pmods:<p><a href="https:&#x2F;&#x2F;tinyvision.ai&#x2F;products&#x2F;raspberry-pi-pico-2-development-board-with-fpga" rel="nofollow">https:&#x2F;&#x2F;tinyvision.ai&#x2F;products&#x2F;raspberry-pi-pico-2-developme...</a>
    • AyyEye3 hours ago
      The fomu is fully open source, supports an open toolchain, and fits in your USB port. $50 <a href="https:&#x2F;&#x2F;www.crowdsupply.com&#x2F;sutajio-kosagi&#x2F;fomu" rel="nofollow">https:&#x2F;&#x2F;www.crowdsupply.com&#x2F;sutajio-kosagi&#x2F;fomu</a><p>It&#x27;s capable enough to run a risc v softcore
    • SuperMouse5 hours ago
      I think there are two interesting ways:<p>1. Either go for the Gowin FPGAs from China. You can get good boards for cheap from Ali.<p>2. There are FPGAs that now have a FOSS chain. They are very interesting too.
    • scottapotamas7 hours ago
      Depends on what you&#x27;re wanting to do.<p>The OSS toolchains have matured a lot since then, with parts from Lattice being fairly well supported if you don&#x27;t want to touch a vendor&#x27;s tooling.<p>Gowin have some of the more interesting new parts which sit on a different part of the cost&#x2F;feature curve. The Tang Nano boards seem fairly popular but I only have experience with far larger GW5 parts.<p>The newer parts from Intel&#x2F;AMD have increasingly impressive hard-peripherals and internal features, but not that relevant unless you know what you want&#x2F;need.
    • ForgotMyUUID5 hours ago
      CMOD S7 by Diligent. Slightly higher than 100 bucks but it is definitely a starter&#x27;s choice.
  • eqvinox5 hours ago
    Or, how about you just run the FPGA toolchain on WASM:<p><a href="https:&#x2F;&#x2F;yowasp.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;yowasp.org&#x2F;</a><p>(&#x27;mad propz&#x27; to Catherine&#x2F;whitequark)
    • RossBencina4 hours ago
      +1. I&#x27;ve used this with Lattice UP5K for some experimental development. I wanted to be able to quickly skip between working on Windows and Linux. Worked well at the time.
  • paaloeye9 hours ago
    Outside of hello worlds, I’m always struggling to find a use case for such small boards. Any ideas?
    • gregsadetsky8 hours ago
      I&#x27;ve started to dabble in this only very recently. I have two iCEBreaker boards [0] in the mail right now that I&#x27;m excited for.<p>From what I understand, one of the big advantages of the up5k chip (the same chip on the webfpga and the icebreaker) is that there&#x27;s an open toolchain that runs in seconds (at this chip size), which is not the case in the closed&#x2F;Vivado&#x2F;&quot;typical fpga&quot; part of the world. (feel free to correct me)<p>Purely in simulation this week, I had Claude (Fable) design a working Tetris out of 1400 relays - originally, this was for a Minivac web simulator that I&#x2F;Fable had built [1]. Then, it compiled the relay netlist to Verilog and ran it on the simulated chip, comparing this (bezerk) port relay-for-relay against the original simulator. All matching (total llm time: less than an hour). I had it also make a viz of the netlist blinking through one simulated run [2] - sort of like visual6502.org..!<p>Today, I (Fable) ported tinystories [3], a very small language model to this exact same chip. It&#x27;s currently &quot;golfing&quot; to get it to fit onto the real chip size (it&#x27;s ~10% over, I&#x27;m hopeful). EDIT: it just golfed it! ~~7 tokens&#x2F;sec at 12Mhz in simulation!<p>None of these are &quot;use cases&quot;, but these boards seem small&#x2F;cheap enough that you can do new deranged things with them, which is very very exciting to me. I see a great future.<p>[0] <a href="https:&#x2F;&#x2F;1bitsquared.com&#x2F;products&#x2F;icebreaker" rel="nofollow">https:&#x2F;&#x2F;1bitsquared.com&#x2F;products&#x2F;icebreaker</a><p>[1] <a href="https:&#x2F;&#x2F;minivac.greg.technology&#x2F;tetris&#x2F;" rel="nofollow">https:&#x2F;&#x2F;minivac.greg.technology&#x2F;tetris&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;necessary-doom-48128.ondis.co&#x2F;" rel="nofollow">https:&#x2F;&#x2F;necessary-doom-48128.ondis.co&#x2F;</a><p>[3] <a href="https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2305.07759" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2305.07759</a>
      • punnerud6 hours ago
        A trick to fit language models of this size it to remove the word to embeddings from the NN, and have a database to look up a dictionary of words and their embeddings. This way the LLL only need the &quot;core&quot; and you do the reverse for loopup again (kind of Text-&gt;RAG-&gt;LLM-&gt;RAG-&gt;Text). Have an example here: <a href="https:&#x2F;&#x2F;punnerud.github.io&#x2F;pyspell&#x2F;" rel="nofollow">https:&#x2F;&#x2F;punnerud.github.io&#x2F;pyspell&#x2F;</a><p>The example have a limited language of around 1000 words, but make it possible to do Python (like) programming with LLM on an ESP32.
        • gregsadetsky6 hours ago
          wow, that tailscale-in-browser demo is wild..!<p>re: language model - here, the embedding lookup, layers, logits all run on-chip and loops its own output back.<p>the only off-chip piece is the id to string table, i.e. the chip (once I get it!) will speak token ids and my laptop will print them as letters
          • punnerud3 hours ago
            The demo use WASM&#x2F;browser when available, but also supports running only on ESP32. Figured out I could offload and give the users a better experience when available.<p>Thanks for noticing the Tailscale demo. Created a Tailscale-Rust client that supports NAT-traversial, encryption etc. and manage to run on ESP32 (together with the local LLM). Just the Tailscale part can be found here: <a href="https:&#x2F;&#x2F;github.com&#x2F;punnerud&#x2F;tailscale-mpe-rust" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;punnerud&#x2F;tailscale-mpe-rust</a>
    • leeter9 hours ago
      Examples include:<p>* replacements for the C64 PLA, CIA, and potentially the SID<p>* Glue logic for a bread board project where it would require a lot of 74 or 4k series logic<p>* Translating TTL to VGA etc.<p>These are things people have used FPGAs for quite commonly
    • gsliepen4 hours ago
      For FPGAs in general: When latency is important. Even a $1 MCU has a huge amount of compute power nowadays, and they can simulate many things, but if you need to deterministically react within 1 microsecond to what happens on a pin, and your MCU doesn&#x27;t already have a hardware peripheral that does exactly what you want, you&#x27;re probably going to need an FPGA.<p>Some recent advances, like the Raspberry Pi Pico&#x27;s PIO units, have made it possible to do things that MCU&#x27;s couldn&#x27;t do before, like emulating a ROM chip. But there are limits to what the PIOs can do.<p>If it comes to pure computation and not latency, you need some very specific use case before an FPGA becomes better than a regular CPU. Most likely when it involves massive parallelism and custom caches and interconnects. Although nowadays NPUs are starting to fill that niche.<p>For tiny boards in particular: getting experience and having fun.
    • duskwuff8 hours ago
      ICE40UP5K is large enough to synthesize a simple RISC-V CPU with some basic peripherals. It&#x27;s not huge or fast, but it&#x27;s capable enough.
      • em3rgent0rdr7 hours ago
        Note, if you need a barebones CPU but want to save on gates, you can go with a serial (1-bit) CPU, e.g. SERV which only takes up 198 LUTs on ice40,[1] leaving plenty of space to do other things.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;olofk&#x2F;serv" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;olofk&#x2F;serv</a>
      • imtringued6 hours ago
        You mean it&#x27;s large enough to synthesize several application specific RISC-V cores and let them form an embedded distributed system.
    • israrkhan6 hours ago
      performing glitch attacks on embedded systems, consoles, phones etc.
    • tehlike8 hours ago
      small what boards? Do esp32 boards count?
      • unwind7 hours ago
        Presumably small FPGA boards, like the $47 one in the linked article<p>Small boards have less I&#x2F;O pins than larger boards typically, and small&#x2F;cheap FPGA chips <i>on</i> small boards are also more limited than larger, more expensive parts.<p>Edit: precise price.
    • mathisfun1238 hours ago
      Jailbreaking consoles<p><a href="https:&#x2F;&#x2F;a.co&#x2F;d&#x2F;05f9gq9A" rel="nofollow">https:&#x2F;&#x2F;a.co&#x2F;d&#x2F;05f9gq9A</a>
      • WalterGR8 hours ago
        Direct link: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B0D9Q8VSSM" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;B0D9Q8VSSM</a><p>“KooingTech 150MHZ Machine Pulse Chip Mode Chip ACE V3 for X360 Slim”
  • dunlin4 hours ago
    Browser-based FPGA tooling is super interesting. Could really lower the barrier for hobbyists, or just make demos much more accessible.
  • ygouzerh7 hours ago
    Would a direct pitch to some HFT shops works better than kickstarter, to raise money for FPGA related work? They are ones of the main users in term of production usage. This project might be useful for them, for training &#x2F; PoC &#x2F; quick prototyping.
  • bywater5 hours ago
    Using something like this for quick prototyping or educational demos would be super handy. Beats installing all the heavy tools.
  • sage9815 hours ago
    Neat for quick experiments without needing local tooling. Could really lower the barrier to entry for learning FPGAs.
  • d_finch5 hours ago
    Always wanted to dabble with FPGAs but the setup was daunting. This could finally be the low-friction entry point I needed.
  • snvzz8 hours ago
    Why do the synthesis in the cloud, and not locally?
    • duskwuff7 hours ago
      +1. Especially given that it can even run in the browser - <a href="https:&#x2F;&#x2F;yowasp.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;yowasp.org&#x2F;</a>
    • samus8 hours ago
      I guess it&#x27;s for people who only have a smartphone. Or a potato that is ok for browsing, but not for FPGA synthesis.
  • IshKebab6 hours ago
    No thanks. I remember Mbed. Web-based IDEs are fine for hello world and blinky, but you&#x27;re going to want a real one very soon, and then you&#x27;ll find there isn&#x27;t one because they put all their effort into the shitty web-based one.<p>Even Arduino has a real app. It&#x27;s not that hard.
  • imhoguy7 hours ago
    My first thought: yet another web browsers standard.
  • parasxos2 hours ago
    [dead]
  • Alferes51 hour ago
    [flagged]