← Home ← Back to /g/

Thread 106272590

47 posts 4 images /g/
Anonymous No.106272590 >>106272599 >>106272625 >>106272805 >>106275100 >>106276258 >>106276753 >>106276790 >>106276826 >>106277046 >>106277055 >>106277151 >>106277444 >>106277752 >>106277809 >>106277819 >>106277857 >>106277911 >>106277955 >>106278827
explain FPGAs to a retard
i dont understand FPGAs.
from what i read they're like a CPU except that they're "programmable", but what the fuck does that mean? what's there even to program?
Anonymous No.106272599 >>106272605 >>106272717 >>106277805
>>106272590 (OP)
The gates you program the gates anon gosh it's in the name
Anonymous No.106272605 >>106272758 >>106272794 >>106279615
>>106272599
but why the fuck would i do that? a CPU comes with that shit
Anonymous No.106272625 >>106272634 >>106272717 >>106276753
>>106272590 (OP)
Basically lets you emulate any CPU on a hardware level.
Anonymous No.106272634 >>106272776 >>106272959 >>106277725 >>106277866 >>106278792
>>106272625
but why?
Anonymous No.106272717 >>106272776 >>106272872 >>106279429
>>106272599
>>106272625
can an arduino accomplish the same things of an FPGA, performance aside?
Anonymous No.106272758
>>106272605
You can't program the CPU gates. But the FPGA gates you program yourself.
>Why
Different reasons.
I see it used for prototyping hardware or one off builds because it's easy to change and test your design while also being way faster than trying implement in software with a cpu.
Anonymous No.106272776
>>106272634
Very accurate emulation.

>>106272717
Accuracy.
Anonymous No.106272794
>>106272605
>a CPU comes with that shit
No, it doesn't. FPGA is a programmable circuit. You can make it into any chip, not just emulating any CPU with it but anything else that can be etched into a die.
Anonymous No.106272805
>>106272590 (OP)
A FPGA is a massively parallel computing device that can be used to mimic the behavior of an arbitrary digital circuit. Physically a FPGA is made of thousands of identical logic elements. These logic elements have a number of inputs and outputs which can connected together in various ways. Inside the logic elements are a lookup table and latch for storing a bit of data. You emulate circuits by encoding the truth table of portions of the original circuit in the logic elements lookup table. You build more complex circuits by combining multiple logic elements together.

Any computation a FPGA can perform so can a CPU. But CPUs execute a linear sequence of single operations. Whilst a FPGA can perform thousands of operations simultaneously. For some tasks a CPU can be thousands of times slower.

In regards to what it means to program a FPGA. Programming a FPGA means loading data into its lookup tables. And into its various muxes, which connect different data lines together. Effectively you are configuring how different blocks are wired together.
Anonymous No.106272872
>>106272717
Logically, yes you could emulate any FPGA design in software. But physically no, arduino is a software solution running code on a CPU. An FPGA is configuring the hardware, so can do things simultaneously the arduino would have to simulate abstractly.
Anonymous No.106272959 >>106277725
>>106272634
Because it's cheaper than manufacturing a whole new chip.
Anonymous No.106275100
>>106272590 (OP)
a cpu is just a large array of switches, so a fpga can be arranged to mimic the switch array of another processor. They are mainly used to replace old pc's that run machines and are no longer being produced, they also can mimic old game systems, or can be a fun project.
Anonymous No.106276258
>>106272590 (OP)
Logic gates have extra gates between them so they can be tied together differently by changing the configuration of the memory.
Anonymous No.106276753 >>106278805
>>106272625
>>106272590 (OP)
You guys are retarded, is not emulation,it actually changes its internally configuration to implement a REAL CPU there and if works later could be turn into an external chip.
Anonymous No.106276790
>>106272590 (OP)
Dolphin, PCSX2, etc are basically digital emulation.
FPGA can be understood as analog emulation.
Anonymous No.106276826 >>106276838
>>106272590 (OP)
The value in them is being able to build small hardware devices that aren't a general purpose computer. You can use it to do things like emulate hardware or make new hardware to interface with old hardware. I use one to rip LaserDiscs for example. Using an FPGA I can by-pass the composite output and capture card. I can pull raw data off the disc.

There are a lot of applications where using an entire computer would be overkill or not practical. Your only other option aside from FPGA in that situation is building a PCB yourself. Which is out of reach for most people working on stuff as a hobby. It can be done but the costs are high if you want to produce a bunch of them. Instead you can just pick up one of these and program it to do whatever you want. You can also reuse it for other stuff if the need arises.

I do agree though that using them to do shit like emulate a NES/Atari is kind of dumb. Well if you aren't programming it yourself at least. It can be useful for learning in that respect. But buying one just to play old video games is a waste of money.
Anonymous No.106276838
>>106276826
Forgot to mention: prototyping is one of the main uses. You can prototype on an FPGA then once you've figured things out you can see about producing a custom chip for that application. Only really useful if you plan on mass producing some kind of custom hardware for sale to the general public.
Anonymous No.106277046
>>106272590 (OP)
They are internally modular. How the internal circuitry is wired up is fully programmable, enabling you to build any kind of processor from scratch. You don't normally find that kind of modularity in any chipset.

It can be programmed to BE a vintage processor, for instance. I can see that it can be a terrific tool for prototyping new designs, too.
Anonymous No.106277055
>>106272590 (OP)
No im not gonna explain it to you, nigger. stay retarded
Anonymous No.106277151
>>106272590 (OP)
It's silicon clay that can be molded into any CPU or similar chip within its limits
Anonymous No.106277444 >>106277646 >>106277692 >>106277929
>>106272590 (OP)
From what i understand they are too low-level to actually make working computer systems.
I will need hdmi, usb, sd-card, lots of ram, fast cpu, at least some gpu.
But fpga offers a few megs of ram, and the cuntity of logic gates is too small? Because processors have millions of transistors, but fpga has mere tens of thousands of gates. No peripheral controlllers, connectors.

Please change my mind, I wnat fpga to be actually practically useful, but they just seems like mostly low-level fun.
Anonymous No.106277611 >>106277618
Is an FPGA basically a programmable ASIC?
Anonymous No.106277618
>>106277611
yes
Anonymous No.106277646 >>106277733
>>106277444
>lots of ram
You use external (normal) RAM with FPGAs.
>fpga has mere tens of thousands of gates
Those are small, hobby level FPGAs. Big ones have millions. Plus, you can split large designs into multiple FPGAs and make them work together.
>they just seems like mostly low-level fun.
At work, we use them to run the whole SSD when hardware is still new and is being tested, with like 10 ARMv7-R CPUs and few ARMv7-M CPUs. RAM and NAND are external of course.
Anonymous No.106277692 >>106277737
>>106277444
>Deep-fryers are too low-level since they can't make salad
Anonymous No.106277725
>>106272634
>>106272959
this, but there are other reasons. you can use fpga to make a chip dedicated to a very specific type of computation. they're often used for problem solving because you can program them to only support a required set of operations very efficiently. They're often used to make parallel computations, or custom simd/floating point instructions. The key point is that you get lower flops/watts which matters a lot in some industries. They're often used to solve logistics problem to determine which servers gets to serve content to users
Anonymous No.106277733 >>106277784
>>106277646
fpgas have a ram issue compared to gpu. since they use traditional ram, you can't get the same performances as gpu have with their layered ram. that said, you're also free to implement a large cache directly into your fpga, but as cost/gates goes, it's not that viable
Anonymous No.106277737 >>106277750
>>106277692
Confirming the point. I want a food preparing machine that can prepare a dinner, both french fries, deep-fried chicken, sauce and salt, a salad, soft drink, dessrt, and tea.
Arm/risc-v single board computer with IP modules looks like it can make a DINNER. Fpga looks like it can make a DISH.
Whole DINNER vs mere DISH. The dinner may be too formulaic and the dish may be exquisite, but still, I want a dinner, not just one dish.
Anonymous No.106277750
>>106277737
>Machine made for application specific computing can't do general computing
Try doing DSP work on a CPU, then you'll understand the purpose of FPGAs
Anonymous No.106277752
>>106272590 (OP)
>but what the fuck does that mean? what's there even to program?

Integrated circuit breadboard.
Anonymous No.106277784
>>106277733
>since they use traditional ram
You can you whatever RAM you want. The problem with implementing modern GPU or OoO CPU is that they simply won't fit.
FPGAs generic logic elements (Lookup Tables aka LUTs) are very slow. not even food for adders ,so FPGAs use separate 1-bit adders in hardware that can be connected together to form bigger ones. Full multipliers come pre-printed and in limited amount. If your design needs more, you are out of luck.
Anonymous No.106277805
>>106272599
>gate programming
Anonymous No.106277809 >>106277954
>>106272590 (OP)
>i read they're like a CPU
They are nothing like CPU. The picture shows Digilent Bays 3 development board with Xilinx Artix FPGA. The FPGA has outputs that are already connected to peripherals like the LCD screen, buttons etc. You can also connect your own external peripherals. The idea is that something needs to control all of those and CPUs are really bad at this, especially when there are many high speed peripherals that need handling in parallel and with well defined latency.
Anonymous No.106277819
>>106272590 (OP)
you can make it do things you're computer can't, or no longer can. like specific signal processing with hdmi in/out.
Anonymous No.106277857 >>106277966
>>106272590 (OP)
FPGAs are used to replicate a console 1:1. Think of those NES-on-a-chip knockoffs that are around: what if you had a generic chip that could be an NES on a chip, then Gameboy on a chip, then Genesis on a chip, then SNES on a chip, etc?

The whole architecture of the processor gets baked into the FPGA, so you get a 1:1 equivalent, bugs and all.
Anonymous No.106277866
>>106272634
Convenient as it is, emulation is never 100% accurate, because tricks and hacks have to be implemented to make some games work. In some cases this can actually be detrimental and impair your experience playing a game, with altered timings, graphics or effects. Usually in emulation this kind of stuff is not bad enough to be a deal breaker, but if you actually want 1:1 performance, then an FPGA is your best bet.
Anonymous No.106277911
>>106272590 (OP)
Making a custom chip costs $$$$$$ so sometimes you want to do a one off without spending so much. An FPGA is kind of like a mostly blank chip where you can rearrange the wiring however you want.
Anonymous No.106277929
>>106277444
>I wnat fpga to be actually practically useful
they already are and are used all the time, if you need to be doing things fast and/or in parallel you're using an FPGA. I use them for work and personal projects where mcus are impractical
custom chips are even faster and better but the cost is far higher and you'd need a new one each revision so fpgas are more practical for most businesses' scales and especially so in development
using them to run a softcore is sometimes useful but you aren't using an fpga to only run a softcore, that's typically only done by people looking to learn how cpus work and design their own
Anonymous No.106277954
>>106277809
nes on a chip was well before cheap fpga solutions. they were using asic. expensive to design, test and manufacturer. i forget the name of the original manufacturer, but the design was passed around and people kept extending its capabilities beyond what the original nes could do while still being able to run nes software.
Anonymous No.106277955
>>106272590 (OP)
opposite of ASIC (Application specific integrated circuit).
They have programmable logic blocks.
In PC chips the hardware is all fixed, we just give instructions in form to data to conduct operations.
On FPGAs you actually configure the hardware to do stuff.
Anonymous No.106277966
>>106277857
nes on a chip was well before cheap fpga solutions. they were using asic. expensive to design, test and manufacturer. i forget the name of the original manufacturer, but the design was passed around and people kept extending its capabilities beyond what the original nes could do while still being able to run nes software.
Anonymous No.106278792
>>106272634
Custom hardware solutions cost $$$. FPGAs are fast, reprogrammable for itteration, prototyping, and repuposing while still getting comperable hardware level preformance (hardware acceleration).
Anonymous No.106278805
>>106276753
that's hardware emulation fuckwad
Anonymous No.106278827
>>106272590 (OP)
Any turing machine can implement any operation any other turing machine can. Your CPU has an FPU in it, dedicated circuitry for performing floating-point operations. Older CPUs without it could still do floating-point math, by running an algorithm utilizing other operations that produces the same result as the dedicated circuitry. It was just slower, a dedicated circuit is just optimized to do it in the least amount of work possible.
An FPGA is a step between the two. It is programmable (can do anything), but rather than combining complex operations to get the result like the CPU, it combines logic gates, which is a building block of the dedicated circuit.
So a CPU with no FPU but an FPGA can configure it's oen FPGA to work the same as an FPU would. It still won't be as fast as the real one, but much closer
Anonymous No.106279429
>>106272717
>can an arduino accomplish the same things of an FPGA, performance aside?

If you completely ignore performance, then yes.
But in real-time systems, a calculation is only correct if it comes at the right time, so performance is not just important, it's a fundamental property of the correctness of your system.

General-purpose CPUs typically have a small number of complex, high-performance cores. The latency is generally high and hard to predict. Even with a small number of cores, you can achieve high-throughput if you keep them busy, with a program optimized to have a high Instruction per Cycle.

But in some systems, latency is critical. Let's say you have hundreds or even thousands of sensor inputs, all requiring to perform the same operation, and all producing an output at the same time. An FPGA works well there. You can develop thousands of "cores" that are comparatively much simpler than a general-purpose CPU core, and you will be able to understand the performance of that solution down to a single cycle.

So FPGAs occupy a niche that is close, but distinct, to what you can do with Digital Signal Processors and GPUs.
Anonymous No.106279615
>>106272605
>but why
You can make a BETTER computer.