Sign up at ELECTRONOOBS.io: electronoobs.io/ Follow me on FACEBOOK for more: facebook.com/Electronoobs help me on Patreon: www.patreon.com/ELECTRONOOBS
hello my friend how are you. I am working on the rc plane controller everything is working good but i have a small problem that the servo motor is not turning for 90 degree just for 10 degree left and 10 right. I am new in arduino can you help me how to fix it please.(this is my problem please if you can help me and i changed my name on the forum it is now fekkra.lb)
Well done Electronoobs, this is a very informative video from the basic building blocks of an FPGA up to the actual thing. This video pretty much sums up what I learned in my first digital design course in college a few years back!
Sir i have a problem and you are the only who can help me.i have a futaba t7c transmitter but i dont have its reciever. Can we make its reciever with arduino and nrf24.or somthing else.please help me sir.
CPLDs predate FPGAs for a reason. If you are using a PLD as a hobbyist then most of your needs will be met by a CPLD. If you need speed, amount of logic cells, high speed transceivers, or 5v logic level, then you need a FPGA. if internal memory like DDR is necessary, than a zynq series FPGA would work. Even using a low end FPGA, a designer can build internal memory. I might be biased after updating CPLD designs to FPGAs.
Each have their strenghts... but CPLDs are pretty niche nowadays, as uC are powerful enough on their own and if you need something very complex, an FPGA is better suited.
Thank you so much! I think a simple enough yet very useful project could be a SPI module to control multiple steppers (multiplexing?). So you don't run out of pins to control them. By the way, what about the litex project? can you recommend it? It seems pretty powerful and there is even complete RISC-V processors programmed in litex
I would like to add another important difference between FPGAs and uC: - uC usually have internal ROM or Flash memory for their code. You just power it on and it starts doing its thing. - FPGAs are RAM based. Essentially they are one big memory that's split between the Look-Up Tables used to implement functions similar to logic gates truth tables (which can be used as distributed RAM) and a block RAM memory. They also hae some Flip-flops and 3 state logic gates to pass the data between LUTs to implement complex functions. However, once power is gone, FPGAs return to being blank. Most FPGAs have an EEPROM/Flash memory that can hold the configuration file for the FPGA and the FPGA gets programmed from it automatically when it's powered on. P.S.: FPGAs also have clock management and generation blocks, ALUs for accelerating some operations and not use programmable resources and more recently CPU cores that can run software to use your accelerated algorithm in the programmable part in general purpose software... need to mention this for the ones that will have problems with my "one big memory" expression :)
This is false, both FPGAs and uC need to be bootloaded after a power off. This is apart of the power on sequence. You are confusing how each device works with power on sequence. Power on sequence for uC requires loading the pointer for where in the program you are starting. You than proceed through the code to initialize the design. Very few designs can be loaded into a previous state. FPGA power sequence is similar to that of uC. The difference is the FPGA needs to be re-image (similar to that of re-imaging hard drives). Once the design has been configured, the design can initialize itself.
@@schumerthd I am not confusing anything. I never said the uC can resume from where it left off. I just said that most uC are ROM based, and if they have code inside their ROM you can just power it on and it will start running (see Arduinos for example). FPGAs are RAM based, when you take away their power, they return to an unprogrammed state. Most FPGA development boards (and even FPGA based designs) I have worked on or with have an external ROM where the FPGA configuration is held for the FPGA to be programmed when powered on. Simply put, a uC on its own, most of the time will actually execute something once you power it on. There is an initial instruction pointer, even if it points to blank memory (which usually translates to NOP instruction). An FPGA will do absolutely nothing on it's own once powered on. In real life, your last sentence is exactly what I said, but fancier :) Technically correct, but I don't want to dive to deeply in details, as this video does not go to such depths.
Hello, I bought Chinese FPGA board (Altera IV EP4CE6) in aliexpress long time ago that you used in this video, unfortunately I found that I don't have any supplemental materials like schematics, manuals or demo programs/codes. I wanted to start programming, but there is very small info in internet on that board and it is out of stock everywhere. Could you or anyone please send it to me or tell where I could find it?
I have watched the entire FPGA 101 series really enjoy it. can you make more videos about FPGA:s maybe one were you build up FPGA from scratch PCB would be awesome thanks a lot!
One request, could you include code examples along with the example of how synthesis works. The process for synthesis works by interpreting the code into abstractions. These abstractions, are memory, accumulators, and, or, not, or clock dividers just to name a few. Once the code is turned into abstractions, then a process called implementation can proceed. An example of this in code would be: count
Very good explanation. Thank you. Can you build project a custom PCB containing FPGA chip with the basic configuration (crystal, programmer, etc.....). Or build Electronoobs FPGA board. And thank you again. You are the best.
I don't quite agree with the arguments on the choice of fpga/controller. I would lean more on the division between working in control-plane or data-plane. For example, if you have several high speed transmissions going on, it would be hell to solve such a task using only a controller. Moreover, we should not forget that there are cheaper FPGAs. On the other hand, using an FPGA to control a complex device with complex sequential logic is not the best option either. As for me, if you have a task related to parallel high-speed processing/sending of several data streams, FPGA is the way to go. Because no matter how cool the controller is, it will not be able to process 2 interrupts instantly. Even just two output signals at the same time 2 pins for example on different ports can already become a problem for the controller. So I would ask questions right away: Is the logic of the device complex and sequential? (Controller) Is there parallel processing of time-critical signals? (FPGA). If the answer to both questions is yes, then it might be worthwhile to put a controller + FPGA. I.e. do not take the most expensive FPGA and do not emulate memory/processor on it, but buy an inexpensive controller and an inexpensive FPGA. Still, their tasks are different. Well, and options when some smart device consists only of FPGA seems to be something from the category of a cannon at sparrows.
A FPGA Especially a SPARTAN FPGA can accommodate a complete unit i.e a Sinclair Spectrum or even a AMIGA A1000 on a FPGA and can make for a small PCB, I think that if OLIVETTI had access to FPGA chips then the electronics that were spread across 16x S100 boards would fit onto one PCB and mean the the OLIVETTI M3030 would be more like a IBM PC and would not be built into the back of the desk made from sheet steel.
Just wondering do some fpgas impliment a look up table rather than actual logic gates? As logic gates are complex and hard to configure. Where as a lookup table is fast programmable and has 0 propegation delay...
In FPGAS they are configured into logical blocks, for Xilinx FPGAs they generally have 4 six-input look up tables (LUTs, these can be configured to behave like logical operations i.e. x & Y | Z) 8 registers (Flip-Flops, save data) a carry a chain and multiplexers. Sometimes if your logic behaves like a look up table BRAMS can be used to accomplish this task.
Probably the look up table only stores the configuration of logic gates. The information of the lookup table is used to connect the logic gates together.
With the schematics for NAND and NOR that you showing you never can get zero on the output. You should have a resistor on top to limit the current. Your way you have on positive side a zero resistance to positive rail and on negative side you have tiny but significant in this case resistance of two MOSFET channels.
I'm always confused about what type of code is synthesizable or not. Like using if statement inside of an always statement. Sometimes I'm able to synthesize it and it works fine when testing the physical output, but other times it doesnt work at all even though the stimulation works. Maybe you can do a video on that?
hmm, "if" inside an "always" is no problem... This might be related with non-blocking or blocking. You have a full post about that here: inst.eecs.berkeley.edu/~cs150/Documents/Always.pdf
There's a book i got from Amazon called 100 Power Tips for FPGA Designers. It explains a lot of conventions that are for simulation only and goes over what parts of verilog are synthesizable . For example, initial blocks are not synthesizable and only work for simulations. However, on Xilinx FPGAs initial blocks are. Sometimes it depends on the device manufacturer as well. Defiantly check out the book @GrandNecro
Hai brother small doubt about what is difference between FPGA and ASIC Flow ( also this is the process)like Specification, RTL,SYNTHETICS DFT,STA,PD ) I am training at Dft that's why I am asking plz tell me brother
ASIC is an abbreviation for application specific integrated circuit. It is an IC that is used for a specific function. For example webcams and digital cameras have ASICs that process and compress the image. FPGAs on the other hand are general purpose devices with which you can make almost any combination of logic gates. You can use them for the prototyping digital ASICs.
FPGAs are the same as hardware logic gates, that's what makes them up. It's not simulating the functionality of them. The bit stream goes into program the FPGA which really tells the transistors and blocks where to make connections and where to not to make connections. You could think of it as wiring up a circuit board in a way.
Nope, FPGA's in quantity don't get anywhere near as cheap as you suggest. Nope, the original arcade machines, while now implementable in FPGA, were not FPGA based in their day.
Sign up at ELECTRONOOBS.io: electronoobs.io/
Follow me on FACEBOOK for more: facebook.com/Electronoobs
help me on Patreon: www.patreon.com/ELECTRONOOBS
hi how are you? i send a message on your forum can you reply please
@@fekkralebanon I can't find any of your posts on the forum...
@@ELECTRONOOBS my name their is noob 2005
hello my friend how are you. I am working on the rc plane controller everything is working good but i have a small problem that the servo motor is not turning for 90 degree just for 10 degree left and 10 right. I am new in arduino can you help me how to fix it please.(this is my problem please if you can help me and i changed my name on the forum it is now fekkra.lb)
@@fekkralebanon are you using the servo library or the writeMicroseconds function? For servos use servo library!
I hope you understand how much we appreciate your work. Thank you and stay safe
So glad you say that! Thanks
Well done Electronoobs, this is a very informative video from the basic building blocks of an FPGA up to the actual thing. This video pretty much sums up what I learned in my first digital design course in college a few years back!
Sir i have a problem and you are the only who can help me.i have a futaba t7c transmitter but i dont have its reciever. Can we make its reciever with arduino and nrf24.or somthing else.please help me sir.
Thank you for sharing your knowledge and building a better community!! Much appreciated!
U welcome
Just wanted to say thank you for your work! Very professional, interesting, and easy to understand videos. Keep up the great job!
I went to abstract to something i can grab onto. This is legit.
nice video man, I'll be waiting for the next video of FPGAs
I really enjoyed this. Great job! Your English is fine; no worries. Thank you for your efforts to make and share your content.
It was an excellent video. Thank you for sharing useful information.
Huge thanks for the video. Explained a lot and with ease.
Are you sure that you mean GROUND or do you mean chassis ground or do you mean 0V reference or do you mean Negative? There is a difference.
Wow very good explanation. Great video
Nice explanation my friend.
Great explanation, thank you!
CPLD is cheaper than FPG and don't need external memory. CPLD + MCU best combo. Nice informative video G.J.
CPLDs predate FPGAs for a reason. If you are using a PLD as a hobbyist then most of your needs will be met by a CPLD. If you need speed, amount of logic cells, high speed transceivers, or 5v logic level, then you need a FPGA.
if internal memory like DDR is necessary, than a zynq series FPGA would work. Even using a low end FPGA, a designer can build internal memory.
I might be biased after updating CPLD designs to FPGAs.
Each have their strenghts... but CPLDs are pretty niche nowadays, as uC are powerful enough on their own and if you need something very complex, an FPGA is better suited.
@@schumerthd Well said, I love my ZYNQ FPGA with dual core arm-cortex. It kicks trash!
Thank you so much sir you are explaining very good
Nice Work! Save my day ! Awesome!
Can I ask if you can recommend an ASIC manufacturer which is really affordable just like JLCPCB?
Wow! Soooo much knowledge in one video :O
Thank you so much! I think a simple enough yet very useful project could be a SPI module to control multiple steppers (multiplexing?). So you don't run out of pins to control them. By the way, what about the litex project? can you recommend it? It seems pretty powerful and there is even complete RISC-V processors programmed in litex
Great video. Never used FPGA but i do like logic gates. Time to do some more research..🙏
thanks bro,have been waiting for this.
this is great tutorial, I love FPGAs thanks !
I would like to add another important difference between FPGAs and uC:
- uC usually have internal ROM or Flash memory for their code. You just power it on and it starts doing its thing.
- FPGAs are RAM based. Essentially they are one big memory that's split between the Look-Up Tables used to implement functions similar to logic gates truth tables (which can be used as distributed RAM) and a block RAM memory. They also hae some Flip-flops and 3 state logic gates to pass the data between LUTs to implement complex functions. However, once power is gone, FPGAs return to being blank. Most FPGAs have an EEPROM/Flash memory that can hold the configuration file for the FPGA and the FPGA gets programmed from it automatically when it's powered on.
P.S.: FPGAs also have clock management and generation blocks, ALUs for accelerating some operations and not use programmable resources and more recently CPU cores that can run software to use your accelerated algorithm in the programmable part in general purpose software... need to mention this for the ones that will have problems with my "one big memory" expression :)
TL;DR: FPGA - RAM based, power off-power on => need reprogramming; uC - ROM based, power off-power on => starts running like from a reset.
True. Thank you for the info!
This is false, both FPGAs and uC need to be bootloaded after a power off. This is apart of the power on sequence.
You are confusing how each device works with power on sequence.
Power on sequence for uC requires loading the pointer for where in the program you are starting. You than proceed through the code to initialize the design. Very few designs can be loaded into a previous state.
FPGA power sequence is similar to that of uC. The difference is the FPGA needs to be re-image (similar to that of re-imaging hard drives). Once the design has been configured, the design can initialize itself.
@@schumerthd I am not confusing anything. I never said the uC can resume from where it left off. I just said that most uC are ROM based, and if they have code inside their ROM you can just power it on and it will start running (see Arduinos for example). FPGAs are RAM based, when you take away their power, they return to an unprogrammed state. Most FPGA development boards (and even FPGA based designs) I have worked on or with have an external ROM where the FPGA configuration is held for the FPGA to be programmed when powered on.
Simply put, a uC on its own, most of the time will actually execute something once you power it on. There is an initial instruction pointer, even if it points to blank memory (which usually translates to NOP instruction). An FPGA will do absolutely nothing on it's own once powered on.
In real life, your last sentence is exactly what I said, but fancier :) Technically correct, but I don't want to dive to deeply in details, as this video does not go to such depths.
This help me a lot, thanks!
Great Video!! Keep on uploading content!! Your content really helps me in my education life!
Please share more about FPGA, we are awaiting...
Great video!
Very well explained. Thank you.
Hello electronoobs 😘😘😘
What's the board, you are using?
Hello, I bought Chinese FPGA board (Altera IV EP4CE6) in aliexpress long time ago that you used in this video, unfortunately I found that I don't have any supplemental materials like schematics, manuals or demo programs/codes. I wanted to start programming, but there is very small info in internet on that board and it is out of stock everywhere. Could you or anyone please send it to me or tell where I could find it?
I have watched the entire FPGA 101 series really enjoy it. can you make more videos about FPGA:s maybe one were you build up FPGA from scratch PCB would be awesome thanks a lot!
Thank U 👍🏻
Sam 🎵
Please make some project on buck and boost converter using FPGA board
Excellent video
One request, could you include code examples along with the example of how synthesis works.
The process for synthesis works by interpreting the code into abstractions. These abstractions, are memory, accumulators, and, or, not, or clock dividers just to name a few. Once the code is turned into abstractions, then a process called implementation can proceed. An example of this in code would be: count
Thanks, Man. I really am.
Awesome brother..
And please also make video on 8051 microcontroller...😇
Very good explanation. Thank you.
Can you build project a custom PCB containing FPGA chip with the basic configuration (crystal, programmer, etc.....). Or build Electronoobs FPGA board.
And thank you again. You are the best.
FPGA's are VERY cool! SUPER low latency devices, very fast at specific tasks.
I don't quite agree with the arguments on the choice of fpga/controller. I would lean more on the division between working in control-plane or data-plane. For example, if you have several high speed transmissions going on, it would be hell to solve such a task using only a controller. Moreover, we should not forget that there are cheaper FPGAs. On the other hand, using an FPGA to control a complex device with complex sequential logic is not the best option either. As for me, if you have a task related to parallel high-speed processing/sending of several data streams, FPGA is the way to go. Because no matter how cool the controller is, it will not be able to process 2 interrupts instantly. Even just two output signals at the same time 2 pins for example on different ports can already become a problem for the controller. So I would ask questions right away: Is the logic of the device complex and sequential? (Controller)
Is there parallel processing of time-critical signals? (FPGA).
If the answer to both questions is yes, then it might be worthwhile to put a controller + FPGA.
I.e. do not take the most expensive FPGA and do not emulate memory/processor on it, but buy an inexpensive controller and an inexpensive FPGA. Still, their tasks are different. Well, and options when some smart device consists only of FPGA seems to be something from the category of a cannon at sparrows.
How many times can we reprogram fpga? Is there any limit? Good job btw :) really enjoyed this video
A FPGA Especially a SPARTAN FPGA can accommodate a complete unit i.e a Sinclair Spectrum or even a AMIGA A1000 on a FPGA and can make for a small PCB, I think that if OLIVETTI had access to FPGA chips then the electronics that were spread across 16x S100 boards would fit onto one PCB and mean the the OLIVETTI M3030 would be more like a IBM PC and would not be built into the back of the desk made from sheet steel.
i like FPGA, can you make more please?
Just wondering do some fpgas impliment a look up table rather than actual logic gates? As logic gates are complex and hard to configure. Where as a lookup table is fast programmable and has 0 propegation delay...
In FPGAS they are configured into logical blocks, for Xilinx FPGAs they generally have 4 six-input look up tables (LUTs, these can be configured to behave like logical operations i.e. x & Y | Z) 8 registers (Flip-Flops, save data) a carry a chain and multiplexers. Sometimes if your logic behaves like a look up table BRAMS can be used to accomplish this task.
Probably the look up table only stores the configuration of logic gates. The information of the lookup table is used to connect the logic gates together.
With the schematics for NAND and NOR that you showing you never can get zero on the output. You should have a resistor on top to limit the current. Your way you have on positive side a zero resistance to positive rail and on negative side you have tiny but significant in this case resistance of two MOSFET channels.
I'm always confused about what type of code is synthesizable or not. Like using if statement inside of an always statement. Sometimes I'm able to synthesize it and it works fine when testing the physical output, but other times it doesnt work at all even though the stimulation works. Maybe you can do a video on that?
hmm, "if" inside an "always" is no problem... This might be related with non-blocking or blocking. You have a full post about that here: inst.eecs.berkeley.edu/~cs150/Documents/Always.pdf
There's a book i got from Amazon called 100 Power Tips for FPGA Designers. It explains a lot of conventions that are for simulation only and goes over what parts of verilog are synthesizable . For example, initial blocks are not synthesizable and only work for simulations. However, on Xilinx FPGAs initial blocks are. Sometimes it depends on the device manufacturer as well. Defiantly check out the book @GrandNecro
Good Job!
Hai brother small doubt about what is difference between FPGA and ASIC Flow ( also this is the process)like Specification, RTL,SYNTHETICS DFT,STA,PD ) I am training at Dft that's why I am asking plz tell me brother
ASIC is an abbreviation for application specific integrated circuit. It is an IC that is used for a specific function. For example webcams and digital cameras have ASICs that process and compress the image. FPGAs on the other hand are general purpose devices with which you can make almost any combination of logic gates. You can use them for the prototyping digital ASICs.
I have a rough idea of how logic gates work is this the same thing as a hardware LG or is it virtual?
FPGAs are the same as hardware logic gates, that's what makes them up. It's not simulating the functionality of them. The bit stream goes into program the FPGA which really tells the transistors and blocks where to make connections and where to not to make connections. You could think of it as wiring up a circuit board in a way.
Santa came early this year! :)
İ am waiting big project from you .thank you
OR gates are not the same as EX-OR
good job thanks !
You are like greatscotts 2nd channel. Same topics but late upload and less density information flow.
Please do a video on building user interface with ARM and esp32!
Please make a robotic linear actuator 👏👏👏👏👏
Nope, FPGA's in quantity don't get anywhere near as cheap as you suggest. Nope, the original arcade machines, while now implementable in FPGA, were not FPGA based in their day.
Hey there! Why don't you make register level programming vedio (learn more)that will be great 😊😊😊😊😊😊😊😊😊😊😊😊😊
Plz make one
I'm preparing a video like that one....
@@ELECTRONOOBS thanks very much bro😊😊😊😊😊😊😊
make a video on making anemometer. arduino
🔥 🔥 🔥 🔥 🔥 🔥
I have to say ❤👍
You have confused the NOR gate with an XOR gate twice
yeah... maybe, it happens :)
Great
you r a making pubg game pad,
usde for androin and ios,
making this is a arduino microcontroller
programming basd.
LIKE IT
Ошибка с 6 по 7 минуты.
Many false claims herein.
FPGA huh? Just after great scott? Hmmmmm suspicious
Awesome video!