Legal Issues Reproducing Old CPU

On Fri, 20 Sep 2013 12:08:23 -0500, Tim Wescott wrote:

On Fri, 20 Sep 2013 06:59:18 -0700, ditiris wrote:

Wow, lots of activity since I last checked. To answer some questions:

This is for business, not an educational exercise.

The chip is in the TI 9900 family (weird architecture).

I will need to reproduce all logical levels into and out of the chip
with timing faithful to the original chip (or as close as I can get it,
divide is going to be an issue). A lot of the circuits on the board are
old 54-series discrete logic, so those all get sucked in too, so we
wind up emulating the tri-state internal to the FPGA. Outside, we have
lots of level converters and discrete control to faithfully replicate
the 5V tri-state.

The application is real-time, so I think that rules out software
emulation. I explored that path a bit, but after reading up on SNES
emulators (1991 3.58MHz 16-bit CPU) and finding that most are heavily
optimized and largely written in assembly, I figured HDL was a better
cost-value-risk proposal. When I got to the part how most software
emulators only work most of the time and they actually need a 3GHz
multi-core CPU to accurately model the SNES hardware delays in all
cases, I was really convinced HDL was the way to go...

Software emulators are apparently fine legally, and I think that's a
close corollary to what we'll be doing. Given that Tekmos has a
business at all, we should really be fine.

However, we're still going to consult with a lawyer just to be sure.

Legal problems aside, if there's an emulator out there that's 100%
accurate but for timing, and if you can do it this way, I'd run it fast
enough so that the slowest instruction happens on time, then slow all
the other ones down to match.

That gets difficult if some execution times are data-dependent.

As far as actual legal problems -- I think you're OK, but talking to a
lawyer is a Good Idea.

First TI would have to care. Then they'd have to dare. Your biggest
problem would be some TI lawyer trying to justify his pay by finding an
encroachment, and you getting squished long before you can win just
because they're so much bigger than you.

I agree with Tim on using an emulator if you can. I do not see why
you need to get down to the gate level. I have never done
any work with this CPU but a quick search brings up many emulators
for the TI-99 game system that, from what I read, used the TMS9900.
Pull the core cpu emulator code out of one of these and put it in
a fast micro, possibly one that will run out of SRAM. You can tie
the micro's ISR into the emulator so you get good interrupt timing.
You will still probably have to hang some interface logic around
the micro.

The nice thing about using the emulator is you can get it running on
a PC or even a target micro development board, and get the basic
bugs worked out.

The HDL approach would be a very interesting project and a lot of
fun but I think you are under estimating the level of effort to
take something from OpenCores and get it to production level.

--
Chisolm
Republic of Texas
 
Am Freitag, 27. September 2013 15:32:31 UTC+2 schrieb David Brown:
[...]
When it is a single person asking, with no return
for TI, then doing things legally correctly means quite a lot of time
and money for TI. While TI staff have always been nice and helpful in
my experience, there is a limit to how much you can expect them to do to
be "nice".

In the case of the MSP430 microcontroller series, TI links to Opencore's openmsp430
implementation from their Open Source Projects wiki page (which at least seems
to be a semi-official resource):

http://processors.wiki.ti.com/index.php/Open_Source_Projects_-_MSP430#OpenMSP430

While the openmsp430 is, of course, an open source project, it has been successfully
used in various commercial projects IIRC (it's also been implemented in an ASIC, so that
doesn't sound quite like a hobby project anymore).

-- Michael
 
I - not being a lawyer as well - think that this simple CPU would not
cause legal problems. CPUs that use microcode probably would - if you
don't create the microcode part on your own but copy it from, say, a
BIOS which dynamically updates the genuine chip.

Even conservative copyright fighters should agree that it is kind of
strange to copyright simple commands like branch if not zero, add a<-a+b
and so on. Complex math or cipher algorithms in modern CPUs might be
different.

Asking a lawyer would probably help only the lawyer - I cannot imagine
many of them have worked intensively on this issue, so they have no
experience and need to invest many hours - I don't know your local
rates, but here 200 EUR/h for a specialist would be a bargain. So the
only advantage is probably that he is used to the topic when you call
him to defend you in a lawsuit :>



Am 18.09.2013 06:30, schrieb ditiris@gmail.com:
This might not be the best group to ask, but I figured I would start here. I need to duplicate a 35-year-old CPU. Are there legal ramifications doing this?

For instance on OpenCores they have a partially-compliant C54x DSP core. I assume the partial compliance is in part not to run into licensing issues and have TI sue them. However, I need to duplicate the CPU's instruction set and associated cycle count exactly, so I'm pretty much going to copy the CPU using the existing documentation.

Thanks in advance for the help.
 
* GaborSzakacs <gabor@alacron.com> wrote:
Philipp Klaus Krause wrote:
Am 18.09.2013 06:30, schrieb ditiris@gmail.com:
This might not be the best group to ask, but I figured I would start
here. I need to duplicate a 35-year-old CPU. Are there legal
ramifications doing this?

For instance on OpenCores they have a partially-compliant C54x DSP
core. I assume the partial compliance is in part not to run into
licensing issues and have TI sue them. However, I need to duplicate
the CPU's instruction set and associated cycle count exactly, so I'm
pretty much going to copy the CPU using the existing documentation.

Thanks in advance for the help.


IANAL, but AFAIK, reproducing instruction set and cycle count exactly is
OK, unless some of the instructions are patented. Patents expire after
at most 20 years in any part of the world that I know of, so with a
35-year-old CPU you should be ok.

Philipp

I think you need to be careful. While patents do expire (patents from
35 years ago expired after 17 years IIRC), copyrights generally do not.
On the other hand it would be unusual for the owners of such old
copyrights to pursue legal action against you unless you were making
a lot of these devices. Still you're better off getting legal advice
from someone who knows more about these issues, especially if you're
intending to make significant money from this copying effort.

--
Gabor

I don't think you can copyright an instruction set, can you? I thought
that some of the "classic" reverse engineering precedents had addressed
that. Similar to the old "clean room BIOS reverse engineering"
exercises.

I am not a lawyer, and no one should take this as proper legal advice,
but I believe if you design the processor logic in an "untainted" way
(i.e., you don't literally steal circuitry or microcode) then you are
free to design a gadget that uses any instruction set you wish.

-- Kip
 
On 11/21/2013 7:17 PM, Kip Ingram wrote:
* GaborSzakacs<gabor@alacron.com> wrote:
Philipp Klaus Krause wrote:
Am 18.09.2013 06:30, schrieb ditiris@gmail.com:
This might not be the best group to ask, but I figured I would start
here. I need to duplicate a 35-year-old CPU. Are there legal
ramifications doing this?

For instance on OpenCores they have a partially-compliant C54x DSP
core. I assume the partial compliance is in part not to run into
licensing issues and have TI sue them. However, I need to duplicate
the CPU's instruction set and associated cycle count exactly, so I'm
pretty much going to copy the CPU using the existing documentation.

Thanks in advance for the help.


IANAL, but AFAIK, reproducing instruction set and cycle count exactly is
OK, unless some of the instructions are patented. Patents expire after
at most 20 years in any part of the world that I know of, so with a
35-year-old CPU you should be ok.

Philipp

I think you need to be careful. While patents do expire (patents from
35 years ago expired after 17 years IIRC), copyrights generally do not.
On the other hand it would be unusual for the owners of such old
copyrights to pursue legal action against you unless you were making
a lot of these devices. Still you're better off getting legal advice
from someone who knows more about these issues, especially if you're
intending to make significant money from this copying effort.

--
Gabor

I don't think you can copyright an instruction set, can you? I thought
that some of the "classic" reverse engineering precedents had addressed
that. Similar to the old "clean room BIOS reverse engineering"
exercises.

Copyright applies to the expression of an artistic work. So no, an
instruction set can not be copyrighted. However, the nemonics for
opcodes can. That is why Zilog had to use a different assembler for the
Z80 even though it was binary upward compatible with the 8080.

--

Rick
 
* rickman <gnuarm@gmail.com> wrote:
On 11/21/2013 7:17 PM, Kip Ingram wrote:
* GaborSzakacs<gabor@alacron.com> wrote:
Philipp Klaus Krause wrote:
Am 18.09.2013 06:30, schrieb ditiris@gmail.com:
This might not be the best group to ask, but I figured I would start
here. I need to duplicate a 35-year-old CPU. Are there legal
ramifications doing this?

For instance on OpenCores they have a partially-compliant C54x DSP
core. I assume the partial compliance is in part not to run into
licensing issues and have TI sue them. However, I need to duplicate
the CPU's instruction set and associated cycle count exactly, so I'm
pretty much going to copy the CPU using the existing documentation.

Thanks in advance for the help.


IANAL, but AFAIK, reproducing instruction set and cycle count exactly is
OK, unless some of the instructions are patented. Patents expire after
at most 20 years in any part of the world that I know of, so with a
35-year-old CPU you should be ok.

Philipp

I think you need to be careful. While patents do expire (patents from
35 years ago expired after 17 years IIRC), copyrights generally do not.
On the other hand it would be unusual for the owners of such old
copyrights to pursue legal action against you unless you were making
a lot of these devices. Still you're better off getting legal advice
from someone who knows more about these issues, especially if you're
intending to make significant money from this copying effort.

--
Gabor

I don't think you can copyright an instruction set, can you? I thought
that some of the "classic" reverse engineering precedents had addressed
that. Similar to the old "clean room BIOS reverse engineering"
exercises.

Copyright applies to the expression of an artistic work. So no, an
instruction set can not be copyrighted. However, the nemonics for
opcodes can. That is why Zilog had to use a different assembler for the
Z80 even though it was binary upward compatible with the 8080.

--

Rick

Yeah, that makes sense... So you can functionally duplicate a
processor, but not "artistically." Good distinction...

-- Kip
 

Welcome to EDABoard.com

Sponsor

Back
Top