Trabajo en el software MAGIC Integrated Circuit a nivel de diseño.
Obtuve un registro dinámico de 8 bits hecho de flip-flops dinámicos de 1 bit que escriben la entrada en el borde positivo de la señal:
(Nota:usécompuertasdetransmisióncomointerruptoresenlugardesoloNMOS,paramayorrobustez.LosinversoressoninversoresCMOSnormales.)
Asíquebásicamentetiene8deestosflipflops,conectadosalmismoCLK.Sinembargo,cuandoacabodehacerunasimplepropagacióndeCLKynotCLK,miregistrofuncionaenAMBOSelbordepositivoynegativodeCLK,mientrasquedeberíafuncionarsoloenelbordepositivo.MiTAmedijoqueesdebidoalriesgodecarrera,dondeenunmomentotantoCLKcomonotCLKestánenunnivellógicoalto,durantelatransición.Estofuecorrectocuandosimulé,asíqueeliminéelriesgodecarreraconestecircuito:
Y, de hecho, con esto no hubo superposición de '1' lógico para CLK y notCLK. Por supuesto, hubo una superposición de los '0', pero eso es inevitable, y no debería afectar el circuito, ¿verdad?
Sin embargo, todavía tengo el registro de 8 bits escribiendo valores de entrada en AMBOS bordes CLK positivos y negativos. ¿Por qué esto todavía sucede? Funciona correctamente aparte de este hecho. Aquí está el diagrama de la señal:
Comopuedever,t2clkyt2nclksonmissalidasCLKynoCLKdelcircuitoeliminadordecarreras,yeliminaronconéxitolasuperposiciónde'1'.Sinembargo,¡todavíaescribevaloresenelbordenegativodelasseñales!
Aquíestámidiseñodetodoelregistrode8bits,siesdealgunautilidad:
Si necesita diseños detallados, los daré, ¡pero puedo garantizar que son fieles a mis explicaciones! :) Ayuda lo antes posible por favor, fecha límite mañana !!! :)
EDITAR: ¿Podría ser la razón del mal funcionamiento la adición de puertas de transmisión en lugar de NMOS?