Está en la página 1de 7

Resumen SEI

Tema 1: Conceptos generales de diseño digital y hardware reconfigurable


Introducción:

• Hardware de propósito general: CPU, Ordenador portátil, Superordenador…


• Hardware de propósito específico: Audífonos, GPS, SDR, Cámaras de seguridad…
• En muchos sectores se está pasando de usar sistemas de propósito especifico a sistemas de propósito general (potencia de
cálculo más que suficiente en sistemas generales)
• Sistemas de propósito específico:
o ¿Es necesario el hardware especifico?
▪ Coste y tiempo de ingeniería muy alto
▪ Potencia, prestaciones y seguridad mayor
▪ Necesitan ingeniería a medida: Hardware (Coprocesadores, procesadores…) o Software (Middleware, OS…)
▪ Tecnología no siempre estándar→ Interoperabilidad complicada
▪ Mayor Time-To-Market y problema de certificaciones
o Optimizaciones:
▪ Para mejorar rendimiento: Hardware dedicado para instrucciones frecuentes, paralelismo (VLIW, SIMD…)
▪ Para mejorar el consumo energético: Tecnología más eficiente (<nm), reducir frecuencia o HW especifico
o Mercados de interés:
▪ Medicina
▪ Aviónica/Aeroespacial/Automoción
▪ Industria y Ciencia
▪ Defensa
▪ Telecomunicaciones y Multimedia

Clasificación y tecnologías:

• Desarrollo a medida:
o Los sistemas de propósito especifico se basan en diseño a medida de hardware, software, o ambos→ Ejemplo de los
Sistemas empotrados
o La aplicación y sus requisitos determinan el hardware a utilizar y el perfil del equipo de trabajo
• Opciones de desarrollo: Hay que equilibrar entre los requisitos y experiencia del equipo de
desarrollo, una solución de bajo nivel es mas complicada
o Procesadores de propósito general (GPPs, General Purpose Processors)
o Circuitos de propósito especifico (ASICs, Application Specific Integrated Circuit)
o Procesadores específicos de aplicación (ASIP, Application Specific Instruction set
Processor)
• Field Programmable Gate Array (FPGAs):
o No se consideran ASICs
o Compuestas por bloques programables muy simples, con interconexiones programables y entradas y salidas para
procesamiento de datos.
o Los recursos se miden en # de Flip-Flops y LUTs, así como en circuitos específicos (bloques de memoria,
serializadores, DSPs…)
o La lógica síncrona requiere de una señal de reloj para poder funcionar, y realizará las funciones en los flancos de
reloj. El reloj y la sincronía aumentan el consumo energético
o Camino critico: El camino más largo desde la entrada de unos datos hasta la salida de estos. La lógica combinacional
introduce retardo variable, para tener en cuenta para el resto de las etapas
• Hoy en día, el número de puertas lógicas en un sistema es inmenso, y muchas veces la mayoría de ellas no son usadas.

Ejemplos actuales:

• Multicore System-On-Chip (SoC)


o Base de los sistemas empotrados actuales
o Tienen coprocesadores o aceleradores de propósito especifico (GPU, DPSs, ASIP…)
o Múltiples interfaces de comunicaciones, controladores de memoria…
o Arquitectura de referencia para ASICs o FPGAs
• ¿Para una determinada aplicación, que sistema escojo?
o Si se puede usar un procesador estándar, se crea un software que dará el valor añadido y es mas sencillo que
desarrollar un HW
o Si no, se escoge el procesador/chip optimo para los requisitos, con flexibilidad (microcontrolador, DSPs, ASIPs,
FPGAs, ASICs…)
• Un buen estudio de la implementación es muy importante a priori para ahorrar tiempo y dinero
• Tendencia actual→ Desarrollar sistemas basados en multicore SoCs
• Procesadores para tablets y smartphones→ Snapdragon, Atom, Tegra, Exynos, Apple AX…
• Infineon Microcontrolador Tricore→ Aplicaciones críticas de automoción: Sistema con lógica triplicada por si alguna falla, con
un sistema de polling para tomar las decisiones y minimizar la posibilidad de errores
• Soluciones de Texas Instruments:
o Microcontroladores (MCUs): De 16 o 32 bits, para control de USB, PWM, SPI, I2C…
o Procesadores ARM: De 32 bits, para aplicaciones generales o especificas
o DSPs: Unicore o multicore, para acelerar procesado de video, de coma flotante o de FFT
o Ti OMAP 5430 SoC→ Dirigido a aplicaciones industriales de altas prestaciones, multicore
ARM, Wifi, 3G/4G
o Ti Davinci DM64x→ Procesado de video para cámaras digitales o de videovigilancia
• Anafocus Q-Eye Image Sensor→ ASIC de procesamiento de imágenes en el plano focal
• Cavium H.264 Video Processor→ Optimizado para la distribución de video comprimido
• Sigma SMP8910→ Solución de IPTV y mediacenter, protección de contenido con DRM
• Zynq-7000
o SoCs con un procesador basado en ARM (PS, Processing System) y una parte de lógica
programable (PL, Programmable Logic) interconectadas con AXI que permite el
intercambio de información.

Metodologías de diseño:

• Nos centramos en el diseño de hardware digital, no procesadores, SoC o ASIP


• Diseño típico basado en diseño lógico, diseño RTL, cartas ASM…
• Proceso simplificado por los HDLs (VHDL o Verilog)
• Se reutilizan componentes con los Cores IP
• Core IP (Intellectual Property) o Bloques IP
o Se usan núcleos digitales descritos completamente en HDL y que el diseñador
puede incluir en el diseño de un chip, FPGA o ASIC
o La complejidad de los bloques IP provoca que puedan ser parametrizables
o Los cores IP pueden implementar funciones muy variadas, como módulos
aritméticos, FFT, o incluso procesadores completos (Power PC, ARM…)
• Diseño jerárquico vs diseño plano
o Ventajas diseño jerárquico:
▪ Permiten verificación y simulación más rápida
▪ Permiten que varios ingenieros trabajen simultáneamente en el proyecto
▪ Proporcionan menores tiempos de síntesis automática
▪ Los diseños son más sencillos de interpretar
o Inconvenientes del diseño jerárquico:
▪ El proceso de mapeo a la tecnología en los interfaces de los componentes
puede no ser optimo como en diseños planos
▪ La replicación de hardware en las interfaces puede tener un mayor consumo
energético
• Etapas del diseño de sistemas digitales:
o Se obtienen sucesivas descripciones del sistema a distintos niveles, cada vez más
detalladas.
o Se verifica la adecuación de la solución tomada en cada nivel, buscando posibles
mejorar o alternativas
• Abstracción y niveles de diseño
o Para entender un sistema complejo se usan varios niveles de abstracción, y cada nivel
esta caracterizado por:
▪ Componentes o primitivas disponibles
▪ Metodología para el análisis y la síntesis
▪ Elementos sintetizados a partir de las primitivas y que son componentes del nivel superior
o Síntesis: Proceso de traducción de un sistema descrito mediante herramientas de diseño, y de optimización
para generar un formato intermedio entre la herramienta de captura y la implementación hardware
▪ Es la primera etapa automatizada para crear un circuito programable
▪ En esta etapa se define la arquitectura del sistema, así como las prestaciones y consumo de recursos
▪ Etapa mas critica del diseño (los errores de esta etapa se arrastran al resto de etapas)
o Metodologías de diseño:
▪ Centrado en el HW: Cuando la ventaja competitiva está en el circuito (FPGAs o ASICs)
▪ Centrado en el SW: Se usa una arquitectura HW estándar y el valor añadido es el software
▪ Basado en componentes: Objetivo y valor diferencial, integración de componentes HW y SW
▪ Diseño basado en plataformas
• Codiseño
o Pretende determinar de forma óptima el particionamiento HW/SW
o Tiene en cuenta las características funcionales del diseño, pero también
debe utilizar componentes preexistentes del diseño
o Reutilizar elementos reduce el time to market
o Incluye técnicas para determinar la forma de implementar cada módulo
(soft/hard)
o Generalmente las secuencias de control como bucles se implementan
mejor en software, y las operaciones de flujos de datos mejor en hardware
o Proceso típico de Codiseño:

o Etapas del Codiseño:


▪ Especificaciones del sistema
▪ Modelado de sistema (elementos HW y SW) y refinado de las especificaciones
▪ Exploración del espacio de diseño y particionamiento HW/SW
• Arquitectura base: Tipo de procesador, de interfaces
HW/SW…
• Objetivos el particionamiento: Maximizar
prestaciones, latencia, área, coste…
• Estrategias de particionamiento: Manual de alto
nivel, automático…
▪ Temporización (Scheduling): Temporización de operaciones en
el HW, y de instrucciones en el compilador
▪ Síntesis y optimización
▪ Validación
▪ Implementación (crear el HW físico y crear los ejecutables de SW)

VHDL/Verilog

• Realizan todas las funciones de diseño explicadas con anterioridad a nivel HW


• El lenguaje HDL describe las funciones y la estructura
• El diseño es descendente y modular
• Su salida se usa como entrada a herramientas CAD para simulación y síntesis automática del circuito
• Facilita la reutilización de código y portabilidad del código
• RTL→ Funcionamiento a nivel de registros y su interconectividad
• Optimización lógica→ Realiza operaciones y transformaciones (Transformaciones
booleanas, mapeo a librerías físicas)
• Diseño físico→ Transforma circuitos secuenciales en circuitos físicos (posiciona
componentes, rutea, transforma en mascaras) o en FPGAs (posiciona LUTs y rutea)
• El reto en el diseño de sistemas digitales (FPGA)
o Gran numero de componentes, no todas las etapas están automatizadas
o High Level Synthesis (HLS)
o Los bloques IP se suelen diseñar con lenguajes de alto nivel (CUDA, C…)
o Esto no ha funcionado a nivel de sistema por ahora
o HLS permite una rápida exploración selección de microarquitectura.
o Fácil de trazar los requisitos, reutilizar bancos de pruebas y reducir los errores
• Descripciones de alto nivel, comportamental o funcional
o Una descripción comportamental es siembre funcional
o Relaciones temporales son expresadas como precedencia
o Una microarquitectura completa se sintetiza a partir de la descripción de alto nivel
o Características principales:
▪ Ordenamiento cronológico (Scheduling)
▪ Asignación de recursos
▪ Uso de pipelines
▪ Generación de autómatas de estado finito para el control
• Diferencias entre implementaciones SW y HW
o SW: Llamadas por valor/referencia | Hardware: Uso de buses, protocolos de handshaking, fifos…
o Coste de memoria diferente, menor en HW
o Alto coste de las estructuras condicionales, menor en SW

Diseño basado en plataformas

• Orientado a diseño de SoCs: Se usa una librería de componentes virtuales o bloques IPs que se integran.
• Primitivas: procesadores, cores de comunicación, control de memoria, librerías, middleware…
• Personalización basada en:
o Conexión de los bloques IP
o El diseño de bloques IP propios (DSPs, ASIPs, hardware a medida…)
o Escritura de software empotrado
o SW: Llamadas por valor/referencia | Hardware: Uso de buses, protocolos de handshaking, fifos…
• Otras aproximaciones:
o Diseño software convencional usando procesadores/microcontroladores.
o Diseño basado en MDD, (Model-Driven Development)
o Metodología basada en modelos, no programas.
o Diseño basado en arquitecturas multicore
• Metodología basada en multicore:
o Solución alternativa al diseño SoC para aumentar las prestaciones de un dispositivo
o Requiere usar lenguajes como OpenMPI, OpenMP, CUDA o OpenCL.
o Valor diferencial en el software
o Reducción de costes o potencia discutible
• Multicore→ Orientado a desarrolladores no tradicionales, no de HW
• FPGA→ Orientado a programadores software

Conclusiones

• Dos aproximaciones:
o Soluciones basadas en SoCs heterogéneos→ Requiere programación de bajo nivel y diseñadores HW
o Soluciones basadas en multinúcleo→ Requiere programación paralela
• Tendencia→ SoC multinúcleo y heterogéneo
• Los sistemas actuales son cada vez más exigentes
• Los procesadores empotrados están ganando peso frente a procesadores de escritorio:
o Optimizan las prestaciones/vatio
o Acercan las técnicas de programación y diseño entre sistemas de propósito general y especifico
• Una adecuada selección del nivel de abstracción y herramientas de diseño es vital para la productividad y competitividad de la
compañía
• La plataforma optima depende del problema y perfil del equipo de desarrollo

Tema 2: Emisores y receptores en distintas bandas. Redes de sensores. RDS

Conversión AD/DA

• Una señal analógica puede tomar cualquier valor de amplitud real


• Una señal digital toma valores discretos de un conjunto predeterminado
• Ventajas de la señal digital:
o La señal puede replicarse sin perder calidad (Por ejemplo, los CDs)
o Pueden detectarse y corregir errores en la señal (Con códigos de corrección de errores, por ejemplo, en CDs)
o Procesamiento digital y compresión de la señal
• Desventajas de la señal analógica:
o Se necesita un conversor AD/DA
o La discretización introduce errores de cuantización
• Un conversor AD tiene como entrada un valor digital que indica la proporción entre la señal analógica de entrada y la tensión
de referencia
• El conversor discretiza la señal en n bits: #𝑣𝑎𝑙𝑜𝑟𝑒𝑠 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎: 2𝑛

𝑓𝑠
La resolución depende del numero de bits usados para cuantizar: 𝐶𝑢𝑎𝑛𝑡𝑜 = 𝐿𝑆𝐵 = 2𝑛
• El error de cuantización también depende del número de bits usados: Error de
1
cuantización: ± 𝐿𝑆𝐵
2
• Tipos de errores de conversión
• Terminología:
o Resolución del conversor: Mínima variación de la señal que puede detectar el
ADC
o Exactitud del conversor: Suma de todos los errores, incluyendo el de
cuantización
o Tiempo de conversión 𝑡𝑐 : Tiempo que necesita el ADC para convertir la señal de entrada
o Throughput rate: Cantidad máxima de conversiones que puede realizar el ADC
• Se usan circuitos sample and hold para retener el valor constante de la señal durante el tiempo de conversión
• Se selecciona el ADC de acuerdo con el nivel eléctrico de la señal (5V,3.3V…), interfaz digital (SPI, GPIO, bus paralelo),
velocidad de muestreo, resolución, estructura de la señal analógica…
• ¿Qué es un DAC?
o Dispositivo que produce una salida analógica cuantizada en respuesta a una entrada digital binaria.
o Un nivel de referencia (de voltaje o corriente) se divide en segmentos lineales o binarios.
o La entrada digital va a modificar unos interruptores con el numero apropiado de segmentos a la salía
• Proceso de muestreo:
o Se determina la frecuencia de muestro a partir del criterio de Nyquist para evitar producir aliasing en el ADC o
imágenes en el DAC
o Cuanto mayor es el numero de bits usados para la representación, mayor numero de cuantos y mejor se
representará la señal, pero más tamaño ocupará cada muestra

Sistemas de comunicaciones inalámbricos

• Métodos de modulación:
o Tenemos una señal de baja frecuencia y queremos enviarla en alta frecuencia
o Modulación: Proceso de superponer una señal de baja frecuencia con una portadora de alta frecuencia
o Hay tres esquemas de modulación:
▪ Modulación en amplitud (AM): La amplitud de la portadora varía según la amplitud de la señal de
información
▪ Modulación en frecuencia (FM): La frecuencia de la portadora varía de acuerdo con la señal de
información
▪ Modulación en fase (PM): La fase de la portadora lleva la información de la señal
• Preámbulo: Patrón de 0 y 1 que se repite y que se puede usar por el receptor para
obtener la RSSI (Received Signal Strength Information): Usado para Carrier Sense
(CS), y para sincronizar los sistemas
• Para velocidad de menos de 500kbps, un preámbulo de 4bits es suficiente,
mientras que, si es de 500kbps, se recomienda uno de 8
• El envió de información es asíncrono, no se envía la señal de reloj, pero se
recupera a partir de la Sync Word, palabra de si sincronización
• Comunicaciones inalámbricas de corto alcance→
• Capas de protocolos: Es necesario tener el cuenta el modelo del integrado para
ver que estamos comprando y qué tiene este implementado y que debemos
implementar nosotros
• Integración en sistemas de comunicación: Diseño a medida, integración de
módulos o diseño con SDR

Redes de sensores inalámbricos

• Wireless Sensor Network (WSN):


o Red inalámbrica de dispositivos autónomos usando sensores
para monitorizar condiciones físicas o ambientales, como
temperatura, vibración, presión…
o Miles de millones de dispositivos pequeños, autónomos, distribuidos geográficamente, llamados nodos
sensores, instalados alrededor de un fenómeno par monitorizarlo. Tienen capacidad de cómputo,
almacenamiento y comunicación sin cables.
• Elementos de una red de sensores:
o Sensores: Toman del medio la información y la convierte en señales eléctricas
o Nodos sensor: Procesadores de radio, toman los datos del sensor a través de los puertos de datos y envían la
información a la estación base
o Gateway: Elementos de interconexión entre la red de sensores y TCP/IP
o Estación base: Recolector datos basado en un ordenador o sistema embebido
o Red inalámbrica: Generalmente Zigbee
• Aplicaciones:
o Monitorización ambiental
o Motas: Monitorizan uno o más sensores inalámbricamente. Incorporan una batería, una CPU, memoria Flash y
una serie de sensores. Son resistentes a la intemperie. Son de bajo coste y bajo consumo

Diseño de emisores/receptores con SoC programables y SDR

• ¿Qué es SDR?
o Tecnología donde los módulos de software corren en una plataforma de hardware genérica, compuesta por
DSPs y un microprocesador de uso general que implementa funciones de radio como la modulación,
transmisión y demodulación
• Motivación: Existencia de redes diferentes en cada país que impide la creación de redes globales, problemas al desarrollar
nuevos productos por la presencia de usuarios que siguen usando tecnología antigua
• Mercados objetivo: Infraestructura de comunicaciones inalámbricas (Receptores MIMO, Redes públicas, SDR), Aeroespacial y
defensa, o adquisición de datos.
• Componentes típicos de un SDR:
o Emisor receptor de RF en el rango de los 200MHz hasta los GHz
o A/D y D/A de alta velocidad para convertir gran parte del espectro
o Front end procesador digital de señales para mezclar, filtrar y decimar o
convertir la señal
o Capaces de realizar procesado especifico de cada protocolo (OFDM, W-
CDMA), Frequency hopping, codificación/decodificación…
o Interfaz de comunicaciones, generalmente con ARM o un procesador
PowerPC/RTOS
• Ejemplo de implementación en Zynq SDR con un SoC
• GNU Radio: Herramienta de desarrollo libre que provee bloques de procesamiento
de señal para implementar sistemas RDS. Puede usarse con HW de bajo coste para
crear radios definidas por software, o bien solo para simulaciones

El futuro

• Radios inteligentes: Se configuran a si mismas para hacer la tarea de comunicación


requerida (usando diferentes bandas de frecuencia, modos…)
• Radios cognitivas: Aprenden de su entorno y se configuran para maximizar la eficiencia y reducir la interferencia
o Permiten soportar nuevos usuarios inalámbricos en un espectro lleno de usuarios sin que pierdan calidad
o Base: Tienen que producir la menor interferencia posible
o Las radios cognitivas deben encontrar y aprovechar agujeros en la capa espectral para evitar la interferencia
con radios no cognitivas
o Las radios cognitivas escuchan y mejoran las transmisiones de radios no cognitivas
o Para minimizar la interferencia, se puede usar señalización en banda ancha o beamforming
o Problemas: Mediciones de las potencias en cada punto, se necesitan cambios en las leyes para permitirse
o La tecnología podría revolucionar el reparto del espectro

Conclusiones

• Las interfaces analógicas/digitales y viceversa se hacen con sistemas ADC/DAC


• Los emisores/receptores en diferentes bandas se pueden diseñar a medida, integrarse con módulos con un microcontrolador
o con sistemas de comunicaciones SDR
Tema 3: SoCs: Ejemplo de un switch Open Hardware
Introducción

• Proyecto White rabbit: Desarrollado en el CERN, es Open HW y SW. Estilo de licencia CERN OHL
• No decirle a un equipo que haga algo sin ninguna marca temporal, mejor decirle que haga algo en cierto instante para que así
todo este sincronizado. Sincronización con eventos temporales que requiere sincronización de reloj
• Se requiere sincronización de reloj, y los eventos de reloj deben de ser claros.
• Da determinismo en el sistema, confiabilidad en este y QoS
• Los switches son de nivel 2 y no interfieren con las capas superiores, pueden comunicarse con routers normales también
• Ventajas de Open SW: Diseño revisado, puede ser reutilizado

Tecnología

• Limitaciones de PTP (Point to Point)


o Límite de precisión y resolución de los timestamps, a 125MHz, solo cada 8ns
o No se conoce la simetría de la red física
o Dependencia del ancho de banda: El jitter es complicado de recuperar si se
pierden mensajes de sincronización
• White Rabbit permite:
o Hasta 2000 nodos diferentes
o Conectados por cobre o fibra óptica
o Enlaces de hasta 10km entre nodos
o Ancho de banda de 1Gbps
o Se pueden añadir y eliminar nodos de manera dinámica
o Se puede conectar route que no sean de White rabbit
o Permite funciones como VLAN y protocolos como SNMP

Determinismo y fiabilidad

• Determinismo: Garantía de que el tiempo de transmisión de un paquete entre dos estaciones nunca pasará cierto limite
• El limite superior puede ser verificado y analizado con el código publico
• Fiabilidad: La habilidad del sistema de proporcionar servicio a los usuarios en condiciones rutinarias y en condiciones
anormales. Se consigue mediante:
o Redundancia de la topología
o Resiliencia de la información: Con FEC como Reed Solomon o con códigos Hamming. Se soporta además el
protocolo RSTP

Determinismo y fiabilidad

• Sincronización: Noción del tiempo común en toda la red.


• En este caso se consigue la sincronización con intercambios de información paralelos y transparentes usando
dos tecnologías:
o Synchronous Ethernet (SyncE)
o White Rabbit Precision Time Protocol (enhanced PTP)
• Los relojs de cada nodo/switch puede variar ligeramente (entorno a 125MHz, pero con cambios de ± 1𝐾𝐻𝑧)
• El White Rabbit Switch usa SyncE con los dispositivos para que todos tengan el mismo reloj que el System
Timing Master.
• La información del reloj de codifica en la portadora de Ethernet y se recupera en el PLL de la cada física sin
tráfico extra
• Sin embargo, hay pequeños offset entre los distintos relojes: Se transmiten información entre si y calculan el
offset para tenerlo en cuenta en la transmisión.
• PTP sincroniza los relojes locales con el del maestro midiendo y compensando los retardos introducidos por el enlace.
• Así se consigue la noción única del tiempo, con sincronización a nivel de sub-nanosegundos

Dispositivos y redes

• La red WR está compuesta por:


o Switch WR
o Nodos WR (IP Core o placa PCI Express)
o WR Timing Master (Señal de GPS u otros métodos de sincronización)
o Enlaces de cobre o fibra (con cobre es más complicado)

También podría gustarte