practicas

38
 Universidad Nacional de Ingeniería | Jessica Leiva 1 Universidad Nacional de Ingeniería Jessica Arelys Leiva López DISEÑO DIGITAL BASADO EN FPGA ELECTRÓNICA DIGITAL I

Upload: zelaya-dud

Post on 08-Jul-2015

747 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 1/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

1

Universidad Nacional de Ingeniería

Jessica Arelys Leiva López

DISEÑO DIGITAL BASADOEN FPGAELECTRÓNICA DIGITAL I

Page 2: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 2/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

2

ContenidoRecomendaciones generales ........................................................................................ 5

Elaboración del reporte ............................................................................................. 5

Lista de materiales .................................................................................................... 5

Laboratorio 1. Introducción al entorno ISE® de Xilinx ................................................... 6

1.1 Objetivos......................................................................................................... 6

1.2 Introducción .................................................................................................... 6

1.3 Actividades previas ......................................................................................... 6

1.4 Desarrollo de la práctica ................................................................................. 6

1.4.1 Creación de un proyecto en Project Navigator ......................................... 6

1.4.2 Asignación de los pines en la tarjeta Basys2 .............................................. 11

1.4.3 Programación del chip de FPGA ................................................................. 141.5 Actividades propuestas ................................................................................. 15

1.5.1 Práctica ................................................................................................. 15

1.5.2 Actividades de aprendizaje .................................................................... 15

Laboratorio 2. Simulación de un circuito digital ........................................................... 16

2.1 Objetivo ........................................................................................................ 16

2.2 Introducción .................................................................................................. 16

2.3 Actividades previas ....................................................................................... 16

2.4 Desarrollo de la práctica ............................................................................... 16

2.5 Actividades propuestas ................................................................................. 20

2.5.1 Práctica ................................................................................................. 20

2.5.2 Actividades de aprendizaje .................................................................... 20

Laboratorio 3. Estructura de módulos ......................................................................... 21

3.1 Objetivo ........................................................................................................ 21

3.2 Introducción .................................................................................................. 21

3.3 Actividades previas ....................................................................................... 21

3.4 Desarrollo de la práctica ............................................................................... 22

3.4.1 Crear un nuevo proyecto ISE®. ............................................................. 22

3.4.2 Implementar el diseño en FPGA ............................................................ 23

3.5 Actividades propuestas ................................................................................. 23

3.5.1 Práctica ................................................................................................. 23

3.5.2 Actividades de aprendizaje .................................................................... 23

Laboratorio 4. Sumador de dos bits ............................................................................ 24

4.1 Objetivo ........................................................................................................ 24

4.2 Introducción .................................................................................................. 24

Page 3: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 3/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

3

4.3 Actividades previas ....................................................................................... 24

4.4 Desarrollo de la práctica ............................................................................... 24

4.5 Actividades propuestas ................................................................................. 26

4.5.1 Práctica ................................................................................................. 26

4.5.2 Actividades de aprendizaje .................................................................... 26

Laboratorio 5. Decodificador de BCD a 7 segmentos .................................................. 27

5.1 Objetivo ........................................................................................................ 27

5.2 Introducción .................................................................................................. 27

5.3 Actividades previas ....................................................................................... 28

5.4 Desarrollo de la práctica ............................................................................... 28

5.5 Actividades propuestas ................................................................................. 29

5.5.1 Práctica ................................................................................................. 295.5.2 Actividades de aprendizaje .................................................................... 30

Laboratorio 6. Multiplexores ........................................................................................ 31

6.1 Objetivo ........................................................................................................ 31

6.2 Introducción .................................................................................................. 31

6.3 Actividades previas ....................................................................................... 31

6.4 Desarrollo de la práctica ............................................................................... 31

6.5 Actividades propuestas ................................................................................. 33

6.5.1 Práctica ................................................................................................. 33

6.5.2 Actividades de aprendizaje .................................................................... 33

Laboratorio 7. Registros .............................................................................................. 34

7.1 Objetivo ........................................................................................................ 34

7.2 Introducción .................................................................................................. 34

7.3 Actividades previas ....................................................................................... 34

7.4 Desarrollo de la práctica ............................................................................... 34

7.5 Actividades propuestas ................................................................................. 35

7.5.1 Práctica ................................................................................................. 35

7.5.2 Actividades de aprendizaje .................................................................... 35

Laboratorio 8. Contadores .......................................................................................... 36

8.1 Objetivo ........................................................................................................ 36

8.2 Introducción .................................................................................................. 36

8.3 Actividades previas ....................................................................................... 36

8.4 Desarrollo de la práctica ............................................................................... 36

8.5 Actividades propuestas ................................................................................. 37

8.5.1 Práctica ................................................................................................. 37

Page 4: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 4/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

4

8.5.2 Actividades de aprendizaje .................................................................... 38

Page 5: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 5/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

5

Recomendaciones generalesEl desarrollo de las prácticas incluidas en las siguientes guías de laboratorio para

electrónica digital requiere del manejo adecuado del equipo y los materiales de

laboratorio para garantizar la seguridad del usuario y de los instrumentos de

laboratorio. Los usuarios deben seguir las siguientes recomendaciones:

1. Leer atentamente la práctica de laboratorio antes de comenzar la sesión.

2. Todas las prácticas requieren de conocimiento teórico previo de los modelos de

los circuitos digitales a realizar. En este caso los estudiantes deben realizar las

actividades previas indicadas en cada guía de laboratorio, en caso de incumplir

se negará el acceso al laboratorio sin reposición de la práctica.

3. Prestar atención a las indicaciones del instructor durante la sesión de

laboratorio.

4. Respetar las normas de seguridad del laboratorio.

5. Utilizar el equipo y los materiales suministrados de acuerdo con los manuales y

las instrucciones del docente.6. Consultar al instructor si tiene dudas o inquietudes.

El instructor debe tener conocimiento previo del uso del equipo (software y hardware)

a utilizar en las prácticas de laboratorio. Así mismo debe orientar el correcto desarrollo

de las prácticas. Los estudiantes deben mostrar los resultados obtenidos en cada

práctica de laboratorio. Además, el estudiante deberá presentar el algoritmo o

pseudocódigo de las prácticas a desarrollarse cuando así se requiera o cuando el

instructor lo indique.

La inasistencia a la práctica de laboratorio impide al estudiante la entrega del informe

correspondiente a esa práctica.

Elaboración del reporteEl estudiante debe entregar un reporte de la práctica realizada justo al inicio de la

siguiente práctica. Este reporte se presenta de acuerdo al número de estudiante por

puesto de laboratorio y debe contener los siguientes puntos:

a. Introducción

b. Objetivos

c. Desarrollo

d. Actividades propuestase. Conclusiones

f. Observaciones

g. Bibliografía

Lista de materialesPor cada práctica y por cada puesto de laboratorio, los materiales a utilizar es:

Cantidad Descripción1 Computadora1 Kit de desarrollo Basys2 Digilent

1 Software Xilinx ISE® Webpack v12.2

Page 6: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 6/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

6

Laboratorio 1. Introducción al entorno ISE ® de Xilinx

1.1 Objetivos

Familiarizar al usuario en el uso del ambiente de software integrado Xilinx ISE® v12.2

y el kit de desarrollo Basys2 mediante la creación de un programa de lógica

combinacional.

1.2 IntroducciónLos circuitos digitales presentan dos estados, un estado se aproxima a cero volts (low)

y el otro estado suministra el voltaje (high) y se pueden procesar en números binarios,

en este caso 1 o 0.

Los circuitos digitales pueden estar conectados entre sí por medio de las compuertas

digitales como son: OR, NOR, AND, exclusivamente OR, exclusivamente NOR y

NAND.

En esta práctica de laboratorio se implementan las compuertas básicas: AND, OR y

XOR introduciendo al estudiante en el Ambiente de Software Integrado Xilinx

mediante la creación del primer circuito digital en el lenguaje de descripción de

hardware Verilog y su verificación en la tarjeta de FPGA Basys 2.

El programa consiste en describir tres salidas c, d y e como la combinación lógica de

las entradas a y b. Así, c = a + b , d = a * b y e = a b.

1.3 Actividades previas

Completar la tabla de las compuertas básicas AND, OR y XOR con las

ecuaciones descritas anteriormente.

Entradas Salidasa b c d e0 00 11 01 1

1.4 Desarrollo de la práctica

1.4.1 Creación de un proyecto en Project Navigator

Cada vez que realiza un nuevo diseño es necesario crear un proyecto nuevo: en cada

proyecto se crea automáticamente una carpeta donde se almacenan todos los

archivos de entrada de diseño y los archivos generados durante la ejecución de los

pasos intermedios de compilación y verificación.

1. Abrir Xilinx-ISE®.

2. Cerrar cualquier programa que esté abierto (File → Close Project). 

3. Abrir un nuevo proyecto (File → New Project). Escribir el nombre del proyecto y

presionar en la pestaña Next.

Page 7: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 7/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

7

4. Asegurar que las propiedades del proyecto son iguales a la de la figura y presionar

la pestaña Next.

5. En la siguiente ventana, clic en la pestaña Finish.

Page 8: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 8/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

8

6. Crear una nueva fuente. En la ventana Sources clic derecho en la carpeta y

seleccionar New Source… y presionar Next. 

7. Elegir la opción Verilog Module, en File name escribir Compuertas y presionar

Next.

Page 9: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 9/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

9

8. En la siguiente ventana definimos las entradas y salidas del módulo. Las variables

a y b están definidas como entradas (input) y las variables c, d y e como salida

(output).

9. Clic en todas las demás opciones: Next → Finish.

10. En la ventana Sources verificar que aparezca el dispositivo y el módulo principal.

11. En la ventana de edición aparece el módulo creado y por defecto aparece el

nombre, con las entradas, salidas y con el final del módulo. Escribir después de la

declaración de entradas y salidas las líneas con definidas con la sentencia assign.

Page 10: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 10/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

10

12. Guardar los cambios realizados en el paso anterior.

13. Seleccionar el módulo principal

en la

ventana Sources. En Processes,

elegir Synthesize-XST en el más

desplegable, clic derecho en la opción

Check Syntax y elegir Rerun All.

14. En la ventana Console, verificar que

aparezca el siguiente mensaje.

Nota: El proceso verifica que no haya errores de sintaxis, de haberlo hay que corregir.

Page 11: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 11/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

11

1.4.2 Asignación de los pines en la tarjeta Basys2

1. Clic derecho en Compuertas.v y elegir

New Source...

2. Elegir la opción Implementation Constraints File, en File Name escribir

Compuertas, clic en Next → Finish. 

3. En la ventana Sources, verificar que la nueva fuente que acabamos de crear

aparece debajo del módulo principal.

4. Seleccionar Compuertas.ucf, en Processesclic en el más desplegable y presionar

doble clic en la opción Edit Constraints

(Text).

5. Aparecerá un editor de texto en blanco en la ventana principal

Page 12: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 12/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

12

6. Escribir los siguiente

net "a" loc = "L3" ;net "b" loc = "P11";net "c" loc = "P7" ;

net "d" loc = "M11";net "e" loc = "M5" ;

Estas líneas significan la localización de las entradas y las salidas en la tarjeta Basys2.

Las entradas son los switches… 

… y las salidas las visualizaremos con los leds. 

Page 13: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 13/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

13

7. Seleccionar en la ventana Sources el módulo principal Compuertas.v, en la

ventana Processes elegir Generate Programming File  y doble clic en la opción

Rerun All.

8. Verificar que aparezca el símbolo en los procesos que seleccionamos en el

paso anterior de la ventana Processes. 

9. Asegurar que en la ventana Console aparezca el siguiente mensaje:

El mensaje significa que no se produjeron errores para la implementación del archivo

.bit

Page 14: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 14/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

14

1.4.3 Programación del chip de FPGA

1. Conectar el kit de entrenamiento Basys2 mediante el cable

USB a la computadora, elegir las opciones para que la

computadora lo instale automáticamente.

2. Buscar en el Inicio → todos los programas → Digilent → 

3. Si el kit está conectado correctamente se indicará en la siguiente ventana.

4. En la pestaña Browse buscar el archivo Compuertas.bit en el directorio que

guardamos a la hora de crear el proyecto (ver en la parte superior de ISE®) y

pulsar Program.

5. Activar a y b (los switches SW1 y SW0) y comprobar que los LED’s actúancorrectamente (LD2 como OR, LD1 como AND, y LD0 como XOR).

Page 15: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 15/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

15

1.5 Actividades propuestas

1.5.1 Práctica

Llene la tabla de verdad según las ecuaciones dadas y realice la descripción de las

combinaciones lógicas en un programa de Verilog. Consulte la sección de simbología

en el manual de ayuda del lenguaje. Verifique en ISE® que la sintaxis del programa escorrecta utilizando los pasos descritos en la guía de laboratorio 1.

Entradas Salidas

x y z

1.5.2 Actividades de aprendizaje

1. Introduzca una nueva variable (x), de tal manera que las salidas sean una

and de tres entradas, una or de tres entradas, ¿qué sucede con los valores

de salidas?

2. En una compuerta and de 2 entradas; si en una de sus entradas recibe

un 0 y en la otra un 1, ¿Cuál es su salida?

3. Si una compuerta Nand recibe las mismas señales de entrada de la

pregunta anterior, ¿Cuál es su salida?

Anote las conclusiones de su trabajo, siga las recomendaciones de su instructor yentregue el reporte en tiempo y forma.

Page 16: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 16/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

16

Laboratorio 2. Simulación de un circuito digital

2.1 Objetivo

Utilizar la herramienta de simulación de ISE® Xilinx v12.2 para la verificación y

comportamiento esperado de un circuito digital de lógica combinacional.

2.2 IntroducciónLa metodología de diseño es similar a la de cualquier sistema digital. Primero hay que

tener una descripción del circuito  a realizar. Tradicionalmente en las ingenierías se

realizan planos o esquemas  para esta descripción. La descripción del circuito se

realiza a través del lenguaje de descripción de hardware Verilog. Con esta descripción

se pueden realizar simulaciones del circuito, para comprobar que lo diseñado trabaja

correctamente, de lo contrario se modifica la descripción (esquemas o programa)

hasta que la simulación sea satisfactoria.

En esta práctica se realiza la simulación del circuito del laboratorio 1 que consistía envisualizar el comportamiento en el kit Basys2. Analizaremos la forma de onda

generada a partir de los estímulos de tiempo y de la combinación de las entradas.

2.3 Actividades previasHaber realizado el Laboratorio 1.

2.4 Desarrollo de la práctica

El Ejercicio_1 realizado en el laboratorio 1, lo utilizaremos para comprobar que

funciona correctamente en el simulador del software ISim.

1. Abrir ISE® Project Navigator → Open Project → Ejercicio_1. 

2. Añadir una nueva fuente al módulo principal Compuertas.v. 

3. Elegir la opción Verilog Test Fixture. En File name: escribir Compuertas_prueba y

clic en Next. 

Page 17: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 17/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

17

4. En Design, escoger en modo Simulation. 

5. Aparece en la ventana principal lo siguiente: 

Page 18: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 18/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

18

6. Añadir las siguientes líneas después del cometario // Add stimulus here y

antes de la sentencia end  

#100 b = 1;#100 a = 1;

 b = 0;#100 b = 1;

7. Seleccionar Compuertas_prueba.v en la ventana Sources. 

8. Clic derecho en Behavioral Check Sintax → Processes → Rerun All. 

Aparece la siguiente ventana, clic en Yes.

9. Verificar que aparezca un en Behavioral Check Sintax, elegir la opción

Simulate Behavioral Model y clic derecho en Run.

Page 19: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 19/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

19

10. Aparece la ventana ISim Simulator, donde se muestra la forma de onda de los

estímulos agregados en el paso 6.

Utilizar la herramienta Zoom to Full View para ver la vista completa de la simulación,

que se encuentra a la derecha en la barra de herramientas del panel de simulación.

La figura anterior muestra tres ventanas: Source Files que contiene los archivos

asociados al proceso de simulación, Objects muestra las variables asociadas al

archivo seleccionado en la ventana Source File, en este caso las variables a, b, c, d y

e del archivo fuente compuertas_prueba.v. Y la tercera ventana es Wave Window 

donde se visualiza la configuración de las formas de onda, que contienen la lista de lasseñales y su forma de onda1.

11. Mover la línea amarilla sobre las formas de onda (de color verde) y ver en Value

que los valores de las señales cambian. Comprobar que las formas de onda de la

figura anterior corresponden a las tablas de verdad de las compuertas básicas del

Laboratorio 1. 

1Más información? Visita

http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_2/plugin_ism.pdf  

Page 20: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 20/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

20

2.5 Actividades propuestas

2.5.1 Práctica

De los ejercicios propuestos del reporte de laboratorio 1 realizar la simulación en ISE® 

utilizando los pasos de la guía de laboratorio 2.

Recuerde que hay tres entradas (x, y, z) y dos salidas (a, b) y que la relación de las

variables es:

El reporte debe incluir:

Tabla de verdad de las variables.

Descripción de las ecuaciones con compuertas lógicas.

Descripción de las ecuaciones en Verilog.

Verificación del programa en ISE. Utilice las capturas de pantalla (tecla:PRTSC) para explicar el procedimiento.

Resultados de la simulación.

Resumir en 150 palabras lo aprendido de esta asignación. Utilice las gráficas

generadas para complementar su trabajo. Redacte su informe de manera objetiva y sin

ambigüedades.

2.5.2 Actividades de aprendizaje

1 Explique por qué es útil simular un sistema o un circuito. ¿Considera

importante simular un circuito electrónico descrito con programación?

2 Cuando hacemos la simulación de un circuito, es necesario especificar lamagnitud del retardo entre las señales de entrada y las señales de salida?

Justifique su repuesta.

3 ¿Qué sucede si cambia los tiempos de temporización? Cambiar #100 a #50

en el programa que Ud hizo en la práctica de laboratorio 2.

Page 21: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 21/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

21

Laboratorio 3. Estructura de módulos

3.1 Objetivo

Comprender la estructura de módulos en el lenguaje Verilog y la forma de conexión

hacia otros módulos mediante un ejemplo de lógica combinacional.

3.2 IntroducciónEn el lenguaje Verilog un sistema digital está compuesto por la interconexión de un

conjunto de módulos. Estos son unidades lógicas donde se puede especificar la

descripción de un circuito digital, sea sencillo o complejo, de tal manera que puedan

utilizarse para construir diseños de mayor complejidad, creando lo que se denomina

un diseño con jerarquía . El mandato module del lenguaje Verilog se utiliza para la

definición de módulos. En esta práctica aprenderemos la estructura básica de un

módulo y la forma en cómo se conecta a otros módulos.

La estructura más básica de un módulo es la siguiente:

module <nombre del modulo> ( <variables> ); //inicio

<declaraciones de variables>

<funcionalidad del módulo>

sndmodule //final del módulo

La figura anterior muestra un módulo (cajita en azul) que puede contener algún circuito

digital en su interior, en la descripción con Verilog (derecha) el nombre del módulo es

FA  cuyas entradas son las variables a, b y cin y como salidas las variables cout y

sum . Note que al final de module después de declarar las variables de entradas y

salidas cierra la sentencia con el signo ; (punto y coma). En el mandato endmodule se omite el punto y coma. Tome en cuenta estas recomendaciones de sintaxis para

evitar errores.

3.3 Actividades previas

Tabla de verdad del módulo ANDOR (Figura 1).

A B C F

Page 22: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 22/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

22

3.4 Desarrollo de la práctica3.4.1 Crear un nuevo proyecto ISE®.

En esta práctica vamos a crear un módulo llamado ANDOR con 3 entradas ( A , B y C) y

1 salida (F), después usaremos dos veces este mismo módulo en otro módulo superior

llamado LOGIC.

Importante!!! 

Seguir las instrucciones del laboratorio 1 para crear un nuevo proyecto en ISE®.

1.1 Cerrar cualquier proyecto que esté abierto y crear un proyecto nuevo. LlamarloLOGIC. El módulo superior LOGIC debe tener 5 entradas (J , K , L, M , N) y dos

salidas (P, Q).

Figura 1. Diagrama de los módulos ANDOR y LOGIC

1.2 El programa se describe a continuación:

module LOGIC (J, K, L, M, N, P, Q);

input J, K, L, M, N;output P, Q;

ANDOR U1 (.A(J), .B(K), .C(L), .F(P));ANDOR U2 (.A(P), .B(M), .C(N), .F(Q)); 

endmodule

module ANDOR (A, B, C, F);input A, B, C;output F;

assign F = ( A & B) | C;

U1

U2

Page 23: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 23/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

23

endmodule

1.3 Guardar los cambios y correr el programa.

3.4.2 Implementar el diseño en FPGA3.5 Añadir un archivo .ucf al módulo principal siguiendo los pasos del laboratorio 1.

3.6 En el editor de texto, escribir las siguientes asignaciones:

net "J" loc = "G3" ;net "K" loc = "B4" ;net "L" loc = "K3" ;net "M" loc = "L3" ;net "N" loc = "P11";net "P" loc = "P6" ;net "Q" loc = "P7" ;

3.7 Correr el programa para comprobar si la sintaxis es correcta.

3.8 Comprobar el funcionamiento del circuito en la tarjeta de FPGA.

3.5 Actividades propuestas

3.5.1 Práctica

Dado un sistema combinacional de 7 variables (d, e, f, g, h, i, j) donde:

1. d, e, f forman una compuerta EXNOR de tres entradas y su salida es g.

2. g, h forman una compuerta NAND de dos entradas y su salida es i.3. g, h, i forman una cajita que puede contener una compuerta EXNOR de tres

entradas y una salida j.

¿Cuántos módulos se podrían implementar en este sistema? Realice la descripción de

este circuito en Verilog.

El reporte debe incluir:

Tabla de verdad de las variables.

Descripción de las ecuaciones con compuertas lógicas.

Descripción de las ecuaciones en Verilog.Verificación del programa en ISE. Utilice las capturas de pantalla (tecla:

PRTSC) para explicar el procedimiento.

Realizar la simulación del ejercicio del laboratorio 3.

3.5.2 Actividades de aprendizaje

1 Indague acerca del diseño con jerarquía en el lenguaje Verilog. Resuma en un

párrafo.

2 ¿Cuáles son los tipos de datos en Verilog que puede contener un módulo?

Describa brevemente cada uno de ellos y su función en el programa.

Page 24: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 24/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

24

Laboratorio 4. Sumador de dos bits

4.1 Objetivo

Verificar el funcionamiento de un sumador completo de dos bits comparando diseños

 jerárquicos en el lenguaje Verilog.

4.2 IntroducciónLas computadoras digitales efectúan diversas tareas de procesamiento, entre esas

funciones están las operaciones aritméticas. La operación más básica es la suma de

dos dígitos binarios y que consiste en cuatro posibles resultados:

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10

Las primeras tres operaciones producen una suma de un dígito pero cuando ambos

bits sumando son 1, la suma binaria consta de dos dígitos, donde el bit más

significativo se denomina acarreo.

En esta práctica de laboratorio implementaremos un sumador binario completo de dos

entradas y la salida con su respectivo acarreo. Además veremos dos niveles diferentes

para describir la operación de este sumador. El primero es el nivel de compuertas

donde se describe el circuito tal y como se encontró la solución a través de

compuertas lógicas. El segundo es el nivel de flujo de datos empleando enunciados de

asignación continua donde se describe la función que hace el circuito, en este caso

sumar dos bits.

4.3 Actividades previas

Diseñar un sumador binario completo de dos entradas (a y b) con su respectivo

acarreo de entrada y acarreo de salida. Debe incluir la tabla de verdad, las ecuaciones

lógicas derivadas de la tabla de verdad y el diagrama con compuertas lógicas.

4.4 Desarrollo de la práctica

1. Crear un nuevo proyecto en ISE® llamado adder.

2. El programa de un sumador completo en Verilog es el siguiente:

module adder (input a, b, cin,output cout, s);

Cin

Page 25: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 25/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

25

wire n1, n2, n3;xor (s, a, b, cin);and (n1, a, b);and (n2, a, cin);and (n3, b, cin);

or (cout, n1, n2, n3);

endmodule

3. Para la implementación en la tarjeta use los siguientes pines

net "A" loc = "K3";net "B" loc = "L3";net "Cin" loc = "P11";net "Cout" loc = "M11";

net "S" loc = "M5";

El programa anterior describe el circuito especificando las compuertas y como se

conectan entre sí. La palabra wire se utiliza para conexiones internas. Como en el

programa hay variables auxiliares internas n1, n2, n3 (que no son entrada ni

salida) tienen que declararse como un tipo de dato “alambre”. 

Existen otras formas de describir el comportamiento de un circuito, por ejemplo usando

el modelado de flujo de datos que utiliza asignaciones continuas y la palabra assign.

En el siguiente programa la lógica del circuito se describe con un solo enunciado que

usa los operadores de suma y concatenación. El símbolo (+) especifica la sumabinaria de a, b y cin. La salida deseada es la concatenación del acarreo de salida

cout y la suma s. La concatenación de operandos se expresa entre llaves,

separando los operandos con comas. Así, {Cout, S}  representa el resultado total

del sumador.

module adder (input [3:0] A, B, Cin,output [2:0] Cout, S);

assign {Cout, S} = ( A + B + Cin );

endmodule

4. Implementar este diseño con los mismos nets del paso 3.

5. Comprobar que funciona correctamente verificando si las salidas corresponden

a los valores de la tabla de verdad.

Page 26: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 26/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

26

4.5 Actividades propuestas

4.5.1 Práctica

Un Restador completo realiza la resta entre dos bits, considerando que se ha prestado

un 1 de un estado menos significativo. Diseñe este circuito con las entradas A,

B y C  donde estas denotan el minuendo, el sustraendo y el bit prestadorespectivamente. Las salidas D y P representan a la diferencia y el préstamo del

restador.

El reporte debe incuir:

Tabla de verdad de las variables de entrada y salida.

Descripción de las ecuaciones con compuertas lógicas.

Descripción del circuito en Verilog.

Verificación del programa en ISE. Utilice las capturas de pantalla (tecla:

PRTSC) para explicar el procedimiento.

Comprobación del funcionamiento mediante simulación en ISim. 

En una página adjunte sus resultados y conclusiones de este ejercicio.

4.5.2 Actividades de aprendizaje

1. Indague si existen otras formas de diseño jerárquico en Verilog. Diseñe el

sumador completo con la forma que encuentre en su investigación y

compruebe su funcionamiento en ISE®.

2. ¿Podría realizarse un circuito sumador/restador en un mismo diseño con

compuertas lógicas de tal forma que se pueda seleccionar que la operación

deseada sea suma o resta? ¿Y en Verilog? Proponga una solución a este retocon un algoritmo que satisfaga esta necesidad.

Page 27: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 27/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

27

Laboratorio 5. Decodificador de BCD a 7 segmentos

5.1 Objetivo

Comprender el funcionamiento de un decodificador de hexadecimal a 7 segmentos

para que el estudiante utilice este módulo en prácticas posteriores.

5.2 IntroducciónEl display de 7 segmentos es un componente que se utiliza para la representación de

caracteres en muchos dispositivos electrónicos. El principal componente de este

diseño será un decodificador de hexadecimal a 7 segmentos que es un circuito

combinacional utilizado para tomar una entrada hexadecimal de cuatro bits y

proporcionar las salidas que pasaran corriente a través de los segmentos apropiados

para desplegar visualmente el digito decimal. La figura 1 muestra la arquitectura

interna de un display de 7 segmentos

Los dígitos de la tarjeta son de tipoLED. Cada segmento es un LED uno

de cuyos terminales es común para

todos los segmentos: existen

versiones de cátodo común y de

ánodo común. Para encender un

segmento de un display cátodo en

común tienes que poner este

segmento en “1”. Pero si el display es

del tipo ánodo en común, tienes que

poner un “0” en cada segmento quequieres encender. Para iluminar un

dígito concreto en esta tarjeta es necesario aplicar un “0” a la línea de control

pertinente.Tabla 1

Código hex display abcdefg0000 00001 10010 20011 30100 4

0101 50110 60111 71000 81001 91010 A1011 b1100 C1101 d1110 E1111 F

Figura 1

Page 28: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 28/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

28

5.3 Actividades previasDiseñar un decodificador de hexadecimal a 7 segmentos. Incluya la tabla de verdad

con las ecuaciones lógicas y el diagrama con compuertas. Completar en la tabla 1 la

señal de los segmentos abcdefg para activar el código correspondiente a cada número

hexadecimal.

5.4 Desarrollo de la práctica1. Crear un nuevo proyecto en ISE®.

2. Nombrar el módulo como hex7seg. 

3. El programa de un decodificador de hexadecimal a 7 segmentos en Verilog es

el siguiente:

module hex7seg(input wire [3:0] x,output reg [6:0] a_to_g,output wire [3:0] an,output wire dp);

assign an = 4'b0111;assign dp = 1;

always @(*)case(x)

0: a_to_g = 7'b000_0001;1: a_to_g = 7'b100_1111;2: a_to_g = 7'b001_0010;3: a_to_g = 7'b000_0110;4: a_to_g = 7'b100_1100;5: a_to_g = 7'b010_0100;

6: a_to_g = 7'b010_0000;7: a_to_g = 7'b000_1111;8: a_to_g = 7'b000_0000;9: a_to_g = 7'b000_0100;'hA: a_to_g = 7'b000_1000;

'hb: a_to_g = 7'b110_0000;'hC: a_to_g = 7'b011_0001;'hd: a_to_g = 7'b100_0010;'hE: a_to_g = 7'b011_0000;'hF: a_to_g = 7'b011_1000;default : a_to_g = 7'b000_0001;

endcaseendmodule

El programa hex7seg muestra el uso de la sentencia case para diseñar el mismo

decodificador 7 segmentos con compuertas lógicas ahora en el lenguaje Verilog. Lasentencia case implementa directamente los valores de la tabla de verdad (tabla 1).

Page 29: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 29/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

29

Por ejemplo la línea 2:a_to_g = 7'b001_0010; asigna un valor binario de 7

bit, 1001100, a un arreglo binario de 7 bit, a_to_g, cuando la entrada hexadecimal

x[3:0] es igual a 2 (0010, en binario).

4. Implemente el circuito en la tarjeta y verifique con la tabla 1 los números que se

muestran en el primer display de 7 segmentos. 

net "x[3]" loc = "B4" ;net "x[2]" loc = "K3" ;net "x[1]" loc = "L3" ;net "x[0]" loc = "P11";

net "an[3]" loc = "K14";net "an[2]" loc = "M13";net "an[1]" loc = "J12";

net "an[0]" loc = "F12";

net "dp" loc = "N13";

net "a_to_g[0]" loc = "M12" ;net "a_to_g[1]" loc = "L13" ;net "a_to_g[2]" loc = "P12" ;net "a_to_g[3]" loc = "N11" ;net "a_to_g[4]" loc = "N14" ;net "a_to_g[5]" loc = "H12" ;net "a_to_g[6]" loc = "L14" ;

5.5 Actividades propuestas

5.5.1 Práctica

En la práctica de laboratorio 5 se implementó un diseño de un decodificador de BCD a

7 segmentos. Diseñe un circuito que muestre en el display la suma de dos números de

2 bits cada uno.

El reporte debe incluir:

Tabla de verdad de las variables de entrada y salida.

Descripción de las ecuaciones con compuertas lógicas.

Descripción del circuito en Verilog.

Verificación del programa en ISE. Utilice las capturas de pantalla (tecla:

PRTSC) para explicar el procedimiento.

Comprobación del funcionamiento mediante simulación en ISim. 

En una página adjunte sus resultados y conclusiones de este ejercicio.

Page 30: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 30/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

30

5.5.2 Actividades de aprendizaje

1. ¿Por qué solamente podemos visualizar uno de los cuatro displays disponibles

en la tarjeta? Explique brevemente.

2. ¿Se podrían modificar las letras de los dígitos hexadecimales, es decir qué

tengo que hacer para visualizar las letras G, H, J, L, P, U? en el display.

3. ¿Cuál de los siguientes incisos describe mejor la función de un decodificador?a. Un decodificador convierte un número decimal al equivalente binario que le

corresponda.

b. Un decodificador convierte un número binario en una salida específica que

representa un digito o carácter particular.

c. Los decodificadores se utilizan para evitar la operación inadecuada de los

sistemas digitales.

d. Los decodificadores son CI especiales que se usan para hacer posible que

una marca de computadoras establezcan una comunicación entre sí.

Page 31: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 31/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

31

Laboratorio 6. Multiplexores

6.1 Objetivo

Comprender el concepto de multiplexor mediante la implementación de un diseño en

Verilog.

6.2 IntroducciónUn multiplexor es un circuito lógico que acepta varias entradas de datos digitales y

solo uno de ellos, el que hayamos seleccionado, es el que aparece en la salida. Es

decir, que es un circuito que nos permite seleccionar que datos pasan a través de

dicho componente. Una aplicación común en computadoras es el multiplexor entre

registros del microprocesador y su unidad aritmético lógica. En el interior de los

microprocesadores se pueden encontrar multiplexores de 8 bits, que tuene varias

entradas de datos de 8 bits. Sin embargo, se puede trabajar con multiplexores que

tengan 4 bits, 2 bits o hasta 1 bit por cada entrada.

Dentro de un multiplexor hay que destacar 3 tipos de señales: los datos de entrada, las

entradas de selección y la salida. En esta práctica de laboratorio se pretende que se

entienda el concepto básico de un multiplexor descrito en Verilog.

6.3 Actividades previasEn una granja hay cuatro tuberías por las que circulan distintos fluidos. Dos

transportan agua potable a diferentes partes de la casa y las siguientes dos se utilizan

para regar los cultivos. Existe una llave de paso con cuatro posiciones y dos selectores

para dar paso a la tubería 0, 1, 2 ó 3. Diseñe un circuito combinacional lo más

simplificado posible de tal manera que seleccione una tubería a la vez.

6.4 Desarrollo de la práctica

1. Crear un nuevo proyecto en ISE®.2. Nombrar el módulo como mux4.

Selección

Entradas SalidaMUX

Page 32: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 32/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

32

3. El programa de un multiplexor de 4 entradas en Verilog es el siguiente:

module mux4(input a, b, c, d,input [1:0] sel,

output reg out);

always @(*)case(sel)

0: out = a;1: out = b;2: out = c;3: out = d;default: out = 1'bx;

endcase

endmodule

Para expandir un multiplexor con programación en Verilog utilizaremos la sentencia

parameter que define el ancho del bus (constante) del multiplexor. En este caso

hemos descrito que las entradas a y b tienen 3 bits cada uno y la salida out también

es de 3 bits.

module muxN#(parameter N = 3)(input wire [N-1:0] a,

input wire [N-1:0] b,input wire sel,

output reg [N-1:0] out);

always @(*)if(sel == 0)

out = a;else

out = b;

endmodule

4. Realizar el archivo .ucf.

5. Implementar el diseño en la tarjeta Basys2.

Page 33: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 33/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

33

6.5 Actividades propuestas

6.5.1 Práctica

En el reporte de laboratorio 4 se propuso el diseño de un circuito sumador/restador

donde se seleccionara la operación de suma o resta. Diseñe un circuito lógico que

cumpla con las especificaciones:

El diseño en Verilog debe ser modular, es decir construido en base a módulos.

Además de las operaciones de suma y resta, el circuito debe contener las

operaciones de multiplicación y comparación.

Mostrar en los displays de 7 segmentos el resultado de la operación

seleccionada.

El mínimo número de bits que pueden contener las entradas es 2.

El reporte debe incluir:

Tabla de verdad de las variables de entrada y salida.Descripción de las ecuaciones con compuertas lógicas.

Descripción del circuito en Verilog.

Verificación del programa en ISE. Utilice las capturas de pantalla (tecla:

PRTSC) para explicar el procedimiento.

La verificación del circuito en el kit Basys2 se programará por equipo de trabajo. El

instructor dará a conocer los horarios.

6.5.2 Actividades de aprendizaje

Encierre en un círculo el ítem que describa mejor el enunciado siguiente:

1. El multiplexado de señales digitales por lo general se requiere cuando…  

a. Se mueven datos internos dentro de un microprocesador.

b. Se mueven datos entre la memoria y los registros de almacenamiento.

c. Se mueven datos a través de líneas de transmisión de larga distancia.

d. a y b

2. Las líneas de salida de un multiplexor están bajo control de:

a. La línea de entrada de satos

b. Las compuertas AND internas

c. La compuerta OR interna

d. Las líneas de selección de entrada de datos

Page 34: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 34/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

34

Laboratorio 7. Registros

7.1 Objetivo

Comprender el funcionamiento del registro de desplazamiento universal.

7.2 IntroducciónLos registros son circuitos digitales secuenciales que consisten en un grupo de flip-

flops capaces de almacenar n bits de información binaria. Además de los flip-flops, los

registros pueden tener compuertas combinacionales para realizar ciertas tareas de

procesamiento. Entre los registros de uso general están los registros de

desplazamiento que son capaces de desplazar información binaria en una dirección

dentro del mismo registro o a la entrada o a la salida del mismo. La capacidad de

almacenamiento de un registro es el número total de bits que puede contener.

En esta práctica de laboratorio analizaremos un registro de desplazamiento universal

llamado así porque permite desplazamiento bidireccional (derecha-izquierda yviceversa).

El registro de desplazamiento más general tiene estas características:

Un control de despeje (clear) para reiniciar el registro.

Una entrada de reloj (clock) para sincronizar las operaciones.

Un control de desplazamiento a la derecha (shift-right) para habilitar la

operación de desplazamiento a la derecha, y las líneas de entrada y salida en

serie asociadas al desplazamiento a la derecha.

Un control de desplazamiento a la izquierda (shift-left) para habilitar la

operación de desplazamiento a la izquierda, y las líneas de entrada y salida enserie asociadas al desplazamiento a la izquierda.

Un control de carga en paralelo (parallel-load) para habilitar la transferencia en

paralelo y las n líneas de entrada asociadas a la transferencia en paralelo.

n líneas de salida en paralelo.

Un control de estado que deja la información del registro como está, en

presencia del reloj.

7.3 Actividades previasDiseñe un registro de desplazamiento bidireccional con carga paralela con flip-flops

tipo D que contenga dos entradas de selección s1 y s0. Incluya la tabla de verdad, las

ecuaciones lógicas y el diagrama de compuertas.

7.4 Desarrollo de la práctica

1. Crear un nuevo proyecto en ISE®.

2. Nombrar el módulo como shftreg.

3. El programa del registro universal en Verilog es el siguiente:

module shftreg(input s1, s0,input lftin, rgtin,

input clk, clr,input [3:0] Pin,

Page 35: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 35/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

35

output reg [3:0] A);

always @(posedge clk or posedge clr)if (clr)

A = 4'b0101;else

case ({s1,s0})2'b00: A = A;2'b01: A = {rgtin, A[3:1]};2'b10: A = {A[2:0], lftin};2'b11: A = Pin;

endcaseendmodule

En el programa anterior hay dos entradas de selección, dos entradas en serie, unaentrada en paralelo de cuatro bits y una salida en paralelo de cuatro bits. El bloque

always describe las cinco operaciones que es posible efectuar con el registro. La

entrada clr pone a cero el registro asincrónicamente con una señal positiva. Las cuatro

operaciones con reloj del registro se determinan a partir de los valores de las dos

entradas de selcción del enunciado case ( se concatenan en un vector de dos bits

después de la palabra clave case). El desplazamiento se especifica con la

concatenación de la entrada en serie y tres flip-flops. Por ejemplo, el enunciado A =

{rgtin, A[3:1]}; especifica una concatenación de la entrada en serie para

desplazamiento a la derecha (rgtin) y los flip-flops A3, A2 y A1 para formar un

número de cuatro bits que se transfieren a A[3:1]. Esto produce una operación dedesplazamiento a la derecha.

4. Realizar el archivo .ucf.

5. Implementar el diseño en la tarjeta Basys2.

7.5 Actividades propuestas

7.5.1 Práctica

Diseñe un registro de desplazamiento de cuatro bits con carga paralela. Hay dos

entradas de control: desplazar y cargar. Cuando desplazar = 1, el contenido del

registro se desplaza una posición. Se transfieren nuevos datos al registro cuando

cargar = 1 y desplazar = 0. Si ambas entradas de control son 0, el contenido del

registro no cambia.

7.5.2 Actividades de aprendizaje

1. De los registros, ¿qué diferencia hay entre transferencia en serie y en paralelo?

Explique cómo convertir datos de serie a paralelo y datos de paralelo a serie.

¿Qué tipo de registro se necesita?

2. El contenido de registros de cuatro bits es inicialmente 1101. El registro se

desplaza seis veces a la derecha, siendo la entrada en serie 101101. ¿Qué

contiene el registro después de cada desplazamiento?

Page 36: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 36/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

36

Laboratorio 8. Contadores

8.1 Objetivo

Desarrollar las habilidades necesarias para el diseño de contadores mediante lógica

programable.

8.2 IntroducciónContar es una operación humana básica, generalmente estamos contando dinero, los

días, las horas, etc. Un circuito contador digital hace lo mismo, cuenta las veces que

se repite determinado evento.

Este laboratorio realizaremos un contador digital que cuenta las veces de una señal de

reloj (clk). Un contador digital corresponde a una máquina secuencial que recibe

pulsos de una señal llamada “reloj”, cuenta los flancos de bajada (o de subida) de la

misma señal y entrega dicha cuenta, en binario, por las salidas. La señal clr se utiliza

para poner a cero dicha cuenta. La cantidad máxima que se alcance a contardependerá del número de bit de salida que se dispongan.

8.3 Actividades previasDiseñar un contador de 3 bits, debe incluir:

Diagrama de estado

Tablas de estado del sistema

8.4 Desarrollo de la práctica1. Crear un Nuevo Proyecto en ISE®.

2. Crear un módulo en Verilog.

3. El programa del registro universal en Verilog es el siguiente:

module counter(input wire clk,input wire clk,output reg [2:0] q);

always @ (posedge clk or posedge clr)beginif (clr == 1)

q <= 0;else

q <= q + 1;end

endmodule

4. Comprobar que la sintaxis es correcta.

5. Crear un archivo Verilog Text Fixture para realizar una prueba.6. Comprobar que los estados coinciden con los de la tabla del trabajo previo.

Page 37: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 37/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

37

7. Crear un archivo .ucf para describir los pines de entrada y salida en la tarjeta

Basys 2.

8. Implementar el diseño en la FPGA.

Es fácil cambiar los estados de un contador simplemente cambiando el arreglo de la

variable q. Como alternativa, utilizamos un parámetro (en inglés parameter) para un

contador de N-bit donde definimos los estados del contador.

module Contador#(parameter N=4)

(input wire clr,input wire clk,output reg [N-1:0] q);

always @ (posedge clk or posedge clr)

beginif (clr == 1)q <= 0;

elseq <= q + 1;

end

endmodule

Realice los cambios correspondientes en el proyecto que tiene en ISE® e implemente

las modificaciones del programa en la tarjeta.

8.5 Actividades propuestas

8.5.1 Práctica

Diseñe un contador de M-bits que cuente en orden ascendente y descendente.

El reporte debe incluir:

Tabla de verdad de las variables de entrada y salida.

Descripción de las ecuaciones con compuertas lógicas.

Descripción del circuito en Verilog.

Page 38: Practicas

5/9/2018 Practicas - slidepdf.com

http://slidepdf.com/reader/full/practicas-559dfbe913f2b 38/38

 

Universidad Nacional de Ingeniería | Jessica Leiva

38

Verificación del programa en ISE. Utilice las capturas de pantalla (tecla:

PRTSC) para explicar el procedimiento.

Comprobación del funcionamiento mediante simulación en ISim. 

8.5.2 Actividades de aprendizaje

Encierre en un círculo el ítem que describa mejor el enunciado siguiente:

1. Los contadores síncronos (paralelos) eliminan los problemas de retrasos que se

presentan en los contadores asíncronos (rizo) ya que:

a. Se aplican pulsos de entrada de reloj sólo a la primera y a la última etapa.

b. Se aplican pulsos de entrada de reloj sólo a la primera y a la última etapa.

c. Se aplican pulsos de entrada de reloj sólo a la última etapa.

d. Se aplican pulsos de entrada de reloj simultáneamente a cada etapa.

e. Los pulsos de entrada de reloj no se emplean para activar ninguna de las

etapas del contador.

2. ¿Cuál de las siguientes afirmaciones es verdadera?

a. Los eventos asíncronos no ocurren al mismo tiempo.

b. Los eventos asíncronos están controlados por un reloj.

c. Los eventos síncronos no necesitan que los controle un reloj.

d. Sólo los eventos asíncronos necesitan un reloj de control.