Académique Documents
Professionnel Documents
Culture Documents
Diseo VLSI
Laboratorio #1
Integrantes: Alexis Gngora Rayhra Pozo
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
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.
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%
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.
Sonar:
Contador 100Hz:
And
Buffer
Restador
Comparador:
10
Barrido de displays:
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
Simulacin:
*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
Simulacin:
*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
Simulacin:
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
CUENTA=CUENTA+1
OSC=NOT(OSC)
Simulacin:
*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
16
*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
17
DEC=0000, UNI=0110:
*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:
19
20
INICIO
DISPLAY=CEN NUMERO=100
DISPLAY=DEC NUMERO=010
DISPLAY=UNI NUMERO=001
Simulacin:
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.-
23
24
25
26
Cdigo .Buffer.-
27
28
29
30
31
32