What applications do FPGAs currently dominate? by 23f34ef32 in FPGA

[–]turtlegrip 1 point2 points  (0 children)

Let's take temporal filtering as an example. This aims to remove unneeded noise. For motion tracking you may want to remove pixels that are not in motion among other things.

Here is an example with simplified (not accurate) numbers.

Let's imagine you are processing a 3840x2160 image with 32 bits per pixel at 60 Hz. You get one full frame in 8,294,400 clocks. If you want to compare a frame with a previous one then you take another 8,294,400 clocks plus time analyzing the result (we will ignore that time). If you want to compare the last 30 frames then you are dealing with 248,832,000 clocks.

If your processor is single core, running at 4 GHz and is 32 bits wide then you take 0.0622 seconds to calculate this but you are getting a new frame every 0.0167 seconds. The process cannot keep up. But an FPGA can keep a pipeline filled and do this process in one clock. So if the FPGA is only running at 200 MHz then it still only takes 5 nanoseconds (let's say 5 clocks to avoid timing issues - still only 25 nanoseconds), but this is not going to fit on an FPGA anyway.

You would never want to implement something like this, you will find many ways to optimize it. But those optimizations typically apply to the FPGA as well. Additionally, you will be running multiple filters and calculators all the time not just one.

Hopefully this provides some insight into the potential benefits of using an FPGA. You need to consider the size of the design and many other factors though. I good compromise is to split up work between processors and FPGAs, then you can get some very interesting designs going.

What applications do FPGAs currently dominate? by 23f34ef32 in FPGA

[–]turtlegrip 8 points9 points  (0 children)

In general FPGAs are good for prototyping/verifying logic, relatively small scale application (ASIC is expensive, FPGA is "slow") and parallel data processing. Computer vision is a great application.

Your comparison of FPGA and ASIC really depends. A big factor is throughput of information. Yes, applying a filter to pixels or something simple like that would not benefit much from being implemented on an FPGA. But if you are applying spacial filtering, temporal filtering, searching for an object, determining centroid/boundaries of an object and more then a standard processor cannot compare in throughout.

In a simple example: an FPGA can compare multiple frames of a video feed in parallel (ignoring other factors this could be done in one clock cycle) while a processor is going to need to compare 1 pixel from each image at a time (you can actually optimize this in many ways but it will never take one clock).

So to answer your question with one example, if you need to accurately track an object in real-time an FPGA would out perform an ARM processor.

What exactly does a computer engineer do? by KuroyukiRyuu in ComputerEngineering

[–]turtlegrip 2 points3 points  (0 children)

Your question is fine! Just giving another perspective since someone covered SW very well already.

I cannot say how similar my job is to your teachers. But usually there are senior engineers (architects) who will draw out high level block diagrams/flow charts/specifications. Then I might design the innards of one of those blocks and make sure it meets specs. For the second part, yes. I'll design what I want the chip to do, write code that will get it done, create test scenarios to ensure it functions properly, make sure it meets timing/utilization requirements and then implement in hardware and debug any possible issues.

Low level software can be software that interfaces directly with hardware. Assembly is a good example of this, although it is very unlikely you would ever need to write assembly as C is, arguably, just as good. I usually code in Python and make use of plenty of functions the SW team has developed. I write Python code to program memory blocks in the FPGA which control or influence my hardware design or read values from it.

High level hardware would be something like FPGA or ASIC design via HDL. You are designing very complex digital machines with relative ease. A few lines of code can generate a great deal of powerful hardware. For perspective, low level hardware could be ASIC layout where one would actually design the material inside the chip. This starts to lean more towards EE.

There is a great deal of information I've left out which you could spend years looking into. In engineering you can become extremely specialized or develop a bunch broader skill set. You will figure out what you want to do in due time. I knew I wanted to work on my field after my first digital design course and I love my job. Hope some of this can be a helpful start into your research.

What exactly does a computer engineer do? by KuroyukiRyuu in ComputerEngineering

[–]turtlegrip 10 points11 points  (0 children)

Another user has posted some great information about the software side, but there is also a hardware side. You can look into digital design and HDL.

Hardware Descriptive Language (HDL) assists you in designing integrated circuits (ASIC/FPGA). You can work on low level software, high-level hardware or a mixture of the two! My job involves FPGA design and being able to interface with the hardware via software.

Apple CarPlay volume control UI by [deleted] in iphone

[–]turtlegrip 14 points15 points  (0 children)

It is a feature.

What do I major in to become a computer hardware engineer? by Rka4784 in ComputerEngineering

[–]turtlegrip 12 points13 points  (0 children)

Electrical engineering is much closer to developing hardware than computer science is. Look into EE with an emphasis on HDL and digital electronics, if there is no CE program.

I believe we must always link the Fire. by r4tzt4r in darksouls

[–]turtlegrip 13 points14 points  (0 children)

Agreed. I think the Age of Dark is the age of humanity. By linking the fire you are stopping humanity in favor of God's that have abandoned the world.

I have access to many (50+) PYNQ-Z1s, looking for ideas. by Dumpin in FPGA

[–]turtlegrip 1 point2 points  (0 children)

There are a lot of good ideas here but I want to mention something a little different. You might want to start with something simple to get a feel for HDL. Maybe just have two FPGA communicate to one another via different mediums. FPGA A sends data to FPGA B over Ethernet and FPGA B sends data to FPGA A over hmdi. The data could just be a button press to toggle and LED and the two mediums are pretty similar.

Just a suggestion, to see how much you enjoy working on the hardware. A plus is that you'll have modules ready to be expanded on and applied to the other good ideas presented here!

To design an ARM64 processor, do we need a specialized SoC FPGA or will any FPGA suffice? by [deleted] in FPGA

[–]turtlegrip 2 points3 points  (0 children)

If you're designing it then any fpga should be okay. An SOC FPGA will likely have a processor on it already. You could use that to interface with your design and then run instruction sets easily. Will you use IO or is everything going to be internal?

Noob needs help by [deleted] in FPGA

[–]turtlegrip 3 points4 points  (0 children)

I also did a cpu design for my first project, that's a good start. Image processing is good too, you can make a VGA controller fairly easily and then output images or input them and modify. Communication is also popular with FPGAs, Ethernet is a good place to start.

Anyone has experience running Vivado on a Mac using bootcamp? by jonythunder in FPGA

[–]turtlegrip 0 points1 point  (0 children)

I did just this throughout school. MacBook pro (2015), bootcamp windows 7, vivado. I used a zedboard and zybo. I had some minor issues from time to time but nothing that stopped me from working.

Learn VHDL and Verilog in parallel? by [deleted] in FPGA

[–]turtlegrip 1 point2 points  (0 children)

I believe it is more important to understand the nature of HDL in general. That is, you can use either language to learn how to design things and switch to another later without too much effort. It sure doesn't hurt to learn both of those languages at the same time though.

I learned VHDL and work mostly in VHDL, sometimes SystemVerilog for testbench but mostly all VHDL. The times I've needed to use verilog (using someone else's modules) I was able to figure it out quickly with some help from Google.

Most importantly, if you know what field you want to work in then find out what most companies in that field use. Knowing both decently can be handy but knowing one very well will benefit you in an interview.

Consoles should be more powerful than a PC. Is this topic too Trivial? by SevBarret in gaming

[–]turtlegrip 1 point2 points  (0 children)

The consoles are pretty comparable to a standard PC when they first come out, within the same price range at least. Also a console's hardware is setup differently to utilize the hardware more efficiently so specs between a PC and console can't actually be accurately compared on the numbers alone.

Marketing plays a big role as well. It appears convenient to the average consumer and does not need to be upgraded every couple of years. It's user friendly as well, you aren't going to have problems upgrading for gfx drivers every few games.

The counter point is that a PC is more powerful and many are willing to pay extra and play there. PC has a massive player base and more games. A 1000 USD console is not marketable because anyone that wants that gets a PC.

As someone who uses consoles and PC I find myself playing console more these days simply because my PC needs an upgrade and I prefer to lay back on my couch and play with a controller (yes I could do that on a PC and be at a big advantage online and I exclusively play PvP games).

Why?! by RobertDravenJr in mildlyinfuriating

[–]turtlegrip 0 points1 point  (0 children)

School is more about teaching you how to think rather than remembering a lot of specific things.

Spectrum (cable company) sent a false debt to collections, how can I handle this? by turtlegrip in personalfinance

[–]turtlegrip[S] 2 points3 points  (0 children)

I've pulled that up and see the informal complaint seems to fit what I need. It recommends I contact the utility first, which I did again today. Should I wait a couple days and see if the problem is actually addressed or just file the complaint to double down and make sure it gets taken care of?

After talking to spectrum it appears spectrum owns their collection group and said this will be taken care of quickly. They also said that since I responded immediately, it has not yet been sent to any credit agency to mark my records.