Vous êtes sur la page 1sur 32

ESCUELA POLITECNICA DEL EJRCITO

Diseo VLSI
Laboratorio #1
Integrantes: Alexis Gngora Rayhra Pozo

06 de Enero del 2013

Contenido
1.-Tema ......................................................................................................................................... 3 2.- Objetivos.- ................................................................................................................................ 3 2.1.- Objetivo General: .............................................................................................................. 3 2.2.- Objetivo Especifico:........................................................................................................... 3 3.- Marco Terico: ......................................................................................................................... 3 FPGA.- ........................................................................................................................................ 3 Lenguaje VHDL: ......................................................................................................................... 4 Cdigo Concurrente.- ............................................................................................................ 4 4.-Desarrollo:................................................................................................................................. 5 4.1.- Enunciado:......................................................................................................................... 5 4.2.- Diagrama de Bloques: ....................................................................................................... 5 4.3.- Ingeniera Conceptual: ...................................................................................................... 5 4.4.- Ingeniera Bsica: .............................................................................................................. 8 4.5.- Ingeniera Detalle: ........................................................................................................... 11 5.- Conclusiones y Recomendaciones: ........................................................................................ 21 6.- Bibliografa: ............................................................................................................................ 22 7.- Anexos: ................................................................................................................................... 23 Cdigo .vhdl: Oscilador.- ......................................................................................................... 23 Cdigo .vhdl: Sonar.- ............................................................................................................... 23 Cdigo .vhdl: Contador.- ......................................................................................................... 25 Cdigo .vhdl: MiAnd.- .............................................................................................................. 26 Cdigo .Buffer.- ....................................................................................................................... 27 Cdigo .vhdl: Restador.- .......................................................................................................... 27 Cdigo .vhdl: Decoder Binario a BCD.- .................................................................................... 28 Cdigo .vhd: Decoder BCD a 7 segmentos.- ............................................................................ 29 Cdigo .vhd: Comparador.- ..................................................................................................... 29 Cdigo .vhd: Barrido.- ............................................................................................................. 30 Cdigo .vhd: Unin de bloques.- ............................................................................................. 30

1.-Tema
Introduccin en programacin VHDL, en Xilinx ISE 10.1

2.- Objetivos.2.1.- Objetivo General:


Mediante el uso de la herramienta de desarrollo Xilinx ISE 10.1 disear, implementar y simular un sistema de nivel, describir el funcionamiento del mismo mediante programacin en cdigo VHDL.

2.2.- Objetivo Especifico:


Implementar un proyecto individual en Xiling por cada bloque del circuito. Familiarizarnos con el uso de las tarjetas FPGA de la familia Spartan 3E.

3.- Marco Terico:


FPGA.-

Figura 1.- Tarjeta FPGA

Un FPGA (Field Programmable Gate Array mediante sus siglas en ingles), es un circuito integrado, el mismo que puede configurarse mediante programacin para poder realizar cualquier funcin lgica, contiene bloques los mismos que constan de interconexiones, que son programables para implementar cualquier funcin. Las aplicaciones que se les dan a estos 3

circuitos integrados, se basan bsicamente en los ASICs, una de sus mayores ventajas es que son reprogramables, por lo cual son sumamente flexibles a la hora de disear una aplicacin. Entre sus desventajas podemos encontrar que tiene un gran consumo de potencia y que su eficiencia disminuye al no poder trabajar con sistemas complejos.

Lenguaje VHDL:
El lenguaje VHDL (Very high speed integrated circuit) fue creado con el propsito de especificar y documentar circuitos y sistemas digitales utilizando un lenguaje formal. El lenguaje VHDL nos ayuda a entender la funcionalidad y la organizacin de sistemas de hardware digital. Sus ventajas son: Permite disear y modelar un sistema en varios niveles de abstraccin: flujo de datos, estructural, algortmico. Una descripcin en VHDL es independiente de la implementacin hardware final del proyecto. Puede ser sintetizado sobre una PLD o un ASIC. Incluso puede servir para simulacin exclusivamente. Permite el diseo Top-Down y modular, es decir, dividir un sistema complicado en subsistemas ms sencillos, tantas veces como sea necesario hasta poder resolver cada mdulo (subsistema) por separado.1

Cdigo Concurrente.El cdigo concurrente se caracteriza pues sus sentencias se ejecutan simultneamente en la simulacin, por ende ninguna sentencia tiene prioridad sobre las otras. Se utilizan especialmente para el modelado del hardware pues pueden describir adecuadamente su comportamiento. Deben de formar parte siempre del cuerpo de arquitecturas o de bloques. Las construcciones concurrentes comnmente se dividen en: Procesos Asignaciones concurrentes a seal Llamadas concurrentes a procedimientos Bloques Instanciaciones de componentes

Caractersticas del lenguaje VHDL. Recuperado el Sabado 15 de Diciembre del 2012 de: http://serdis.dis.ulpgc.es/~itis-dl/Teoria%20VHDL/Lenguaje%20VHDL%20EUP%20Teruel.pdf

4.-Desarrollo:
4.1.- Enunciado:
Disese un circuito electrnico que indique la cantidad de lquido de un gran tanque de almacenamiento en un despliegue de siete segmentos. El despliegue muestra la cantidad de lquido en el tanque en porcentajes del 10% al 90% con incrementos de 10%. Debe sonar una alarma si el nivel de lquido cae por debajo de 10% o excede el 90%. El nivel se mide con un dispositivo de sonar que proporciona pulsos, como se muestra en la figura.

Figura 2.- Representacin grfica del enunciado

4.2.- Diagrama de Bloques:

Figura 3.- Diagrama de bloques total del circuito

4.3.- Ingeniera Conceptual:


En nuestro sistema de nivel tenemos como bloque principal:

Figura 4.- Diagrama de bloques externo del sistema

Donde: OSCILADORSeal de oscilacin general del sistema RESET Reset total del sistema SELECTOR Entrada para seleccionar el modo del sonar A_e Alarma DISP_ver Dato para el barrido de los displays activa Activadores para el barrido de los displays

Tabla del porcentaje de nivel del tanque segn el tiempo de pulso de respuesta: Tiempo (ms) 60 70 80 90 100 110 120 130 140 150 160 Calculo de la frecuencia del oscilador: Porcentaje 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%

Tabla 1.- Tabla de porcentaje de nivel

Oscilador: Este primer bloque tiene la funcin de generar una seal de 100 Hz la cual precisamos para realizar la cuenta de los pulsos recibidos. Internamente corresponde a un divisor de frecuencia la cual utiliza la seal de reloj del FPGA. Sonar: 6

Este bloque simula el funcionamiento del sonar de entrada de nuestro sistema, mediante los interruptores de entrada, podemos escoger 10 combinaciones distintas para recrear la seal de retorno del sonar. Contador: Como segundo bloque interno de nuestro circuito tenemos un Contador al cual ingresa una seal de oscilador con frecuencia de 100Hz. Este tiene la funcin de contar los pulsos de oscilacin desde 0 hasta 99. Tomamos como referencia en esta seccin el flanco descendiente de la seal. MiAnd: Este bloque realiza la funcin de un circuito comparador el cual tiene como entradas la seal de oscilacin y la seal de recepcin del sonar. Cuando ambas seales son iguales se activa la salida A=B, la cual enva una seal de enable para el buffer. Buffer: El bloque del buffer en nuestro diseo sirve para tener un dato valido de la cuenta del bloque del contador, cuando la seal de enable (tomado por flanco ascendente) est en 1 lgico, el buffer transmite el dato que tiene en la entrada hacia la salida. Restador: En esta parte del diagrama se realiza la operacin aritmtica:

Donde A representa un valor fijo de 16 en binario (10000) y la entrada B es el valor del dato que se recibe del buffer. Comparador: Tenemos un bloque comparador el cual activa la alarma cuando se cumple alguna de estas dos condiciones: 1) Cuando el nivel del tanque exceda el 90% 2) Cuando el nivel del tanque este por debajo del 10% Por lo cual procedemos a comparar el valor acondicionado de la salida del restador (variable datores). Si: Datores<1, o Datores>9 A=1. De lo contrario: A=0. Decoder Binario a BCD: Este como su nombre lo indica realiza la respectiva conversin del dato de la salida del restador (datores) de binario a BCD, nos devuelve por separado el valor de unidades en BCD y de decenas en BCD por separado como dos dgitos. Esto nos es til para poder representar la informacin en los displays correctamente. 7

Decoder BCD a 7 segmentos: Tenemos un bloque de decodificacin de BCD a 7 segmentos, estos respectivamente convierten la seal que ingresa en BCD a una salida de 7 dgitos los cuales realizarn la activacin respectiva de los displays de centenas y decenas, el display de unidades siempre estar encerado puesto que los valores del tanque aumentan en pasos de 10 en 10 de 0 hasta 100. Barrido de displays: En este bloque nos ayuda a la representacin visual de la informacin en la tarjeta. Dado que la tarjeta FPGA no consta con displays incorporados, debemos utilizar los pines de los Headers de la tarjeta para representar externamente el nivel del tanque mediante displays. La tarjeta consta de 3 headers con 12 pines libres en total (adems de los de VCC y GND), por lo cual para poder visualizar en los tres displays la informacin necesitamos un programa de barrido.

4.4.- Ingeniera Bsica:


Oscilador:

Figura 5.- Representacin grfica del Oscilador

Sonar:

Figura 6.- Representacin grfica del Sonar

Contador 100Hz:

Figura 7.-Representacin grfica del contador

And

Figura 8.-Representacin grfica de compuerta AND

Buffer

Figura 9.-Representacin grfica del buffer

Restador

Figura 10.-Representacin grfica del Restador

Decoder Binario a BCD:

Figura 11.-Representacin grfica del decoder Binario a BCD

Decoder BCD a 7 segmentos:

Figura 12.-Representacin grfica del decoder BCD a 7 segmentos

Comparador:

Figura 13.-Representacin grfica del Comparador

10

Barrido de displays:

Figura 14.- Representacin grfica bloque de barrido

4.5.- Ingeniera Detalle:


Comparador: Entradas: Salidas: A Datores(3:0)

* Ver anexo: Cdigo .vhd: Comparador

11

Diagrama de flujo: Este elemento nos sirve para hacer comparaciones de diferentes datos.

INICIO

A>B
SI NO

MAYOR
SI

A<B
NO

MENOR

IGUAL

Figura 15.- Diagrama de flujo del Comparador

Simulacin:

Figura 16.- Simulacin funcionamiento del Comparador

Restador: Entradas: Salidas: Datores Dato

*Ver Anexo: Cdigo .vhd Restador Este elemento nos servir para realizar una resta de la cuenta y tener el valor en porcentaje del tanque. 12

Diagrama de flujo:
INICIO

DATORES= 16-DATO

FIN

Figura 17.- Diagrama de flujo del restador

Simulacin:

Figura 18.- Simulacin funcionamiento del Restador

OSCILADOR: Entradas: Salidas: CLK_OUT RS CLK_IN

*Ver anexo: Cdigo .vhd: Oscilador Este oscilador nos permitir tener una seal de los pulsos que compararemos con el sonar. Diagrama de flujo:

13

C_max=factor/2

Cont=0

Si cont<c_max

Cont=cont+1

Cont<factor

Out=0

Cont=cont+1

Out 1

Figura 19.-Diagrama de flujo del oscilador

Simulacin:

Figura 20.- Simulacin funcionamiento del Oscilador

CONTADOR Entradas: Salidas: CUENTA CLK_OUT RST

14

*Ver anexo: Cdigo .vhd: Contador Este elemento nos sirve para hacer la cuenta de cuantos pulsos existen nos servir para realizar la comparacin con el sonar. Diagrama de flujo:
INICIO

NO

NO OSC

SI NO OSC=0 SI CUENTA <100

SI

CUENTA=CUENTA+1

OSC=NOT(OSC)

Figura 21.- Diagrama de flujo del contador

Simulacin:

Figura 22.- Simulacin funcionamiento del Contador

BUFFER Entradas: Cuenta RST 15

E CLK Salidas: Dato

*Ver anexo: Cdigo .vhd Buffer Este elemento nos sirve sencillamente para dejar pasar un dato cuando activamos el enable. Diagrama de flujo:

INICIO

E=1

NO

DATO=0

SI

DATO=CUENTA

Figura 23.- Diagrama de flujo del buffer

Figura 24.- Simulacin funcionamiento del Buffer

16

Decoder Binario a BCD: Entradas: Salidas: DEC UNI DATORES

*Ver anexo: Cdigo .vhd Decoder Binario a BCD Para poder comprobar el correcto funcionamiento de nuestro mdulo, realizamos la simulacin correspondiente con la herramienta Test Bench Waveform. Aqu asignamos mediante pulsos diferentes valores a la variable de entrada BIN, y observamos su comportamiento a la salida. Diagrama de flujo:
INICIO

SI

DATORES< o =9?

NO

DECENAS=0 UNI=DATORES

DECENAS=1 UNI=DATORES+ 6

FIN

Figura 25.- Diagrama de flujo de Decoder Binario a 7 segmentos

Simulacin: Para BIN=0110:

17

Figura 26.- Simulacin funcionamiento del Decoder Binario a BCD

DEC=0000, UNI=0110:

Figura 27.- Simulacin funcionamiento del Decoder Binario a BCD

Decoder BCD a 7 Segmentos: Entradas: Salidas: DEC_7 UNI_7 DEC UNI

*Ver anexo: Cdigo .vhd: Decoder BCD a 7 Segmentos Para comprobar el correcto funcionamiento de este bloque realizamos una simulacin en Test Bench Waveform, podemos observar que con las respectivas entradas, las salidas cumplen con la tabla de verdad para displays de nodo comn.

18

Tabla de verdad:

Tabla 2.- Tabla de verdad para display de nodo comn

DEC= 1000, UNI=0100

Figura 28.- Simulacin funcionamiento del Decoder BCD a 7 segmentos

19

Figura 29.- Simulacin funcionamiento del Decoder BCD a 7 segmentos

Barrido de Displays: Entradas: Salidas: DISPLAY NMERO CEN DEC UNI

*Ver anexo: Cdigo .vhd: Barrido Diagrama de flujo:

20

INICIO

DISPLAY=CEN NUMERO=100

DISPLAY=DEC NUMERO=010

DISPLAY=UNI NUMERO=001

Figura 30.- Diagrama de flujo del Barrido de displays

Simulacin:

Figura 31.- Diagrama de flujo del Barrido de displays

Sonar: Entradas: Salidas: PULSO CLK_IN RS ENTRADA

*Ver anexo: Cdigo .vhd: Sonar

5.- Conclusiones y Recomendaciones:


Es imprescindible observar y determinar las caractersticas de la tarjeta con las que se va a trabajar, adems para realizar la asignacin de los pines es preferible basarse en el manual de usuario pues en varias ocasiones los pines marcados en la tarjeta FPGA estn errados.

21

Es importante recordar que dentro de los procesos se deben utilizar variables auxiliares que almacenan el valor que posteriormente fuera del proceso ser asignado a la salida del mdulo, evitando as ambigedades en el cdigo y errores de compilacin. Se comprob el funcionamiento de cada bloque individualmente antes de realizar la unin de estos, de esta forma podemos asegurarnos de que estn funcionando correctamente. Se recomienda realizar un diagrama esquemtico a mano en primer lugar donde se encuentre, el cableado y la distribucin de los diferentes mdulos, pues esta ser de gran utilidad para evitar confusiones y errores de conexin al realizar el programa. El comando convert a entero, nos resulto bastante til en nuestro primer proyecto por la razn que nos permite convertir de manera sencilla nuestras variables y realizar las operaciones en general con mayor facilidad. Se recomienda desarrollar los mdulos de una forma genrica, con el fin de poderlos utilizar en otras aplicaciones es decir poder incluirlos en varias partes, sin necesidad de cambiar su cdigo.

6.- Bibliografa:
Marco terico, definicin de FPGA: Recuperado el Martes 11 de Diciembre del 2012 de: http://alt1040.com/2010/09/fpga-y-el-sorprendente-poder-del-hardware-reconfigurable Marco terico, definicin y caractersticas de lenguaje VHDL: Recuperado el Sbado 15 de Diciembre del 2012 de: http://serdis.dis.ulpgc.es/~itisdl/Teoria%20VHDL/Lenguaje%20VHDL%20EUP%20Teruel.pdf http://www.dte.uvigo.es/vhdl/c5.html

22

7.- Anexos:
Cdigo .vhdl: Oscilador.-

Cdigo .vhdl: Sonar.-

23

24

Cdigo .vhdl: Contador.-

25

Cdigo .vhdl: MiAnd.-

26

Cdigo .Buffer.-

Cdigo .vhdl: Restador.-

27

Cdigo .vhdl: Decoder Binario a BCD.-

28

Cdigo .vhd: Decoder BCD a 7 segmentos.-

Cdigo .vhd: Comparador.-

29

Cdigo .vhd: Barrido.-

Cdigo .vhd: Unin de bloques.-

30

31

32

Vous aimerez peut-être aussi