8 ms·
Unconventional Uses of FPGAs
- harwoodr 3y agoMy favourite example of this type of thing isn't mentioned in the article - using evolutionary computing to do some of the things mentioned in said article: https://www.researchgate.net/publication/2737441_An_Evolved_Circuit_Intrinsic_in_Silicon_Entwined_With_Physics https://www.researchgate.net/publication/2737441_An_Evolved_...
- jakeogh 3y agomore: On the Origin of Circuits (2007): https://news.ycombinator.com/item?id=9885558 https://news.ycombinator.com/item?id=9885558
- IncreasePosts 3y agoI read that paper about 20 years ago - at the time I was very interested in ML, and was torn between neural networks and evolutionary algorithms. This paper caused me to go all in on evolutionary algorithms, and eventually burn out because I could never get any kind of promising result out of it. Wrong choice I guess!
- bongodongobob 3y agoYeah, I tried my hand at some evolutionary algorithms and found it's all about the fitness function. I'd spend hours and hours refining it and eventually realized that you're really just optimizing the function to fit what you want to see. Kinda took the magic out of it for me.
- watersb 3y ago> 20 years ago... This paper caused me to go all in on evolutionary algorithms, and eventually burn out because I could never get any kind of promising result out of it. Wrong choice I guess! Wow. 36 years ago, I was super excited about neural networks, but lacked the skill to get good results fast enough; meanwhile, a very talented colleague was getting really interesting results from evolutionary algorithms. It can be hard to move forward all alone.
- harwoodr 3y agoFurther on this - there's a more modern project that is trying to get the original experiments working on iCE40 FPGAs now: https://evolvablehardware.org/ https://evolvablehardware.org/
- ShadowBlades512 3y agoAuthor here, thanks for reading, I just scaled the VPS to hopefully handle the traffic better, hahaha
- navaati 3y agoWell joke's on you: your website worked fine for me, however HN itself was down after reading your article :p. Good job !
- konstantinua00 3y agoI sometimes wonder if something as changeable as fpga can be made for asynchronous circuits...
- morphle 3y agoYes, quite easily, we made a few different versions. There are much more benefits than just runtime programmable asynchronous circuits.
- FullyFunctional 3y agoLinks/pointers? I know only of Achronix' original Speedster series, which was alas abandoned for a conventional architecture ("Power" was the reason I was told).
- morphle 3y agoReconfigurable asynchronous logic automata: (RALA) https://dl.acm.org/doi/abs/10.1145/1707801.1706301 https://dl.acm.org/doi/abs/10.1145/1707801.1706301 Morphle Logic https://github.com/fiberhood/MorphleLogic/blob/main/README_MORPHLE_LOGIC.md https://github.com/fiberhood/MorphleLogic/blob/main/README_M... https://core.ac.uk/download/pdf/276277602.pdf https://core.ac.uk/download/pdf/276277602.pdf With Google scholar you can search for 'asynchronous programmable logic' For example asynchronous logic with standard FPGA's https://www.researchgate.net/profile/Jerome-Quartana/publication/221636857_Asynchronous_Systems_on_Programmable_Logic/links/549178170cf214269f293a89/Asynchronous-Systems-on-Programmable-Logic.pdf https://www.researchgate.net/profile/Jerome-Quartana/publica... http://vlsi.csl.cornell.edu/~rajit/ps/fpga.pdf http://vlsi.csl.cornell.edu/~rajit/ps/fpga.pdf
- jonathrg 3y ago> A ring oscillator in an FPGA can be used as a strain gauge. If you implement a ring oscillator on an FPGA and then bend the FPGA, the frequency of the ring oscillator will shift. That's horrifying. I love it.
- function_seven 3y agoJust when you think you've found all the possible side channel attacks, along comes a new one: The mole can Morse-Code-tap their secret messages on your Cisco edge router and abscond with your secrets.
- duskwuff 3y agoEagerly awaiting Mordechai's paper on this one.
- 4gotunameagain 3y agoThe same thing happens with PIC microcontrollers: https://www.youtube.com/watch?v=UCXCLR3xq8U https://www.youtube.com/watch?v=UCXCLR3xq8U
- AlotOfReading 3y agoA game controller I worked on was accidentally sensitive to physical strain. We discovered this after the first prototypes/consoles were sent to early reviewers. They kept seeing weird in-game behavior no one could replicate, even when affected reviewers tried to demonstrate. Turns out they were gripping hard enough to minutely bend the PCB during intense moments in games, which created voltage spikes the software mistook for button presses. You needed to be angry to replicate.
- HowardStark 3y agoStories like these are my catnip. The 500 mile email is another great one. How did you end up debugging/reproducing? I conjured a picture in my head of an engineer comically exasperated and squeezing the controller followed by an “Aha!”
- gorkish 3y agoI like the strain gauge application best! I do personally feel that the #1 application of FPGAs is to make short run and high-end hardware fantastically more expensive for business and government (+military) customers. As it has nothing to do with electronics, I'll put it to the wisdom of the crowd to decide if this application is conventional or unconventional!
- cycomanic 3y ago> I do personally feel that the #1 application of FPGAs is to make short run and high-end hardware fantastically more expensive for business and government (+military) customers. Not sure I understand. Take for example applications in communications where you need a real time signal processing. The alternatives (custom ASICs) are several orders more expensive. I would actually say the opposite, FPGAs make short-run, high-end affordable to others that are not government or large coperations.
- gimmeThaBeet 3y agoI kind of empathize where they are coming from, my electronics version of "this meeting could have been an email" is "this fpga could have been an arduino". I feel like we're constantly spoiled by the clock speed of computers, they are good enough for so many things. FPGAs can make simple things a bear to implement, and you will just get there faster. But there's a bunch of things where FPGAs are like discovering fire, all the discrete digital logic you ever wanted in the palm of your hand (until you have to meet timing).
- dfox 3y agoApart from my overengineered audio stuff (which is intentionally overengineered, as it is mostly an hobby project/research vehicle) I'm guilty of designing what was essentially an simple scintillation detector around fast ADC, somewhat beefy FPGA and bunch of synchronous SRAM, the final shipped hardware had MSP430, bunch of discrete 74ACT logic and bunch of discrete analog comparators instead of the ~100MSps ADC… You should always do the simplest thing that could possibly work…
- pama 3y agoOne of my favorite FPGA gadgets is the mojo 2 headphone amplifier by Chord electronics. The amplifier is nearly flawless. Coming from the old days of tube amplifiers and amazing analogue devices it is nice to see how far the digital circuitry has gone with analog applications.
- cadr 3y agoWow, just looked that up. That's a chunk of change for a headphone amplifier.
- pama 3y agoAgreed. I personally think it is the ultimate piece of equipment for sound reproduction from computers or personal recordings, unless one has a set of very specialized cans that it could even drive. But of course sound sensitivity is subjective and there are limits to what some people care about so their may exist cheaper options with some comparable quality, but at some point I gave up to quest with that little gadget.
- jsheard 3y agohttps://www.audiosciencereview.com/forum/index.php?threads/chord-mojo-2-review-portable-dac-hp-amp.34160/ https://www.audiosciencereview.com/forum/index.php?threads/c... It's not bad, but it's not the best, and pretty much everything that measures better is using a more conventional architecture and in many cases is significantly cheaper. Chords use of FPGAs gets points for novelty but I don't think it has any practical merit. https://www.audiosciencereview.com/forum/index.php?threads/chord-dave-review-dac-hp-amp.35974/ https://www.audiosciencereview.com/forum/index.php?threads/c... Even their $14,000 monster desktop DAC/Amp gets beaten by units a fraction of the price in objective measurements. The audiophile market has taken a fascinating turn since ASR arrived on the scene, the snake oil salesmen are still on their bullshit but there has been an uptick in companies doing legitimately good engineering and making products with phenomenal performance for dirt cheap. There are DAC/Amp combos under $200 which are objectively perfectly transparent well beyond the theoretical limits of lossless CD audio now.
- tombert 3y agoI started playing with Clash recently, which is basically a Haskell-to-FPGA compiler. It's very cool and I'm slowly making progress, but man it feels like I'm learning to program all over again. I didn't take any electronics or computer engineering courses in college (focused a lot more on the discrete-math section of computer science), and the closest I've ever been to this is GPIO programming on an Arduino. It's really rewarding though, and it's clear that it's a skill that might come in handy some day in the future. I can think of a few cases where I'd benefit from dedicated hardware for some stuff.
- zachbee 3y agoI've actually been working on a personal project using asynchronous ring oscillators on FPGAs to perform meaningful computation. If you make the oscillators interact in the right way, you can leverage them to solve certain graph problems! Once I finish the write-up I'm planning on posting it on HN :) https://github.com/zbelateche/digial-ising https://github.com/zbelateche/digial-ising
- fpgamlirfanboy 3y agoI promise I'm not trying to rain on your parade, and I blame the academics for this, but: 1. NP-complete problems are (today) global search problems (3-SAT algos search for a satisfying assignment...); 2. Combinatorial search spaces are not only non-convex, they don't have gradients (sub-gradients don't count) and even if they did, without convexity, it's still hopeless. Thus, you cannot (today) appreciably parallelize NP-complete algos, you can only draw more lottery tickets (for where to seed your search), i.e., constant factor improvement. I'm just putting this out there in case someone gets tantalized by the "fancy math/physics/fpga thing solves NP-complete problems" hook. Yes it can but no better than your computer (despite what paper authors claim in order to get published). To wit: if this were a compelling solution to NP-complete problems it would either a) already be a proof that NP=P or b) be implemented in absolutely every single SAT solver (using GPU or whatever rather than FPGA). In contrast, every single SAT solver uses CDCL which is ~roughly DFS with clever backtracking. And I say this as someone that has investigated solving ILPs on FPGA - i.e., I wish it were true but it ain't.
- zachbee 3y agoThis is a personal project aiming to replicate analog coupling dynamics with asynchronous digital circuits FPGAs, not a claim that we can solve NP complete problems with a fundamental speedup. Also, these sorts of Ising architectures get their speed-up are based on oscillator interaction, not parallelism. It's relevant to this article because it leverages oscillators on FPGAs in a nifty way :)
- fpgamlirfanboy 3y ago
- pclmulqdq 3y agoThe strain gauge is an interesting one that I hadn't seen before, and theoretically should work. Very creative! A few more fun things you can do with FPGA fabric: * A temperature sensor - timing some ring oscillators against a reference clock generated off-chip can give you a measure of the temperature of the chip because transistor speed is temperature dependent. * ADC/power supply monitor - Launching a signal down a TDC at a known interval gives you a time measurement that correlates with power supply voltage (EDIT: to be clear, this is a MUCH stronger correlation than with temperature). Also, ring oscillator speed correlates with power supply voltage. This is also a possible attack vector for side-channel attacks on multi-tenant FPGAs and multi-tenant systems that involve programmable FPGAs. * An oven/thermostat - Switching transistors on and off creates heat by burning power. This can be hooked up to a temperature sensor (either a synthetic one in FPGA fabric or the one in the device ADC/system monitor) with a PID loop to create a temperature control system. This is actually kind of useful if you want to do analog stuff with reasonable stability. Also, if the author is here, I would appreciate a link to https://arbitrand.com https://arbitrand.com in the "TRNG" section.
- DontchaKnowit 3y agoThat bit about stabilizing the tempture was suoer interesting I could see that being useful for like a synthesizer or something.
- pclmulqdq 3y agoIt's not uncommon in sensitive analog systems to do something like this, ~but I haven't seen anyone doing it with an FPGA yet~. Very old analog systems (that were a lot more temperature-dependent than modern analog circuits) often were contained in small ovens, and an intermediate step between a normal oscillator and an atomic clock today is to use an oven-controlled oscillator. In both cases, they keep the ambient temperature on the analog devices at 40-50 C to make sure that they operate at a stable temperature regardless of ambient temperature. Edit: See the sibling comment - someone has found a reasonable circumstance to do it!
- ShadowBlades512 3y ago
- logtempo 3y agoKind of related to this post: https://news.ycombinator.com/item?id=39735665 https://news.ycombinator.com/item?id=39735665 > The solution to these problems came from Khuri-Yakub’s lab at Stanford University. In experiments in the early 2000s, the researchers found that increasing the voltage on CMUT-like structures caused the electrostatic forces to overcome the restoring forces of the membrane. As a result, the center of the membrane collapses onto the substrate. A collapsed membrane seemed disastrous at first but turned out to be a way of making CMUTs both more efficient and more tunable to different frequencies[...]
- ggm 3y agoSelf-Destruct circuitry to blow keys if the tamper signal bit is set? I'm not sure these can totally hide what the key is, I suspect there are recovery options from delidding the chip but .. maybe not?
- newhouseb 3y agoA more extreme version of the ADC/DAC projects mentioned here is my (old) project that built a Bluetooth transceiver using just an FPGA and an antenna (and a low pass filter if you don't want the FCC coming after you): https://github.com/newhouseb/onebitbt https://github.com/newhouseb/onebitbt Tl;dr: if you blast in/out the right 5GHz binary digital signal from a SERDES block on an FPGA connected to a short wire you can talk to your phone!
- anfractuosity 3y agoVery cool idea :)
- jsjohnst 3y ago> Bluetooth transceiver > if you blast in/out the right 5GHz binary digital signal These two things are not related.
- Dwedit 3y agoMy favorite unconventional use of an FPGA was when Costis used clock glitching and precise undervolting to extract the Boot Rom out of the Game Boy Color. There was an FPGA involved at some point in the process. http://web.archive.org/web/20091001114207/www.fpgb.org/?page_id=17 http://web.archive.org/web/20091001114207/www.fpgb.org/?page...
- Retr0id 3y agoThis may be unconventional in the sense that most FPGAs aren't used for it, but it's quite common in general, and you can buy commercial products that use FPGAs in this way (e.g. ChipWhisperer)
- willis936 3y agoVery fun. I particularly like the FOSS TRNG in 100 LEs. It's great that I can get open source HDL and compile it on any hardware supported by yosys.
- speakspokespok 3y agoIf you had a sensor who’s analog signal you wanted to modify in real-time, for example you did an engine swap and the new engine’s sensors weren’t compatible with the original ECU. Say they used a different voltage range or hertz rate. Would an fpga be overkill for this application? What would be the correct topic to google?
- AnarchismIsCool 3y agoIf it's a digital sensor and you're modifying a digital bus then yes*. If it's an analog (voltage based) sensor then no, but if you know the input and output ranges you can probably build a gain stage out of much cheaper and simper components. *"Real time" is complex though, the best you can probably do is slightly longer than the time it takes to receive plus transmit the packet, best case slightly longer than the longer of the two processes.
- speakspokespok 3y agoThank you very much. Do you have general suggestions of where to look? Do I "just" need to learn analog circuit design?
- AnarchismIsCool 3y agoCan you give me a better idea of what the two signals are? I can probably point you in the right direction.
- bobmcnamara 3y agoAfter the 1958 Taiwan straight crisis when mainland China caught an unexploded sidewinder and reverse engineered it: execute+write only missile guidance memory.
- AnarchismIsCool 3y agoWhat specifically are you referring to?
- bobmcnamara 3y agoI edit my comment, but pre FPGA, much of our missile guidance electronics was entirely analog, and thus observable if your buddy say, misplaced one in the side of a mig. Now the bitstream can be downloaded as needed, and bit rots quickly after power loss.
- fargle 3y agoi think i have done most of these at one time or another. for example: strain gauge, random number generator, glitch generator, antenna. unfortunately always unintentionally. which is much, much, less fun.
- mynameisnoone 3y agoAnyone less technical or unfamiliar, here's a decent visual explanation of how FPGAs are constructed.[0] Generally, there are 5 types of resources: 1. Clocking and clock distribution 2. Interconnect and bus logic 3. Sequential logic (state) 4. Combinational logic (functions) 5. Specialized blocks that implement complex functions It's the responsibility of the EDA toolchain to simulate and validate that an FPGA "program" will satisfy timing requirements. As the article mentions, it is sometimes possible to violate these constraints purposely when undefined or nondeterministic behavior is desired. Notes: 0. (PDF) https://inst.eecs.berkeley.edu/~eecs151/sp20/files/lec5-FPGA.pdf https://inst.eecs.berkeley.edu/~eecs151/sp20/files/lec5-FPGA...
- kqr2 3y agoOfftopic, but I love unconventional uses for things. I once saw a book about how to build unconventional toys with model airplane engines, however, I have never been able to find it again... Does anyone recall the title of this book?
- rkagerer 3y agoThe most interesting unconventional FPGA application I ever came across was Adrian Thompson's foray into evolutionary algorithms in the 90's. Implementing a "survival of the fittest" approach he taught a board to discern the difference between a 1kHz and 10KHz tone. What's fascinating is the final generation of the circuit was more compact than anything a human engineer would ever come up with (a mere 37 logic gates), and utilized all kinds of physical nuances specific to the chip it evolved on - including feedback loops, and EMI effects between unconnected logic units. Article: https://www.damninteresting.com/on-the-origin-of-circuits/ https://www.damninteresting.com/on-the-origin-of-circuits/ Paper: https://www.researchgate.net/publication/2737441_An_Evolved_Circuit_Intrinsic_in_Silicon_Entwined_With_Physics https://www.researchgate.net/publication/2737441_An_Evolved_... Reddit: https://www.reddit.com/r/MachineLearning/comments/2t5ozk/what_ever_happened_with_the_evolutionary/ https://www.reddit.com/r/MachineLearning/comments/2t5ozk/wha... If you think about how intelligence evolved on earth, we had a rich environment of physics for variety of causes and effects to interact in all kinds of diverse ways (not just boolean 1's and 0's or a limited set of instructions). Makes me wonder if to achieve true AGI you need to offer evolution a fairly rich set of primitives on which to flourish. Edit: Just realized harwoodr beat me to this example.
- myself248 3y agoThe silicon strain-gauge effect is well-known, and has to be accounted for when mounting precision chips like voltage references. Here's one where it's clearly visible as two slots in the PCB on either side of the precision chip, to prevent board strain from being transferred up into the chip: https://voltagestandard.com/01%25-voltage-references https://voltagestandard.com/01%25-voltage-references
- balou23 3y agoFurther down the line... that chip has a plastic package. Plastic is hygroscopic, i.e. it will take up water. Even the minute amounts of water from the humidity in the air. This deforms the plastic, and adds additional strain to the IC. The chip you linked is in the 3-8 ppm/°C range. Stuff in the 0.5 or 0.05ppm range like LM399/LTZ1000 are all in metal cans for that reason (another fun fact... the LTZ1000 ultra precision reference has an output voltage of 7.0 to 7.5 Volt. It's precise, but not accurate)
- 1375278dhkf 3y ago[flagged]