Vous êtes sur la page 1sur 3

Diseño Jerárquico en VHDL y Vivado, Sistemas

Combinacionales y Secuenciales
Resumen- El presente Un conversor El diagrama de bloques Tabla II
documento describe el diseño VALORES DEL SELECTOR DEL CO
hexadecimal a código de 7 del módulo ALU, queda de
y simulación de 6 módulos de segmentos y la siguiente forma: rst opc C
propósitos específicos Un módulo que permita 0 110 D
utilizando VHDL, usando el 0 111 A
software de Vivado Xilinx
seleccionar los 3 módulos de
1 xxx
para la implementación en funcionamiento.
una FPGA BAYSYS 3 Todos estos modulos
ARTIX 7. Estos 6 módulos seran diseñados en el El diagrama de bloques
serán acoplados para la software de Vivado Xilinx e del contador, queda de la
selección de una ALU, un full implementados en la tarjeta siguiente forma:
adder y un contador FPGA BASYS 3 ARTIX 7.
ascendente y descendente,
mediante un selector externo DISEÑO DEL PROYECTO
y mostrar sus resultados en
display de 7 segmentos. Fig 2. Módulo de la
TOP final ALU
El diagrama de bloques
INTRODUCCIÓN presentado en la figura 1 Full adder de 4 bits
muestra el diseño final del El full adder no es más
La elaboración de circuito a implementar en la
módulos y su empaquetado que una suma completa que
tarjeta, el cual integra los 6 consta de 2 números
son de gran ayuda al módulos, para dar la
momento de optimizar entrantes de 4 bits y un
elección al usuario de una acarreo inicial de un bit, la
tiempo y recursos ya que ALU, un full adder y un Fig 4. Módulo del
permite su reutilización en respuesta es la suma de contador
contador, mientras la estos tres valores,
diversos proyectos sin respuesta se muestra en un
mayor problema. A su vez, obteniendo una señal de 5
display de 7 segmentos. bits siendo el bit de mayor Generador de reloj de 1Hz
la utilización de jerarquías
valor el acarreo final. Este módulo tiene el fin
en la elaboración de
El diagrama de bloques de generar una señal de
proyecto en VHDL es de
del full adder, queda de la reloj de 1Hz a partir de la
suma importancia ya que
siguiente forma: señal de reloj interna del a
permite aplicar “divide y
FPGA de 100MHz. Se
vencerás”, permitiendo así
utiliza un contador Para este
probar módulo a módulo en
generador, se cuentan 100K
busca de fallas y errores que
ciclos de la señal original,
se puedan corregir a tiempo,
en los primeros 50K se
unificando diversos módulos
coloca la señal de salida en
funcionales para realizar
cero y en los últimos 50 000
una tarea en específico.
000 se coloca en 1. El
período de la señal final será
En el siguiente
de 1 segundo, el cual
documento se detallan la Fig 1. Diagrama de posteriormente se utilizará
creación e implementación bloques el top final del para el contador. El
de 6 módulos: ALU, Full proyecto diagrama de bloques del
Adder, Contador
Fig 3. Módulo full generador, queda de la
ascendente/descendente, ALU de 4 bits adder siguiente forma:
generador señar de 1 Hz,
MUX 4/1 y un decoder HEX El selector OPER consta
a 7 segmentos, con sus de 3 bits, en el cual el bit Contador ascendente y
respectivos esquemas. mayor debe encontrarse en descendente de 4 bits
bajo para que seleccione el Este módulo tiene el fin
DESCRIPCIÓN DE PROBLEMA módulo de la ALU, los otros de realizar la cuenta de 4
dos elije la operación de la bits ascendente y
Se necesita diseñar e ALU entre los numero A y
implementar módulos que descendente, consta de 3
B, mediante la siguiente entradas, el reset, el reloj y
trabajen de manera tabla.
concurrente, los módulos a un selector de 3 bits en el
crear son: cual si esta en alto el mayor
Tabla I
Un circuito ALU de 4 bit DE LA
SELECCIÓN DE LA OPERACIÓN indica
ALU que se está Fig 5. Módulo del
escogiendo el contador, si el generador
bits. OPER(1:0) OPERACIÓN
Un circuito full adder de ultimo bit está en bajo
00
4 bits. 01 escoge el contador Decoder hexadecimal a 7
Un contador ascendente 10 A descendente
AND B y si el ultimo segmentos
11 A bit
XORestá
B en alto escoge el
y descendente de 4 bits. La implementación de
Un circuito generador de contador ascendente. un decodificador
un reloj de 1Hz. hexadecimal a 7 segmentos
permitiría la presentación al
usuario del resultado del El diagrama de bloques los puertos y características
módulo elegido, en un del generador, queda de la que posee la tarjeta Basys 3
display de 7 segmentos, siguiente forma: Artix 7 antes de ser
utilizando una tabla de implementado el diseño
verdad. general.
Tabla III
TABLA DE VALORES DECODER HEX-7 SEGMENTOS
Realizar el esquema
hex_in seven_seg(BIN) básico para la jerarquía de
0 1000000 módulos es muy importante
1 1111001 ya que facilitará la
2 0100100
3 0110000 implementación en VHDL,
4 0011001 permitiendo una visión total
5 0010010 del proyecto y en detalle, a
6 0000010
7 0111000
los puertos, señales y
8 0000000 módulos que lo componen.
9 0010000 Fig 7. Módulo del mux
A 0100000
B 0000011
REFERENCIAS
C 0100111 [1] B. Mealy and F. Tappero, “Free
D 0100001 CONCLUSIONES range VHDL,” vol. 53, pp.
E 0000100 1689–1699, 2013..
F 0001110
Con la técnica “divide y
OTHERS 1111111 vencerás” mencionada en
clase nos ha permitido
separar de manera correcta
cada módulo y probarlos con
su propio test beanch
El diagrama de bloques mediante simulación, con lo
del generador, queda de la cual evitamos errores eh
siguiente forma: implementamos una
integración uniforme.
Para la realización del
generador, es muy
importante tomar en cuenta
la frecuencia que maneja la
tarjeta, en este caso de
100MHz. Para este
generador, se cuentan 100K
ciclos de la señal original,
en los primeros 50K se
Fig 6. Módulo del coloca la señal de en cero y
decoder hexadecimal a en los últimos 50K se coloca
7 segmentos en 1.

Multiplexor 4 a 1 La realización del


El módulo del mux de 3 contador se implementó
bits, toma los 2 bits mas mediante código secuencial
significativos para la ya que se validó el conteo
selección de los módulos: cíclico tanto ascendente
ALU, full adder y el como descendente con la
contador. El bit menos función if-else, lo cual
significativo se utiliza como facilitó la configuración del
bit de acarreo dentro del full mismo.
adder, o como selector
ascendente o descendente Los tests bench son una
dentro del contador. herramienta muy valiosa al
Tabla IV momento de implementar
códigoMUX
TABLA DE VALORES DEL SELECTOR en 4VHDL
A1 ya que nos
Sel_mux permiten conocer el
000 comportamiento del módulo
001 a las diversas señales de
010 entrada para la corrección
011
100 oportuna de errores.
101
110 RECOMENDACIONES
111
Revisar de manera
minuciosa las referencias de

Vous aimerez peut-être aussi