3 ms·
> Sadly the article doesn't go into details about how the programmable RAM is wired to the actual logic gates, which seems to me the most interesting and challe
by gchadwick 3y ago
> Sadly the article doesn't go into details about how the programmable RAM is wired to the actual logic gates, which seems to me the most interesting and challenging part of designing an FPGA.
It does, that's the part under the 'Look-Up Tables' section. The key is there aren't any actual logic gates just lots of little RAMs. You implement an arbitrary blob of logic by having the inputs form the address then the RAM gives the result of the logical function.
- stephen_g 3y agoWell, they do have some logic gates - usually the cells have at least one flip flop, as well as the LUT.
- dreamcompiler 3y agoAlthough flip flops can be created from gates (and they are usually taught this way), in silicon they are usually implemented from raw transistors in feedback configurations, because implementing a flip flop from gates requires more transistors than it does when you bypass the gate-level abstraction.
- roadbuster 3y ago> You implement an arbitrary blob of logic by having the inputs form the address > then the RAM gives the result of the logical function. This is incorrect. Modern FPGAs are composed of small, configurable blocks which contain all sorts of logic. The idea is that the configurable blocks can be (internally) wired-up to implement your logic of choice. The wiring configuration is "loaded" at power-on and retained in memories within each, configurable block.
- gchadwick 3y agoWell indeed modern FPGA fabric along with the various fixed function blocks can be very complex, but this is a beginners 'How Does an FPGA Work?' for which a bunch of LUTs connected by programmable interconnect is a useful approximation.
- dreamcompiler 3y agoYou may be right; I don't know. It may be the case that a modern LUT is implemented as a bunch of logic plus a switch matrix. If so, this is for real estate, power, or speed reasons but not for functional reasons. The fact remains that you can implement any logic function with static RAM LUTs, and the early Xilinx chips (like from 30 years ago) were implemented with static RAM.
- rcxdude 3y agoThe LUTs are still the core of these general-purpose blocks, however (as opposed to the more fixed-function blocks like DSP blocks). There's only a little extra logic, mostly focused on muxing and flip-flops (I would argue the flip-flops are the main thing to realise is dedicated hardware). The only thing that's really a different kind of logic is dedicated carry-chain circuitry.
- adwn 3y ago> I would argue the flip-flops are the main thing to realise is dedicated hardware Fun fact: The Microchip [1] ProASIC3 logic area is mostly composed of core cells, each of which can be configured to be either one 3-input LUT or one D-flip-flop, so not even the flip-flops are dedicated hardware. [1] Formerly Microsemi [2]. [2] Formerly Actel.