5 votos

Resistencia pull up en valor lógico NMOS

Para mi proyecto del último año de la escuela secundaria decidí construir una CPU básica a partir de componentes discretos. Tengo previsto utilizar un nivel lógico de 5V y el diseño actual requiere unos 2000-3000 transistores MOSFET de canal N. Esta pregunta se refiere específicamente al valor de la resistencia de arranque en la lógica NMOS.

En mis pruebas en la protoboard utilicé resistencias de 10k ya que tenía un montón por ahí y el valor es el típico para una resistencia de pull-up por lo que parecía razonable, pero puede no ser óptimo para lo que estoy tratando de lograr.

Por lo que entiendo la elección de este valor es un compromiso entre el consumo de energía de la CPU y la velocidad que tarda cada puerta en alcanzar su valor de salida y por tanto la velocidad máxima de reloj a la que podría manejarla.

Consumo de energía: Supongamos que cada transistor tiene una resistencia de 10k y que todos los transistores están encendidos. Como los valores típicos de R_dson son mucho menores que 10k, podemos ignorarlos. Esto significa que el consumo de energía sería del orden de 3000*(5^2)/10000=7,5 vatios. Esto parece sorprendentemente bajo - ¿es este valor razonable?

La velocidad del reloj: Aquí estoy más a oscuras. ¿A qué velocidad de reloj podría conducir los circuitos NMOS con un pull up de 10k frente a uno de 1k? ¿Cómo se compararía con los circuitos CMOS que utilizan MOSFET comparables?

2 votos

7,5W me parece razonable. 1,5A a 5V, ese nivel de potencia no iría bien en un paquete DIP, pero en piezas discretas repartidas en varios metros cuadrados de placa de circuito no causaría ningún problema.

1 votos

Espero que lo diseñen de forma modular. Un circuito lógico de 2000 transistores suena como una pesadilla para depurar...

0 votos

Planeaba construir cada "gran escala" (por ejemplo, registro, sumador, inc) en una placa separada y depurar cada una por separado (probando cada diseño en una placa de barba primero)

8voto

GSerg Puntos 33571

El tiempo dependería principalmente de la carga capacitiva de cada puerta lógica, que incluiría tanto la capacitancia del cableado como la capacitancia de la(s) puerta(s) MOSFET que estás manejando.

Por ejemplo, el 2N7000 tiene una capacitancia de entrada de 20 pF típica (50 pF máxima). Si tu fanout medio es de 3, más alguna capacitancia de cableado, eso te da una carga típica de 100 - 200 pF. Con un pullup de 10K, eso le da una constante de tiempo R-C de 1 - 2 µs. Probablemente necesitarías permitir al menos dos constantes de tiempo para un "retardo de puerta" para una conmutación fiable, así que estamos hablando de 2 - 4 µs por puerta.

Para conseguir un trabajo útil, tendrás que permitir un número máximo de retrasos de puerta por periodo de reloj. Esto dependerá de tu diseño específico, pero un número como 6 a 10 sería lo típico. Así que ahora estamos hablando de un período de reloj de 12 - 40 µs, o frecuencias en el rango de 25 - 80 kHz.

El cambio a una resistencia de 1K permitiría escalar la frecuencia en un factor de 10 aproximadamente.

1 votos

Estas cifras me hacen apreciar aún más los núcleos de los procesadores modernos, con sus velocidades de conmutación en torno a las microondas que realmente dan lugar a los cálculos es algo bastante cercano a la magia.

0 votos

En el caso de la lógica CMOS, ¿el uso de R_DSon del MOSFET como resistencia para el circuito RC daría resultados razonables?

1 votos

Sí, esa es una de las ventajas del CMOS. La otra es poder apagar el pullup por completo cuando la salida está baja, eliminando la disipación de energía estática.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X