[MÚSICA] Hola. Pasamos a este nuevo capitulo 10, Diseño de sistemas digitales. Vamos a partir hablando de la estructura de bus o bus. Esto you lo hemos dicho varias veces. Hemos dicho lo que es un bus. Pero tal vez no lo hemos visto en forma más sistemática. Hoy día vamos a hacer eso. Entonces, para ello, a ver, los sistemas digitales en general, requieren comunicar diferentes registros, diferentes partes de este sistema porque no es un circuito pequeño, es un sistema. Y para eso utilizan buses. Esto es un bus o bus. Es un conjunto de cables. Vamos a agrandar un poco el tamaño. A esos cables se les llama un bus, esos cables que comunican registros y ese bus, o bus, tiene n cables. El, tiene un ancho n, entonces comunican palabras o datos de n bits. Un bit por cable. Este bus permite el trasnferir datos entre registros o hacia otros circuitos y sólo un bloque a la vez puede utilizar enviar datos a través del bus. Entonces, aquí vemos por ejemplo diferentes registros y todo estos registros, están conectados al mismo bus o bus. Aquí está. Ustedes pueden verlo y esta flecha indica hacia donde entran los datos. De aquí salen los datos, aquí entran datos, aquí entran datos y otra forma de describir un bus, un bus en un esquemático es, poniéndole una raya atravesada así en diagonal y le ponemos n. Entonces, eso significa que ahí van n cables. Oye, y aquí surge una duda, ¿cómo nos conectamos? Porque si este está conectado con su salida, y este está poniendo por ejemplo un 0 en un bit determinado, este también está conectado y está conectado al mismo cable y está poniendo un 1, ¿qué pasa ahí? ¿Qué ocurre con esta coalición? Bueno, hay un circuito de control y vamos a entender qué es lo que hace ese circuito de control. Ese circuito de control maneja los tri-state buffers que son estos buffer que estan aquí. you los habíamos visto en el pasado, ahora los vamos a entender con un poco más de detalle. Los buffer son similares a un buffer, simplemente toma una entrada y la replica en la salida. Pero tienen una segunda entrada y esa segunda entrada maneja el paso de la primera entrada o sea, si B es 1, el A es copiado a f. Si B es 0, el A no pasa y el f queda desconectado, queda en circuito abierto o dicho en términos eléctricos, en alta impedancia. Entonces, cuando B es 0 Z está en alta impedancia. Cuando B es 0, Z, eh. Esta tabla de verdad tiene un error. Cuando B es 0, esto está en alta impedancia y este debe qué hacer. 1, este debería ser 0. Si tal vez hay formas mejores de poner esto. Cuando A es 0, y B es 0, esto está en alta impedancia, esto está en alta impedancia, eso es 0, ahí está mejor la tabla. Entonces, este es 0 y este es Z. Entonces cuando B es 0, el buffer está en alta impedancia. Cuando B es 1, el buffer transmite A, eso es todo. Bueno, como dije el estado Z representa alta impedancia, que es un circuito abierto y por lo tanto no está manejando el bus. Por lo tanto si estoy aquí y este está en alta impedancia y este está en alta impedancia y este no está en alta impedancia, entonces estos dos aunque estén conectados físicamente al bus, no van a estar enviándole datos y este otro que está en baja impedancia, sí le va a enviar datos. Entonces, you tenemos una idea que esta línea de control va a ser 1 00, por ejemplo. Donde 1 indica conéctate, 0 indica alta impedancia. Entonces el circuito de control como estaba explicando recién, se asegura de que sólo una de las entradas de enable de estos buffers tri-state, esté activa en un momento determinado. Entonces, el circuito de control va a producir estas señales donde sólo una vale 1 y esa una, es la que está entregándole datos al bus. Las demás son todas 0. Y la señal Function, que es ésta que está aquí, puede indicar cualquier cosa, puede ser que revise una función específica. Esta es una posible implementación de un bus que tiene 2 bits de un bus pequeño, tiene un ancho 2. En este caso, tiene un bit más significativo y un bit menos significativo y tiene dos registros R1 y R2. Entonces, es un bus que tiene ancho 2 y tiene 2 registros en total, con su MSB y su LSB. En la práctica, un bus posee mucho más bits, por ejemplo, puede ser de 32 bits, como en los computadores, Sí, efectivamente. Entonces, aquí está el bus, aquí tenemos R1 para conectar el registro 1 y aquí tenemos R2 para conectar el registro 2. Esto es el registro 1, como bien aparece aquí. Esto es el registro 2 como bien aparece aquí y son dos registros hechos por flip flops de 1 bit. Y se conectan a este bus que está aquí que en este caso lo dibujamos como dos líneas, pero cuando son muchas líneas, simplemente ponemos esa notación, donde aquí ponemos el número de líneas. Y vemos que, cuando R1 está encendido, entonces el registro 1 pone datos en el bus, el registro 2 escucha. ¿Por donde escucha? Bueno por aquí, por aquí está escuchando. Y cuando R2 está en 1 y R1 está en 0, entonces el registro 2 pone datos en el bus y el registro 1 escucha el bus. Muy bien. Alternativamente, envés de usar tri-state buffers podemos utilizar multiplexores. Y en este caso, la salida se conecta a la entrada de cada registro y con esto se implementa el bus. Entonces, aquí tenemos un registro, aquí tenemos otro registro, tenemos otro registro, tenemos entrada y tenemos un multiplexor. El multiplexor elige cuál, una, sólo una, de estas entradas para entregarla al bus. Esa es otra alternativa de implementar bus. Bueno, ¿cómo diseñamos bus en Verilog? Podemos hacerlo de la forma que está aquí. En este módulo necesitamos un registro, aquí tenemos un registro. El registro de ustedes, muy bien, you conocen. Y necesitamos un shift register y ese shift register está aquí. Perfecto. Este diseño que está aquí utiliza un multiplexor de 4 entradas donde tres de estas entradas provienen de los registros y la última entrada corresponde a la señal de Datos y es un poco parecido a esto que está acá. Y bueno, uno puede especificar el ancho del bus, en este caso, con un vector. you, pues, ¿qué aprendimos en esta video lección? Aprendimos cómo la estructura general de un bus o bus. Implementación con tri-state buffers y una implementación con multiplexores y vimos un ejemplo en Verilog. Gracias por ver esta clase.