¿Qué método sugiere para la creación de prototipos de circuitos asincrónicos?

9

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.

Ehsan
fuente
10
No lo va a encontrar (productos y herramientas comerciales), porque no hay demanda del mercado para ello. El diseño asincrónico es mucho más difícil de acertar, 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 sincrónicas para todas las funciones de nivel superior. Ayúdenos explicando su motivación para esto y lo que espera lograr.
Dave Tweed
66
La esencia de un proyecto de investigación es ir a algo nuevo, por lo que el hecho de que haya pistas de tierra abandonadas en lugar de autopistas interestatales es de esperar. El único indicador que puedo sugerir es buscar los papeles de Teresa Meng. Recuerdo haber visto uno o dos de ISSCC 1990 cuando se celebró en Glasgow.
Brian Drummond
55
Del mismo modo, estudié con Simon Moore ( cl.cam.ac.uk/~swm11/resume ) que tenía un grupo completo trabajando en esto hace más de una década. También participé en un inicio de herramientas de diseño de hardware asíncrono ... que se convirtió en herramientas de diseño síncrono de baja potencia, debido a la falta de mercado. Una vez más, debe buscar documentos de él y su grupo de investigación.
pjc50
44
(Además, las personas que votan para cerrar esta pregunta porque no se trata de diseño electrónico simplemente están equivocadas)
pjc50
2
También hay NULL Convention Logic con una biblioteca de primitivas VHDL. Los nombres primitivos indican un enlace a Theseus Research Inc .. Hubo una pregunta multiplicadora de NCL sobre Stack Overflow retirada sobre el momento en que 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 SISTEMA SIN RELOJ CON LÓGICA DE CONVENCIÓN NULA , Karl M. Fant.
user8352

Respuestas:

3

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).

marcador de posición
fuente
@Ehsan: Seguramente es interesante, pero no veo cómo aborda la pregunta en absoluto . El diseño a nivel de celda es para diseño ASIC, no para creación de prototipos.
Ben Voigt
@Ben: estoy de acuerdo, y es por eso que no acepté su respuesta. Pero podría \ emp {simular} algunos circuitos asíncronos básicos utilizando bibliotecas a nivel de celda en MultiSim y LTSpice. La lógica NCL también tiene una biblioteca Verilog sandbox que puede prototipar 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 gran sobrecarga del enfoque, así que estoy tratando de evitarlo, y se me ocurrió algo más práctico.
Ehsan
2

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.

JimTech
fuente
2

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.

Ben Voigt
fuente
1

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.

JimTech
fuente
¿"registros sincronizados asíncrono"? No estoy seguro de haber entendido bien los conceptos. No existe tal cosa como "registros sincronizados asincrónicamente". Un circuito tiene un reloj (síncrono) o no (asíncrono). La herramienta Busco apoyo debe primitiva puerta de Muller, de dos rieles, puertas 2NCL, etc.
Ehsan