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.
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).
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.
david tweed
Dr. Ehsan Alí
usuario_1818839
pjc50
pjc50
Dr. Ehsan Alí
usuario8352
Dr. Ehsan Alí
Pedro Smith
Dr. Ehsan Alí
José Luis Quiroga Beltrán
ECEVLSI