Esta pregunta está en la cerca entre RC y EE; como el estilo de diseño tiene medio siglo, decidí preguntarle primero a la audiencia de RC.
En 1965, los desarrolladores de computadoras soviéticos utilizaron un HDL rudimentario en la documentación de fabricación. La lógica combinacional de Bitwise se veía bastante comprensible, con · para AND, + para OR, y un overbar para NOT.
Sin embargo, los registros se definieron de una manera más críptica.
Por ejemplo (convirtiendo las abreviaturas rusas al inglés pero manteniendo toda la otra notación como está para la autenticidad), un bit típico del acumulador en medio de la mantisa se definió como
14bRxAcc = C·[ShREn·15bRAcc + HoldEn·14bRAcc + ShLEn·13bRAcc] +
[ShMant4En·18bRAcc + ReplEn·14bNextAcc]·C
14bRAcc = K·14bRxAcc
-
RAcc
yRxAcc
son las matrices de bits almacenados del acumulador -
ShREn
,HoldEn
,ShLEn
: habilitar desplazamiento a la derecha, habilitar retener, habilitar desplazamiento a la izquierda -
ShMant4En
- cambiar la mantisa en 4 bits habilitado,ReplEn
- reemplazar habilitar -
NextAcc
- el nuevo valor del acumulador -
C
yK
son las fases opuestas de la señal del reloj.
La división de la asignación RxACC en dos cláusulas ORed expresa la limitación de 3 cláusulas OR por elemento estándar.
Aquí podemos ver los desplazadores secuenciales hacia la izquierda y hacia la derecha, y una palanca de cambios más rápida (4 posiciones de bit por ciclo de reloj), más la asignación de un valor calculado del bit.
Sin embargo, si reescribimos esto a Verilog con retardo cero
assign RxAcc[14] = C & (ShREn & RAcc[15] | HoldEn & RAcc[14] | ShLEn & Racc[13]) |
(ShMant4En & RAcc[18] | ReplEn & NextAcc[14]) & C;
assign RAcc[14] = K & RxAcc[14];
no funcionará, porque en cualquier momento, C
o K
es cero.
Cabe señalar que el diseño era estático; fue posible hacer un solo paso de la CPU desde la consola.
Mi pregunta es, ¿cuál sería la definición correspondiente de Verilog de RAcc y RxAcc, teniendo en cuenta que ambos podrían ser utilizados por la lógica combinacional?
¿Es seguro asumir que siempre que se menciona C
o K
en una fórmula, la expresión debe tomarse como un latch en lugar de una puerta AND?