Está en la página 1de 7

PROGRAMACION DE LA TARJETA PEGASUS MEDIANTE EL LENGUAJE VHDL Y

SUS DIFERENTES TIPOS DE ARQUITECTURA

CIRO ANGARITA COD: 1090159 ciyoran626@hotmail.com


NELSON RIOS ALZATE COD: 1090109 Nrios_87@hotmail.es

RESUMEN
circuito y es tarea del diseñador elegir la
En el siguiente artículo se consignaran más apropiada.
los pasos realizados para ingresar al  Funcional: Describimos la forma
entorno de programación VHDL en que se comporta el circuito.
Esta es la forma que más se
utilizando el software xlinx-ISE.
parece a los lenguajes de
También se consignaran 4 practicas de software ya que la descripción es
programación en VHDL basadas en los secuencial. Estas sentencias
estilos Funcional y flujo de datos (Data secuenciales se encuentran
flow). dentro de los llamados procesos
en VHDL. Los procesos son
ejecutados en paralelo entre sí, y
PALABRAS CLAVES: VHDL, en paralelo con asignaciones
arquitectura, programación, acrónimo. concurrentes de señales y con las
instancias a otros componentes.
INTRODUCCION  Flujo de datos: describe
asignaciones concurrentes (en
VHDL es el acrónimo que representa la paralelo) de señales.
combinación de VHSIC y HDL, donde  Estructural: se describe el circuito
VHSIC es el acrónimo de Very High con instancias de componentes.
Speed Integrated Circuit y HDL es a su Estas instancias forman un
vez el acrónimo de Hardware Description diseño de jerarquía superior, al
Language. conectar los puertos de estas
Es un lenguaje definido por el IEEE instancias con las señales
(Institute of Electrical and Electronics internas del circuito, o con
Engineers) (ANSI/IEEE 1076-1993) puertos del circuito de jerarquía
usado por ingenieros para describir superior.
circuitos digitales. Otros métodos para  Mixta: combinación de todas o
diseñar circuitos son la captura de algunas de las anteriores.
esquemas (con herramientas CAD) y los
diagramas de bloques, pero éstos no son
prácticos en diseños complejos.

Dentro del VHDL hay varias formas con


las que podemos diseñar el mismo
OBJETIVO GENERAL

Utilizar la programación en VHDL como


herramienta básica para el desarrollo de
circuitos lógicos, identificando los
diferentes tipos de escritura
(arquitectura) que existen para
programar en este lenguaje.

OBJETIVOS ESPECIFICOS

 Distinguir los diferentes tipos de


arquitectura utilizados en la
programación de un circuito
lógico. Una vez que hemos rellenado los tres
 Manejar y comprender los recuadros pinchamos en Next. Ahora nos
diferentes comandos de aparece la ventana de selección del
programación y el orden de estos dispositivo (figura 2.7). En Product
mismos utilizados en los Category ponemos All. En la familia
diferentes tipos de arquitectura. ponemos:
 Desarrollar circuitos lógicos
propuestos en los diferentes tipos
de arquitectura.

DESARROLLO DE LA PRÁCTICA

Para empezar a crear nuestro nuevo


proyecto, pinchamos en File→New
Project... y nos saldrá la ventana New
Project Wizard – Create New Project
como la mostrada en la figura. En ella
pondremos el nombre del proyecto,
indicamos la ruta donde guardaremos el
proyecto.
Para el último recuadro de la ventana,
donde pone Top‐Level Source Type
seleccionaremos HDL, ya que nuestro
diseño lo haremos mediante lenguajes
de descripción de hardware7.
En las dos siguientes ventanas
pinchamos en Next sin rellenar nada y en
la última pinchamos en Finish.
Ya tenemos el proyecto creado y ahora
nos disponemos a crear nuestro diseño.
Para ello creamos una nueva fuente
(fichero) para el proyecto pinchando en
Project→New Source.
Esto hará aparecer una nueva ventana
que nos pedirá que seleccionemos el tipo
de fuente que queremos crear. Como
estamos trabajando en VHDL,
seleccionamos VHDL Module, y
nombramos al fichero. Este paso se Si al terminar el proceso la herramienta
muestra en la figura. nos muestra la siguiente imagen,
debemos seleccionar el fichero que
hemos creado (xxxxxxx), ya sea
pinchando en su pestaña, o ya sea
pinchando en Window→XXXXX.vhd

Ahora nos saldrá una ventana como la


mostrada en la figura. Por defecto, el
nombre de la arquitectura (Architecture
Name) es Behavioral (comportamental).
En esta ventana podemos indicar los Como podemos ver en la figura el
puertos de nuestra entidad. En la figura fichero VHDL contiene una cabecera
han creado dos puertos de salida: led0 y añadida automáticamente por la
led1. Otra alternativa es crearlos herramienta.
nosotros directamente en VHDL. Para
terminar pinchamos Next y luego en
Finish.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 Estos pasos son generales para use IEEE.STD_LOGIC_ARITH.ALL;
empezar cualquier tipo de use IEEE.STD_LOGIC_UNSIGNED.ALL;
proyecto para programar en vhdl, ---- Uncomment the following library
nos dispondremos a realizar 4 declaration if instantiating
practicas omitiendo los pasos ---- any Xilinx primitives in this code.
aquí ya vistos y solo se --library UNISIM;
implementara el código del --use UNISIM.VComponents.all;
circuito lógico. Nos basaremos
es dos practicas de tipo funcional entity funcinal_1 is
y dos practicas de flujo de datos Port ( a : in STD_LOGIC;
(data flow) b : in STD_LOGIC;
c : in STD_LOGIC;
PRACTICA 1 forma funcional: z : out STD_LOGIC);
Circuito digital: end funcinal_1;
architecture Behavioral of funcinal_1 is
begin
process (a,b,c)
begin
if ( a = '1' and b= '1' and c= '0'then
z<= '1';
else z<= '0';
if (a= '1' and b='1' and c= '1') then
z<= '1';
else z<= '0';
end if;
end if;
Codigo en VHDL end process;
end Behavioral;
b : in STD_LOGIC;
PRACTICA 2 forma funcional c : in STD_LOGIC;
Circuito digital d : in STD_LOGIC;
z : out STD_LOGIC);
end funcional_20;

architecture Behavioral of funcional_20 is


begin
process (a,b,c,d)
begin

if b= '0' and c= '0' and d= '0' and a = '1'


then
z<= '1';
Código en VHDL else z<= '0';
if b= '1' and c= '0' and d= '0' and a = '0'
then
z<= '1'
else z<= '0';

if b= '1' and c= '0' and d= '0' and a = '1'


then
z<= '1';
else z<= '0';
if b= '0' and c= '1' and d= '1' and a = '0'
then
z<= '1';
else z<= '0';

if b= '0' and c= '1' and d= '1' and a = '1'


then
z<= '1';
else z<= '0';
if b= '1' and c= '1' and d= '1' and a = '0'
then
library IEEE; z<= '1';
use IEEE.STD_LOGIC_1164.ALL; else z<= '0';
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL; if b= '1' and c= '1' and d= '1' and a = '1'
then
---- Uncomment the following library z<= '1';
declaration if instantiating else z<= '0';
---- any Xilinx primitives in this code.
--library UNISIM; if a= '0' and b ='1' and c = '1' and d ='0'
--use UNISIM.VComponents.all; then
entity funcional_20 is z<= '1';
Port ( a : in STD_LOGIC;
else z<= '0'; PRACTICA 3 forma; flujo de datos
(data flow)
if a= '1' and b= '0' and c= '0' and d= '1' Circuito digital
then
z<= '1';
else z<= '0';

if a= '1' and b= '0' and c= '1' and d= '0'


then
z<= '1';
else z<= '0'; Codigo en VHDL

if a = '1' and b= '1' and c= '0' and d= '1'


then
z<= '1';
else z<= '0';

if a= '1' and b= '1' and c= '1' and d= '0'


then
z<= '1';
else z<= '0';

if a= '0' and b= '1' and c= '0' and d= '1'


then
z<= '1'; library IEEE;
else z<= '0 use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
end if; use IEEE.STD_LOGIC_UNSIGNED.ALL;
end if;
end if; ---- Uncomment the following library
end if; declaration if instantiating
end if; ---- any Xilinx primitives in this code.
end if; --library UNISIM;
end if; --use UNISIM.VComponents.all;
end if;
end if; entity angarita is
end if; Port ( a : in STD_LOGIC;
end if; b : in STD_LOGIC;
end if; c : out STD_LOGIC);
end if; end angarita;

end process; architecture Behavioral of angarita is


end Behavioral; begin
c<= a or b ;
end Behavioral;
Una vez terminado el código
PRACTICA 4, flujo de datos porcedemos a asignar pines
Circuito Digital correspondientes y sintetizamos una vez
sintetizado programamos nuestra FPGA
y comprobar los resultados.

CONCLUSIONES

 Se identificaron los diferentes


tipos de arquitectura en el
Código en VHDL lenguaje de programación VHDL.

 Se implementaron 4 practicas
tomando como formas de
arquitectura los tipos: funcional y
flujo de datos.

 Se puede observar que utilizar el


lenguaje vhdl no es difícil pero si
de cuidado y de práctica.

 Nos ahorra tiempo al momento de


realizar circuitos digitales ya que
solo se describen los tipos de
elementos a utilizar, arrojando los
----------------------------------------- resultados esperados.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; BIBLIOGRAFIA
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL; Universidad Rey Juan Carlos.
Ingeniería de Telecomunicación,
---- Uncomment the following library Electrónica Digital II, manual de la
declaration if instantiating tarjeta de desarrollo.
---- any Xilinx primitives in this code.
--library UNISIM; Digilent PEGASUS Board, manual de
--use UNISIM.VComponents.all; referencia,
entity lapiz is datasheet_pegasus_XC2S50.
Port ( a : in STD_LOGIC;
b : in STD_LOGIC; http://www.xilinx.com/ise/logic_design_
c : out STD_LOGIC); prod/webpack.htm
end lapiz;
architecture Behavioral of lapiz is http://www.model.com/
begin
c<= a and b ; http://www.digilentinc.com/Data/Product
end Behavioral; s/PEGASUS/PEGASUS-brochure.pdf

También podría gustarte