Ich würde gerne eine mehrstufige CPU in VHDL entwickeln. Dazu hätte ich
den Befehlssatz eines Atmegas verwendet, da die IDE schon vorhanden ist.
Wie sieht das Ganze rechtlich aus, darf ich meinen Code z.B. auf Github
veröffentlichen?
Und weiterhin: Darf ich den Softcore in einem kommerziellen Produkt
verwenden? Vermutlich nicht, aber realistisch gesehen wird wohl kaum
jemand dieses Produkt dann reverse engineeren, nur um festzustellen das
eine ISA von Atmel verwendet wurde?
Den AX8 gibt es schon seit ein paar Jahren:
https://opencores.org/project,ax8,overview
Bisher hat sich Atmel/Microchip an der Veröffentlichung und der
Verwendung der gleichen Opcodes meines Wissens nach nicht gestört. Ich
weiß gar nicht ob Intel damals (tm) gegen Zilog geklagt hatte. Der Z80
hat zwar andere Assembler Mnemonics, aber zufällig kamen die selben
Opcodes raus, wie beim i8080 (abgesehen von den Z80-Erweiterungen).
Duke
Nimm doch lieber die RISC-V ISA, ist zwar eine 32 Bit Architektur (64,
128 Bit geht auch), da hast du aber garantiert keine rechtlichen
Probleme. Weil die jeder frei verwenden/lizenzieren kann ohne zu zahlen.
GCC Toolchain hast du dann auch dafür.
M. M. schrieb:> Darf ich den Softcore in einem kommerziellen Produkt verwenden?> Vermutlich nicht
Warum nicht 8051 da gibt es keine Einschränkungen. Daher wird der auch
überall verwendet, auch in neuesten USB 3.1 Controllern
http://www.oreganosystems.at/?page_id=96
Duke Scarring schrieb:> Ich weiß gar nicht ob Intel damals (tm) gegen Zilog geklagt hatte.
Intel hatte damals so ziemlich gegen alle geklagt und Zilog war neben
AMD einer DER Erzfeinde von Intel schlechthin.
> Befehlssatz eines Atmegas
Ob du den verwenden kannst, hängt davon ab ob es z.B. Patente darauf
gibt. Allerdings scheint Atmel/Microchip sehr zurückhaltend zu sein was
Klagen betrifft. Bei ARM könnte es da eher Probleme zu geben.
Die Patentsituation dürfte ein weiterer Grund sein warum 8051 noch so
gerne verwendet wird. Bei dem sollten sie inzwischen alle abgelaufen
sein.
> IDE
Hier solltest du einmal in die Lizenzbedingungen schauen. Atmel Studio
z.B. darfst du nur für die "echte" Hardware verwenden:
"1. License Grant. Subject to the terms and conditions of this
Agreement, Atmel grants Licensee a non-exclusive, non-transferable,
non-sub licensable, limited license to: (a) install and internally use
the Licensed Software solely to develop and debug embedded applications
for Atmel's 8-bit and 32-bit AVR microcontrollers and Atmel's ARM -based
microcontrollers ("Supported Atmel Products"); and (b) to make one copy
of the Licensed Software solely for backup purposes."
SmdCodeLeser schrieb:> Mich hat es auch gewundert wo der 8051 heute noch verwurstet wird, zum> Bleistift im aktuellen "Chimera im Chipsatz" von AMD.
Z.B. auch bei aktuellen CPUs ->PSOC3 von Cypress.
Mike schrieb:> Ob du den verwenden kannst, hängt davon ab ob es z.B. Patente darauf> gibt. Allerdings scheint Atmel/Microchip sehr zurückhaltend zu sein was> Klagen betrifft. Bei ARM könnte es da eher Probleme zu geben.
Ich frage mich wie es aussieht, wenn man z.B. den Befehlssatz von ARM
benutzt, aber einen anderen Opcode. Und zusätzliche Befehle einbaut. Das
dürfte doch genug sein um so ein Patent zu umgehen?
Ein Befehssatz (ISA) lässt sich nicht patentieren.
Wenn eine Implementierung allerdings spezielle Features hat, die zum
Zeitpunkt der Erfindung patentierbar ("neu") waren und der Erfinder
nicht geschlafen hat, ist's trotzdem nix mit Nachbauen. Die "Idee" eine
"verkürzte" ISA zu basteln (ARM Thumb), z.B. ist m.W. patentiert.
>Ein Befehssatz (ISA) lässt sich nicht patentieren.>Wenn eine Implementierung allerdings spezielle Features hat, die zum>Zeitpunkt der Erfindung patentierbar ("neu") waren und der Erfinder>nicht geschlafen hat, ist's trotzdem nix mit Nachbauen. Die "Idee" eine>"verkürzte" ISA zu basteln (ARM Thumb), z.B. ist m.W. patentiert.
So ganz einfach ist das nicht, mit den Softwarepatenten.
https://de.wikipedia.org/wiki/Softwarepatent
( siehe Europäische Union )
Ich in im übrigen ein strikter Gegner von Softwarepatenten. Begründung:
Die Computerindustrie hat von ihren Anfängen an ganz ohne
Softwarepatente entwickelt und es wurden Milliarden Umsätze gemacht. Da
das System auch ohne Softwarepatente super funktioniert und Patente
ohnehin nur als Kampfmittel großer Konzerne dient, sind diese als
Innovationsverhinderer abzulehnen.
M. M. schrieb:> Ich frage mich wie es aussieht, wenn man z.B. den Befehlssatz von ARM> benutzt, aber einen anderen Opcode. Und zusätzliche Befehle einbaut.
Die Relevanz ergibt sich aus der Binärkompatiblität und den Mnemonics
(bzw. der Assemblersyntax, siehe i8080 vs. Z80). Ein Befehlssatz, der
leicht andere Namen, eine leicht andere Syntax, zusätzliche Befehle
benutzt und dann noch nichtmal binärkompatibel ist... ist eine ziemliche
Eigenentwicklung und eher keine Konkurrenz. ;-)
> Das dürfte doch genug sein um so ein Patent zu umgehen?
Patentiert werden Ideen und Verfahren, keine konkreten
Implementierungen. Eine "kompatible" Implementation dürfte eher
markenrechtlich relevant sein, denn typische RISC-Befehlssätze sehen
sowieso ziemlich gleich aus, das liegt in der Natur der Dinge.
Besonderheiten sind davon natürlich ausgenommen, aber die fallen dir
auch dann auf die Füße, wenn du einen vollständig inkompatiblen
Befehlssatz von Grund auf neu entwickelst.
Bernd schrieb:> Ich in im übrigen ein strikter Gegner von Softwarepatenten. Begründung:> Die Computerindustrie hat von ihren Anfängen an ganz ohne> Softwarepatente entwickelt und es wurden Milliarden Umsätze gemacht. Da> das System auch ohne Softwarepatente super funktioniert und Patente> ohnehin nur als Kampfmittel großer Konzerne dient, sind diese als> Innovationsverhinderer abzulehnen.
"If people had understood how patents would be granted when most of
today's ideas were invented, and had taken out patents, the industry
would be at a complete standstill today." - Bill Gates
Quelle: http://en.swpat.org/wiki/Bill_Gates_on_software_patentsBernd schrieb:> So ganz einfach ist das nicht, mit den Softwarepatenten.> https://de.wikipedia.org/wiki/Softwarepatent> ( siehe Europäische Union )
In den USA gibt es diesen Müll leider. Deshalb gibt es beispielsweise
den Gerichtsprozess Oracle gegen Google zwecks Java API in Android. Das
ist echte Realsatire.
Aber mal abgesehen davon, ist es für einen eigenen Softcore eher
hinderlich solche Befehlssätze wie AVR zu verwenden. Denn die Designer
dieser Befehlssätzen hatten bei der Entwicklung schon eine
Mikroarchitektur im Kopf und haben ihn darauf ausgelegt.
RISC-V hingegen nicht. Bei RISC-V stand außerdem eine einfache
Implementierung im FPGA auf dem Plan, weswegen der Befehlssatz auch
nochmal modular aufgebaut ist und Platz für eigene Erweiterung bietet.
Besser gehts quasi nicht.
Hat jemand Erfahrung mit der risc-v privileged architecture. Ist da die
Toolchain einigermaßen ausgegoren? Insbesondere die Interrupt
implementierung im gcc?
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang