programacion fpgas con vhdl´ · • vhdl (vhsic hardware description language, lenguaje de...
TRANSCRIPT
PROGRAMACION FPGAs CON VHDL
Maximino Pena Guerrero1
www.max.esimez.ipn.mx
Escuela Superior de Ingenierıa Mecanica y Electrica del Instituto Politecni-co Nacional, Unidad Profesional Adolfo Lopez Mateos, Zacatenco, MexicoDistrito Federal.
1[portada.tex][MPG150713]
1
UNIDAD 1: INTRODUCCION Y CONCEPTOS BASICOS1
1[unidad1.tex][MPG140813]
1
OBJETIVO:1
Conocer tecnicas actuales de diseno de circuitos digitales.
Comprender el funcionamiento del lenguaje VHDL.
Entender el por que disenar con software.
Conocer tecnicas de simulacion de circuitos electricos.
Conocer la filosofıa del paralelismo.
Comparar las plataformas de desarrollo (estaciones de trabajo UNIX,MAC, NT).
Comparar las viejas tecnicas de diseno con las actuales.
Desarrollar interfases VHDL ASIC para PICs, DSPs, Microcontroladoresy Microcomputadores.
Implementar un sistema digital de control practico.
1[objetivo.tex][MPG300713]
1
PROBLEMATICA:1
• Cuando sale al mercado un nuevo dispositivo digital en hardware es ne-cesario escribir nuevas rutinas de entrada y salida en lenguaje ensamblador.
• Este proceso es repetitivo para cada nuevo diseno de hardware.
• Funciones VHDL escritas para dispositivos viejos se tienen que reescribirutilizando las nuevas instrucciones de la nueva CPU desperdiciando tiempo,dinero, y esfuerzo.
• Para resolver este problema escribimos una biblioteca de funciones basi-cas en VHDL las cuales seran independientes del nuevo sistema digital, porejemplo un microcontrolador, o procesador central.
1[problematica.tex][MPG300713]
1
TEMARIO VHDL1
• Introduccion.• Descripcion de diseno.• Tipos de datos.• Expresiones.• Instrucciones secuenciales.• Instrucciones concurrentes.• Registros e inferencias de tercer estado.• Descripciones de circuitos.• Directivas.• Construcciones VHDL.• Casos de estudio.• Implementacion practica.
1[temariovhdl.tex][MPG300713]
1
BIBLIOGRAFIA VHDL1
• Ashenden, Peter J., The Designer’s Guide to VHDL, Second Edition,Acadenic Press, MK Morgan Kaufmann Publishers, USA, 2002. 759 pgs.• Ashenden Peter J., The Designer´s Guide to VHDL, Second Edi-
tion, Acadenic Press, MK Morgan Kaufmann, . Publishers, USA, 2002 . •Bhasker J., A VHDL Primer, Third Edition, Prentice Hall, USA, 1999 .• Pellerin, David, Douglas Taylor VHDL: Made Easy, Prentice Hall,
USA, 1997. 419 pgs.• Stewart, James W., Chao-Ying-Wang, Digital Electronics Laboratory
Experiments Using Xilinx XC95108 CPLD with Xilinx Foundation:
Design and Simulation Software, Prentice Hall, USA, 2001. 328 pgs.• Woods Roger, John McAllister, Ying Yi, Gaye Lightbody, FPGA-based
Implementattion of Digital Signal, Processing, Addison-Wiley, 2008.• Xilinx, The Programmable Logic Data Book, Xilinx Inc., USA .• Xilinx, VHDL: Reference Guide, Xilinx Inc., USA, 1999.
1[bibliovhdl.tex][MPG300713]
1
BIBLIOGRAFIA: PROCESAMIENTO DE SENALES DIGITALES1
• Embree Paul M. Damon Danieli, C++Algorithms for Digital Signal
Processing, 2nd. ed., Prentice Hall PTR, 1999.
• Embree Paul M., C Algorithms for Real Time DSP, Prentice HallPTR, 1995.
• Ingle Vinay K., John G. Proakis., Digital Signal Processing using
MATLAB, 2nd. ed., CENEA- GE Learning, Bookware Companion Series,2007.
1[bibliodsp.tex][MPG300713]
1
LENGUAJES DE DESCRIPCION DE HARDWARE: ASM1
• ASM (Algorithmic State Machine), es un metodo para disenar maqui-nas de estado finito
• Util para representar diagramas de circuitos integrados digitales.
• Un diagrama ASM es parecida a un diagrama de estados, pero menosformal y facil de entender.
• Una carta ASM es un metodo que describe las operaciones secuencialesde un sistema digital.
• Clair 2 presenta por primera vez la notacion de la carta ASM, la cual fueinventada por T. E. Osborne a principios de los 60s para Hewlett Packard3.
1[asm.tex][MPG300713]2Clair, C. R., Designing Logic Systems Unsing State Machines, McGraw-Hill, New York, 1973.3Arnold, Mark Gordon, Verilog Digital Computer Design: Algorithms into Hardware, Prentice Hall, 1999, p-59
1
LENGUAJES DE DESCRIPCION DE HARDWARE: VERILOG1
• Verilog fue desarrollado a principos de los 80s por Philip Moorby paraCadence Design Systems.
• Se convierte en estandard de dominio publico conocido como IEEE1364.
• Su sintaxis es parecida a C, la cual lo hace popular en America. 2.
1[verilog.tex][MPG300713]2Arnold, Mark Gordon, Verilog Digital Computer Design: Algorithms into Hardware, Prentice Hall, 1999, pp. 4-5
1
LENGUAJES DE DESCRIPCION DE HARDWARE: VHDL1
• VHDL (VHSIC Hardware Description Language, Lenguaje de des-cripcion de hardware para circuitos integrados de alta velocidad), es unlenguaje de descripcion de hardware desarrollado por el Departamento deDefensa (Departament of Defence, DOD) de USA. 2.• Bien definido por el IEEE (Institute of Electrical and Electronics Engi-
neers) (ANSI/IEEE 1076-1993).• Su sintaxis de VHDL es parecida al lenguaje PASCAL.• Se puede utilizar de una manera general para describir cualquier circuito.• Pero se utiliza principalmente para programar PLDs (Programable Lo-
gic Device, Dispositivo Logico Programable), FPGAs (Field Programma-
ble Gate Array), ASICs (Application Specific Integrared Circuit), entreotros.
1[vhdl.tex][MPG300713]2Arnold, Mark Gordon, Verilog Digital Computer Design: Algorithms into Hardware, Prentice Hall, 1999, p. 65
1
VENTAJAS DE VHDL1 [2, p:1-2][3, p:112]
• Descripcion software de circuitos muy complejos.• Facilidad de documentacioon.• Diseno independiente de la tecnologıa.• Reutilizacion de entidades.• Circuitos Parametrizados.• Estandares del Institute of Electrical and Electronics Engineers (IEEE
Standard 1076, ratified in 1987) y United States Departament of Defense(MIL-STD-454L). • Componentes de diferentes fabricantes.• Permite vectores de prueba complejos. 2 3
1[venvhdl.tex][MPG300713]2Xilinx, VHDL Reference Guide, Xilinx Development System, USA, 1999.3 Jaquenod, Guillermo (instructor), Altera: Diseno Digital, Curso, Instituto Tecnologico Autonomo de Mexico ITAM, Mexico, marzo, 1999 [vhdl02.tex, Maximino
Pena Guerrero, 17II00].
1
PROTOTIPO VHDL1 2
library IEEE;
use IEEE.std_logic_1164.all;
entity mivhdl is
port (
DAT: in STD_LOGIC
);
end mivhdl;
architecture mivhdl_arch of mivhdl is
begin
-- <<enter your statements here>>
end mivhdl_arch;
• entity. Define puertos de Entrada Salida de un diseno [2,p:2-1].• architecture. Determina la implementacion de una entidad [2,p:2-3].• Netlist Estructural. Conjunto de instanciacion de componentes.
1[protovhdl.tex][MPG310713]2XilinxVHDL Reference Guide, USA, 1991, 1999.
1
PALABRAS RESERVADAS VHDL1
Las palabras reservadas o palabras clave tienenen un significado especıfico VHDL, lascuales forman un conjunto que sirve para definir las sentencias de un modelo y no puedenusarse como identificadores para dar nombre a elementos del lenguaje. En VHDL-87 dichaspalabras son: [2, p:55].
(1) abs, (2) access, (3) after, (4) alias, (5) all, (6) and, (7) architecture, (8)array, (9) assert, (10) attribute, (11) begin, (12) block, (13) body, (14) buffer,(15) bus, (16) case, (17) component, (18) else, (19) elsif, (20) end, (21) entity,(22) exit, (23) file, (24) for, (25) function, (26) generate, (27) generic, (28)guarded, (29) if, (30) in, (31) inout, (32) is, (33) label, (34) library, (35) nand,(36) new, (37) next, (38) nor, (39) not, (40) null, (41) of, (42) on, (43) open,(44) or, (45) others, (46) out, (47) package, (48) port, (49) procedure, (50)process, (51) range, (52) return, (53) select, (54) severity, (55) signal, (56)subtype, (57) then, (58) to, (59) transport, (60) type, (61) units, (62) until,(63) use, (64) variable, (65) wait, (66) when, (67) while y (68) with. 2
1[keywords.tex][MPG310713]2Villar, Eugenio, Lluıs Taras, Serafın Olcoz, Yago Torroja, VHDL: Lenguaje Estandard de Diseno Electronico, McGraw-Hill, Espana, 1998. [Ficha de trabajo:
vhdl10.tex, vhdl10.act, Maximino Pena Guerrero, 01III00].
1
CONTADOR DE 3 BITS1]
-- ------------------------------------
-- Contador de 3 bits MI_ARCH.VHD
-- VHDL Reference Guide, Xilinx, p:2-4.
-- Max.Pena Gro, 22II00.
-- ------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
entity CONTA3 is
port
(
CLK : in bit;
RESET: in bit;
COUNT: out integer range 0 to 7
);
end CONTA3;
architecture MI_ARCH of CONTA3 is
signal COUNT_TMP: integer range 0 to 7;
begin process
begin
wait until (CLK’event and CLK=’1’);
if RESET=’1’ or COUNT_TMP=7
then
COUNT_TMP<=0;
else
COUNT_TMP<=COUNT_TMP+1;
end if;
end process;
COUNT<=COUNT_TMP;
end MI_ARCH;
1[contador3bits.tex][MPG310713]
1
matmux.ppt MPG070813
FPGA: MATRIZ DE MULTIPLEXORES DE 2 BITS
AM1
CM1
QM1
BM1
AMN
CMN
QMN
BMN
Amn
Cmn
Qmn
Bmn
AMN-1
CMN-1
QMN-1
BMN-1
A1N
C1N
Q1N
B1N
A11
C11
Q11
B11
A21
C21
Q21
B21
A12
C12
Q12
B12
A2N
C2M
Q2N
B2N
M =
matcon.ppt MPG070813
FPGA: MATRIZ DE CONECTIVIDAD DE MULTIPLEXORES
M =
1 1 0 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1
0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1
0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1
0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
Proceso de diseño e implementación
[t], Maximino Peña Guerrero, 020902
HERRAMIENTAS: ISE ISE Xilinx 9.2i
HERRAMIENTAS: ISE ISE Xilinx 9.2i
HERRAMIENTAS: GHDL
HERRAMIENTAS: GTKWAVE
AUTOMATA O MAQUINA DE TURING1]
Alan Mathison Turing (1912-1954), ma-tematico ingles, desarrollo un metodo ma-tematico para resolver el problema de in-desicion.
Una maquina de turing es un modelo ma-tematico que puede resolver un problemasi es que existe su solucion.
Una maquina de turing es una quıntupla,Q(i, d, e, l, p).
Consiste de (a) una cinta infinita, (b) unacabeza de escritura, (c) una cabeza lectu-ra, (d) un movimiento hacia la izquierda,un movimiento hacia la derecha, y un con-trol de paro.
Una maquina de turing es el fundamentomatematico de los sistemas computaciona-les digitales.
1[alanTurin.tex][MPG080813]
1
CONCEPTO DE PROGRAMA ALMACENADO1]
Johon von Neumann (1903-1957), ma-tematico hungaro, desarrollo el conceptode programa almacenado para evitar la re-programacion alambrada de las maquinasdigitales de aplicaciones especıficas.
Una araquitectura von neumann es la cons-truccion de una computadora digital conuna CPU, ALU, I/O, registros, unidad decontrol, memoria dura (almacenamientomasivo), y una memoria operativa (memo-ria RAM).
Una maquina von neumann constitiye elfundamento de los sistemas computacio-nales modernos.
1[vonNeuman.tex][MPG080813]
1
FUNCIONES ALGEBRAICAS1
• Funcion Algebraica. Es una funcion que satisface una ecuacion po-linomial cuyos coeficientes son polinomios o monomios.
Ejemplo:
an(x)yn + an−1(x)y
n−1 + an−2(x)yn−2 + · · · + a0(x) = 0,
donde los coeficientes ai(x) son funciones polinomiales. Una funcion queno es algebraica se llama funcion trascendente.
1[funsalgbs.tex][MPG140813]
1
FUNCIONES TRASCENDENTES1
• Funcion Trascendente. Es una funcion que no se satisface con unaecuacion polinomial (trasciende el algebra). La variable independiente es elexponente o ındice de la raiz.
sen(x) = x−x3
3!+x5
5!+x7
7!+ · · · −∞ < x < ∞
cos(x) = 1−x2
2!+x4
4!+x6
6!+ · · · −∞ < x < ∞
ln(x) = (x− 1
x) +
1
2(x− 1
x)2 +
1
3(x− 1
x)3 + · · · x ≥
1
2
ex = 1 + x +x2
2!+x3
3!+ · · · −∞ < x < ∞
2
1[funstrns.tex][MPG140813]2pg. 110.111, Shaum, Manual de Formulas y Tablas Matematicas, McGraw-Hill
1
PROGRAMACION FPGAs CON VHDL
Dr. Maximino Pena Guerrero1
www.max.esimez.ipn.mx
Escuela Superior de Ingenierıa Mecanica y Electrica delInstituto Politecnico Nacional, Unidad Profesional AdolfoLopez Mateos, Zacatenco, Mexico Distrito Federal.
1[portada.tex][MPG150713]
1
ASIC: Application Specific Integrated Circuit, circuito integrado de
aplicación específica. Circuitos integrados electrónicos que pueden
ser diseñados, en forma directa, por los ingenieros de aplicaciones.
CPLD: Complex Programmable Logic Device, dispositivo de lógica
programable compleja. Circuito integrado de alta densidad que puede
ser programado, y que permite introducir, en un solo chip, sistemas
de circuitos lógicos electrónicos. Esto permite producir circuitos
integrados de propósito específico (ASIC).
FPGA: Field Programmable Gate Array, arreglo de compuertas
programables en campo. Circuito integrado de alta densidad que
contiene un arreglo de compuertas lógicas cuyas conexiones son
programables, y con lo cual, es posible introducir, en un solo chip,
sistemas de circuitos lógicos electrónicos para implementar un
circuito integrado de propósito específico (ASIC).
Glosario de términos
[t], Maximino Peña Guerrero, 280802
ASIC: Application Specific Integrated Circuit, circuito integrado de
aplicación específica. Circuitos integrados electrónicos que pueden
ser diseñados, en forma directa, por los ingenieros de aplicaciones.
CPLD: Complex Programmable Logic Device, dispositivo de lógica
programable compleja. Circuito integrado de alta densidad que puede
ser programado, y que permite introducir, en un solo chip, sistemas
de circuitos lógicos electrónicos. Esto permite producir circuitos
integrados de propósito específico (ASIC).
FPGA: Field Programmable Gate Array, arreglo de compuertas
programables en campo. Circuito integrado de alta densidad que
contiene un arreglo de compuertas lógicas cuyas conexiones son
programables, y con lo cual, es posible introducir, en un solo chip,
sistemas de circuitos lógicos electrónicos para implementar un
circuito integrado de propósito específico (ASIC).
Glosario de términos
[t], Maximino Peña Guerrero, 280802
NIVELES ABSTRACTOS DE DISEÑO VHDL
[t], Maximino Peña Guerrero, 270802
COMPORTAMIENTO ESTRUCTURAL
Algoritmos Procesadores
Registros
Compuertas
Transistores
Celdas
Módulos
Chips
Transferencia de registros
Expresiones booleanas
Funciones de transferencia
FISICO
ENTIDAD
entity NOMBRE is
port (
SeñalesDeEntrada: in tipo; SeñalesDeSalida: out tipo
);
end NOMBRE;
• Definición: Segmento de código que permite definir entradas salidas
• Es la interfase de un componente
• No dice cómo se implementa el componente
• Es una caja negra con entradas y salidas
• Permite la comunicación con el exterior
[entidad1.ppt], Maximino Peña Guerrero, 260802
ARQUITECTURA
architecture RTX of NOMBRE is
-- parte declarativa
-- parte operativa begin
-- instrucciones de comportamiento
end [RTX];
• Definición: Segmento de código que permite describir el
comportamiento de un dispositivo que se va a sintetizar.
• Esta asociada a una entidad.
• Tiene una parte declarativa.
• Tiene una parte operativa.
[], Maximino Peña Guerrero, 260802 fuente: Garcia, Edgar “Xilnx II” , p: 23
ARQUITECTURA: Parte declarativa
• Declaración de señales. Internas que no sean de entrada
salida.
• Declaración de componentes. Gestión de jerarquía, VHDL
estructural.
• Declaración de constantes.
• Declaración de instrucciones concurrentes.
• Declaración de procesos.
• Declaración de tipos. De objetos (máquinas de estados)
• Declaración de subprogramas. Funciones y procedimientos.
[], Maximino Peña Guerrero, 270802 fuente: Garcia, Edgar “Xilnx II” , p: 23
Una arquitectura consiste de una sección declarativa que
puede tener: