Me sorprendió y, hasta cierto punto, me sorprendió descubrir que no existe una herramienta establecida adecuada para diseñar y crear prototipos de circuitos asincrónicos.
Sigo buscando usando google y otros medios para encontrar un buen método para diseñar circuitos asincrónicos VLSI, pero hasta ahora las búsquedas no han podido producir una respuesta.
Hay algunas herramientas abandonadas como Balsa, etc. para automatizar los diseños VLSI, pero son totalmente indocumentadas y 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 que compartas el nombre de una herramienta confiable y un hardware de creación de prototipos que alivie la carga del diseño de circuitos asíncronos.
Respuestas:
Se ha mencionado la lógica de Theseus NCL, también había sistemas Handshake (Philips spin off), así como Fulcrum Microsystems y Caltech. También había un procesador ARM asíncrono llamado Amulet. Y SUN Microsystems también tenía un equipo de diseño de procesador para esto 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 usa cualquier término.
DC (Design Compiler) de Synopsys y Merlin de los sistemas FTL también solían estar disponibles.
Sin embargo, si tiene una biblioteca de celdas centrales correctamente diseñada, esta abstracción / descripción de nivel superior puede volverse trivial. El problema central es que si ha diseñado un sistema que permite a cada celda propagar hacia adelante una señal que dice "resultado bueno", así como propagar hacia atrás el "sistema disponible", el sistema se auto reloj y, como tal, se puede diseñar simplemente como software sin preocuparse por las condiciones de carrera o por el momento.
Por lo tanto, las herramientas utilizadas serían tan simples como SPICE para el diseño de 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 (también mencionado en otra parte).
fuente
Si un registro se sincroniza con un reloj del sistema, se consideraría síncrono. Si ese mismo registro se registrara directamente desde una puerta, circuito lógico o, en general, cualquier cosa además de un reloj del sistema, sería asíncrono. Los registros de Altera pueden sincronizarse desde múltiples relojes del sistema o por lógica. Puede construir cualquier tipo de circuito de puerta que desee. . . Según mi experiencia con la mayoría de los tipos de ASIC o FPGA, cada vez que se compila, algo se enruta de manera diferente. Por lo tanto, los retrasos de propagación siempre están cambiando.
fuente
Un FPGA es el hardware correcto. Pero no podrá utilizar el software de síntesis con enfoque síncrono, porque realiza las transformaciones incorrectas.
Por ejemplo, un FPGA es perfectamente capaz de formar un oscilador construido con una cadena inversora. Pero si define la cadena del inversor en, por ejemplo, VHDL y utiliza uno de los compiladores estándar, el "rechazo de puerta NO" eliminará los inversores por pares y lo dejará con solo uno, y el dispositivo no oscilará.
Es posible que deba escribir parte de su propio software de síntesis, que será posible si obtiene suficiente información sobre el flujo de bits. Examinaría otros esfuerzos de investigación que operan 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 ha resuelto algunas técnicas de mapeo personalizadas, 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 controla el uso de las primitivas del elemento lógico FPGA, como las tablas de búsqueda y la interconexión local y global, podrá utilizar los retrasos inherentes para realizar su diseño asincrónico. Su problema de optimización es mucho más difícil que ajustarse con el objetivo de cumplir con los tiempos de configuración y retención, pero eso es lo que lo hace investigar.
fuente
Dependiendo de la complejidad de su circuito. Si su diseño es principalmente digital, puede considerar el uso del sistema Quartus de Altera. Ingrese su diseño con herramientas gráficas y / o VHDL usando registros sincronizados asíncronamente o use solo puertas lógicas. Agregue buffers falsos, 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 sea más lento que sus retrasos de puerta CPLD más rápidos <5 ns)
Muchos años de diseño con sus chips, nunca encontré un resultado de simulador errante. Se pueden hacer diseños más pequeños con sus herramientas gratuitas.
fuente