Tutorial FPGA en VHDL

Tutorial FPGA en VHDL: Parte 2, comparador de 2 bits y simulación En esta oportunidad realizaremos el diseño en VHDL pa

Views 75 Downloads 2 File size 745KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Tutorial FPGA en VHDL: Parte 2, comparador de 2 bits y simulación

En esta oportunidad realizaremos el diseño en VHDL para un comparador de 2 bits basado en el tutorial anterior, con la peculiaridad que utilizaremos vectores para el ingreso de señales, y además realizaremos la simulación en ISIM. Por último he decidido seguir el ejemplo del libro de Chu, el cual es una excelente referencia para aprender VHDL, y además tiene su versión para Verilog.

Programa a realizar Se implementará un comparador de 2 bits(figura 1) basándonos en el programa realizado en el tutoral 1 (comparador de 1 bit).

Figura 1. Comparador de 2 bits. Fuente: libro de Chu En este caso las entradas son dos vectores (a y b) y la salida es "aeqb" (a equal b). Los módulos eq1 se basan en el tutorial anterior. Plataforma

de

Utilizaremos la plataforma de desarrollo Basys2 (figura 2)

desarrollo

Figura 2. Placa de desarrollo Basys 2 A diferencia del elbert, esta placa tiene 8 switches y 4 pulsantes de ingreso, 8 leds de salida, un display de 7 segmentos de 4 dígitos, entrada PS2 para teclado y mouse, salida VGA para monitor, 16 salidas de propósito general, y un cristal de 100MHz ( el elbert tiene un cristal de 12MHz). Es

1. 2. 3.

una

placa

más

potente

que

el

elbert,

pero

con

las

siguientes

desventajas:

Precio elevado ($89, lo cual más el envío al Ecuador puede llegar a los $100). El código del microcontrolador que programa la memoria del FPGA no es abierto.

Aunque se tengan más periféricos de salidas, esto puede llegar a ser malo, pues según se avanza en complejidad de los proyectos en VHDL, se requieren más salidas o ingresos, y no siempre requeriremos los periféricos que vienen por defecto en la placa. Por lo tanto, al crear el proyecto en ISE utilizaremos el dispositivo Spartan 3E XC3S250E en empaquetado CP132 con velocidad 4 (figura 3).

Figura 3. Configuración de proyecto para Basys2 Programación en VHDL Primero utilizaremos el código del comparador de 1 bit del libro de Chu para cada módulo eq1: library ieee; use ieee.std_logic_1164.all; entity eq1 is port( i0 , i1: in std_logic; eq: out std_logic); end eq1; architecture sop_arch of eq1 is signal p0 , p1 : std_logic; begin eq e0); eq_bit1_unit : entity work.eq1(sop_arch) port map( i0=>a(1) , i1=>b(1), eq=>e1); aeqb test_in0 , b=>test_in1 , aeqb=>test_out); process begin test_in0