¿Qué método sugiere para crear prototipos de circuitos asíncronos?

Me sorprendió y hasta cierto punto me sorprendió descubrir que no existe una herramienta establecida adecuada para diseñar y crear prototipos de circuitos asíncronos.

Sigo buscando usando google y otros medios para encontrar un buen método para diseñar circuitos asíncronos VLSI, pero hasta ahora las búsquedas no han producido una respuesta.

Hay algunas herramientas abandonadas como Balsa, etc. para automatizar diseños VLSI, pero están totalmente indocumentadas y son difíciles de usar. Lo que estoy buscando es algo así como los FPGA que tenemos en el mundo síncrono.

De todos modos, agradezco si comparte el nombre de una herramienta confiable y prototipos de hardware que alivien la carga del diseño de circuitos asíncronos.

No lo vas a encontrar (productos y herramientas comerciales), porque no hay demanda en el mercado. El diseño asíncrono es mucho más difícil de hacer bien, por lo que es más rentable limitar su uso a unas pocas funciones primitivas bien definidas (flip-flops, etc.) y luego usar técnicas síncronas para todas las funciones de nivel superior. Ayúdenos explicando su motivación para esto y lo que espera lograr.
Estoy trabajando en mi tesis doctoral que está relacionada con la búsqueda de métodos innovadores que puedan contribuir a una computación más eficiente desde el punto de vista energético. Una forma de lograr un uso eficiente de la energía es canalizar cada gota de consumo de energía transitoria del transistor hacia el trabajo real. Eso se puede lograr mediante circuitos asíncronos. Allí, los transistores no cambian solo porque un reloj los obligue a hacerlo. Solo cambian (consumen energía) cuando es necesario. Eso es lo que me motivó a ir asíncrono. Los procesadores AMULET son el ejemplo de tal VLSI asíncrono. circuitos Supongo que debería empezar a escribir mis propias herramientas.
La esencia de un proyecto de investigación es hacer algo nuevo, por lo que el hecho de que haya pistas de tierra abandonadas en lugar de carreteras interestatales es de esperar. El único consejo que puedo sugerir es buscar los documentos de Teresa Meng. Recuerdo haber visto uno o dos de ISSCC 1990 cuando se llevó a cabo en Glasgow.
Del mismo modo, estudié con Simon Moore ( cl.cam.ac.uk/~swm11/resume ) quien tenía un grupo completo trabajando en esto hace más de una década. También participé en una puesta en marcha de herramientas de diseño de hardware asincrónicas... que cambió a herramientas de diseño sincrónicas de bajo consumo, debido a la falta de mercado. Nuevamente, debe buscar artículos de él y su grupo de investigación.
(Además, las personas que votan para cerrar esta pregunta porque no se trata de diseño electrónico simplemente están equivocadas)
pjc50: Sabía que la idea detrás de aprovechar el circuito asíncrono es antigua y se remonta a la década de 1950. Lo que no sabía es que la gran cantidad de investigadores dedicaron su vida a abordar esto durante varios años. Puedo ver que el profesor Simon Moore ha dedicado varios años al tema de los circuitos 'autotemporizados'. Gracias por compartir esto, leeré sus artículos.
También hay NULL Convention Logic con una biblioteca VHDL de primitivos. Los nombres primitivos indican un enlace a Theseus Research Inc. . Hubo una pregunta sobre el multiplicador de NCL en Stack Overflow que se retiró cuando iba a hacer un banco de pruebas para ello. (13 de mayo de 2015). La idea aparece periódicamente para evitar el análisis de potencia en criptografía (vi una mención de IACR la semana pasada). Un libro DISEÑO LÓGICAMENTE DETERMINADO DISEÑO DE SISTEMAS SIN RELOJ CON LÓGICA DE CONVENCIÓN NULA , Karl M. Fant.
user1155120: Gracias por compartir los enlaces. Esta es la primera vez que oigo hablar de NCL. Sus enlaces en realidad apuntan a documentos muy interesantes. Nunca presté atención a estas características de async. circuitos que menciona el Dr. Scott Smith: ¡reutilización! Parece que me esperan varias semanas de hacer la tarea, ya que siento que debo leer todos los papeles y el libro que mencionaste.
IEEEXplore tiene una serie de documentos interesantes si puede acceder a ellos.
Sí, puedo acceder a IEEEXplore a través de mi cuenta universitaria. Hay algunos artículos interesantes, ¡pero no tantos! De todos modos es un buen campo para investigar.
Encontré esto mientras buscaba la misma respuesta: Herramienta de síntesis Tiempo - ACC (Compilador de circuitos asíncronos) ( tiempo-secure.com ) design-reuse.com/news/20939/asynchronous-circuit-compiler.html Pero no es de código abierto. Me gustaría saber si encontraste algo o qué enfoque tomaste. Parece que lo sabes mejor que yo.
Eche un vistazo a este libro - Diseño de circuitos asíncronos por Chris J. Myers

Respuestas (4)

Se ha mencionado la lógica NCL de Teseo, también hubo sistemas Handshake (escisión de Philips), así como Fulcrum Microsystems y Caltech. También había un procesador ARM asíncrono llamado Amulet. Y SUN Microsystems tenía un equipo de diseño de procesadores para esto también para un SPARC sin reloj.

Llamaría a estos diseños sin reloj para evitar la confusión entre el diseño lógico como los contadores de ondas y este tipo de circuitos. Pero en general se utiliza cualquiera de los dos términos.

DC (Compilador de diseño) de Synopsys y Merlin de los sistemas FTL también solían estar disponibles.

Sin embargo, si tiene una biblioteca de celdas centrales diseñada correctamente, esta abstracción/descripción de nivel superior puede volverse trivial. El problema central es que si ha diseñado un sistema que permite que cada celda propague hacia adelante una señal que dice "resultado bueno", así como también propaga hacia atrás "sistema disponible", el sistema se sincroniza automáticamente y, como tal, puede diseñarse simplemente como software sin preocuparse por las condiciones de carrera o el tiempo para el caso.

Entonces, las herramientas utilizadas serían tan simples como SPICE para el diseño a nivel de celda (nivel de transistor) y C para compilar en un conjunto de primitivas que se colocarán. Por mi vida, no puedo encontrar la herramienta basada en C (código abierto) que se utilizó.

Mire a personas como Wesley Clark (falleció recientemente), así como a Ivan Sutherland y Karl Fant (mencionados en otra parte también).

@Ehsan: Seguramente es interesante, pero no veo cómo aborda la pregunta en absoluto . El diseño de nivel de celda es para el diseño ASIC, no para la creación de prototipos.
@Ben: Estoy de acuerdo, y por eso no acepté su respuesta. Pero podría \emp{simular} algunos circuitos asincrónicos básicos utilizando bibliotecas de nivel de celda en MultiSim y LTSpice. La lógica NCL también tiene una biblioteca Verilog de sandbox en la que se pueden crear prototipos de circuitos basados ​​en NCL usando FPGA: github.com/karlfant/NCL_sandbox . Pero aún no lo he probado. Cuando estudié NCL me di cuenta de la enorme sobrecarga del enfoque, así que estoy tratando de evitarlo y encontrar algo más práctico.

Si un registro está cronometrado con un reloj del sistema, se consideraría síncrono. Si ese mismo registro fuera cronometrado directamente desde una puerta, un circuito lógico o, en general, cualquier cosa además de un reloj del sistema, sería asíncrono. Los registros de Altera se pueden cronometrar desde múltiples relojes del sistema o por lógica. Puede construir cualquier tipo de circuito de compuerta que desee. . . Ha sido mi experiencia con la mayoría de los tipos de ASIC o FPGA que cada vez que se compila, algo se enruta diferente. Por lo tanto, los retrasos de propagación siempre están cambiando.

Un FPGA es el hardware adecuado. Pero no podrá usar el software de síntesis enfocado sincrónico, porque hace las transformaciones incorrectas.

Por ejemplo, una FPGA es perfectamente capaz de formar un oscilador construido con una cadena inversora. Pero si define esa cadena de inversores en, por ejemplo, VHDL y usa uno de los compiladores estándar, el "retroceso de puerta NO" eliminará los inversores por pares y lo dejará con solo uno, y el dispositivo no oscilará.

Es posible que deba escribir algo de su propio software de síntesis, lo que será posible si obtiene suficiente información sobre el flujo de bits. Buscaría otros esfuerzos de investigación que operen en el flujo de bits en lugar de la descripción del comportamiento: cosas como la detección de fallas y los análisis de confiabilidad dependen en gran medida del mapeo elegido por el sintetizador. Probablemente algún trabajo en el área de la lógica redundante tolerante a fallas ya haya desarrollado algunas técnicas de mapeo personalizado, ya que la eliminación de términos de productos comunes es una de las transformaciones estándar realizadas por un sintetizador tradicional y destruye absolutamente un diseño redundante.

Cuando controle el uso de las primitivas de elementos lógicos de FPGA, como las tablas de búsqueda y la interconexión local y global, podrá utilizar los retrasos inherentes para realizar su diseño asíncrono. Su problema de optimización es mucho más difícil que ajustarse al objetivo de cumplir con los tiempos de configuración y espera, pero eso es lo que hace que sea una investigación.

Dependiendo de la complejidad de su circuito... Si su diseño es mayormente digital, puede usar el sistema Quartus de Altera. Ingrese su diseño con herramientas gráficas y/o VHDL usando registros cronometrados asíncronamente o use solo puertas lógicas. Agregue búferes ficticios, puertas, pines de señal, etc. según sea necesario para retrasar las rutas de señal para que coincidan con lo que necesite. (suponiendo que su diseño es más lento que sus retrasos de puerta CPLD más rápidos <5 ns)

Después de muchos años de diseñar con sus chips, nunca encontré un resultado erróneo en el simulador. Se pueden hacer diseños más pequeños con sus herramientas gratuitas.

"registros cronometrados asincrónicamente"?! No estoy seguro si entendiste bien los conceptos. No existe tal cosa como "registros cronometrados asíncronamente". Un circuito tiene un reloj (síncrono) o no lo tiene (asíncrono). La herramienta que estoy buscando debe admitir puertas Muller primitivas, de doble riel, puertas 2NCL, etc.