Latches y reloj bifásico en ASIC modernos

¿Por qué los pestillos y los esquemas de reloj de 2 fases están mal vistos en el diseño moderno de ASIC de alta velocidad? Entiendo que los diseños basados ​​en flip-flop de un solo borde son más fáciles en las herramientas STA, pero ¿existen otras buenas razones para este sesgo en la industria?

Comparto su curiosidad, ya que parecería que el reloj de dos fases facilitaría mucho algunas cosas. Por ejemplo, si un periférico funciona con un cristal de 32768 Hz usando reloj de dos fases, uno podría cambiar sin problemas entre tener sus relojes sincronizados con el reloj de la CPU principal y tenerlos asíncronos. Eso no sería confiable cuando se usa el reloj de una sola fase, ya que encender el sincronizador podría dar como resultado que el periférico reciba un pulso de reloj corto (no sincronizado) seguido de uno sincronizado, pero cuando se usa el reloj de dos fases eso no importaría .

Respuestas (1)

No es tanto un 'sesgo' en la industria como una cuestión de estrategia de diseño. Dos relojes de alta velocidad desfasados ​​180 grados (reloj A y reloj B) suenan como una buena solución para relojes de registro de entrada/registro de salida (o contar y almacenar) o para evitar condiciones de carrera.

A velocidades bajas de menos de 500 MHz, un reloj de 2 fases no es un problema tan grande, pero a frecuencias de reloj de GHZ es casi imposible evitar la desviación del reloj A en comparación con el reloj B, especialmente después de atravesar varias vueltas y cambiar de capa. Esto rápidamente hace que el esquema de 2 fases sea inútil, ya que el sesgo tendría que corregirse constantemente.

Es mejor tener un solo reloj maestro y usar retrasos de 'punto de uso' cuando sea necesario para la configuración de datos y el tiempo de espera, registrar el tiempo de lectura, etc. Los flip-flops de un solo borde solo bloquean los datos en el borde ascendente o descendente del reloj. Para retrasos más largos, un pestillo nand puede 'atrapar' el pulso del reloj hasta que se use, lo que reinicia el pestillo. A menudo, este retraso en el "punto de uso" es solo un patrón en zig-zag en la traza justo en el IC que necesita el retraso.

Con atención a los detalles, el flanco ascendente se puede usar para bloquear una dirección en un dram/ram/registro y el flanco descendente se puede usar para leer o escribir datos. Siempre que la dirección/los datos sean estables antes de que llegue el borde del reloj (incluso por unos pocos cientos de picosegundos), esto ayuda a que el esquema de reloj monofásico funcione de la mejor manera.

Las CPU y las MPU todavía usan un reloj de 4 fases, pero solo en el núcleo de la máquina de estado, para realizar los procedimientos de 'obtención/descodificación/ejecución/almacenamiento' de manera ordenada. Tenga en cuenta que algunas CPU modernas pueden usar un reloj de 6 fases para que la búsqueda previa y la reescritura se agreguen a la secuencia.

renunciamos a los relojes de 2 fases debido a la falta de coincidencia del umbral. El uso de NAND de acoplamiento cruzado en lugar de un pestillo basado en t-gate es significativamente mejor cuando los umbrales son de +-10 %.
¿Significa eso que todos esos procesadores MIPS de 32 bits que diseñan los estudiantes no son realistas en el sentido de que son demasiado simplistas para ser prácticos a pesar de ser arquitectónicamente precisos?
@bdegnan. Me refiero a los errores de umbral como errores de sesgo. Tienes razón sobre las puertas nand. Crean un efecto de 'semáforo' en el que los datos o el reloj se mantienen hasta que se necesitan, reiniciando el pestillo nand.
@rvt. Si son "arquitectónicamente precisos", el límite es la velocidad del reloj. Con un reloj muy lento, incluso un diseño descuidado podría funcionar. Para velocidades de GHZ, todos los aspectos de cada traza y parte deben ajustarse con precisión en picosegundos para que funcionen de manera confiable.
@rvt Hay muchas restricciones de diseño en las que no entrará hasta que esté en el campo. El MIPS es un núcleo bueno y simple, y se usa en todas partes. En realidad, está limitado por la E/S del bus, por lo que la velocidad del procesador no importa tanto como solía hacerlo porque se trata de caché en arquitecturas reales.
@bdegnan. Es la misma vieja historia: tratar de mantener el núcleo ocupado aunque el bus de datos externo no pueda funcionar a las velocidades del núcleo. La memoria caché multipuerto más grande resuelve parte de ese problema. Cuando Fram/Mram esté más maduro, creo que veremos otro salto en el rendimiento de CPU/MPU/FPGA.
@Sparky256 Estoy bastante seguro de que no lo veremos, pero podríamos tener suerte. Aquí están los resultados públicos de mi última encuesta: degnan68k.blogspot.com/2015/04/… He visto troqueles que tienen el tamaño real de la retícula debido al caché, es una situación triste.
@bdegnan. Gran blog, y gracias por la ayuda con las puertas nand. Con Intel ahora produciendo chips con topología de 10nm y apilando capas para un mayor uso del espacio 3D, el cuello de botella del mobo persistirá hasta que comencemos a usar incrustaciones de fibra óptica para las señales. Aun así, los rastros de cobre para el hardware heredado estarán disponibles por algún tiempo.