decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
The compiled Verilog file does not define the internal connections of the FPGA | 756 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Does Programming an FPGA Chip Make A New Machine?
Authored by: PolR on Thursday, July 19 2012 @ 06:20 PM EDT
A FPGA chip is not a stored program computer. The legal consequences of this are
unknown to me.

[ Reply to This | Parent | # ]

Yes, sort of... but is it then "general" as per the article.
Authored by: BitOBear on Thursday, July 19 2012 @ 11:59 PM EDT
There are several FPGA technologies. Some are program-once (a la PROM) and some
are "program on each power up". Neither makes much difference to the
argument.

The single use Burn, Use, replace to update Gate Array chips can be viewed as
having their program installed as its "final manufacturing step". This
is like those electrical boxes you put in your home, where you punch out the
holes you need so that you can wire up the house you need. The final manufacture
of a write-once gate array happens before the final use installation.

The rewritable ones are tricker. But in the even more telling CPLD case (Compact
Programmable Logic Device) which is much more machine and much less computer
version of an FPGA you get into the real gray area.

But in all these cases, an FPGA is usually designed into a circuit since
particular electrical pins -must- be connected to their purpose pionts. That is,
the *GA chips are designed into circuits such that it is known that Pin-X is
wired to component Y.

The practical effect of this is that as hardware, the FPGA ends up installed in
a constrained way.

One very common use of FPGAs is to -implement- CPU chips. One place I worked
used Gate Arrays and an associated image to "create" an 8086 CPU with
the segment register math being a shift of eight bits instead of four.
(basically a IBM PC-1 with 4 meg of memory instead of 1 meg.)

Also, FPGAs don't "execute a stream of instructions" when they run.
The execute their entire logic matrix every clock cycle. That is, if you put in
100 instruction elements every one of those 100 happen at the same time again
and again.

The FPGA then, essentially implements "the instruction set". It
-becomes- a CPU when you put the electrical image into it.

An FPGA doesn't "run a program" so much as "acquire a single
complex programed behavior" of "respond to observed state with
asserted state" just as a regular CPU has "a single complex
hardware-defined behavior" of "execute the current instruction".

I would, were I in charge, put the FPGA images into the CPU hardware design
patent pool, not the general purpose programming software patent pool.

In fact, if you liek a particular FPGA image you can send it off to a
manufacturer and they will run it through their magic and make a super-optimized
pure-hardware (no gate array) implementation and send it back to you as
"true hardware".

"Microcode" is trickier still, being the programmable bits inside a
CPU you can load up to complete or correct errors within the instruction set.
This is the bridge between "complex instruction set computing" (CISC)
and "reduced instruction set computing" (RISC) hardware
architectures.

Even so, theres the "in the chip" and "in the computer
programming" distinction.

If we can just get people to understand that the parts you can change at runtime
don't make a new machine, and the parts you can only change at the time of
manufacture, do; well then we could start keeping the slicing and stabbing of
our technological future to that very tiny and not very valuable gray area.

[ Reply to This | Parent | # ]

can i use a differant language and interface....
Authored by: Anonymous on Friday, July 20 2012 @ 12:58 AM EDT
can i use a differant language and interface to achieve the
same thing and could someone have done something like that
using really old computers and
hardware/softwares/languages...then as others are saying you
are not creating a new machine your just doing it a bit more
efficiently then others and one could argue that what you
describe is for many chips ...then its not new....and even
before digital stuff one can argue then that one used lesser
techniques of less accurate ability to do the same thing
usign non computer chips ( aka them creatures known as
humans)

[ Reply to This | Parent | # ]

The compiled Verilog file does not define the internal connections of the FPGA
Authored by: Ian Al on Friday, July 20 2012 @ 02:34 PM EDT
They are numeric codes that are transferred to the FPGA on power-up which make
it function like the make-believe circuit that Verilog showed you on the design
screen.

In effect, your circuit never gets made. A different arrangements of different
components that achieve the required functionality is what is actually done in
the FPGA.

It is analogous to a software programmer working in a higher order language and
that logic being totally rewritten by the compiler into something the program
designer would never recognise, but which follows the same logic. The difference
is that the compilation is not to allow a universal algorithm to do the work.
The components in the FPGA are temporarily connected together in a special way
as long as the power is applied.

Theoretically, it would be very difficult to obtain a machine patent on a
particular combination of flash memory data, the flash memory chip and the FPGA
because the memory and the FPGA are unchanged during the process. No new machine
is made. As with the computer, the instructions only stay in the FPGA memory
while the power is on.

The resulting FPGA 'circuit' is just one of a very large number of circuits that
the FPGA is capable of from the making to the burning out. If a program in
memory does not make a new machine out of a computer, but just enables the
computer to do what it was designed to do from the day it was made, then the
same thing applies to FPGAs.

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | Parent | # ]

In my view, the answer is NO.
Authored by: jesse on Sunday, July 22 2012 @ 02:24 AM EDT
Programming a FPGA is done by defining a decision table.

The table defines how the chip will function in a given situation.

A decision table is a mathematical construct.

Copyrightable, but not patentable.

HOW the decision table is implemented is patentable. But the decision table
itself is not.

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )