FPGARelated.com
Forums

6502 and CPU licences in general

Started by Frank Buss May 24, 2007
I've found a 6502 core at http://www.sprow.co.uk/fpgas/free6502.htm , which
is based on a version from free-ip.com, which looks like it turned into an
advertising site, but I've found the original page at 

http://web.archive.org/web/20040603222048/www.free-ip.com/6502/index.html

Under "Legal Stuff" it says "Currently, there are no known patents or
copyrights that cover this implementation of the 6502 CPU.".

But I wonder if MOS Technology or the successor companies has some
copyrights for the 6502 architecture and if it is allowed to use it,
without licence fees, in own designs.

What are the general licensing issues for CPU cores? Is it possible to
require licence fees for a CPU architecture or only for a CPU core, e.g.
for a EDIF netlist? Can I create and use a cleanroom implemenation of a CPU
architecture without legal problems?

-- 
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
On May 24, 10:12 am, Frank Buss <f...@frank-buss.de> wrote:
> But I wonder if MOS Technology or the successor companies has some > copyrights for the 6502 architecture
No, there is no copyright on CPU architectures. (Speaking of the US and Germany) Also, the architecture of the free-ip 6502 is radically different from the architecture of the original 6502, so even if there was such a copyright the 6502 would likely be not infringing. Only the ISA is identically, but there also is no copyright on ISAs. There can be patents on architectures and on implementation techniques or features, without which a certain ISA might be next to impossible to implement (e.g. ARM has a patent on the barrelshifter/ALU combination) But the original 6502 is to old to have still open patent issues. Copyright protects only the actual implementation: The HDL, netlists, bitstreams, layouts, etc.
> What are the general licensing issues for CPU cores? Is it possible to > require licence fees for a CPU architecture or only for a CPU core, e.g. > for a EDIF netlist? Can I create and use a cleanroom implemenation of a CPU > architecture without legal problems?
You can reimplement any ISA, but it might happen that the architecture that you create violates some patent. BTW: This could be a patent that was created for a different architecture. I can imagine a 6502 implemenation that violates ARMs ALU patents, etc. Kolja Sulimma
Frank Buss wrote:

> I've found a 6502 core at http://www.sprow.co.uk/fpgas/free6502.htm , which > is based on a version from free-ip.com, which looks like it turned into an > advertising site, but I've found the original page at > > http://web.archive.org/web/20040603222048/www.free-ip.com/6502/index.html > > Under "Legal Stuff" it says "Currently, there are no known patents or > copyrights that cover this implementation of the 6502 CPU.". > > But I wonder if MOS Technology or the successor companies has some > copyrights for the 6502 architecture and if it is allowed to use it, > without licence fees, in own designs. > > What are the general licensing issues for CPU cores? Is it possible to > require licence fees for a CPU architecture or only for a CPU core, e.g. > for a EDIF netlist? Can I create and use a cleanroom implemenation of a CPU > architecture without legal problems?
It also depends on what you intend to do with it. Companies lawyers will protect their patch - IIRC Atmel sued a phone company, that did what sounded like 'license creepage' of their AVR core : ie started designs using the AVR, and then did an ASIC with the same core. Look up the details. If your target is FPGA, then only ARM would be likely to go after you. (as they have small revenue streams via Actel FPGA). What sort of core are you looking at doing ? Why not look at the Mico8 and Mico32 from lattice, and contribute to that. That is fully opensource, and legal problem free. You could do a MicoFB, with your pet features... ? -jg
On 24 Mai, 11:00, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> Frank Buss wrote: > > I've found a 6502 core athttp://www.sprow.co.uk/fpgas/free6502.htm, which > > is based on a version from free-ip.com, which looks like it turned into an > > advertising site, but I've found the original page at > > >http://web.archive.org/web/20040603222048/www.free-ip.com/6502/index.... > > > Under "Legal Stuff" it says "Currently, there are no known patents or > > copyrights that cover this implementation of the 6502 CPU.". > > > But I wonder if MOS Technology or the successor companies has some > > copyrights for the 6502 architecture and if it is allowed to use it, > > without licence fees, in own designs. > > > What are the general licensing issues for CPU cores? Is it possible to > > require licence fees for a CPU architecture or only for a CPU core, e.g. > > for a EDIF netlist? Can I create and use a cleanroom implemenation of a CPU > > architecture without legal problems? > > It also depends on what you intend to do with it. Companies lawyers will > protect their patch - IIRC Atmel sued a phone company, that did what > sounded like 'license creepage' of their AVR core : ie started designs > using the AVR, and then did an ASIC with the same core. Look up the details. > > If your target is FPGA, then only ARM would be likely to go after you. > (as they have small revenue streams via Actel FPGA). > > What sort of core are you looking at doing ? > Why not look at the Mico8 and Mico32 from lattice, and contribute to > that. That is fully opensource, and legal problem free. > You could do a MicoFB, with your pet features... ? > > -jg- Zitierten Text ausblenden - > > - Zitierten Text anzeigen -
AVR cores (developed by 3rd parties) are being used in ASICs and Atmel is not (yet) hunting them. but doing AVR-ASIC in large scale could couse some trouble(attempts) Antti
comp.arch.fpga wrote:

> No, there is no copyright on CPU architectures. (Speaking of the US > and Germany) > Also, the architecture of the free-ip 6502 is radically different from > the > architecture of the original 6502, so even if there was such a > copyright the 6502 would > likely be not infringing. > Only the ISA is identically, but there also is no copyright on ISAs.
Thanks, this sounds very good. I've found a C compiler for the 6502, too, and I will post a link to my website, when I have a working project with my latest TREX board. -- Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de
Jim Granville wrote:

> What sort of core are you looking at doing ?
Needs not to be fast, 8 bit registers and 16 bit address space is enough. Should be possible to use internal block RAM and to memory map special locations for accessing hardware, but should be small. It will be used in an FPGA, which is mounted as an extension board to another system, connected by I2C, which has some more VHDL code for accessing some other chips. The core should implement the control logic for interpreting I2C commands for accessing the other chips and providing the result.
> Why not look at the Mico8 and Mico32 from lattice, and contribute to > that. That is fully opensource, and legal problem free. > You could do a MicoFB, with your pet features... ?
I would like to have a C compiler for it, too. The cc65 compiler for the 6502 looks very mature and feature rich and I already know the 6502 instruction set very well (as an old C64 demo programmer :-) , if I need to implement something in inline assembler, so this was the reason why I think it would be a good choice. I didn't found a C compiler on the mico8 page: http://www.latticesemi.com/products/intellectualproperty/referencedesigns/8bitmicrocontrollermico8.cfm -- Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de
Frank Buss wrote:

> Jim Granville wrote: > > >>What sort of core are you looking at doing ? > > > Needs not to be fast, 8 bit registers and 16 bit address space is enough. > Should be possible to use internal block RAM and to memory map special > locations for accessing hardware, but should be small. It will be used in > an FPGA, which is mounted as an extension board to another system, > connected by I2C, which has some more VHDL code for accessing some other > chips. The core should implement the control logic for interpreting I2C > commands for accessing the other chips and providing the result. > > >>Why not look at the Mico8 and Mico32 from lattice, and contribute to >>that. That is fully opensource, and legal problem free. >>You could do a MicoFB, with your pet features... ? > > > I would like to have a C compiler for it, too. The cc65 compiler for the > 6502 looks very mature and feature rich and I already know the 6502 > instruction set very well (as an old C64 demo programmer :-) , if I need to > implement something in inline assembler, so this was the reason why I think > it would be a good choice. > > I didn't found a C compiler on the mico8 page: > > http://www.latticesemi.com/products/intellectualproperty/referencedesigns/8bitmicrocontrollermico8.cfm
Yes, 6502 is mature and well supported. Have you compared the FPGA resource usage of the 6502 core, and the Mico32 ? Also, look up the PicoBlaze C compiler - recently moved I think ? -jg
Patents is not just about how to implement things but also methods and ideas 
on how to solve things.
You can do patent without ever implementing anything.
So just doing a clean-room implementation is not something that will get you 
free from any patents violations.

I doubt that you can patent ISA but you can patent ideas that prohibit 
others from doing something that will execute the same machine code.
MIPS had their patent on how to handle unaligned memory accesses which was 
tied into instructions.
I think they used it when they went after MIPS clones.
ARM has the shadow register handling during interrupts patent which makes it 
hard to do an usable ARM clone without violating that patent.
I think ARM also have some other patents, I never bother to investigate what 
patent they have and when they expire.
There should be some patents from the early 80s when Acorn(ARM) did the 
first ARM1 core that should expire soon.
Since most of the stuff in ARM7 is coming from the early version of ARM 
cores.
But there is nothing to stop them from suing you even if you don't violate 
any patents since an free ARM clone would be something that they want off 
the market.
Just that you are under a lawsuit would tied you down so you in the end will 
remove the clone from the market.

I remember meeting one of the 6502 architecture guys in 2000 and he claim to 
me that he had legal rights to 6502 and that he could sue 6502 clone makers.
I have no idea how valid his claim was or if the patents has expired.

In most cases if you do something for yourself and keep it for yourself, I 
think you are "free" to do anything you like since nobody will bother to sue 
you.
If you start doing products with it and the revenue is starting to come in 
then I think you better be sure that you not violating anything.

G&#4294967295;ran Bilski

"Frank Buss" <fb@frank-buss.de> wrote in message 
news:aa9l1v670c7t$.p4ydabe8duh4.dlg@40tude.net...
> I've found a 6502 core at http://www.sprow.co.uk/fpgas/free6502.htm , > which > is based on a version from free-ip.com, which looks like it turned into an > advertising site, but I've found the original page at > > http://web.archive.org/web/20040603222048/www.free-ip.com/6502/index.html > > Under "Legal Stuff" it says "Currently, there are no known patents or > copyrights that cover this implementation of the 6502 CPU.". > > But I wonder if MOS Technology or the successor companies has some > copyrights for the 6502 architecture and if it is allowed to use it, > without licence fees, in own designs. > > What are the general licensing issues for CPU cores? Is it possible to > require licence fees for a CPU architecture or only for a CPU core, e.g. > for a EDIF netlist? Can I create and use a cleanroom implemenation of a > CPU > architecture without legal problems? > > -- > Frank Buss, fb@frank-buss.de > http://www.frank-buss.de, http://www.it4-systems.de
On May 24, 6:56 am, "G=F6ran Bilski" <goran.bil...@xilinx.com> wrote:
> Patents is not just about how to implement things but also methods and id=
eas
> on how to solve things. > You can do patent without ever implementing anything. > So just doing a clean-room implementation is not something that will get =
you
> free from any patents violations. > > I doubt that you can patent ISA but you can patent ideas that prohibit > others from doing something that will execute the same machine code. > MIPS had their patent on how to handle unaligned memory accesses which was > tied into instructions. > I think they used it when they went after MIPS clones. > ARM has the shadow register handling during interrupts patent which makes=
it
> hard to do an usable ARM clone without violating that patent. > I think ARM also have some other patents, I never bother to investigate w=
hat
> patent they have and when they expire. > There should be some patents from the early 80s when Acorn(ARM) did the > first ARM1 core that should expire soon. > Since most of the stuff in ARM7 is coming from the early version of ARM > cores. > But there is nothing to stop them from suing you even if you don't violate > any patents since an free ARM clone would be something that they want off > the market. > Just that you are under a lawsuit would tied you down so you in the end w=
ill
> remove the clone from the market. > > I remember meeting one of the 6502 architecture guys in 2000 and he claim=
to
> me that he had legal rights to 6502 and that he could sue 6502 clone make=
rs.
> I have no idea how valid his claim was or if the patents has expired. > > In most cases if you do something for yourself and keep it for yourself, I > think you are "free" to do anything you like since nobody will bother to =
sue
> you. > If you start doing products with it and the revenue is starting to come in > then I think you better be sure that you not violating anything. > > G=F6ran Bilski > > "Frank Buss" <f...@frank-buss.de> wrote in message > > news:aa9l1v670c7t$.p4ydabe8duh4.dlg@40tude.net... > > > > > I've found a 6502 core athttp://www.sprow.co.uk/fpgas/free6502.htm, > > which > > is based on a version from free-ip.com, which looks like it turned into=
an
> > advertising site, but I've found the original page at > > >http://web.archive.org/web/20040603222048/www.free-ip.com/6502/index.... > > > Under "Legal Stuff" it says "Currently, there are no known patents or > > copyrights that cover this implementation of the 6502 CPU.". > > > But I wonder if MOS Technology or the successor companies has some > > copyrights for the 6502 architecture and if it is allowed to use it, > > without licence fees, in own designs. > > > What are the general licensing issues for CPU cores? Is it possible to > > require licence fees for a CPU architecture or only for a CPU core, e.g. > > for a EDIF netlist? Can I create and use a cleanroom implemenation of a > > CPU > > architecture without legal problems? > > > -- > > Frank Buss, f...@frank-buss.de > >http://www.frank-buss.de,http://www.it4-systems.de- Hide quoted text - > > - Show quoted text -
I doubt you have much to worry about regarding patents on the 6502 core architecture. First of all, as has already been pointed out, the patent applies only to the implementation, specifically, HDL, netlists, etc. Since they used no hdl back in '74//'75, I believe you're on sound footing. However, the free-IP implementation of 6502 was (a) incomplete and (b) not very much like the physical implementation of the 6502. Further, you'd probably want to implement something that actually implemented the R65C02 instruction set, as that was the richest and most powerful. In order to make it both physically small and fast, you'll probably want to implement it such that it uses the ALU for both data and address arithmetic and uses transparent latches rather than clocked registers. It would use RAM instead of flipflops for those registers, and probably would implement its BCD operations by means of redundant registers rather than a deeper (and therefore slower) ALU. That way you avoid all the delays associated with wide synchronous counters. That way you can focus on an efficient 8-bit ALU rather than wide counters, since the 650x core always allowed two cycles for instructions that incremented the PCH. Take a close look at that 'C' compiler, BTW, as you'll find it not very simple to implement independently of its console/video-related requirements. Richard Erlacher Erlacher Associates Denver, CO
on www.fpgaarcade.com you can get the latest version of the T65 core from 
Opencores.

I did a lot of debuging work on the original and still maintain it as the 
original author has vanished. It is used in a number of the arcade game 
projects with great success.

/Mike