Hi Habe vor kurzen einen Bericht über Open Core Protocol (OCP) gelesen mit den man den man IP Cores ausstatten kann und dann unabhängig vom verwendenten Bussystem kommunizieren kann. Nun würde es mich interessieren ob es zu OCP noch weiter alternativen gibt die den Physical Layer abstrahieren?!?! Danke im vorhinein für alle Antworten. Mfg fresh
Hi Fresh, ja es hat mal (vor 15 Jahren oder so) eine OCP-IP Spezifikation von der Virtual Socket Alliance (http://www.vsi.org) gegeben. In meinem früheren Siemens Leben haben wir uns eine Weile damit beschäftigt. Es war aber damals immer schon m.E. etwas akademisch und elitär. d.h. die grosse Firmen haben Vertreter hingeschickt, die schöne Vorträge gehalten haben, sich einen gemütlichen Abend gemacht haben usw.. Es ist aber nichts wirklich handfestes daraus geworden. Im Prinzip waren drei Ausprägung definiert (je nach gewünschte Komplexität bzw. Bandbreite), Peripheral, Basic und Advanced Irgendwann hat dann Sonics Inc. (deren Vertreter waren zufällig auch dabei) einen GUI Tool auf Grundlage der letzten Spezifikation entwickelt. Offiziell pflegt die Fa. Sonics die Spec noch. Eine Lizenz ist aber meines Wissens schweine teuer. (fünfstellig EUR). So viel ich weiss, zählen Nokia, TI und einige andere zu den Lizenznehmern. In der Praxis leisten z.B. Amba von ARM (http://www.amba.com) mit der Kombination APB/AHB/AXI bzw. CoreConnect von IBM mit der Kombination PLB/OPB m.E. so ziemlich das gleiche. Zumindest bei Amba sind die Specs kostenlos (ausser Hinterlegung der Email-Adresse/Firmen-Name). Ich glaube die CoreConnect Specs bekommt man von PowerOrg oder Xilinx (oder natürlich auch IBM). Hier gibt es halt meistens nur firmeneigene GUI Tools zur Verdrahtung. Mentor hat schon ein Tool im Program (mir fällt der Name gerade nicht ein) aber der ist auch ziemlich teuer. IP-XACT / IEEE 1685 (vormals Spirit Consortium) versuchen eine generische Lösung auf XML Basis zu etablieren. IP-XACT wird auch mehr oder minder von ARM, NXP et al. unterstützt. So viel ich weiss, gibt es zumindest experimentelle Beispiele, wie eine IP-XACT XML Beschreibung per XSLT in VHDL/Verilog umgesetzt werden kann. Bin aber noch nicht dazugekommen sie auszuprobieren. Die IP-XACT Spec gibt es unter http://standards.ieee.org/getieee/1685/download/1685-2009.pdf. S. a. die Accellera Webseite (http://www.accellera.org) Eine Rolle spielt auch der Wishbone Bus (z.B. bei OpenCores http://www.opencores.org oder Lattice Mico32 http://www.latticesemi.com) aber fast ausschliesslich in der FPGA Welt. Der Avalon Bus von Altera natürlich ebenso. Hoffe geholfen zu haben, Charles
Hi Charles Danke für deine hilfreiche Antwort. Wusste gar nicht das OCP so alt und ungebräuchlich ist. Habe es damals auch vorallem bei TI gefunden und die verwenden es anscheinend sehr gerne. Bezüglich der Lizenzkosten habe ich bisher leider noch nichts gefunden. Mfg fresh
Hallo Charles Nachdem du ja anscheinend viel mit solchen Systemen arbeitest hätte ich da noch eine kleine Frage an dich. OCP ist ja nur eine spezifikation wie die Schnittstellen aussehen müssen aber wie die Daten physikalisch übertragen werden ist nicht definiert. Daher meine Frage ob auch die anderen Vertreter wie AMBA nur eine Spezifikation sind und das Übertragungsmedium wieder frei Wählbar ist? Mfg fresh
fresh schrieb: > Daher meine Frage ob auch die anderen Vertreter wie AMBA nur eine > Spezifikation sind und das Übertragungsmedium wieder frei Wählbar > ist? AMBA definiert physikalische Signale. -- Marcus
Das heist also AMBA definiert den physikalischen Layer und die Schnittstelle zum Program hin. Also ich kann AMBA direkt verwenden um zwischen IP Cores zu kommunizieren aber ich kann auch OCP verwenden und darunter AMBA oder? Mfg fresh
Harald Schuster schrieb: > Also ich kann AMBA direkt verwenden um zwischen IP Cores zu kommunizieren Ja. > aber ich kann auch OCP verwenden und darunter AMBA oder? So entnehme ich es den Werbebroschüren der OCP-IP. Mehr weiß ich darüber aber nicht. -- Marcus
also wenn ich nun bei ein System on Chip ein Network on Chip brauch kann ich direkt AMBA verwenden oder ist das wieder was anderes? Mfg fresh
Harald Schuster schrieb: > also wenn ich nun bei ein System on Chip ein Network on Chip brauch kann > ich direkt AMBA verwenden oder ist das wieder was anderes? NoC ist lediglich ein griffiger Name für eine komplexe Busmatrix. Üblicherweise werden diese mit einer Software (z.B. AMBA Designer) konfiguriert und stellen so die zentrale Infrastruktur eines SoC dar. -- Marcus
So wie ich das bis jetzt verstanden habe sind AMBA, OCP, usw alles Bussysteme die gewisse beschränkungen haben. Sie sind aber keine Networks on Chip weil diese komplexer sind von der Struktur oder? Mfg fresh
Harald Schuster schrieb: > So wie ich das bis jetzt verstanden habe sind AMBA, OCP, usw alles > Bussysteme die gewisse beschränkungen haben. Jedes Bussystem ist logischerweise beschränkt, da man nicht alle möglichen zukünftigen Entwicklungen voraussehen kann. Selbst wenn man das könnte, wäre es nicht möglich, bzw. sinnvoll, alle diese Fälle mit einem einzigen Protokoll abzudecken. Daher gibt es die Protokollfamilien, wie z.B. AMBA, die verschiedene Protokolle für unterschiedliche Anwendungsfälle definieren. > Sie sind aber keine Networks on Chip weil diese komplexer sind von der > Struktur oder? Was Du möglicherweise meinst sind althergebrachte Busse (mehrere Treiber) gegenüber der Verwendung einer Busmatrix (Switched Interconnect). Ersteres verwendet seit über zehn Jahren keiner mehr, und letzteres nennt man eben immer noch "Bus", obwohl die Bezeichnung nicht so recht passt. Eine Busmatrix, im Wesentlichen aus Adressdekoder und Crossbar bestehend, ist heutzutage Standard und mehr oder weniger dumm. Wenn man, in modernen SoC, an die Eingangs und Ausgangsports der Matrix immer mehr Adapter (Frequenz, Datenbreite, Protokoll, usw.) anflanschen muss, dann wird das schnell unübersichtlich. Dazu kommen transaktionsbasierte Protokolle, wie AXI4, Routingregeln, und QoS. Jetzt empfiehlt es sich, mal ein NoC anzusehen. Das NoC stellt die Infrastruktur dar, an deren Ports die Busprotokolle der Teilnehmer implementiert werden. Dabei müssen nicht alle Teilnehmer das selbe Protokoll sprechen. Das NoC übernimmt das Routing von einem Port zum anderen. Intern wird z.T. ein spezielles, von außen nicht sichtbares, Protokoll verwendet. Manchmal aber auch nicht (siehe CoreLink NIC-301). Im Gegensatz zur Busmatrix ist ein NoC eine komplexe Logikeinheit. Wann genau man noch von einer Busmatrix spricht, und wann man das Ding dann NoC nennt, das wird letztlich von den Marketingabteilungen bestimmt. -- Marcus
Hallo Fresh, ich bin nicht ganz Deiner Meinung, dass die physikalische Datenübertragung bei OCP-IP nicht definiert ist. Die Spec hat sehr wohl Kapitel zu den Themen "Signals and Encoding", "Protocol Semantics", "Timing Diagrams", "Timing Specification" usw. Darüberhinaus gibt es Kapitel, die das Format der Synthese Constraints, das Anbinden von nicht OCP-IP Moduln usw. spezifiziert. Das Verkaufsargument von Sonics Inc. ist aber das GUI Tool, das sie auch zur Verfügung stellen. So ist mir jedenfalls vor ein Paar Jahren auf einer Messe vorgeführt worden. Dass es bei TI, Nokia etc. in die Landschaft passt, kann ich mir auch gut vorstellen. Durch die eigene Fabs bzw. enge Beziehung zu Ihren ASIC/Full-Custom Providern wird das Sonics Tool wahrscheinlich in deren gesamt Tool-Flow voll integriert sein. Amba, CoreConnect usw. konzentrieren sich auf der Spezifikation der "Signals and Encoding" und "Protocol Semantics". Das Timing ist eigentlich impliziert, da die Busse synchron sind. Synthese muss halt die Ziel-Frequenz erreichen. Zumindest bei Amba, wird das Interconnect ('Fabric') nicht zwingend spezifiziert auch wenn es durchaus Empfehlungen gibt. Das darf der Anwender nach seinen Bedürfnissen selber erfinden. AXI ist dem OCP-IP sehr ähnlich und als punkt-zu-punkt beschrieben. Nur, als die OCB (der Vorgänger nannte sich so) Spec noch von der VSI gepflegt worden ist, waren die Erwartungen von vielen Beteilgten etwas anders. Vor 15 Jahren hat so ziemlich jeder IP Provider seine eigene Interfaces erfunden. Es war an Greuel sie alle miteinander zu verbinden. Der Ansatz von VSI war eine Punkt-zu-Punkt Schnittstelle zu definieren, die entweder als Punkt-zu-Punkt verwendet wird oder über Wrapper mit Proprietären oder offene Bus Systeme. Bei Siemens damals haben wir einige Cores mit OCB entwickelt and dann über Wrapper sowohl an Amba als auch z.B. an den Infineon FPI Bus angeschlossen. Das Herz der IP-Cores wurden aber eben nur einmal entwickelt und verifiziert. Es haben nur wenige Firmen aber überhaupt IPs mit OCB angeboten. (Ich glaube Altera, Virtual Chips und einige wenige andere waren dabei). Das Tempo der OCB Standardisierung war aber extrem langsam. Mit der Preis/Lizenz/Patent Politik von Sonics ist es aber m.E. für den breiten Einsatz endgültig gestorben. Das sind Preise, die keine FPGA Anwender jemals zahlen werden. Auch Firmen wie z.B. Evatronix, die vieles in den FPGA Markt beliefern, haben einfach nicht das EDA Budget von Firmen wie Nokia oder TI. Als offener/erschwinglicher Standard mit Abstraktionsgedanken sehe ich im Augenblick wirklich nur die IP-XACT Aktivitäten. Das angesprochene Problem ist aber nicht genau das was ursprünglich von der VSI adressiert worden ist. Grob skizziert, IP-XACT geht davon aus, dass man eine IP-Sammlung hat, die alle dasselbe Interface haben (Amba, CoreConnect, Proprietär..). Das Ziel ist eher die mühsame Verdrahtung des Top-Levels zu automatisieren wo ein Leichsinnsfehler über Erfolg/Misserfolg entscheiden kann. Seitdem die RDL (Register Description Language) Spec dazugekommen ist, besteht eine Aussicht, dass das Anbinden von Firmware/Device Treiber etc. an verschiedenen Projekten aus demselben IP-Fundus vereinfacht werden kann. Grüße, Charles
Hi Also so wie ich das mit den OCP verstanden habe ist die Kommunikation zwischen einen OCP Slave und einen OCP Master definiert. Weil ein IP Core ist zum Beispiel ein OCP Slave dann muss er sich zuerst zu einen OCP Master verbinden der die Schnittstelle zum Eigentlichen Bus oder Netzwerk darstellt. Dann gehts zum OCP Slave des Empfängers welcher wiederrum mit den OCP Master des eigentlichen IP Cores kommuniziert. Also kann als echte Verbindung zwischend den OCP Schnittstellen jeder physikalische layer vorhanden sein. So habe ich das verstanden und hoffe das es stimmt. AMBA und Coreconnect definieren die Schnittstelle für die IP Cores und den physical Layer. Also diese Systeme wie AMBA und OCP haben eigentlich nichts mit Network on Chip zu tun weil ein NoC kann mit AMBA oder anderen physikalischen Layer realisiert werden. NoC bezeichnet eigentlich nur ein Bussystem mit logik oder? Sollte ich was falsch verstanden haben bitte ausbessern. DANKE Mfg fresh
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.