Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

doubts regarding FPGA

Status
Not open for further replies.

ep.hobbyiest

Full Member level 4
Joined
Jul 24, 2014
Messages
212
Helped
1
Reputation
2
Reaction score
1
Trophy points
18
Activity points
1,487
i have some basic doubts regarding fpga.
i am studying fpga now.
IS fpga have ROM like controller?
i got the doubt becasue i read it on one website.
 

What website?

You can implement pretty much any logic you want in an FPGA, including ROMs.
 

i didn't understand the following line
FPGAs store's their configuration in RAM, not flash, meaning that once they lose power they lose their configuration. They must be configured every time power is applied

- - - Updated - - -

i didn't understand the following line
FPGAs store's their configuration in RAM, not flash, meaning that once they lose power they lose their configuration. They must be configured every time power is applied
 

FPGAs usually does not have internal ROM, only RAM (there are some exceptions).

Thus you have to program it externally. There are some ways to do it (using an external parallel flash, or an external SPI flash, or an microprocessor, or JTAG are the most common ways).
 

FPGAs from both Altera and Xilinx use SRAM to store their configuration bits (the bits that tell how the device is supposed to function), therefore if they lose power the configuration bits are lost. SRAM is volatile memory and requires that power be applied continuously to keep the data stored in the memory. Flash on the other hand is a non-volatile storage and will keep data stored in it's memory cells when power is removed.
 

Means if i create code for UART and burn it in fpga then it will run for the first time but after power off this configuration will erase.
we have to again reprogram it.
and what is solution for this?
 

You will have to reprogram it....No other way...
 

I don't think you understand how FPGA's work. Sure they are RAM based but they are made to be program-once-read-forever until you change them. The basic configuration is [flash memory]<-->[FPGA chip] . Every time your FPGA "boots" it will pull it's program from the flash chip. Now the tools will just let you load up just the SRAM on the FPGA for temporary testing (and to save burns to the FLASH, which has lots of "burns" but can eventually be used up) so if you are just debugging/developing it's easier and faster to just load the SRAM on the FPGA directly. When you are happy with what you have then you can burn it permanently to the Flash and the FPGA will pull it from the Flash memory. Some other configurations also might use a microcontroller to copy from a flash memory chip to the FPGA because that can be cheaper than buying flash chips with the proprietary interfaces necessary to interface directly with the FPGA. On the flipside CPLD's usually have the flash memory built into the chip, but they are also usually considerably smaller and cheaper and easier to put on a PCB. There are trade offs of using one over the other that you will have to research for yourself.
 
Then how the people use this is in big projects and they don't do reprogramming of this.

- - - Updated - - -

FPGAs usually does not have internal ROM, only RAM (there are some exceptions).

Thus you have to program it externally. There are some ways to do it (using an external parallel flash, or an external SPI flash, or an microprocessor, or JTAG are the most common ways).

means in if i want to use fpga then i should must have external parallel flash or microprocessor.
 

Reprogramming on power loss is compulsory.
You don't need a microprocessor. You need some kind of ROM to hold the BIT file which can then be programmed to the FPGA when booting/rebooting happens...
 

For some examples on how this is done on xilinx FPGAs, google "xilinx configuration guide". Those PDFs show how you can configure the various FPGAs. For most FPGAs from other vendors the situation will be similar.
 

I would say the odds are likely you will be using an external memory (and/or cpu). There are a few FPGAs out there I believe with onboard flash, but I think they are small. The FPGA's that I dealt with from Altera and Xilinx all used it, and they were small to medium size. Configuration isn't a big deal, it's pretty easy if you just read the app notes thoroughly and have board layout experience. All manufacturers will provide thorough details on the programming modes (parallel/serial/etc). If you are looking for a reprogrammable chip with on-chip flash, you really should look at CPLD's if your application will fit. You haven't given any details on what you are trying to do though, just that you are trying to figure out FPGA's.
 

what protocols we can implement in FPGA?
Means protocols like i2c, Spi, UART, USB can be implemented in FPGA?
 

I2C, SPI, UART is no problem. USB depends on what you mean. If you mean interface to an external usb chippie that provides you with a fifo and control signals, then yes. If you plan to implement usb3 in fpga, best buy several crates of energy drink and tell friends & family not to call you for a few months. ;-)
 
Yep best to maybe just buy a USB chip rather than try to roll your own, unless you just like the topic and challenge of USB, it is not trivial like UARTS, I2C, or SPI (relatively of course).
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top