1. TEMA 1
˜
FUNDAMENTOS DEL DISENO DEL
HARDWARE DIGITAL
1.1. Introducci´n
o
1.2. Lenguajes para la descripci´n de hardware
o
1.3. Ciclo de dise˜o de los circuitos digitales
n
1.4. Tecnolog´ de circuitos integrados
ıas
1.5. Propiedades de los circuitos digitales
1.6. Test de los circuitos
1.7. Representaciones y niveles de abstracci´n
o
1.8. Conceptos b´sicos a trav´s de un ejemplo
a e
1.9. Procesamiento y simulaci´n del c´digo HDL
o o
1.10. Dos simuladores de VHDL’93: VeriBest y ModelSim
1.11. Lecturas recomendadas
1.12. Ejercicios de autocomprobaci´n
o
1.13. Soluciones de los ejercicios
2. ˜
FUNDAMENTOS DEL DISENO DEL HARDWARE DIGITAL
OBJETIVOS DOCENTES
Una vez estudiado el contenido del tema y realizados los ejercicios pr´cticos,
a
deber´ saber:
ıa
– Discutir la finalidad de los lenguajes para la descripci´n del hardware (HDL)
o
y algunas de las principales ventajas que presenta su uso.
– Discutir el ciclo de dise˜o del hardware digital y el papel que desempe˜an en
n n
el ciclo de dise˜o los HDL.
n
– Discutir y comparar las caracter´ ısticas de las siguientes tecnolog´ de fabrica-
ıas
ci´n de circuitos integrados: full-custom ASIC, standard cell ASIC, gate array
o
ASIC, dispositivos programables en campo (FPGA, CPLD, PROM, PAL y
PLA), y componentes est´ndar de peque˜o y medio tama˜o.
a n n
– Discutir las siguientes propiedades de los circuitos digitales: el retardo de
los dispositivos, su ejecuci´n concurrente, la marginalidad en el dise˜o y la
o n
fortaleza de las se˜ales.
n
– Discutir el prop´sito y los fundamentos del test en dise˜o y manufactura, as´
o n ı
como los conceptos: modelo de fallos, cobertura del test y calidad del test.
– Discutir la utilidad y composici´n de los bancos de pruebas.
o
– Discutir y comparar los niveles de abstracci´n y representaci´n de los sistemas
o o
digitales.
– Discutir las etapas b´sicas en el procesamiento del c´digo VHDL: an´lisis,
a o a
elaboraci´n y ejecuci´n.
o o
– Discutir los conceptos fundamentales de la simulaci´n de eventos discretos, en
o
particular la gesti´n del reloj de la simulaci´n y del calendario de eventos.
o o
– Realizar, con “l´piz y papel”, la simulaci´n de eventos discretos de circuitos
a o
digitales sencillos.
– Instalar en su propio ordenador y realizar las operaciones b´sicas de manejo
a
de alg´n entorno de simulaci´n de VHDL’93 de su elecci´n. Estas operaciones
u o o
b´sicas incluyen al menos la edici´n de modelos VHDL, su depurado usando
a o
el debugger, su simulaci´n y la visualizaci´n de los resultados.
o o
29
3. TEMA 2
´
CONCEPTOS BASICOS DE VHDL
2.1. Introducci´n
o
2.2. Unidades de dise˜o
n
2.3. Entity
2.4. Architecture
2.5. Asignaciones concurrentes
2.6. Bloque process
2.7. Descripci´n de la estructura
o
2.8. Se˜ales, variables y constantes
n
2.9. Tipos de datos y operadores
2.10. Atributos
2.11. Librer´
ıas
2.12. Assert
2.13. Procedimientos y funciones
2.14. Lecturas recomendadas
2.15. Ejercicios de autocomprobaci´n
o
2.16. Soluciones de los ejercicios
4. ´
CONCEPTOS BASICOS DE VHDL
OBJETIVOS DOCENTES
Una vez estudiado el contenido del tema y realizados los ejercicios pr´cticos,
a
deber´ saber:
ıa
– Discutir la finalidad de las unidades de dise˜o de VHDL entity, architecture,
n
package y configuration.
– Describir la interfaz de los circuitos digitales mediante unidades de dise˜o n
entity. Discutir las caracter´
ısticas y las diferencias entre los modos in, out e
inout de los puertos.
– Discutir la sintaxis y la finalidad de las sentencias concurrentes simple, condi-
cional y de selecci´n. Dibujar el diagrama conceptual del hardware a que da
o
lugar la s´
ıntesis de estas sentencias y el correspondiente circuito al nivel de
puertas l´gicas.
o
– Discutir la sintaxis y la finalidad de la sentencia generate.
– Discutir la sintaxis y la finalidad de los bloques process y de las sentencias
secuenciales de asignaci´n a se˜al, a variable, if, case y del bucle for. En
o n
casos sencillos, dibujar el diagrama conceptual del hardware a que da lugar
la s´
ıntesis del bloques process, y el correspondiente circuito compuesto de
puertas l´gicas y biestables.
o
– Discutir c´mo se realiza el modelado del retardo en VHDL.
o
– Definir en VHDL la estructura de un circuito mediante instanciaci´n y cone-
o
xi´n de otros circuitos. Asimismo, discutir la utilidad de la parametrizaci´n en
o o
la descripci´n de un circuito.
o
– Discutir las principales caracter´
ısticas de las se˜ales, variables y constantes en
n
VHDL. Discutir la diferencia entre se˜ales y variables en lo que respecta al
n
retardo en la asignaci´n de los nuevos valores.
o
– Discutir cu´les son los tipos predefinidos de VHDL y sus operadores b´sicos.
a a
Asimismo, discutir las finalidad, los operadores b´sicos y las funciones de
a
conversi´n de los tipos de dato std logic, std logic vector, unsigned y
o
signed. Finalmente, discutir las caracter´ısticas de los tipos de dato time y
string, as´ como de los tipos enumerados.
ı
– Discutir qu´ son los atributos en VHDL y la finalidad de algunos de ellos.
e
95
5. ˜
DISENO DE HARDWARE DIGITAL CON VHDL
– Discutir qu´ finalidad tienen las librer´ en VHDL y conocer las librer´ m´s
e ıas ıas a
com´nmente usadas.
u
– Discutir la utilidad de los procedimientos y funciones de VHDL.
– Discutir la finalidad de las sentencias assert y report.
96
6. TEMA 3
˜ ´
DISENO DE LOGICA COMBINACIONAL
3.1. Introducci´n
o
3.2. Dise˜o para s´
n ıntesis de l´gica combinacional
o
3.3. Funciones l´gicas
o
3.4. Multiplexor de 4 entradas
3.5. Restador completo de 1 bit
3.6. Sumador completo de 1 bit
3.7. Unidad aritm´tico l´gica
e o
3.8. Lecturas recomendadas
3.9. Ejercicios de autocomprobaci´n
o
3.10. Soluciones de los ejercicios
7. ˜ ´
DISENO DE LOGICA COMBINACIONAL
OBJETIVOS DOCENTES
Una vez estudiado el contenido del tema y realizados los ejercicios pr´cticos,
a
deber´ saber:
ıa
– Discutir qu´ caracter´
e ısticas debe reunir un dise˜o para que el circuito resul-
n
tante de su s´
ıntesis sea combinacional.
– Dise˜ar circuitos l´gicos combinacionales empleando VHDL, tales como fun-
n o
ciones l´gicas, multiplexores, sumadores y restadores binarios, y ALUs, descri-
o
biendo el comportamiento y/o la estructura del circuito.
– Describir un mismo circuito combinacional usando diferentes representacio-
nes (comportamental, estructural o mixta) y empleando diferentes tipos de
sentencias, tanto concurrentes como secuenciales.
– Programar y simular bancos de prueba para circuitos combinacionales, y ana-
lizar los resultados de la simulaci´n.
o
199
8. TEMA 4
REGISTROS Y MEMORIAS
4.1. Introducci´n
o
4.2. Registro de 4 bits
4.3. Registro multifunci´n
o
4.4. Registro de desplazamiento
4.5. Register file
4.6. Bus bidireccional y memorias
4.7. Lecturas recomendadas
4.8. Ejercicios de autocomprobaci´n
o
4.9. Soluciones de los ejercicios
9. REGISTROS Y MEMORIAS
OBJETIVOS DOCENTES
Una vez estudiado el contenido del tema y realizados los ejercicios pr´cticos,
a
deber´ saber:
ıa
– Discutir la diferencia conceptual entre la operaci´n de reset s´
o ıncrono y as´
ın-
crono. Describir ambas usando VHDL.
– Dise˜ar usando VHDL registros con las funcionalidades siguientes: reset, carga
n
serie y paralelo, lectura serie y paralelo, y desplazamiento de 1 bit hacia la
derecha e izquierda. Programar usando VHDL bancos de pruebas para los
registros que testeen las funcionalidades anteriores.
– Discutir las caracter´
ısticas de los registros siguientes: registro de desplazamien-
to, registro multifunci´n, register file y registro triestado.
o
– Realizar el dise˜o comportamental y estructural usando VHDL de un register
n
file.
– Programar bancos de pruebas que lean los vectores de test de fichero.
– Dise˜ar usando VHDL el acceso al bus de varios componentes mediante buffers
n
triestado.
– Discutir los dos conceptos siguientes del lenguaje VHDL: driver de una se˜al
n
y funci´n de resoluci´n.
o o
– Dise˜ar en VHDL memorias RAM y ROM, y buses bidireccionales.
n
269
10. TEMA 5
˜ ´
DISENO DE LOGICA SECUENCIAL
5.1. Introducci´n
o
5.2. Dise˜o de m´quinas de estado finito
n a
5.3. S´
ıntesis de l´gica secuencial
o
5.4. Flip-flop JK
5.5. M´quinas de estado finito de Moore
a
5.6. M´quinas de estado finito de Mealy
a
5.7. M´quinas de estado finito seguras
a
5.8. Lecturas recomendadas
5.9. Ejercicios de autocomprobaci´n
o
5.10. Soluciones de los ejercicios
11. ˜ ´
DISENO DE LOGICA SECUENCIAL
OBJETIVOS DOCENTES
Una vez estudiado el contenido del tema y realizados los ejercicios pr´cticos,
a
deber´ saber:
ıa
– Dise˜ar usando VHDL distintos tipos de flip-flop y sus bancos de prueba.
n
Dise˜ar usando VHDL el circuito latch. Discutir la diferencia entre un flip-flop
n
y un latch.
– Discutir buenas pr´cticas aplicables al dise˜o para s´
a n ıntesis de circuitos secuen-
ciales s´
ıncronos.
– Dise˜ar en VHDL m´quinas de estado finito de Moore y de Mealy sintetizables,
n a
realizando el dise˜o tanto en base a la descripci´n de su estructura al nivel de
n o
puertas l´gicas y flip-flops, como en base a su comportamiento.
o
– Dise˜ar y programar en VHDL bancos de pruebas de circuitos secuenciales
n
s´
ıncronos. Discutir diferencias conceptuales entre los bancos de pruebas para
circuitos secuenciales s´
ıncronos y para circuitos combinacionales.
– Discutir qu´ son las m´quinas de estado finito seguras y realizar el dise˜o de
e a n
este tipo de m´quinas usando VHDL.
a
331
12. TEMA 6
METODOLOG´ DE
IA
TRANSFERENCIA ENTRE REGISTROS
6.1. Introducci´n
o
6.2. Operaciones de transferencia entre registros
6.3. M´quinas de estado finito con camino de datos
a
6.4. Descripci´n del programa RT usando VHDL
o
6.5. Circuito detector de secuencia
6.6. Control de una m´quina expendedora
a
6.7. Lecturas recomendadas
6.8. Ejercicios de autocomprobaci´n
o
6.9. Soluciones de los ejercicios
13. METODOLOG´ DE TRANSFERENCIA ENTRE REGISTROS
IA
OBJETIVOS DOCENTES
Una vez estudiado el contenido del tema y realizados los ejercicios pr´cticos,
a
deber´ saber:
ıa
– Discutir los conceptos siguientes: operaciones RT, notaci´n RT, programa RT
o
y metodolog´ RT.
ıa
– Discutir el ciclo de ejecuci´n de una operaci´n RT.
o o
– Discutir los principios fundamentales de la programaci´n RT.
o
– Dado un algoritmo, traducirlo a un programa RT.
– Describir usando VHDL programas RT sencillos y programar bancos de prue-
bas para testear estos dise˜os.
n
– Discutir los conceptos fundamentales de la s´
ıntesis de programas RT mediante
FSMD. En particular, discutir la estructura general de la FSMD, c´mo se
o
realiza la s´
ıntesis del camino de datos y por qu´ la unidad de control puede
e
sintetizarse como una FSM.
401