Author Topic: Is the code on an FPGA firmware?  (Read 7829 times)

0 Members and 1 Guest are viewing this topic.

Offline Pack34Topic starter

  • Frequent Contributor
  • **
  • Posts: 753
Is the code on an FPGA firmware?
« on: September 19, 2017, 12:33:20 pm »
Is the correct vernacular for the code that goes on and FPGA to be called firmware?

I've always felt that it was decidedly different enough to be referred to as "FPGA code" with the actual programming files referred to as "FPGA loads". In large part due to how differently these are programmed versus a microcontroller. Sequential line-by-line C versus a hardware description language that all exists at the same time.

Am I off-base by making the distinction? What does everyone here refer to it as?
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 13747
  • Country: gb
    • Mike's Electric Stuff
Re: Is the code on an FPGA firmware?
« Reply #1 on: September 19, 2017, 12:38:24 pm »
I don't think there is a generally accepted term but firmware is definitely not it
Bitstream or configuration data are two terms that are used.
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Is the code on an FPGA firmware?
« Reply #2 on: September 19, 2017, 12:52:58 pm »
Indeed  :D

firmware -> { CPU, MPU, DSP }
bitstream -> { CPLD, FPGA }
 

Online Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Is the code on an FPGA firmware?
« Reply #3 on: September 19, 2017, 01:13:06 pm »
I don't think there is a generally accepted term but firmware is definitely not it
But it's not like anyone here doesn't know what you're talking about with firmware for an fpga.

The HDL is a different story, that's neither code nor *ware. But when talking about binaries for upgrades, firmware is still correct enough for me.

It's like those things where people keep shouting "there is no power/current on this socket!".
« Last Edit: September 19, 2017, 01:41:52 pm by Jeroen3 »
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6202
  • Country: ro
Re: Is the code on an FPGA firmware?
« Reply #4 on: September 19, 2017, 01:23:47 pm »
Nope, the "firmware" for FPGAs is called bitstream.

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: Is the code on an FPGA firmware?
« Reply #5 on: September 19, 2017, 02:17:06 pm »
It's a bitstream when it is being pushed into the FPGA.  But, a level up, it might be called firmware for an oscilloscope, for example.  Or, the bitstream itself might be one aspect of a firmware package.  It's not inconceivable to have an FPGA softcore defined by the bitstream and the executable written in C and called firmware both loaded from the platform flash.

There are certainly examples of controllers using downloadable firmware that has nothing to do with FPGAs or bitstreams.  Tape controllers, disk controllers and other items from the mainframe days.

It's just too complicated...  No wonder I can't keep up!
 

Offline dgtl

  • Regular Contributor
  • *
  • Posts: 183
  • Country: ee
Re: Is the code on an FPGA firmware?
« Reply #6 on: September 19, 2017, 02:39:02 pm »
For me, the "configuration" feels most appropriate. The chip is reconfigured in a specific way, thus configuration. The configuration is static, the chip just gets connected that way. The configuration gets streamed into the chip, so it can be called "configuration bitstream".
Things get more messy if there are no clear boundaries anymore. Sometimes, the FPGA configuration bitstream is located inside a FW (FPGA gets bootstrapped by the application processor, for example uboot bootloader). Even if the FPGA configuration bitstream is in its own flash, the updates may come with the system FW update package. Sometimes its vice versa, there is a microcontroller or some other programmable statemachine embedded in the FPGA and the firmware image for that is loaded as the default value of a blockram, that resides in the bitstream.
 

Offline paulcav

  • Contributor
  • Posts: 37
  • Country: au
Re: Is the code on an FPGA firmware?
« Reply #7 on: September 19, 2017, 03:55:18 pm »
Lets define the term: Firmware - In electronic systems and computing, firmware is a type of computer program that provides the low-level program control for the device's specific hardware. Firmware can either provide a standardized operating environment for the device's more complex software, or, for less complex devices, act as the device's complete operating system, performing all control, monitoring and data manipulation functions. Typical examples of devices containing firmware are embedded systems, consumer appliances, computers, computer peripherals, and others. Almost all electronic devices beyond the simplest contain some firmware.

So you could think it would be better suited to call the coding of an FPGA 'Firmware' but the coding is not permanent unless the code is stored in external eeprom.  It is more of programmable hardware hence the words in FPGA Field Programmable indicates that it is software controlled in some fashion of Gate Array or could be seen as hardware.
When you look at PGAs they almost follow the path of ROMs, where PGAs in the beginning were received  from the factory by the programmer to burn in the hardware configuration, a similar procedure for PROMs then EPROMs and later EEPROMs which later was called firmware as the code aka software would stay permanent when power is off.

So is it called 'Firmware' for FPGAs, i think not as it is not permanent, however, PGAs once burned they are permanent.
You could view FPGAs as something similar to RAM. The FPGA powers up and goes through a startup routine, loads up a configuration from a storage medium, rearranges the hardware according to its instructions and loses its setup when power is turned off or reset.

So i think it lies in between Software, Firmware and Hardware maybe a collection of the three call it 'SoFiHa' a new term for FPGAs.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6202
  • Country: ro
Re: Is the code on an FPGA firmware?
« Reply #8 on: September 19, 2017, 04:42:08 pm »
Sorry to disappoint here, but science is not compatible with democracy or voting.
It doesn't matter which candidate is more appealing. Beauty contest or presidential election's rules does not apply here.

Xilinx is calling it bitstream, not firmware, so you should call it the same.
Altera, the same, it calls it beatstream.
Lattice, calls it bitstream, too.

Some people misinterpret the software updates as being "firmware", just because "firmware" is the only term they are familiar with, and starts to draw wrong conclusions about bitstreams being called firmware.  :palm:

[rant off, won't write here any more, call it JIL if you like, but it's not JIL, grrrrr!  :horse:]

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 3146
  • Country: ca
Re: Is the code on an FPGA firmware?
« Reply #9 on: September 19, 2017, 09:17:58 pm »
According to the dictionary: https://en.oxforddictionaries.com/definition/firmware

"Permanent software programmed into a read-only memory".

I'd say if you use your bitstream to configure FPGA through JTAG it is not firmware. But once you write it to PROM, your bitstream becomes firmware.

 

Offline Cerebus

  • Super Contributor
  • ***
  • Posts: 10576
  • Country: gb
Re: Is the code on an FPGA firmware?
« Reply #10 on: September 19, 2017, 10:24:36 pm »
Sorry to disappoint here, but science is not compatible with democracy or voting.
It doesn't matter which candidate is more appealing. Beauty contest or presidential election's rules does not apply here.

How strange. You call a discussion about words "science" - it's not, it's semantics, or possibly etymology, but it's not science.

Then you disavow any idea of "democracy or voting" but opt for an argument based, not on science, but on the majority agreeing ("voting") on the same term:

Quote
Xilinx is calling it bitstream, not firmware, so you should call it the same.
Altera, the same, it calls it beatstream.
Lattice, calls it bitstream, too.


Anywhere else that would get the "confused thinking of the week" prize - but around here that quality of logic is, sadly, oft-times par for the course.
Anybody got a syringe I can use to squeeze the magic smoke back into this?
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Is the code on an FPGA firmware?
« Reply #11 on: September 19, 2017, 10:53:58 pm »
It is code you compile so it is firmware. Calling it anything else just confuses management.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: FivePoint03

Offline Pack34Topic starter

  • Frequent Contributor
  • **
  • Posts: 753
Re: Is the code on an FPGA firmware?
« Reply #12 on: September 20, 2017, 01:28:54 am »
It is code you compile so it is firmware. Calling it anything else just confuses management.

Which was the purpose of this post. I wanted to be sure to make the distinction because they require substantially different amounts of effort and timelines. Management assumes everything is firmware.
 

Offline ejeffrey

  • Super Contributor
  • ***
  • Posts: 3719
  • Country: us
Re: Is the code on an FPGA firmware?
« Reply #13 on: September 20, 2017, 05:28:42 am »
Sorry to disappoint here, but science is not compatible with democracy or voting.
It doesn't matter which candidate is more appealing. Beauty contest or presidential election's rules does not apply here.

This is nomenclature / language / jargon, not science.  There are no fundamental principles or laws of nature here, and these terms are of necessity somewhat fluid as the common technologies and usage change.  Bitstream does seem to be the most accepted answer, but there is no need or reason to get so excited about it.
 

Online Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: Is the code on an FPGA firmware?
« Reply #14 on: September 20, 2017, 08:28:00 am »
It is code you compile so it is firmware. Calling it anything else just confuses management.
No, you synthesize.

But it will indeed confuse management and end-users.
 

Offline paulcav

  • Contributor
  • Posts: 37
  • Country: au
Re: Is the code on an FPGA firmware?
« Reply #15 on: September 20, 2017, 08:51:42 am »
It is code you compile so it is firmware. Calling it anything else just confuses management.

Which was the purpose of this post. I wanted to be sure to make the distinction because they require substantially different amounts of effort and timelines. Management assumes everything is firmware.

If money is related then it would be the highest cost with the longest time just to make sure there are no complications if the project is finished early and under budget then its a win.
 

Offline daqq

  • Super Contributor
  • ***
  • Posts: 2302
  • Country: sk
    • My site
Re: Is the code on an FPGA firmware?
« Reply #16 on: September 20, 2017, 08:53:09 am »
Quote
But it will indeed confuse management and end-users.
That is the default state of end users and management. There's no way to avoid it.
Believe it or not, pointy haired people do exist!
+++Divide By Cucumber Error. Please Reinstall Universe And Reboot +++
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: Is the code on an FPGA firmware?
« Reply #17 on: September 20, 2017, 09:21:52 am »
Sorry to disappoint here, but science is not compatible with democracy or voting.
Actually it is. When you look through history then you'll see the explaination which is carried by most is the accepted one. Even if it is wrong (in hindsight).
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline hans

  • Super Contributor
  • ***
  • Posts: 1638
  • Country: nl
Re: Is the code on an FPGA firmware?
« Reply #18 on: September 20, 2017, 09:22:07 am »
The memory contents of a microcontroller and the bitstream send to a FPGA are both binary images, which could both be considered a form of firmware.

I would certainly call it "firmware" from a system point of view. Bothering that a particular chip requires a bitstream instead of a set of processor instructions is too much implementation detail. If you're a systems designer (let alone manager, end user, etc.) all you should care about that the chip needs to be programmed with a binary image.
 

Offline borjam

  • Supporter
  • ****
  • Posts: 908
  • Country: es
  • EA2EKH
Re: Is the code on an FPGA firmware?
« Reply #19 on: September 20, 2017, 09:25:35 am »
I don't think it's incorrect to call it "firmware". In fact, many firmware updates for lots of devices include both actual microprocessor code and FPGA bitstreams.

Moreover, for complex FPGA configurations the line between actual code and electronics is somewhat blurry.
 

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 13747
  • Country: gb
    • Mike's Electric Stuff
Re: Is the code on an FPGA firmware?
« Reply #20 on: September 20, 2017, 10:02:01 am »
The optimal answer probably does depend on who's asking and why....
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Offline mac.6

  • Regular Contributor
  • *
  • Posts: 225
  • Country: fr
Re: Is the code on an FPGA firmware?
« Reply #21 on: September 20, 2017, 10:32:32 am »
bitstream (or sometimes called bitfile) is what is going on the FPGA fabric (either ram or flash based)
memory configuration file (mcs) is what is flashed in external flash used for power-on configuration for some FPGA.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Is the code on an FPGA firmware?
« Reply #22 on: September 20, 2017, 10:59:52 am »
Approval of software & electronic hardware parts: what should I load to the board?

in Avionics there is implication  :D

if you say (x)
  • x="firmware", you will end dealing with the software-quality guys, discussing on DO-178
  • x="bitstream", you will end dealing with the hardware-quality guys, discussing on DO-254

but if you say "firmware" referring to an fpga, or "bitstream" referring to PowerPC ... probably you will end dealing with the person who owns a "god certificate", owns your desk, and since you are supposed to be a "a person who provides expert advice professionally" then she (unfortunately she is a she) may want to verify that you are really qualified to do the job, thus ....


.... you will have a sort of inquisition in her office  :-DD :-DD :-DD

(it happened, I am not kidding  :-X :-X :-X :-X )
 

Offline Mr. Scram

  • Super Contributor
  • ***
  • Posts: 9810
  • Country: 00
  • Display aficionado
Re: Is the code on an FPGA firmware?
« Reply #23 on: September 20, 2017, 02:01:12 pm »
Sorry to disappoint here, but science is not compatible with democracy or voting.
It doesn't matter which candidate is more appealing. Beauty contest or presidential election's rules does not apply here.

Xilinx is calling it bitstream, not firmware, so you should call it the same.
Altera, the same, it calls it beatstream.
Lattice, calls it bitstream, too.

Some people misinterpret the software updates as being "firmware", just because "firmware" is the only term they are familiar with, and starts to draw wrong conclusions about bitstreams being called firmware.  :palm:

[rant off, won't write here any more, call it JIL if you like, but it's not JIL, grrrrr!  :horse:]
This has nothing to do with science. It's a simple matter of definitions, which is a shaky and arbitrary area at best. Although, as you say, when thee of the major manufacturers call something technical one thing, it helps clarity to call it the same.
 

Offline MT

  • Super Contributor
  • ***
  • Posts: 1616
  • Country: aq
Re: Is the code on an FPGA firmware?
« Reply #24 on: September 20, 2017, 02:09:49 pm »
Back in the 90'ies at R/D meetings our department boss always asked us if the config of our Xilinx was done and we replied that bitstreams had been sent. He was pleased.
« Last Edit: September 21, 2017, 01:37:09 am by MT »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf