Welche Methode schlagen Sie für das Prototyping asynchroner Schaltungen vor?


9

Ich war überrascht und bis zu einem gewissen Grad schockiert, als ich feststellte, dass es kein etabliertes Werkzeug zum Entwerfen und Prototypen von asynchronen Schaltungen gibt.

Ich suche weiterhin mit Google und anderen Mitteln, um eine gute Methode zum Entwerfen von asynchronen VLSI-Schaltkreisen zu finden, aber bisher haben die Suchanfragen keine Antwort geliefert.

Es gibt einige verlassene Tools wie Balsa usw. zur Automatisierung von VLSI-Designs, aber sie sind völlig undokumentiert und schwer zu verwenden. Was ich suche, ist so etwas wie FPGAs, die wir in der synchronen Welt haben.

Ich weiß es jedenfalls zu schätzen, wenn Sie den Namen eines zuverlässigen Tools und Prototyping-Hardware teilen, die das asynchrone Schaltungsdesign entlasten.


10
Sie werden es nicht finden (kommerzielle Produkte und Werkzeuge), weil es keine Marktnachfrage dafür gibt. Asynchrones Design ist viel schwieriger zu korrigieren, weshalb es kostengünstiger ist, seine Verwendung auf einige genau definierte primitive Funktionen (Flip-Flops usw.) zu beschränken und dann synchrone Techniken für alle übergeordneten Funktionen zu verwenden. Helfen Sie uns, indem Sie Ihre Motivation dafür erklären und was Sie erreichen möchten.
Dave Tweed

6
Die Essenz eines Forschungsprojekts besteht darin, etwas Neues zu machen. Die Tatsache, dass es verlassene Feldwege anstelle von Autobahnen gibt, ist nur zu erwarten. Der einzige Hinweis, den ich vorschlagen kann, ist, nach Teresa Mengs Papieren zu suchen. Ich erinnere mich, dass ich ein oder zwei von ISSCC 1990 gesehen habe, als es in Glasgow stattfand.
Brian Drummond

5
Ebenso habe ich bei Simon Moore ( cl.cam.ac.uk/~swm11/resume ) studiert , an dem vor über einem Jahrzehnt eine ganze Gruppe gearbeitet hat. Ich war auch an einem Start von asynchronen Hardware-Design-Tools beteiligt, der sich aufgrund mangelnden Marktes auf synchrone Low-Power-Design-Tools konzentrierte. Wieder sollten Sie nach Papieren von ihm und seiner Forschungsgruppe suchen.
pjc50

4
(Auch die Leute, die abstimmen, um diese Frage zu schließen, weil es nicht um Elektronikdesign geht, sind einfach falsch)
pjc50

2
Es gibt auch NULL Convention Logic mit einer VHDL-Bibliothek von Grundelementen. Die primitiven Namen weisen auf eine Verbindung zu Theseus Research Inc. hin . Es gab eine NCL-Multiplikator-Frage zu Stack Overflow, die über die Zeit zurückgezogen wurde, als ich eine Testbench dafür machen wollte. (13. Mai 2015). Die Idee taucht regelmäßig auf, um eine Leistungsanalyse in der Kryptographie zu vermeiden (siehe eine IACR-Erwähnung letzte Woche). Ein Buch LOGISCH BESTIMMTES DESIGN UHRLOSES SYSTEMDESIGN MIT NULL CONVENTION LOGIC , Karl M. Fant.
user8352

Antworten:


3

Die Theseus-Logik NCL wurde erwähnt, es gab auch Handshake-Systeme (Philips Spin-off) sowie Fulcrum Microsystems und Caltech. Es gab auch einen asynchronen ARM-Prozessor namens Amulet. Und SUN Microsystems hatte auch dafür ein Prozessordesign-Team für einen taktlosen SPARC.

Ich würde diese taktlosen Designs nennen, um die Verwechslung zwischen logischem Design wie Welligkeitszählern und diesen Arten von Schaltungen zu vermeiden. Im Allgemeinen wird jedoch jeder Begriff verwendet.

Früher war auch DC (Design Compiler) von Synopsys sowie Merlin von FTL-Systemen verfügbar.

Wenn Sie jedoch über eine ordnungsgemäß gestaltete Bibliothek von Kernzellen verfügen, kann diese Abstraktion / Beschreibung der obersten Ebene trivial werden. Das Kernproblem besteht darin, dass, wenn Sie ein System entworfen haben, das es jeder Zelle ermöglicht, ein Signal mit der Aufschrift "Ergebnis gut" vorwärts zu verbreiten und das "verfügbare System" rückwärts zu verbreiten, das System selbsttaktet und als solches einfach sehr ähnlich entworfen werden kann Software ohne Rücksicht auf die Rennbedingungen oder das Timing.

Die verwendeten Werkzeuge wären also so einfach wie SPICE für das Design auf Zellebene (Transistorebene) und C für das Kompilieren in eine Reihe von zu platzierenden Grundelementen. Für mein Leben kann ich das verwendete C-basierte Tool (Open Source) nicht finden.

Schauen Sie sich Leute wie Wesley Clark (er ist kürzlich verstorben) sowie Ivan Sutherland und Karl Fant (auch an anderer Stelle erwähnt) an.


@Ehsan: Es ist sicherlich interessant, aber ich sehe nicht, wie es die Frage überhaupt anspricht . Das Layout auf Zellebene dient dem ASIC-Design und nicht dem Prototyping.
Ben Voigt

@ Ben: Ich stimme zu, und deshalb habe ich seine Antwort nicht akzeptiert. Aber ich könnte einige grundlegende asynchrone Schaltungen mithilfe von Bibliotheken auf Zellebene in MultiSim und LTSpice simulieren. Die NCL-Logik verfügt auch über eine Sandbox-Verilog-Bibliothek, mit der Schaltungen basierend auf NCL mithilfe von FPGA prototypisiert werden können: github.com/karlfant/NCL_sandbox . Aber ich habe es noch nicht versucht. Als ich NCL studierte, erkannte ich den enormen Aufwand des Ansatzes, also versuche ich, ihn zu vermeiden und mir etwas Praktischeres auszudenken.
Ehsan

2

Wenn ein Register mit einer Systemuhr getaktet wird, wird es als synchron betrachtet. Wenn dasselbe Register direkt von einem Gate, einer Logikschaltung oder allgemein etwas anderem als einem Systemtakt getaktet würde, wäre es asynchron. Alteras Register können von mehreren Systemtakten oder durch Logik getaktet werden. Sie können jede Art von Gate-Schaltung bauen, die Sie wünschen. . . Ich habe mit den meisten Arten von ASICs oder FPGAs die Erfahrung gemacht, dass jedes Mal, wenn sie kompiliert werden, etwas anders geroutet wird. Somit ändern sich die Ausbreitungsverzögerungen immer.


2

Ein FPGA ist die richtige Hardware. Sie können die synchron fokussierte Synthesesoftware jedoch nicht verwenden, da sie die falschen Transformationen ausführt.

Beispielsweise kann ein FPGA perfekt einen Oszillator bilden, der aus einer Wechselrichterkette besteht. Wenn Sie diese Wechselrichterkette jedoch in z. B. VHDL definieren und einen der Standard-Compiler verwenden, werden durch "NOT-Gate-Pushback" Wechselrichter paarweise eliminiert und Sie erhalten nur einen, und das Gerät schwingt nicht.

Möglicherweise müssen Sie eine eigene Synthesesoftware schreiben. Dies ist möglich, wenn Sie genügend Informationen zum Bitstream erhalten. Ich würde mich mit anderen Forschungsanstrengungen befassen, die sich eher auf den Bitstrom als auf die Verhaltensbeschreibung beziehen - Dinge wie die Erkennung von Störungen und Zuverlässigkeitsanalysen hängen stark von der vom Synthesizer gewählten Zuordnung ab. Wahrscheinlich haben einige Arbeiten im Bereich der redundanten fehlertoleranten Logik bereits einige benutzerdefinierte Mapping-Techniken ausgearbeitet, da die Eliminierung gängiger Produktterme eine der Standardtransformationen ist, die von einem herkömmlichen Synthesizer durchgeführt werden, und ein redundantes Design absolut zerstört.

Wenn Sie die Verwendung der FPGA-Logikelement-Grundelemente wie Nachschlagetabellen und lokaler und globaler Verbindungen steuern, können Sie die inhärenten Verzögerungen verwenden, um Ihr asynchrones Design zu realisieren. Ihr Optimierungsproblem ist viel schwieriger als das Ziel, die Rüst- und Haltezeiten einzuhalten, aber genau deshalb recherchiert es.


1

Abhängig von der Komplexität Ihrer Schaltung. Wenn Ihr Design größtenteils digital ist, können Sie das Quartus-System von Altera verwenden. Geben Sie Ihr Design mit grafischen und / oder VHDL-Tools ein, indem Sie asynchron getaktete Register verwenden, oder verwenden Sie nur Logikgatter. Fügen Sie nach Bedarf Dummy-Puffer, Gates, Signal-Pins usw. hinzu, um die Signalpfade so zu verzögern, dass sie Ihren Anforderungen entsprechen. (Vorausgesetzt, Ihr Design ist langsamer als die schnellsten CPLD-Gate-Verzögerungen <5 ns)

Viele Jahre des Entwerfens mit ihren Chips habe ich nie ein fehlerhaftes Simulatorergebnis gefunden. Kleinere Designs können mit ihren kostenlosen Werkzeugen erstellt werden.


"asynchron getaktete Register" ?! Ich bin mir nicht sicher, ob Sie die Konzepte richtig verstanden haben. Es gibt keine "asynchron getakteten Register". Eine Schaltung hat entweder eine Uhr (synchron) oder keine (asynchron). Das Werkzeug, das ich suche, muss primitive Muller-Tore, Doppelschienen-, 2NCL-Tore usw. unterstützen
Ehsan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.