Diseño VHDL 1: Puertas lógicas

Felipe Machado
3 Feb 201910:16

Summary

TLDREste primer vídeo de una serie enseña a diseñar circuitos digitales con VHDL, un lenguaje de descripción de hardware. Cubre conceptos básicos como la diferencia entre el modelado y la síntesis en VHDL, y cómo describir circuitos usando puertas lógicas y niveles de transferencia de registro. El enfoque es en la importancia de entender que se está creando hardware, no software, y se destaca la flexibilidad de VHDL para grandes circuitos y su manejo de versiones. Se ofrecen recursos adicionales para profundizar en el tema.

Takeaways

  • 😀 Este es el primer vídeo de una serie para aprender a diseñar circuitos digitales con VHDL.
  • 🔍 VHDL es un lenguaje de descripción de hardware, y hay otros lenguajes como Verilog.
  • 🛠️ El VHDL incluye un subconjunto para síntesis, utilizado para describir circuitos digitales que se convertirán en circuitos físicos.
  • 📚 Para más información sobre VHDL y diseño de circuitos, se recomienda consultar libros disponibles en el archivo abierto de la Universidad Rey Juan Carlos.
  • 🎯 Los objetivos de los tutoriales son enseñar a diseñar en VHDL con ejemplos, sin cubrir toda la sintaxis y posibilidades.
  • 👨‍💻 Al usar VHDL, es importante recordar que se está escribiendo un hardware y no un software.
  • 🔧 La ventaja de VHDL es su facilidad para hacer cambios y manejar grandes circuitos, pero también requiere aprender una nueva sintaxis.
  • 🔑 La estructura de VHDL se divide en la 'entidad', que declara los puertos de entrada y salida, y la 'arquitectura', que especifica el circuito interno.
  • 📐 Las 'sentencias concurrentes' en VHDL describen el hardware dentro del circuito y su orden es indiferente.
  • 🔄 Se pueden utilizar señales intermedias para describir circuitos de manera más organizada y modular.
  • 🔄🔄 Los ejemplos mostrados en el script ilustran cómo diferentes disposiciones de sentencias concurrentes pueden ser equivalentes en términos de funcionamiento del circuito.

Q & A

  • ¿Qué es el VHDL y cómo se relaciona con el diseño de circuitos digitales?

    -El VHDL es un lenguaje de descripción de hardware utilizado para modelar circuitos y tiene un subconjunto de síntesis para describir un circuito digital que se llevará a un circuito físico, ya sea un circuito integrado o una FPGA.

  • ¿Por qué es importante diferenciar el VHDL de un lenguaje de programación de software?

    -Es importante porque el VHDL está diseñado para escribir hardware, no software. Esto significa que se debe tener en cuenta que se está describiendo un circuito físico en lugar de un programa que se ejecuta en una computadora.

  • ¿Qué son los puertos y cómo se relacionan con la entidad en VHDL?

    -Los puertos son las conexiones de entrada y salida de un circuito en VHDL. La entidad es la parte del diseño que declara estos puertos, proporcionando así la interfaz con el exterior del circuito.

  • ¿Qué es una arquitectura en el contexto de VHDL?

    -Una arquitectura en VHDL es la especificación de lo que hay dentro del circuito, es decir, el hardware que se va a implementar, y se describe después de la entidad.

  • ¿Por qué se pueden tener varias arquitecturas para una misma entidad en VHDL?

    -Se pueden tener varias arquitecturas para una entidad porque el mismo circuito se puede describir de diferentes maneras, lo que permite diferentes implementaciones o optimizaciones sin cambiar la interfaz exterior del circuito.

  • ¿Qué es una 'sentencia concurrente' en VHDL y cómo se relaciona con el diseño de circuitos?

    -Una sentencia concurrente en VHDL describe un elemento del hardware que se ejecuta de manera simultánea, como una puerta lógica. Es la forma en que se especifican las operaciones dentro de una arquitectura.

  • ¿Por qué el orden de las sentencias concurrentes en VHDL no afecta al funcionamiento del circuito?

    -El orden de las sentencias concurrentes en VHDL no afecta al funcionamiento del circuito porque cada una describe una operación que se realiza de forma simultánea y no secuencial.

  • ¿Qué son las 'señales intermedias' y cómo se utilizan en el diseño de circuitos con VHDL?

    -Las señales intermedias son variables que se crean para almacenar valores temporales en un diseño de circuito. Se declaran antes de las sentencias concurrentes y se utilizan para organizar y clarificar el diseño, aunque el orden de estas sentencias es indiferente.

  • ¿Cómo se relaciona el uso de paréntesis en VHDL con la descripción de circuitos?

    -El uso de paréntesis en VHDL no afecta al funcionamiento del circuito, pero puede utilizarse para agrupar partes de la descripción y aumentar la legibilidad del código, aunque no es estrictamente necesario.

  • ¿Qué es un multiplexor y cómo se relaciona con el ejemplo dado en el guion?

    -Un multiplexor es un circuito que selecciona uno de varios entradas y lo dirige a una salida común. En el ejemplo del guion, se describe cómo un circuito con varias puertas lógicas y señales intermedias podría implementarse como un multiplexor.

  • ¿Dónde puedo encontrar más información sobre VHDL y el diseño de circuitos digitales?

    -Se puede encontrar más información sobre VHDL y el diseño de circuitos digitales en los libros disponibles en el archivo abierto de la Universidad Rey Juan Carlos, que también proporciona detalles adicionales sobre el lenguaje y su aplicación.

Outlines

00:00

😀 Introducción a la Diseño de Circuitos Digitales con VHDL

El primer párrafo presenta la serie de tutoriales sobre el diseño de circuitos digitales utilizando VHDL, un lenguaje de descripción de hardware. Se menciona que VHDL es un modelo de circuitos con un subconjunto para síntesis, que permite describir un circuito digital que se llevará a un circuito físico. Además, se destaca la diferencia entre programar software y escribir hardware, y se enfatiza la importancia de entender que se está describiendo un circuito con un lenguaje específico. Se sugiere que los tutoriales se enfocarán en un subconjunto de VHDL para enseñar el diseño de circuitos digitales de manera práctica, y se invita a los espectadores a buscar más información en los libros disponibles en el repositorio abierto de la Universidad Rey Juan Carlos.

05:00

📚 Estructura y Componentes de un Circuito VHDL

El segundo párrafo se enfoca en la estructura de un circuito VHDL, explicando la diferencia entre la 'entidad' y la 'arquitectura'. La entidad define las conexiones externas, es decir, los puertos de entrada y salida, mientras que la arquitectura especifica el hardware interno del circuito. Se ilustra cómo se describen estos componentes con ejemplos de puertas lógicas y se compara la disposición de las puertas en diferentes arquitecturas, mostrando que el orden de las sentencias concurrentes en VHDL no afecta la funcionalidad del circuito. También se menciona el uso de señales intermedias y cómo se pueden reorganizar las sentencias para lograr la misma funcionalidad, subrayando la flexibilidad del lenguaje para el diseño de circuitos lógicos.

10:01

🔧 Ejemplos de Aplicación y Flexibilidad en el Diseño con VHDL

El tercer párrafo continúa con ejemplos de cómo se pueden describir circuitos más complejos utilizando VHDL, incluyendo múltiples puertas lógicas y señales intermedias. Se presenta un circuito que funciona como un multiplexor y se sugiere que en tutoriales futuros se explorarán diferentes maneras de escribirlo. Se enfatiza la capacidad de VHDL para describir circuitos de manera flexible, permitiendo al diseñador reorganizar componentes y sentencias sin afectar la equivalencia del circuito. Finalmente, el párrafo concluye con una referencia a los recursos disponibles para obtener más información y agradece a los espectadores por ver el video.

Mindmap

Keywords

💡VHDL

VHDL es un acrónimo de 'Very High Speed Integrated Circuit Hardware Description Language', es un lenguaje de descripción de hardware utilizado para modelar y diseñar circuitos digitales. En el video, VHDL es el núcleo del tutorial, utilizado para enseñar cómo diseñar circuitos combinacionales con puertas lógicas.

💡Circuitos Combinacionales

Los circuitos combinacionales son aquellos cuyo estado de salida depende únicamente del estado de entrada en un momento dado, sin depender de estados previos. En el script, se menciona que el objetivo es aprender a diseñar estos tipos de circuitos utilizando VHDL.

💡Puertas Lógicas

Las puertas lógicas son componentes básicos en electrónica digital que realizan operaciones booleanas. En el video, se enseña cómo modelar diferentes tipos de puertas lógicas, como la puerta AND, utilizando VHDL.

💡Síntesis

En el contexto de VHDL, la síntesis se refiere al proceso de convertir una descripción de hardware en un circuito físico. El script destaca que VHDL tiene un subconjunto dedicado a la síntesis, que permite describir circuitos que luego se pueden transformar en circuitos integrados o FPGAs.

💡Entidad

En VHDL, la entidad es la parte de un diseño que declara los puertos de entrada y salida. El script describe la entidad como la 'caja negra' que se ve desde fuera del circuito, indicando las conexiones con el exterior.

💡Arquitectura

La arquitectura en VHDL especifica lo que hay dentro de un circuito, es decir, el hardware que se compone. En el video, la arquitectura se usa para describir el interior de la 'caja negra' o entidad, detallando cómo se relacionan las diferentes puertas lógicas.

💡Sentencias Concurrentes

Las sentencias concurrentes en VHDL describen partes del circuito que operan simultáneamente. El script menciona que en VHDL, el orden de estas sentencias no afecta al funcionamiento del circuito, lo cual es diferente a los lenguajes de programación de software.

💡Señal Intermedia

Una señal intermedia es una variable utilizada para almacenar un valor temporal en un circuito. En el script, se da un ejemplo de cómo se puede utilizar una señal intermedia para simplificar la descripción de un circuito, creando una nueva arquitectura.

💡Multiplexor

Un multiplexor es un circuito que selecciona y transmite una de múltiples entradas a una salida única. Aunque no se describe en detalle en el script, se sugiere que en tutoriales futuros se explorarán diferentes maneras de modelar múltiples puertas lógicas, como un multiplexor, en VHDL.

💡Palabras Reservadas

Las palabras reservadas son términos que tienen un significado específico en un lenguaje de programación y no pueden ser utilizados para otros propósitos. En el video, se menciona que 'AND' es una palabra reservada en VHDL, por lo que se debe utilizar un nombre diferente para una entidad que represente una puerta AND.

Highlights

Introducción a la serie de vídeos para aprender a diseñar circuitos digitales con VHDL.

VHDL es un lenguaje de descripción de hardware utilizado para modelar circuitos y tiene un subconjunto para síntesis.

Otros lenguajes de descripción de hardware como Verilog mencionados en el vídeo.

El objetivo de los tutoriales es enseñar a diseñar en HDL con ejemplos sin cubrir toda la sintaxis de VHDL.

Recursos adicionales como libros disponibles en el archivo abierto de la Universidad Rey Juan Carlos.

Diferencia entre el diseño de hardware con VHDL y el software, enfatizando la escritura de circuitos.

Ventajas y desventajas de describir circuitos en VHDL frente a diagramas esquemáticos.

Importancia de entender que se está escribiendo hardware y no software al usar VHDL.

Estructura básica de un diseño en VHDL区分 entre la entidad y la arquitectura.

La entidad como declaración de puertos de entrada y salida en un diseño de circuito.

La arquitectura como la especificación del circuito interno, el hardware real.

Uso de palabras reservadas y el tipo 'std_logic' en las declaraciones de VHDL.

Importancia de la biblioteca IEEE y la distinción entre mayúsculas y minúsculas en VHDL.

Ejemplo de una puerta AND en VHDL, mostrando la entidad y la arquitectura.

Cómo el orden de las sentencias concurrentes en VHDL no afecta al funcionamiento del circuito.

Uso de paréntesis y señales intermedias para organizar y clarificar el diseño de circuitos.

Comparación de diferentes formas de describir un multiplexor en VHDL.

Conclusión del tutorial y referencia a futuros tutoriales sobre múltiplesxor y otros conceptos.

Transcripts

play00:00

hola este es el primer vídeo de una

play00:02

serie de vídeos para aprender a diseñar

play00:03

circuitos digitales con uva hdl en este

play00:07

vídeo de hoy vamos a ver cómo diseñar

play00:09

circuitos combi nacionales con puertas

play00:11

lógicas este es el primer vídeo de la

play00:13

serie

play00:15

el ube hdl es un lenguaje de descripción

play00:17

de hardware que corresponde con este

play00:19

acrónimo hay otros lenguajes de

play00:22

descripción de hardware como por ejemplo

play00:24

el veril ok en este tutorial vamos a ver

play00:27

el lugar hdl el ub hdl es un lenguaje de

play00:31

modelado de circuitos y tiene un

play00:33

subconjunto que es de síntesis que es

play00:35

para describir un circuito digital que

play00:37

se va a llevar a un circuito físico ya

play00:40

sea un circuito integrado o una fp gea

play00:42

el subconjunto de síntesis sería el

play00:44

circuito de escritos puertas lógicas o

play00:46

el nivel de transferencia de registro

play00:49

los circuitos que ya veremos aquí

play00:51

también existe una parte de modelado que

play00:55

es por ejemplo para hacer bancos de

play00:57

pruebas que también lo veremos

play00:59

nosotros vamos a ver una parte reducida

play01:00

del vh dl lube h de lejos lenguaje muy

play01:03

amplio y sería muy ambicioso intentar

play01:06

cubrir todo el lugar hdl nosotros vamos

play01:09

a aprender a diseñar circuitos digitales

play01:12

con un subconjunto más limitado del vh

play01:15

de l

play01:16

si quieres más información sobre el vih

play01:18

de ley y cómo diseñar circuitos

play01:19

digitales puedes acceder a estos libros

play01:22

que están disponibles en el archivo

play01:24

abierto de la universidad rey juan

play01:25

carlos

play01:26

ahí encontrarás también más detalles

play01:28

sobre el uva hdl y cosas que aquí no se

play01:30

van a describir el objetivo de estos

play01:33

tutoriales es aprender a diseñar un hdl

play01:36

con ejemplos y sin describir toda la

play01:37

sintaxis y las posibilidades de luv hdl

play01:40

el lugar hdl para síntesis sería similar

play01:43

a describir nuestro circuito en

play01:45

temáticos haciendo esquemas pero en vez

play01:48

de hacer esquemas lo que hacemos es

play01:50

describirlo con un lenguaje lo más

play01:53

importante al usar el uva hdl es tener

play01:55

en cuenta que no estamos haciendo un

play01:57

programa no estamos haciendo software

play01:59

sino que estamos escribiendo un circuito

play02:01

es decir estamos escribiendo un hardware

play02:03

por eso en este tutorial se va a ser

play02:05

bastante énfasis en el circuito que se

play02:07

genera al hacer una descripción de

play02:09

hardware en nube hdl por ejemplo si

play02:12

queremos describir en un esquema una

play02:14

puerta lógica no lo tendríamos así

play02:17

esto es bastante fácil de entender es

play02:20

bastante similar al diseño final el

play02:23

inconveniente que tiene es que es

play02:24

difícil de manejar para circuitos

play02:26

grandes y también difícil para hacer

play02:28

cambios en uva hdl este circuito se

play02:31

podría describir así esta tiene la

play02:34

ventaja de ser fácil para hacer cambios

play02:36

es el más manejable para circuitos

play02:38

grandes también es más fácil para

play02:40

guardar versiones para compartir

play02:42

ficheros porque al final es un fichero

play02:44

de texto sin embargo el problema que

play02:47

podemos tener es que podemos pensar que

play02:49

estamos haciendo software en vez de

play02:51

hardware y pensar que estamos

play02:52

programando en un lenguaje de

play02:53

programación como python o sea por otro

play02:57

lado también tiene el inconveniente de

play02:58

tener que aprender un lenguaje y la

play03:00

sintaxis asociada

play03:03

básicamente el lugar hdl tiene dos

play03:05

partes diferenciadas por un lado tiene

play03:08

la entidad en lo que se declaran los

play03:10

puertos de entrada y salida y por otro

play03:13

lado tiene la arquitectura en la que se

play03:15

especifica el circuito es decir lo que

play03:17

hay dentro de este circuito una entidad

play03:20

puede tener varias arquitecturas porque

play03:22

el mismo circuito se puede escribir de

play03:23

varias maneras aunque habitualmente se

play03:26

tiene una sola arquitectura para un

play03:28

circuito así si tenemos este circuito

play03:31

que es una puerta and éstos son los

play03:33

puertos de entrada y este es el puerto

play03:35

de salida la entidad sería esta de aquí

play03:37

en la que este es el puerto de entrada y

play03:42

este es el puerto de salida que se

play03:44

corresponde con éste

play03:47

la entidad va a seguir el nombre de la

play03:49

entidad en este caso la llamada puerta

play03:51

and

play03:53

aquí hay ciertas palabras que no se

play03:55

pueden utilizar que son palabras

play03:57

reservadas no podría por ejemplo

play03:58

utilizar directamente a andy

play04:01

por eso le he puesto el nombre por tanto

play04:04

ya que andy está reservada para el

play04:07

operador lógico and die lógica

play04:10

esto de aquí que dice ese de logic esto

play04:14

que se corresponde a un tipo que indica

play04:16

que son valores binarios sin embargo el

play04:19

e7 de logic tiene otros valores por

play04:21

ejemplo la uv que es sin inicializar o

play04:24

por ejemplo si tenemos una asignación

play04:26

múltiple que suele ser un error y otros

play04:29

como el da igual el donde querer

play04:32

y alta impedancia y algunos otros más

play04:34

que por ahora no vamos a ver

play04:37

existe la opción de utilizar el tipo

play04:39

beat pero en general se recomienda

play04:42

utilizar el spd logic porque en las

play04:45

simulaciones nos pueden dar pistas si

play04:47

tenemos algún error cuando utilizamos el

play04:50

spd logic tenemos que indicar antes de

play04:53

la entidad el uso de la biblioteca de

play04:56

ley de google la sd logic 1.164

play05:00

también indicar que en él vhd le da

play05:02

igual las mayúsculas y minúsculas así

play05:05

que puedes describir una señal en

play05:07

mayúsculas y minúsculas que es

play05:08

equivalente

play05:11

entonces lo que hace esta entidad es nos

play05:14

da la idea de que vamos a diseñar un

play05:16

circuito que tiene estas dos entradas

play05:19

los interruptores switch 1 y switch 2 y

play05:22

un led de salida

play05:24

sin embargo no sabemos nada de lo que

play05:26

hay dentro de hecho incluso aunque yo lo

play05:29

he llamado puerta and puede que dentro

play05:31

haga otra función aunque no sería nada

play05:34

recomendable hacerlo si así pues la

play05:36

entidad sería como describir la caja

play05:39

negra que se ve desde fuera del circuito

play05:41

por lo tanto tenemos nuestra entidad y

play05:45

ahora una posible arquitectura de esta

play05:47

entidad podría ser ésta en la que aquí

play05:49

pongo el nombre de la arquitectura

play05:52

aquí el nombre de la entidad a la que

play05:54

pertenece

play05:56

y aquí después del beijing las

play05:58

sentencias concurrentes que describen el

play06:00

circuito

play06:02

en este caso simplemente estamos

play06:04

describiendo una puerta y por lo tanto

play06:06

solo tiene una sentencia concurrente así

play06:10

que la arquitectura lo que hace es

play06:11

escribir lo que hay dentro de esa caja

play06:13

negra

play06:15

resumiendo la entidad nos proporciona

play06:17

las conexiones con el exterior los

play06:19

puertos de entrada y salida y la

play06:21

arquitectura nos indica el hardware que

play06:23

hay dentro la unión de estas dos nos

play06:25

daría nuestro circuito la parte exterior

play06:28

de la entidad y la parte interna de la

play06:30

arquitectura

play06:32

podemos tener un circuito con varias

play06:34

puertas por ejemplo este

play06:37

que tendría esta entidad

play06:40

con los tres puertos de entrada y los de

play06:42

salida que sería este bloque visto desde

play06:45

afuera

play06:47

la arquitectura de este circuito

play06:49

describiría esta puerta a andy

play06:53

y esta puerta ahora de esta manera

play06:56

así que tenemos un circuito con dos

play06:58

sentencias concurrente

play07:01

este circuito que hemos hecho es

play07:03

equivalente a este otro circuito

play07:05

simplemente hemos cambiado la

play07:07

disposición de las puertas

play07:09

hemos puesto la puerta anda aquí y la

play07:11

puerta ahora aquí

play07:13

la descripción de su circuito se puede

play07:16

cambiar y cambiar el orden de las

play07:18

sentencias concurrentes de las puertas

play07:20

estos dos circuitos son equivalentes

play07:22

esto es una diferencia respecto a los

play07:25

lenguajes de programación de software

play07:28

porque el orden de la sentencia se

play07:29

importa en el huv hdl el orden de las

play07:33

sentencias concurrentes es indiferente

play07:38

vamos a ver un ejemplo en el que se

play07:40

pueden utilizar paréntesis aquí tenemos

play07:42

este esquemático que tenemos una puerta

play07:44

y un inversor la entidad sería ésta con

play07:48

dos puertos de entrada y uno de salida

play07:50

y la arquitectura se podría describir

play07:53

con esta sentencia concurrente en la que

play07:56

tenemos el inversor en un paréntesis

play08:00

este circuito también se podría

play08:02

describir con una señal intermedia por

play08:04

ejemplo switch 1 negada vamos a crear

play08:07

una nueva arquitectura y le podemos

play08:09

poner un nuevo nombre y vamos a declarar

play08:11

la señal intermedia está esta señal

play08:14

intermedia se declara antes del big in

play08:16

de la arquitectura

play08:19

aquí tenemos la sentencia que crea la

play08:21

señal negada del interruptor y aquí

play08:23

tenemos la sentencia de la cndh entre el

play08:26

puerto de entrada su tercero y la negada

play08:28

del switch montt

play08:32

como hemos dicho el orden de las

play08:34

sentencias concurrentes es indiferente

play08:37

estas dos arquitecturas son totalmente

play08:39

equivalentes simplemente hemos cambiado

play08:41

la disposición de las sentencias

play08:42

concurrentes

play08:45

vamos a ver este otro ejemplo que

play08:47

incluye cuatro puertas lógicas y tres

play08:49

puertos de entrada y uno de salida la

play08:52

entidad de este circuito sería esta de

play08:55

aquí

play08:57

la arquitectura se podría describir con

play08:59

una sola sentencia concurrente en la que

play09:01

tenemos la puerta ahora

play09:05

tenemos aquí la puerta y el inversor y

play09:09

aquí tenemos la otra puerta este mismo

play09:12

circuito se podría haber descrito

play09:14

utilizando señales intermedias por

play09:17

ejemplo ese 0 y ese 1

play09:20

las señales intermedias recordamos que

play09:22

se declaran antes del beijing de la

play09:24

arquitectura

play09:26

y luego hemos separado este circuito en

play09:29

tres sentencias concurrentes por un lado

play09:31

esta puerta

play09:35

por otro lado esta otra puerta

play09:39

y por último la puerta porque una de las

play09:42

señales intermedias

play09:45

como ya te puedes imaginar como las

play09:47

sentencias concurrentes se pueden

play09:48

disponer en cualquier orden estas dos

play09:51

arquitecturas son equivalentes

play09:53

simplemente hemos cambiado el orden de

play09:56

las sentencias concurrentes

play09:58

este circuito se corresponde con un

play10:00

multiplexor y en el siguiente tutorial

play10:03

aprenderemos diferentes maneras de

play10:04

escribirlos

play10:06

esto es todo por este tutorial si

play10:09

quieres más información tienes

play10:10

disponibles estos libros como ya hemos

play10:12

indicado

play10:14

gracias por ver el vídeo un saludo

Rate This

5.0 / 5 (0 votes)

Étiquettes Connexes
Circuitos DigitalesUVa HDLDiseño HardwareTutorialLenguaje DescripciónSíntesisModeladoArquitecturaEducaciónTecnología
Besoin d'un résumé en anglais ?