Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Temario:
– Plataforma de desarrollo
– Herramientas de software
– Herramientas CAD
– Herramientas EDA
– Herramientas para planificación
– Entorno integrado de desarrollo (IDE)
– Editor de texto
– Cadena de herramientas de programación (Toolchain)
• Pre-Procesador
• Compilador
• Ensamblador
• Enlazador
– Cadena de herramientas de síntesis
• Sintetizador
• Simulador
– Programador/Depurador
– Plataforma de hardware
Ingeniero
Metodología definida (Análisis, planificación, estándares)
Diseñador
Metodología definida (Planificación, reglas)
Aficionado (Maker)
Metodología no definida (Prueba y error)
vs
Arduino Raspberry Pi
vs
Raspberry Pi FPGA
= Microcontrolador
Arduino
Ecosistema
de desarrollo
Plataforma
de desarrollo
Plataforma
de hardware
Plataforma de hardware
Programador/
Software Depurador
Planificación EDA
CAD Programación
Dibujo 2D Dibujo 3D
Simulación Visualización 3D
Autocompletar
Resaltar
Archivo(s) fuente
Portabilidad
Estándares
Mantenimiento
Modularidad Optimización
Trabajo en equipo
Idea
Programa
implementado
Suma OK
Transmite ¿Dónde?
Suma 1000110
Transmite 1010011
Java
Python
(Intérprete)
C, Pascal, Fortran
Tiempo de (Palabras) Tiempo de
ejecución desarrollo
Macro Assembler
(Mnemónicos)
Direct Assembler
(Binario o Hexadecimal)
- Diseñado para ser simple y compacto. - Diseñado para proporcionar ALTA confiabilidad.
- Requiere que el programador sea cuidadoso. - Limita al programador para evitar errores.
- No es fácilmente escalable a sistemas muy complejos. - Eficiente para sistemas de alta complejidad.
1.10.- Pre-Procesador
Verificación de la sintaxis
for
else
if
while
1.10.- Pre-Procesador
Evaluación de directivas
#include
stdio.h
stdint.h Pre-Procesador
math.h
archivo.c archivo.i
1.11.- Compilador
1.11.- Compilador
C Assembly
movlw 3
movwf x
x = 3; movwf z
movf y,w
z = x + y; addwf z
Estándar Depende del
hardware
if(z > 5) movlw 5
z = 5 subwf w
btfss status, r
goto CONTINUA
movlw 5
movwf z
CONTINUA:
1.11.- Compilador
Compilador
(Compiler)
Compilador cruzado
(Cross compiler)
1.12.- Ensamblador
movlw 3 11000000000011
movwf x 00000010100001
movwf z 00000010100011
movf y,w 00100000100010
addwf z 00011110100011
Objetos reubicables:
file1.o
file2.o
file3.o
file4.o
a=sck (t−1 )
b=sck (t−2 )
sckfall=a . b
assign sck_fall = ~a & b;
always@(posedge clk)
begin
a <= sck;
b <= a;
end
input a, b,c;
output f;
assign f = (~a & ~b & c) |
(a & ~b & ~c) |
(a & ~b & c) |
(a & b & ~c);
HDL RTL
11000000000011
00000010100001
00000010100011
00100000100010
00011110100011
...
1.19.- Simulador
Simulación en el tiempo
Simulación funcional
1.20.- Programador
Configuración
Secuencia
Archivo de bits
binario Sofware Hardware (bitstream)
Programador Programador
MCU
objetivo
Encontrar JTAG
errores
Monitoreo
Microprocesador
(Sistema Operativo)
libreria.o
Microcontrolador
libreria.o configuración
Depurador
PLD
...101100...
Simulador Generador de
Programador
(Tiempo) secuencia de bits
Depurador
Dispositivos
Tarjetas de desarrollo
Beaglebone
Black
Raspberry Pi 3
3.- REFERENCIAS
[2] David Patterson & John Hennessy, Computer Organization and Design:
The Hardware/Software Interface, Fourth Edition, Morgan Kauffman, 2012.
[4] Michael Barr & Anthony Massa, Programming Embedded Systems with
C and GNU Development Tools, Second Edition, O’Reilly, 2006.
[5] Stephen Brown & Zvonko Vranesic, Fundamentals of Digital Logic with
Verilog Design, First Edition, McGraw Hill, 2003
4.- PREGUNTAS