Is FPGA code called firmware?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Traditionally, firmware was defined as software that resided in ROM.
So, my question is, what do you call FPGA code?  Is "firmware"
appropriate?

Re: Is FPGA code called firmware?
Marko schrieb:
Quoted text here. Click to load it

Why not?

Regards
Falk

Re: Is FPGA code called firmware?

Quoted text here. Click to load it

Are you answering my question with a question?

Seriously, I just want to know what other people call it.  It seems
incorrect to refer to FPGA code by the same name used for ROMable S/W.
At my previous job, we just called it "FPGA Code".  At my new job,
it's called "firmware".    


Re: Is FPGA code called firmware?
Marko schrieb:

Quoted text here. Click to load it

I don't see the big problem there. There are hundreds of synonyms
floating around. "FPGA-Code" is more or less the same as "Firmware".
There is no official definition or standard, also no defacto standard.
So call it whatever you like it as long as it's in sync with the people
you are talking to.

Regards
Falk

Re: Is FPGA code called firmware?

Quoted text here. Click to load it

At one previous place of employment, we called it Roland C.
Higgenbottom the Third.  We figured we could charge extra by making it
sound more dignified than it actually was.

Bob Perlman
Cambrian Design Works

Re: Is FPGA code called firmware?
The difference is execution versus synthesis. Firmware is indeed
embedded and dedicated code, but the code is executed. FPGA code is
written in a _description_ language, is then interpreted, synthesized,
and ultimately produces hardware.

So, I see it fit to refer to the FPGA, when it is configured, as
hardware, and to the code itself as a description language.

Julian


Re: Is FPGA code called firmware?
Julian Kain schrieb:
Quoted text here. Click to load it

VHDL may "produce" hardware when doing ASIC design. In an FPGA not a
single bit is "produced", all is fixed. Only the connections between the
bits are set, so all that is done in an FPGA is configuration.
Surprisingly this process is called configuration for quite a long time ;-)

Quoted text here. Click to load it

What code? The source code (VHDL/Verilog/whatever) or the final
bitstream? The same distinction applies to microprocessor "Firmware",
where you have the source code and the compiled binary.
Hmm, the more I write and think about it (where it should be better the
other way around ;-) FPGA and microprocessor bitstreams are becomming
more and more similar "Firmware".

Regards
Falk

Re: Is FPGA code called firmware?

Quoted text here. Click to load it

So what do you call a gate array or structured asic ? What does VHDL
do when it generates files for one of these processes ? (for the
uninitiated gate-arrays or structured asics in general have all their
base layers produced already and several metals are used configure the
manufactured general purpose gates to what you want and provide the
connectivity).
By the same token when you take a bit file generated for an FPGA and
use it to produce a hard-copy device (a structured asic specifically
generated for a certain FPGA family) does the VHDL suddenly realize
that it has produced hardware ? What does this say for laser trim or
metal only ECO ?
Also is an Intel or AMD processor really hardware as they have
micro-code which can be downloaded by BIOS which can be used to fix
quite a bit of "issues" with the processor.

Quoted text here. Click to load it

So the function of each LUT and how they are all connected are fixed
and the VHDL doesn't produce anything ? What does it do then ? If in
my standard cell design, I have memory based FSMs the function of
which can be changed by updating the contents of such, does my asic
become software ? What about external pins which can change the
behaviour of combinational FSMs ?

I think the issue is a lot less clean-cut then is suggested here.


Re: Is FPGA code called firmware?
mk schrieb:

Quoted text here. Click to load it

This is an ASIC too, just with a reduced number of user defined
parameters (since most geometries are already fixed).

Quoted text here. Click to load it

Yep.


There is always an exeption to every rule ;-)

Quoted text here. Click to load it

SoC ;-)

Quoted text here. Click to load it

Neither did I not write this nor did I say this. Nevertheless,
incomplete quotes are quite popular.

Quoted text here. Click to load it

The chip will stay an ASIC. But you can (and will) download firmware.

Quoted text here. Click to load it

;-) C'mon.

Quoted text here. Click to load it

Maybe. Thats why we are here to discuss. Or to argue. Or to get into
philosopy. The last works a lot better with a nice bottle of red wine ;-)

Regards
Falk, taking this "issue" not too serious, since it is quite academic

Re: Is FPGA code called firmware?


Quoted text here. Click to load it

Enter dynamic reconfigurability, and it's not even "firmware" any more
... not hard locked in even a rom for many designs.  More like a solid
state disk, IE compact flash card, used has the primary storage in many
portable computer devices, and a growing number of not so portable
devices, to avoid hard drives. Sometimes, with even network driving
dynamic loading, where all that is "rom'd" is a "boot loader", and the
rest of the design is fetched off the net at powerup.


Re: Is FPGA code called firmware?
fpga snipped-for-privacy@yahoo.com schrieb:

Quoted text here. Click to load it

I would'nt connect the term "Firmware" to ROMs. For my understandig so
far, Firmware is data in any storage medium (ROM/RAM/FLASH/Network) that
is loaded into a "Execution memory", for a processor it will be RAM, for
a FPGA it will be Config-RAM, or if yo like RAM for FSMs.
How about this "definition"?

Regards
Falk

Re: Is FPGA code called firmware?

Quoted text here. Click to load it

So, for Reconfigurable Computing, where we compile C directly to
netlists to execute certain algorithms with high degrees of
parallelism, use a sea of logic resources as a universal computer
architecture, .... it's hard to consider the resulting fpga "design"
(AKA program) either hardware or firmware.

There is a reason I call FpgaC an HDL, and move it's syntax and use to
mainstream computing (rather than leave it in it's original HLL focus
when it was TMCC). But that really is true of other C compilers that
target some C subset/superset HLL/HDL's such as Handel-C (Celoxica) or
Streams-C (Impluse-C) as well.  Some people use
FpgaC/Handel-C/Streams-C to design "hardware" some just use it to run
"software" on FPGA's.

For that mater, the same is true of VHDL, Verilog, JHDL, and some dozen
other FPGA centric HDL/HLL tools.


Re: Is FPGA code called firmware?

Quoted text here. Click to load it

Dunno if it's appropriate, but I see it called that in many places.
"FPGA configuration file" is probably best, but that makes managers'
eyes cross.  Call it "firmware" and it sounds safely familiar.

--

Tim Wescott
Wescott Design Services
We've slightly trimmed the long signature. Click to see the full one.
Re: Is FPGA code called firmware?
One should check out the source of the term "firmware". I suspect that
most of you weren't around in the early 70's when the term was invented
(at least not in the professional sense). Firmware was invented with
the advent of microcoded computers. Microcode is "software", but a
different kind of software than most of us were familiar with. And,
usually, it wasn't something that the user could change (with a very
few exceptions). So they came up with "firmware", meaning it was
programmed into read-only memories (ROM). Eventually, anything
programmed into ROM, EPROM, EEPROM, etc. became known as firmware. But
it was, still, instructions that were fed to an instruction execution
unit, one at a time sequentially. FPGA code is logic, not programmable
instructions (spare me comments on the Micro-Blaze and its ilk).
Personally, I would like to see a different term beause non-FPGA people
will think that you are talking about a general purpose programmable
computer. How about "coreware"?. Don't like it? Then invent your own.

Tom


Re: Is FPGA code called firmware?

Quoted text here. Click to load it

FPGA code USED TO BE (some ten or more years back) only a hardware
designer accessable logic resource, that you *MIGHT* class as "not
programmable instructions".

The reality is (for the last 10 years) C compilers have compiled to
netlists to execute HDL algorithms and programs directly on FPGA's.
When Reconfigurable Computing was proposed, and researched over a
decade ago, we also saw various HLL compilers targeting FPGA netlists
as execution resources.  TMCC is just one of many, and reciently it
rebirthed at FpgaC. Handel-C, Streams-C, and nearly a dozen others,
have also since appeared. Several are here to stay, some are lost
research projects.

C language code, is a combination of "logic" and "data path"
representations. Actually, just about all programs are. Each LUT/FF
pair is a minimal one bit state machine building block which with
programable routing resources form wider and more complex state
machines and data paths, which are highly configurable  **AND**
PARALLEL!!!  An FPGA is the ultimate UNIVERSAL computing engine. Most
HLL's are simply description languages for data path and state machine
engines ... a perfect mariage with FPGAs that provide exactly those
resources in the most configurable way.


Re: Is FPGA code called firmware?

I've called it "gateware" for the last 15 years.

Re: Is FPGA code called firmware?
Quoted text here. Click to load it

In a former position I pondered this very question.

What is firmer than firmware (the term they used to describe code
designs for micro-controllers) but softer than hardware (designs using
wires to connect together various components)?

The answer I came up with was "stiffware".

The problem is that there are elements of both in FPGA code, or at least
there can be.  And depending on how you write your VHDL it may resemble
one more than the other.

James.


Re: Is FPGA code called firmware?
On Monday, February 20, 2006 at 1:50:15 PM UTC-8, James Morrison wrote:
Quoted text here. Click to load it

"Stiffware" I love it!!  

Re: Is FPGA code called firmware?
On Mon, 27 Jan 2020 10:28:39 -0800, ritchiew wrote:

Quoted text here. Click to load it
The FPGA manufacturers call it the "configuration", but I don't think  
firmware is very wrong when talking to less-technical folks.

Jon

Re: Is FPGA code called firmware?
On Wednesday, January 29, 2020 at 3:07:11 PM UTC-5, Jon Elson wrote:
Quoted text here. Click to load it

I think "configuration" would be equivalent to the machine code that is pro
duced by a standard compiler for CPUs.  The OP is asking what to call the s
ource code.  In PCs and other typical computers it is "software".  In embed
ded applications it is "firmware", mainly because it is loaded into a write
 only memory (or write mostly).  So what name to use for programming that i
s for configuring hardware?  

I think I'm in favor of "hardware"... oh, what, that's already used...  lol
  

Firmware is as good as any term.  I'm ok with calling it software.  

--  

  Rick C.

  - Get 1,000 miles of free Supercharging
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline