One issue about free hardware
by Unknown on May 9, 2004 |
Not available! | ||
One of the reasons free software is important is so that you can
control your computer and make sure you know what it does. It's not enough to be able to see what someone claims is the source code for the program you are using. To trust it, you have to be able to compile it yourself. As hardware becomes more complex, the same issue may arise: how do you know what you hardware really does? Free hardware designs could be part of the solution, but we can't all afford fab lines, so could we really solve the problem completely? I wonder if it is possible to verify that someone else's fabrication line produced your free chip design honestly by using a program to view the chip using a microscope, follow the lines, and compare them with the design that you intended to make. Has anyone looked at this idea? |
One issue about free hardware
by vvucic on May 9, 2004 |
vvucic
Posts: 5 Joined: May 10, 2004 Last seen: May 15, 2004 |
||
Dear Richard,
I think that your question is very interesting and put in the right moment
and
on the right place.
Very important legal approach is that people should be free to do
something and
to be free from things, acts and people that may enslave them.
However, this
includes technology too.
Thus, legal acts are instructive and restrictive. Instructive legal acts
open
space for people instructing them about framework within which what
they can do
something. Restrictive legal acts are prohibiting something to do. When
basic
human freedoms are jeopardized restrictive acts begin to dominate the
scene.
Some vendors rather behave in a restrictive manner informing
people rather on penalties than givim them legal framework within
which people
can be free to handle, adopt or change software.
However, GPL is rather instructive, thus opening space for people to be
free and
hopefully creative.
Another legal issue is how we can control whether someone's freedom
is abused,
violated or not.
As far as software is concerned it can be done easily by comparing
source code
of software packages in text editor. Thus, it is easy to compare them.
As far as hardware is concerned we can put some control methods that
are
applicable in software. Firmware, cores and any software that control or
drive
fully or partly programmable devices may be easily compared with
source of
software that is created or used in possible copyright infringement.
I am not enough technically skilled to know all methodologies for
comparison of
chips and other electronic circuits or hardware in general, but if such an
control is possible or control devices are easily accessible than it is
possible
to control does any company or individual violate our design that we
gave to
people free to use. It may be possible that vendor must be obliged to
give to
legal
entities a copy of suspected design for verification.
However, it should be everyones freedom to define his/her design of
any
hardware as free (free as freedom) and give it to the public. On the
other
side, protection of freedom should be backed up by substantial facilities
(i.e.
equipment, experts ...) that may
identify violations of designer's freedom and existing legal acts shoud be
amended with articles that expertise should be done in order to protect
hardware
designer to defend his/her freedom. Thus, software tools for
comparison of
designs or equipment may be very helpful and help designer to defend
his freedom
to give his/her design to the public.
In addition , I think that software will not be fully free as long as
hardware
is kept far freedom. Manufacturers will try to dominate by closing their
firmware thus possibly preventing their hardware to communicate with
our
software. For that matter, it is very important to fight for free hardware
if
we would like to live in a world that may be controlled by its citizens.
Commercial applications are rather cheap to manufacture, produced in
huge
quantities and it is question how chips and other electronic circuits may
be
verified and compared with design that is supposed to be free.
Proffesional
equipment is expensive, manufactured in smaller series and more
programmable and
possible it is easier to verify it.
However, it may be very much needed that certaing lawyer offices that
are
committed to such sort of legal issues are equipped with equipment that
may be
available for such expertise. I think that possible foundations or various
NGOs
may be dedicated to help designers to defend their freedom. I am
planning to be
involved in one project on opencores.org in project dedicated to design
of PCI
audio card and one of reasons why I am willing to be involved is that it
is
based on FPGA that is easy to defend my freedom and freedom of
potential
contributors. As far as any agencies whether they may be
governmental or
non-governmenta are able to protect freedom of people there will be
more people
that will be willing to practise their freedom. technollogically speaking,
there will be more technollogical activities undertaken by people as long
as
there is possibility to protect their freedom which is much more
important than
profit of certain companies. This would be an answer to the highly
important
question in societies that claim to be free. To whom freedom belongs?
If it
belongs to people than we have to be capable to protect it from any
perspective
whether it is arts, technology, ethnicity, religion or anything else.
However, state and its agencies should be obliged by law and their
constitution
to create capacities that will protect their citizens to be free.
Technological
field is part of of our reality too and states should be obliged to be sure
that
their citizens are free from that perspective too.
Best wishes,
Vedran Vucic
----- Original Message -----
From: Richard Stallmanrms at g...>
To:
Date: Sun May 9 00:00:27 CEST 2004
Subject: [oc] One issue about free hardware
One of the reasons free software is important is so that you can
control your computer and make sure you know what it does. It's not enough to be able to see what someone claims is the source code for the program you are using. To trust it, you have to be able to compile it yourself. As hardware becomes more complex, the same issue may arise: how do
you
know what you hardware really does? Free hardware designs could be part of the solution, but we can't all afford fab lines, so could we really solve the problem completely? I wonder if it is possible to verify that someone else's fabrication line produced your free chip design honestly by using a program to view the chip using a microscope, follow the lines, and compare them with the design that you intended to make. Has anyone looked at this idea? |
One issue about free hardware
by Unknown on May 10, 2004 |
Not available! | ||
Welcome!
First to answer your question, I believe that every techology has a way to verify that: - FPGAs: you directly load the device with the program; since the structures are very primitive and simple. Therefore its very unlikely that device will be able to change such primitive structures. - structured arrays and ASICs: almost all the today chips contain testvectors that enables you to verify if the chip was fabricated correctly. The device can be put in the test circuit, where you can check if it functions correctly. These testvectors are usually built automatically. I believe that this test is exactly what you want. Of course you can also look at the chip die with microscope, but that requires expensive equipment and usually it destroys the chip. Even the comercial tools can be formally verified (although with commercial third party tools) for equality as is the common practice in todays ASIC flows. best regards, Marko On Sunday 09 May 2004 00:00, Richard Stallman wrote:
One of the reasons free software is important is so that you can
control your computer and make sure you know what it does.
It's not enough to be able to see what someone claims is the
source code for the program you are using. To trust it, you have
to be able to compile it yourself.
As hardware becomes more complex, the same issue may arise: how do you
know what you hardware really does? Free hardware designs could be
part of the solution, but we can't all afford fab lines, so could
we really solve the problem completely?
I wonder if it is possible to verify that someone else's fabrication
line produced your free chip design honestly by using a program to
view the chip using a microscope, follow the lines, and compare them
with the design that you intended to make. Has anyone looked at this
idea?
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
|
One issue about free hardware
by Unknown on May 10, 2004 |
Not available! | ||
Richard,
Unfortunately after fabrication, it is not really possible to look at a chip
through a microscope and easily determine what it does... this is because
the chips are made up of many layers, the top few layers being metal
followed by the polysilicon and diffusion layers. It would be between really
difficult and impossible to do this visually with a microscope...
Instead, a few smart people from HP (and random other companies back a few
years ago) determined a way to create test vectors to put into the chip, and
output vector that you expect on the output pins of the chip. There was also
devices a way to implement special registers into your design at certain
positions to help ascertain exactly where an error was occurring.
I have some more information about this somewhere in a text book from my 3rd
year at university, if anyone would like I can outline some of the ideas and
maybe point you to some websites.
- Justin
-----Original Message-----
From: Richard Stallman [mailto:rms at gnu.org]
Sent: Sunday, May 09, 2004 8:00 AM
To: cores at opencores.org
Subject: [oc] One issue about free hardware
One of the reasons free software is important is so that you can
control your computer and make sure you know what it does.
It's not enough to be able to see what someone claims is the
source code for the program you are using. To trust it, you have
to be able to compile it yourself.
As hardware becomes more complex, the same issue may arise: how do you
know what you hardware really does? Free hardware designs could be
part of the solution, but we can't all afford fab lines, so could
we really solve the problem completely?
I wonder if it is possible to verify that someone else's fabrication
line produced your free chip design honestly by using a program to
view the chip using a microscope, follow the lines, and compare them
with the design that you intended to make. Has anyone looked at this
idea?
|
One issue about free hardware
by Unknown on May 10, 2004 |
Not available! | ||
Aloha!
Justin Young wrote:
Unfortunately after fabrication, it is not really possible to look at a chip
Actually, there are companies that does this for a living. Chipworks is an
example. Look at their website for examples of chips that they have analysed
as well as some fine examples of chip art they have found during their
investigation [1]:
http://www.chipworks.com/
Note that the process is extremely elaborated and costly. It is not just
looking in a microscope. The reasons are like you Justin writes that there are
several layers. Also, today you ususally fill upp the layers with additional
material (oxide, metal etc) in order to make the surrface planar enough to add
additional layers.
But, as Chipworks shows it is quite possible and is being done with the
purpose of determine patent infringhments, technology solutions used, cores,
special process properties etc.
The chips that are hardest to reverse engineer is quite probably anti-fuse
FPGAs (for example from Actel and QuickLogic). Determining if a via fuse have
been burned or not requires precise meausrements. Also, these vendors adds
protections mechanisms that will alter more fuses if tampering is detected,
thereby destroying the ability to detect the design. This is the chief reason
(IMHO) these devices are popular in high-security and military applications.
Also, note that test pattern verification might be hard to do if those pins
are disabled after production/packaging have been completed.
In short: I think Stallman has a valid point that it would be interesting/good
to have a way to determine if someone uses FOSS cores in their designs without
acknowleding doing so. But, practically it is very hard to do so. It is
possible, but takes loads of cash.
[1] Another place doing thgese kinds of things is Molecular Expressions, which
BTW have a nice image of Tux on a die, pretty suitable when talking about Open
and Free hardware:
http://micro.magnet.fsu.edu/creatures/pages/linuxpenguin.html
--
Med vänlig hälsning, Yours
Joachim Strömbergson - Alltid i harmonisk svängning.
VP, Research & Development
----------------------------------------------------------------------
InformAsic AB / Hugo Grauers gata 5B / SE-411 33 GÖTEBORG / Sweden
Tel: +46 31 68 54 90 Fax: +46 31 68 54 91 Mobile: +46 733 75 97 02
E-mail: joachim.strombergson at informasic.com Home: www.informasic.com
----------------------------------------------------------------------
through a microscope and easily determine what it does... this is because the chips are made up of many layers, the top few layers being metal followed by the polysilicon and diffusion layers. It would be between really difficult and impossible to do this visually with a microscope... |
One issue about free hardware
by AustinFranklin on May 10, 2004 |
AustinFranklin
Posts: 17 Joined: Sep 12, 2008 Last seen: Jan 26, 2021 |
||
I am not enough technically skilled to know all methodologies for
A couple of things to keep in mind when thinking about this. One is that
the code gets compiled, and that compiled code is different for just about
every version of every different compiler out there, so there is,
realistically, no way of looking at hardware to determine infringement
between source code and hardware.
Second, if someone modifies code, to some basic degree, it can then be
claimed to be their code. People have done this successfully with service
manuals, where they simply took a copyrighted manual, added notes in the
margins, and registered it as a new "work".
If there is valid reason to believe there is copyright violation, it is
expensive to prosecute...and you can compel the other company to turn over
all the pertinent documentation to an intermediary for them to review. You
can't review it your self, as it may very well be that there is proprietary
information that you have no business seeing, contained within what you
receive. You have to pay for this person's time, typically. I would say
the minimum cost for such, between legal fees and expert fees, would be
around $20k. But, if there is violation, and you either settle out of
court, or the courts find in your favor, all your fees should be covered.
Regards,
Austin Franklin
austin at darkroom.com
comparison of chips and other electronic circuits or hardware in general, but if such an control is possible or control devices are easily accessible than it is possible to control does any company or individual violate our design that we gave to people free to use. It may be possible that vendor must be obliged to give to legal entities a copy of suspected design for verification. |
One issue about free hardware
by Unknown on May 10, 2004 |
Not available! | ||
On Saturday 08 May 2004 05:00 pm, Richard Stallman wrote:
One of the reasons free software is important is so that you can
The bigger problem is the complete lack of an open-source flow from
RTL to implementation. There is simply no GCC equivalent for
compiling digital logic -- every ASIC and FPGA designer is at the
mercy of commercial tools on the font-end. (My biggest pet-peeve is
FPGA synthesis. FPGAs have had dual-port RAMs for ~7 years now, yet
we still can't infer dual-port block RAM from HDL. Arggh!)
One hurdle to open-source synthesis and place&route is proprietary
architectures. The major FPGA vendors refuse to disclose the
underlying details needed to for a quality PAR tool or physical
synthesis.
But oddly enough the biggest roadblock to open-source EDA is
ourselves. For some reason or another, there is an apparent lack of
interest and motivation. Just a few examples:
1. Every couple of months the topic of open-source tools arise.
Generates quite a bit of discussion, then dies as quickly as it
started.
http://www.opencores.org/forums.cgi/cores/2003/09/00014
http://archives.seul.org/geda/dev/Nov-2003/msg00012.html
This thread started 4 days ago, and sums up the view of open-source in
EDA. :-(
http://groups.google.com/groups?q=comp.arch.fpga+status+open+source+tools
2. With Confluence under GPL, I have yet to receive a single bug
report or source code contribution.
http://www.eedesign.com/news/showArticle.jhtml;jsessionid=TIARDDA1PTO1CQSNDBGCKHY?articleId=18402723
3. Icarus Verilog, the foremost open-source Verilog implementation,
still only has one active developer.
http://www.icarus.com/eda/verilog/
4. The only semi-successful FPGA packing, placement, and routing
project haulted activity in March, 2000.
http://www.eecg.toronto.edu/%7Evaughn/vpr/vpr.html
5. The one person who came the closest to reverse engineering the
Virtex bit stream -- the critical step for physical synthesis --
became frustrated with the lack of support and interest from the FPGA
community, and finally closed shop on 12/24/2003.
Merry Christmas.
http://neil.franklin.ch/Projects/VirtexTools/Logfile
What can we do to improve open-source EDA?
Regards,
Tom
--
Tom Hawkins
Launchbird Design Systems, Inc.
Home of the Confluence Logic Design Language
http://www.launchbird.com/
control your computer and make sure you know what it does. It's not enough to be able to see what someone claims is the source code for the program you are using. To trust it, you have to be able to compile it yourself. As hardware becomes more complex, the same issue may arise: how do you know what you hardware really does? Free hardware designs could be part of the solution, but we can't all afford fab lines, so could we really solve the problem completely? |
One issue about free hardware
by Unknown on May 10, 2004 |
Not available! | ||
Hi,
What can we do to improve open-source EDA? Regards, Tom |
One issue about free hardware
by nico on May 10, 2004 |
nico
Posts: 21 Joined: Jun 21, 2008 Last seen: May 11, 2009 |
||
The main problem about confluence or NuSMV is that you need to learn a new
language. This a very time consuming task, and you have the problem of the continuation of the tools. What we need is a good HDL simulator : ghdl become better each month. Then a formal checking tools could be great (with HDL as input ! not a completly obscure new language !) , and a netlist generator then a place&route tools.
On Saturday 08 May 2004 05:00 pm, Richard Stallman wrote:
One of the reasons free software is important is so that you can
control your computer and make sure you know what it does. It's not enough to be able to see what someone claims is the source code for the program you are using. To trust it, you have to be able to compile it yourself. As hardware becomes more complex, the same issuees? Free hardware designs could be part of the solution, but we can't all afford fab lines, so could we really solve the problem completely? The bigger problem is the complete lack of an open-source flow from RTL to implementation. There is simply no GCC equivalent for compiling digital logic -- every ASIC and FPGA designer is at the mercy of commercial tools on the font-end. (My biggest pet-peeve is FPGA synthesis. FPGAs have had dual-port RAMs for ~7 years now, yet we still can't infe may arise: how do
you know what you hardware really dor dual-port block RAM from HDL.
Arggh!)
One hurdle to open-source synthesis and place&route is proprietary
architectures. The major FPGA vendors refuse to disclose the
underlying details needed to for a quality PAR tool or physical
synthesis.
But oddly enough the biggest roadblock to open-source EDA is
ourselves. For some reason or another, there is an apparent lack of
interest and motivation. Just a few examples:
1. Every couple of months the topic of open-source tools arise.
Generates quite a bit of discussion, then dies as quickly as it
started.
http://www.opencores.org/forums.cgi/cores/2003/09/00014
http://archives.seul.org/geda/dev/Nov-2003/msg00012.html
This thread started 4 days ago, and sums up the view of open-source in
EDA. :-(
http://groups.google.com/groups?q=comp.arch.fpga+status+open+source+tools
2. With Confluence under GPL, I have yet to receive a single bug
report or source code contribution.
http://www.eedesign.com/news/showArticle.jhtml;jsessionid=TIARDDA1PTO1CQSNDBGCKHY?articleId=18402723
3. Icarus Verilog, the foremost open-source Verilog implementation,
still only has one active developer.
http://www.icarus.com/eda/verilog/
4. The only semi-successful FPGA packing, placement, and routing
project haulted activity in March, 2000.
http://www.eecg.toronto.edu/%7Evaughn/vpr/vpr.html
5. The one person who came the closest to reverse engineering the
Virtex bit stream -- the critical step for physical synthesis --
became frustrated with the lack of support and interest from the FPGA
community, and finally closed shop on 12/24/2003.
Merry Christmas.
http://neil.franklin.ch/Projects/VirtexTools/Logfile
What can we do to improve open-source EDA?
Regards,
Tom
--
Tom Hawkins
Launchbird Design Systems, Inc.
Home of the Confluence Logic Design Language
http://www.launchbird.com/
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
|
One issue about free hardware
by Unknown on May 10, 2004 |
Not available! | ||
- structured arrays and ASICs: almost all the today chips contain testvectors
that enables you to verify if the chip was fabricated correctly. The device can be put in the test circuit, where you can check if it functions correctly. These testvectors are usually built automatically. I believe that this test is exactly what you want. I am not completely sure how a testvector works, but I tend to think it that we are not talking about the same thing, and that a testvector couldn't detect the kind of problem I am thinking about. Are testvectors intended to detect mistakes in fabrication? I would guess so. I'm imagining that a fabricator could put deliberate modifications into certain parts of the circuit, to provide a back door or a surveillance feature. If the back door only activates when a certain sequence of data passes by, it would have no effect on the results of your testvector. So you could not detect it using a testvector. If the testvector is in a specific part of the chip, these changes would not alter the testvector, because they would be in a different part of the chip. They would occupy some part of the silicon that you had not used, perhaps. Of course you can also look at the chip die with microscope, but that requires expensive equipment and usually it destroys the chip. Once you run the fabrication line, making a few extra chips to test doesn't cost much more. So you can afford to destroy a few chips from the batch in order to look at them with the microscope to verify the fabrication. However, comparing them with a microscope "by hand" would take lots of time. Hence my suggestion to automate that process of comparison. Unfortunately after fabrication, it is not really possible to look at a chip through a microscope and easily determine what it does... this is because the chips are made up of many layers, the top few layers being metal followed by the polysilicon and diffusion layers. It would be between really difficult and impossible to do this visually with a microscope... Is there any sort of process that can be used? Reverse engineering of chips used to be common practice; are there any methods for reverse engineering today which you could use on your own chips to verify them? |
One issue about free hardware
by vvucic on May 11, 2004 |
vvucic
Posts: 5 Joined: May 10, 2004 Last seen: May 15, 2004 |
||
Dear colleagues,
I follow carefully your discussion and I think that we have to clarify
some
things that are needed to foster more intensive creation of open hardware.
Historically, and technically, we need compiler, editor and debugger
in order to
start writing software. However, at the beginning there was not
possible to
have all those basic elements free in terms of freedom. Despite the
fact that
some tools that have been used at the begining have not been free, very
important steps have been undertaken. Preconditions for free software
were
made.
Since we have now all necessary tools for writing free software we
have to find
ways to establish tools for creation of open hardware. We need free core
generators, free system modeling software, free verification software and
possibly some other tools necessary to design free hardware. However,
FPGA and
similar chips may be preferred. I would say, even for the beginning
we may use
something that is not free since some protocol specifications are not
free.
However, reverse engineering will help in the course of time to
replace non-free
parts of open hardware with free parts of open hardware. Step by step
approach will I hope challenge us to make completely free hardware. It is
very important that we have to start to create tools for creation of open
hardware as soon as possible, since software cannot be fully free with
non-free
hardware. Firmware that is in your PC may do something which you
would not like
very much. Thus, it may be important to create free motherboard that
will be
fully programmable and enable user to upgrade cores inside FPGAs which
will make
such a PC faster and faster that is very much contrary to the closed
hardware.
If you have any comments or suggestions please feel free to post.
With best wishes,
Vedran Vucic
----- Original Message -----
From: nico at s...nico at s...>
To:
Date: Mon May 10 17:35:05 CEST 2004
Subject: [oc] One issue about free hardware
The main problem about confluence or NuSMV is that you need to
http://www.eedesign.com/news/showArticle.jhtml;jsessionid=TIARDDA1PTO1CQSNDBGCKHY?articleId=18402723
learn a new language. This a very time consuming task, and you have the problem of the continuation of the tools. What we need is a good HDL simulator : ghdl become better each month. Then a formal checking tools could be great (with HDL as input ! not a completly obscure new language !) , and a netlist generator then a place&route tools.
> On Saturday 08 May 2004 05:00 pm, Richard Stallman wrote:
> One of the reasons free software is important is so that
you can
> control your computer and make sure you know what it does.
> It's not enough to be able to see what someone claims is the
> source code for the program you are using. To trust it,
you have
> to be able to compile it yourself.
> > As hardware becomes more complex, the same issuees? Free hardware designs
> could be part of the solution, but we can't all afford fab
lines,
> so could we really solve the problem completely?
> > The bigger problem is the complete lack of an open-source flow from
> RTL to implementation. There is simply no GCC equivalent for
> compiling digital logic -- every ASIC and FPGA designer is at the
> mercy of commercial tools on the font-end. (My biggest
pet-peeve is
> FPGA synthesis. FPGAs have had dual-port RAMs for ~7 years
now, yet
> we still can't infe may arise: how do
http://groups.google.com/groups?q=comp.arch.fpga+status+open+source+tools
> you know what you hardware really dor dual-port block RAM
from HDL. Arggh!)
>
> One hurdle to open-source synthesis and place&route is proprietary
> architectures. The major FPGA vendors refuse to disclose the
> underlying details needed to for a quality PAR tool or physical
> synthesis.
> > But oddly enough the biggest roadblock to open-source EDA is > ourselves. For some reason or another, there is an apparent lack of
> interest and motivation. Just a few examples:
> > 1. Every couple of months the topic of open-source tools arise.
> Generates quite a bit of discussion, then dies as quickly as
it
> started.
>
> http://www.opencores.org/forums.cgi/cores/2003/09/00014
> http://archives.seul.org/geda/dev/Nov-2003/msg00012.html
>
> This thread started 4 days ago, and sums up the view of
open-source in
> EDA. :-(
>
>
> > 2. With Confluence under GPL, I have yet to receive a single bug
> report or source code contribution.
> >
>
> > 3. Icarus Verilog, the foremost open-source Verilog implementation,
> still only has one active developer.
>
> http://www.icarus.com/eda/verilog/
>
>
> 4. The only semi-successful FPGA packing, placement, and
routing
> project haulted activity in March, 2000.
>
> http://www.eecg.toronto.edu/%7Evaughn/vpr/vpr.html
>
>
> 5. The one person who came the closest to reverse engineering
the
> Virtex bit stream -- the critical step for physical synthesis
--
> became frustrated with the lack of support and interest from
the FPGA
> community, and finally closed shop on 12/24/2003.
>
> Merry Christmas.
>
> http://neil.franklin.ch/Projects/VirtexTools/Logfile
>
>
> What can we do to improve open-source EDA?
>
> Regards,
> Tom
>
> --
> Tom Hawkins
> Launchbird Design Systems, Inc.
> Home of the Confluence Logic Design Language
> http://www.launchbird.com/
>
>
> _______________________________________________
> http://www.opencores.org/mailman/listinfo/cores
>
|
One issue about free hardware
by Unknown on May 11, 2004 |
Not available! | ||
Richard,
I'm imagining that a fabricator could put deliberate modifications
into certain parts of the circuit, to provide a back door or a surveillance feature. If the back door only activates when a certain sequence of data passes by, it would have no effect on the results of your testvector. So you could not detect it using a testvector. Yes, test vectors cannot effectively detect the deliberate modifications. I would say it is theorethically impossible (at least in some practical time) to determine that a given sequence won't start some part of the circuit. If you are looking at chip as black box, i.e. without microscope, then you cannot determine anything.
Once you run the fabrication line, making a few extra chips to test
doesn't cost much more. So you can afford to destroy a few chips from the batch in order to look at them with the microscope to verify the fabrication. However, comparing them with a microscope "by hand" would take lots of time. Hence my suggestion to automate that process of comparison. There is however nice benefit. If you are doing standard ASICs, you send the masks directly to the FAB (not netlist -- circuit description). Since designs tend to be dense, it is thus very hard to make a sequence detector circuit without making the huge diferencies to the layout. You have reference mask, which you sent, therefore all you have to do is compare the masks and the real die implementation. Moreover it would probably suffice to calculate some sort of "CRC" to make a check. Unfortunately most of the new designs use high number of metal layers, e.g. more than 6, where top or top two are used for power routing -- these metals are covering your circuit, so you cannot see much with normal microscope. Labs use all sorts of equipment to observe a die and measure electical parameters in the die, even while running. There are some universities which also have such equipment. If the chips can be destroyed, you have probably more options, for example applying some chemicals which will remove some layer. Note that you can check if everything is ok by some indirect methods.
Is there any sort of process that can be used? Reverse engineering of
chips used to be common practice; are there any methods for reverse engineering today which you could use on your own chips to verify them? Sure, however my company unfortunately don't posses such equipment, but I know a lot of companies doing custom ASIC design does. Although not so legal, the reverse engineering is also common practice. My opinion is that if you are doing one chip design you can include some mechanisms which will practiacally ensure the equality. E.g. you make small islands of logic, which are covered by metal layers, and thus unobservable. Between these islands you can put just interconnections which you can visually inspect with "normal" microscope. Of course it would be more practical to just take some pictures and automaticaly compare with the masks. Having this islands dense with logic and small, it would be practically not possible to include more logic for at least long sequence testing. If you are talking about making a methodology, which would ensure this, and you have some serious intends with this, we would have to engage in longer discussion and contact some FABs or even better universities, if they have such equipment. best regards, Marko |
One issue about free hardware
by Unknown on May 11, 2004 |
Not available! | ||
Jumping in a bit late here I guess ... On Tue, 2004-05-11 at 00:54, Richard Stallman wrote:
- structured arrays and ASICs: almost all the today chips contain testvectors
that enables you to verify if the chip was fabricated correctly. The device can be put in the test circuit, where you can check if it functions correctly. These testvectors are usually built automatically. I believe that this test is exactly what you want. I am not completely sure how a testvector works, but I tend to think it that we are not talking about the same thing, and that a testvector couldn't detect the kind of problem I am thinking about. Are testvectors intended to detect mistakes in fabrication? I would guess so. Yes thats correct. Additional logic could be added and hidden until explicitly enabled. It would not be detected by test vectors.
I'm imagining that a fabricator could put deliberate modifications
into certain parts of the circuit, to provide a back door or a surveillance feature. If the back door only activates when a certain sequence of data passes by, it would have no effect on the results of your testvector. So you could not detect it using a testvector. If the testvector is in a specific part of the chip, these changes would not alter the testvector, because they would be in a different part of the chip. They would occupy some part of the silicon that you had not used, perhaps. Of course you can also look at the chip die with microscope, but that requires expensive equipment and usually it destroys the chip. Once you run the fabrication line, making a few extra chips to test doesn't cost much more. So you can afford to destroy a few chips from the batch in order to look at them with the microscope to verify the fabrication. However, comparing them with a microscope "by hand" would take lots of time. Hence my suggestion to automate that process of comparison. This is virtually impossible to do with a a microscope. All you would see is the top layer metal. Today processes have at least 5 metal layers, some a lot more. Besides it would be impossible to determine the underlying device structure. Yes there is equipment that makes some of these tasks possible, but 1) It's not accessible to the normal mortal human, 2) still would make it extremely difficult to reverse the underlying logic. Remember, the RTL goes through two steps of synthesis: 1) RTL to netlist (gate level); 2) Netlist to physical, or Gates to transistors.
Unfortunately after fabrication, it is not really possible to look at a chip
I think the true question is "What is the purpose of this
'monitoring' ?" Why do we want to add it ? Are you just
scared that the gvmt or bigbrother will add something to
your design ? Who would allow the gvmt to add these
functions ? Who would pay for it ? I think a lot of us
are not in the US and would not have to comply with such
a request ...
Regards,
rudi
========================================================
ASICS.ws ::: Solutions for your ASIC/FPGA needs :::
..............::: FPGAs * Full Custom ICs * IP Cores :::
FREE IP Cores -> http://www.asics.ws/
through a microscope and easily determine what it does... this is because the chips are made up of many layers, the top few layers being metal followed by the polysilicon and diffusion layers. It would be between really difficult and impossible to do this visually with a microscope... Is there any sort of process that can be used? Reverse engineering of chips used to be common practice; are there any methods for reverse engineering today which you could use on your own chips to verify them? |
One issue about free hardware
by Unknown on May 11, 2004 |
Not available! | ||
Please count me out of a discussion about "open-source" EDA.
"Open source" is the slogan of a movement that was founded
to reject the views of the free software movement, which I support.
See http://www.gnu.org/philosophy/free-software-for-freedom.html for
more explanation.
I have more work than I can handle under the banner of free software,
so there is no sense in my diverting effort to activities that fly
the banner of "open source".
|
One issue about free hardware
by Unknown on May 11, 2004 |
Not available! | ||
Jumping in a bit late here I guess ...
I think the true question is "What is the purpose of this
'monitoring' ?" Why do we want to add it ? Are you just scared that the gvmt or bigbrother will add something to your design ? Who would allow the gvmt to add these functions ? Who would pay for it ? I think a lot of us are not in the US and would not have to comply with such a request ... I totaly agree here with Rudi. In order for someone to add something to the masks after they have passed through the layout fracturing, they have to basically reverse engineer the entire design unless they get a lot of inside help. This cost a lot of money and not everyone can afford to do it. Furthermore such request have already been tried and failed in the USA, with encryption ASICs, and any companey that will be cought doing that will loose such a big market share that it's not worth the risk. Last thing from past experience every such thing will eventually be discovered because of the scale we're talking about. And if it's not a large scale then no reason to go for the trouble. Everyone tries to break ASIC designs for many reasons, some for curiousity, some for bug finding and some for reverse engineering, finding hidden logic that can spy on you is such a gem for a rival company that I doubt if any one will manage to keep it a secret for long. Regards, Erez.
Regards,
rudi
========================================================
ASICS.ws ::: Solutions for your ASIC/FPGA needs :::
..............::: FPGAs * Full Custom ICs * IP Cores :::
FREE IP Cores -> http://www.asics.ws/
|