Quelle méthode proposez-vous pour prototyper des circuits asynchrones?

9

J'ai été surpris et dans une certaine mesure choqué de constater qu'il n'y a pas d'outil bien établi pour concevoir et prototyper des circuits asynchrones.

Je continue à chercher en utilisant Google et d'autres moyens pour trouver une bonne méthode pour concevoir des circuits asynchrones VLSI, mais jusqu'à présent, les recherches n'ont pas réussi à produire une réponse.

Il existe des outils abandonnés comme Balsa, etc. pour automatiser les conceptions VLSI, mais ils sont totalement non documentés et difficiles à utiliser. Ce que je recherche, c'est quelque chose comme des FPGA que nous avons dans le monde synchrone.

Quoi qu'il en soit, j'apprécie que vous partagiez le nom d'un outil fiable et d'un matériel de prototypage qui allègent le fardeau de la conception de circuits asynchrones.

Ehsan
la source
10
Vous ne le trouverez pas (produits et outils commerciaux), car il n'y a pas de demande sur le marché. La conception asynchrone est beaucoup plus difficile à obtenir correctement, c'est pourquoi il est plus rentable de limiter son utilisation à quelques fonctions primitives bien définies (bascules, etc.), puis d'utiliser des techniques synchrones pour toutes les fonctions de niveau supérieur. Aidez-nous en expliquant votre motivation et ce que vous espérez accomplir.
Dave Tweed
6
L'essence d'un projet de recherche est d'aller vers quelque chose de nouveau, donc le fait qu'il y ait des chemins de terre abandonnés au lieu d'autoroutes interétatiques est à prévoir. Le seul pointeur que je peux suggérer est de chercher les papiers de Teresa Meng. Je me souviens en avoir vu un ou deux de l'ISSCC 1990 lors de sa tenue à Glasgow.
Brian Drummond
5
De même, j'ai étudié avec Simon Moore ( cl.cam.ac.uk/~swm11/resume ) qui avait un groupe entier travaillant sur ce sujet il y a plus d'une décennie. J'ai également été impliqué dans un démarrage d'outils de conception de matériel asynchrone .. qui a pivoté vers des outils de conception synchrones à faible puissance, en raison du manque de marché. Encore une fois, vous devriez chercher des articles de lui et de son groupe de recherche.
pjc50
4
(En outre, les personnes qui votent pour clore cette question car il ne s'agit pas de conception électronique ont tout simplement tort)
pjc50
2
Il existe également une logique de convention NULL avec une bibliothèque VHDL de primitives. Les noms primitifs indiquent un lien vers Theseus Research Inc .. Il y avait une question multiplicateur NCL sur Stack Overflow retirée au moment où j'allais faire un banc d'essai pour cela. (13 mai 2015). L'idée apparaît périodiquement pour éviter l'analyse de puissance en cryptographie (vu une mention IACR la semaine dernière). Un livre CONCEPTION LOGICALEMENT DÉTERMINÉE CONCEPTION DE SYSTÈME SANS HORLOGE AVEC LOGIQUE DE CONVENTION NULLE , Karl M. Fant.
user8352

Réponses:

3

La logique NCL Theseus a été mentionnée, il y avait aussi des systèmes de prise de contact (spin off Philips) ainsi que Fulcrum Microsystems et Caltech. Il y avait également un processeur ARM asynchrone appelé Amulet. Et SUN Microsystems avait également une équipe de conception de processeur pour un SPARC sans horloge.

J'appellerais ces conceptions sans horloge pour éviter la confusion entre la conception logique comme les compteurs d'ondulation et ces types de circuits. Mais en général, l'un ou l'autre terme est utilisé.

DC (Design Compiler) de Synopsys ainsi que Merlin des systèmes FTL étaient également disponibles.

Cependant, si vous disposez d'une bibliothèque de cellules centrales correctement conçue, cette abstraction / description de niveau supérieur peut devenir triviale. Le problème principal est que si vous avez conçu un système qui permet à chaque cellule de se propager vers l'avant un signal qui dit "bon résultat" ainsi que de se propager en arrière "système disponible", les horloges du système et en tant que telles peuvent être simplement conçues de manière très similaire à logiciel sans se soucier des conditions de course ou du calendrier d'ailleurs.

Ainsi, les outils utilisés seraient aussi simples que SPICE pour la conception au niveau de la cellule (niveau du transistor) et C pour la compilation en un ensemble de primitives à placer. Pour la vie de moi, je ne trouve pas l'outil basé sur C (open source) qui a été utilisé.

Regardez des gens comme Wesley Clark (il est décédé récemment) ainsi qu'Ivan Sutherland et Karl Fant (mentionnés ailleurs aussi).

espace réservé
la source
@Ehsan: Il est intéressant, mais je ne vois pas comment sûrement il aborde la question du tout . La disposition au niveau des cellules est destinée à la conception ASIC, pas au prototypage.
Ben Voigt
@Ben: Je suis d'accord, et c'est pourquoi je n'ai pas accepté sa réponse. Mais je pourrais \ emp {simuler} des circuits asynchrones de base en utilisant des bibliothèques de niveau cellule dans MultiSim et LTSpice. La logique NCL possède également une bibliothèque sandbox Verilog que l'on peut prototyper des circuits basés sur NCL en utilisant FPGA: github.com/karlfant/NCL_sandbox . Mais je ne l'ai pas encore essayé. Quand j'ai étudié NCL, j'ai réalisé l'énorme surcharge de l'approche, donc j'essaie de l'éviter et de trouver quelque chose de plus pratique.
Ehsan
2

Si un registre est cadencé avec une horloge système, il serait considéré comme synchrone. Si ce même registre était cadencé directement à partir d'une porte, d'un circuit logique ou généralement de quoi que ce soit d'autre qu'une horloge système, il serait asynchrone. Les registres d'Altera peuvent être synchronisés à partir de plusieurs horloges système ou par logique. Vous pouvez construire tout type de circuit de porte que vous désirez. . . D'après mon expérience avec la plupart des types d'ASIC ou de FPGA, chaque fois qu'il est compilé, quelque chose est routé différemment. Ainsi, les retards de propagation changent toujours.

JimTech
la source
2

Un FPGA est le bon matériel. Mais vous ne pourrez pas utiliser le logiciel de synthèse synchrone, car il fait les mauvaises transformations.

Par exemple, un FPGA est parfaitement capable de former un oscillateur construit avec une chaîne inverseuse. Mais si vous définissez cette chaîne d'onduleurs, par exemple en VHDL, et utilisez l'un des compilateurs standard, "NOT-gate pushback" éliminera les onduleurs par paire et vous laissera avec un seul, et l'appareil n'oscillera pas.

Vous devrez peut-être écrire certains de vos propres logiciels de synthèse, ce qui sera possible si vous obtenez suffisamment d'informations sur le flux binaire. J'examinerais d'autres efforts de recherche qui opèrent sur le flux binaire plutôt que la description du comportement - des choses comme la détection de pépins et les analyses de fiabilité dépendent fortement du mappage choisi par le synthétiseur. Certains travaux dans le domaine de la logique à tolérance de pannes redondante ont déjà mis au point certaines techniques de mappage personnalisées, car l'élimination des termes de produit courants est l'une des transformations standard effectuées par un synthétiseur traditionnel et détruit absolument une conception redondante.

Lorsque vous contrôlez l'utilisation des primitives d'éléments logiques FPGA telles que les tables de recherche et l'interconnexion locale et globale, vous pourrez utiliser les retards inhérents pour réaliser votre conception asynchrone. Votre problème d'optimisation est beaucoup plus difficile que de correspondre à l'objectif de respecter les temps de configuration et de mise en attente, mais c'est ce qui fait sa recherche.

Ben Voigt
la source
1

Selon la complexité de votre circuit. Si votre conception est principalement numérique, vous pourriez envisager d'utiliser le système Quartus d'Altera. Saisissez votre conception avec des outils graphiques et / ou VHDL à l'aide de registres synchronisés de manière asynchrone ou utilisez uniquement des portes logiques. Ajoutez des tampons factices, des portes, des broches de signal, etc. selon les besoins pour retarder les trajets du signal pour qu'ils correspondent à vos besoins. (en supposant que votre conception soit plus lente que leurs délais de porte CPLD les plus rapides <5 ns)

Après de nombreuses années de conception avec leurs puces, je n'ai jamais trouvé de résultat de simulateur errant. Des conceptions plus petites peuvent être réalisées avec leurs outils gratuits.

JimTech
la source
"registres synchronisés de manière asyncrone"?! Je ne sais pas si vous avez bien compris les concepts. Il n’existe pas de "registres synchronisés de manière asyncrone". Un circuit a une horloge (synchrone) ou non (asynchrone). L'outil que je recherche doit prendre en charge la porte Muller primitive, le double rail, les portes 2NCL, etc.
Ehsan