Author Topic: Is the code on an FPGA firmware?  (Read 7832 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: 13748
  • 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 }
 

Offline 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 »
 

Offline 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.
 

Offline 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.
 

Online 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.
 

Offline 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.
 

Online hans

  • Super Contributor
  • ***
  • Posts: 1640
  • 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: 13748
  • 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 »
 

Offline suicidaleggroll

  • Super Contributor
  • ***
  • Posts: 1453
  • Country: us
Re: Is the code on an FPGA firmware?
« Reply #25 on: September 20, 2017, 02:55:38 pm »
You write firmware.  After it's been synthesized, you load the bitstream onto the FPGA.  That's the syntax I use...the code itself is "firmware" or "HDL", the synthesized binary blob is the bitstream, though many people I work with still refer to that as the firmware, and nobody cares.
 

Offline jnz

  • Frequent Contributor
  • **
  • Posts: 593
Re: Is the code on an FPGA firmware?
« Reply #26 on: September 20, 2017, 08:43:14 pm »
I mean, I don't know the second thing about FPGA really, but it seems to me you're just defining a *configuration*.

In terms of the real world firmware seems about a million times clearer to a normal person than bitstream.
 

Offline ZaneKaminski

  • Contributor
  • Posts: 30
  • Country: us
Re: Is the code on an FPGA firmware?
« Reply #27 on: September 21, 2017, 02:42:27 pm »
Once it's on the FPGA, it is certainly not a bitstream. The bits all end up scattered around in different internal flipflops and SRAM blocks. There is no stream anymore. So it's a "configuration" now, not a bitstream. A bitstream is just that... a stream of bits. In this case, the bitstream encodes the FPGA configuration.

Firmware is a more abstract concept. Firmware is the stuff you have to apply to the device or it doesn't work. I hesitate to provide a more specific definition, since more specificity would undermine the usefulness of the term. Firmware doesn't have to be a single bitstream, though it often is. It could be multiple, or it could refer to some other way to structure the data. Consider multiple files in a typical computer filesystem. These files could, together, represent the firmware, but they have tree-type relationship and aren't just a single stream (a tree of streams, of course).

So if all a system needs to "work" (whatever that means) is an FPGA configuration bitstream, then it represents the entirety of the firmware. Otherwise there may be other files or bistreams or whatever you want to say, and those all together represent the firmware.

Addendum: it's worth noting that the firmware doesn't have to be compiled, whereas a bitstream (like the software  term, a "binary") always is compiled and ready to run or be applied to the device.
« Last Edit: September 21, 2017, 02:44:17 pm by ZaneKaminski »
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Is the code on an FPGA firmware?
« Reply #28 on: September 21, 2017, 07:36:55 pm »
mr.brilliant: hey?
mr.sapiens: oh!
mr.brilliant: pip?
mr.sapiens: and dandy!
mr.brilliant: yeah! let's upload the firmware
mr.sapiens: yeah cool!!!!!!!!

5 sec later ... some neurons have a blast
 
mr.sapiens: ehm ... what? into what? we have two CPUs and four fpgas on the board
mr.brilliant: ye-e-ah, I meant the file-something for the chip-something
mr.sapiens: which one? the slave MPU? the ARM chip? do you mean loooooonnnniiiixxxxx?
mr.brilliant: it! (pointing the finger in the direction of the chip)
mr.sapiens: ah, that chip, that file!!! Alright!

---

The ape was a great big Hit!
The first time it said "banana",
pointing the finger in the direction
of a banana on a banana tree.

Nowadays problems with evolution
are greater still  :D

( kidding )
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf