Metodologías de Diseño de Sistemas Digitales: Software, Hardware y SoC

Clasificado en Informática

Escrito el en español con un tamaño de 7,42 KB

Método Software: Diseño Basado en Microprocesadores

El método “software” se basa en la arquitectura de los procesadores, que comprende los siguientes componentes:

  • Unidad Operativa: Incluye la Unidad Aritmético-Lógica (ALU) y la memoria de datos.
  • Unidad de Control: Encargada de la búsqueda, decodificación y ejecución de instrucciones.
  • Memoria de Programa: Almacena las instrucciones a ejecutar.

Ventajas Principales del Método Software

  • Programación sencilla utilizando lenguajes de alto nivel.
  • Gran flexibilidad para adaptarse a diferentes funcionalidades.

Inconvenientes Principales del Método Software

La capacidad de los procesadores estándar para realizar sistemas complejos se ve limitada por:

  • El procesado secuencial de las instrucciones.
  • La arquitectura concreta del procesador utilizado, que impone restricciones como:
    • Tamaño del espacio de direccionamiento de memorias.
    • Tamaño de la palabra de datos.
    • Operaciones disponibles en la ALU.
    • Prestaciones y número de buses.
    • Recursos de entrada/salida (E/S).

Método Hardware: Implementación con Circuitos Dedicados

El método “hardware” implica el diseño de sistemas digitales mediante circuitos dedicados. Se distinguen tres aproximaciones principales:

Circuitos Estándar de Función Fija

Cuando los sistemas digitales son complejos, la utilización de este tipo de circuitos da lugar a una placa con un gran número de circuitos integrados y de interconexiones. (Actualmente, esta aproximación no es común para sistemas complejos debido a su ineficiencia).

Circuitos Programables por el Usuario (FPGAs, CPLDs)

La capacidad lógica de estos circuitos permite realizar un sistema digital complejo en un único circuito integrado, ofreciendo flexibilidad y reconfigurabilidad.

Circuito de Aplicación Específica (ASIC)

Un ASIC es un circuito totalmente adaptado a una aplicación específica, diseñado por el usuario. Sus características incluyen:

  • Optimizado en velocidad y consumo energético.
  • Puede incluir elementos analógicos.

Sin embargo, presenta los siguientes desafíos:

  • Necesidad de realizar la fabricación del circuito posteriormente.
  • Dificultad del proceso de diseño y tiempo de desarrollo elevado.
  • Costes de diseño y verificación muy elevados.
  • Coste de producción muy elevado para pequeños volúmenes de fabricación.

Ventajas del Método Hardware

  • Totalmente adaptado a la aplicación específica.
  • Optimizado en velocidad, permitiendo un alto rendimiento.
  • Capacidad de procesado paralelo.
  • Arquitectura programable (en el caso de FPGAs).

Inconvenientes del Método Hardware

  • La arquitectura configurable está limitada por la capacidad del circuito (tipo y número de bloques lógicos, circuitos específicos, terminales de E/S, etc.).
  • La descripción del sistema digital es compleja, generalmente mediante Lenguajes de Descripción de Hardware (HDLs).

Sistema en un Chip (SoC): La Fusión Hardware-Software

El Sistema en un Chip (SoC) representa una solución intermedia entre los métodos “software” y “hardware”. Consiste en implementar en un único circuito integrado los siguientes componentes:

  • Uno o varios microprocesadores.
  • Una o varias unidades de memoria (SRAM, FLASH, EEPROM, etc.).
  • Un circuito configurable con arquitectura de FPGA.
  • Circuitos de interfaz estándar.
  • Líneas de interconexión configurables que permiten conectar entre sí los diferentes bloques.

Opciones de Implementación de SoC

Existen dos opciones principales para la implementación de un SoC:

  • Mediante un ASIC que incluye un microprocesador y una parte configurable.
  • Mediante una FPGA de gran capacidad lógica en la que se implementa un microprocesador (soft-core o hard-core).

Ventajas del SoC (Frente al Hardware Dedicado)

  • Permiten realizar secuencias de acciones complejas mediante el microprocesador.
  • Facilitan la migración de código ya desarrollado para microprocesadores, si se utiliza un microprocesador empotrado de la misma familia.
  • Simplifican el proceso de diseño general del sistema.

Ventajas del SoC (Frente al Software Puro)

  • Permiten realizar procesado en paralelo, mejorando el rendimiento.
  • Ofrecen adaptabilidad a la aplicación, mediante el diseño de circuitos periféricos a medida que aceleran la realización de tareas críticas y simplifican el código que debe ejecutar el microprocesador.

Inconvenientes del SoC

  • La complejidad del proceso de diseño coordinado de “hardware” y “software” es significativamente mayor.

Opciones de Núcleos de Microprocesador para Diseño de Sistemas

Al integrar un microprocesador en un diseño, especialmente en un SoC, se pueden considerar varias opciones para el núcleo del procesador:

1. Núcleo de Microprocesador Comercial (IP Core)

Se refiere a la adquisición de un núcleo de microprocesador ya desarrollado y disponible en el mercado.

  • Ventajas:
    • Disponibilidad de un microprocesador comercial ampliamente utilizado y probado.
    • Reducción significativa del tiempo de diseño y desarrollo.
  • Inconvenientes:
    • Coste de licencia elevado.
    • Arquitectura del microprocesador fija, con poca o ninguna posibilidad de personalización.
    • Restricciones de uso impuestas por el proveedor.

2. Núcleo de Microprocesador Diseñado a Medida

Implica el diseño y desarrollo de un núcleo de microprocesador desde cero por parte del usuario o equipo de diseño.

  • Ventajas:
    • Disponibilidad de una arquitectura de microprocesador totalmente a la medida de las aplicaciones que se van a diseñar.
    • Acceso al código fuente del microprocesador, permitiendo futuras modificaciones en su arquitectura.
    • Coste reducido a largo plazo si se amortiza el diseño.
    • Posibilidad de comercialización posterior del microprocesador diseñado.
  • Inconvenientes:
    • Aumento considerable del tiempo de diseño y desarrollo.
    • Requiere un alto nivel de experiencia y recursos.

3. Núcleo de Microprocesador de Código Abierto o Gratuito

Utilización de núcleos de microprocesador disponibles bajo licencias de código abierto o de forma gratuita.

  • Ventajas:
    • Acceso a un microprocesador utilizado por una comunidad de usuarios, lo que facilita el soporte.
    • Intercambio de programas y periféricos de libre uso dentro de la comunidad.
    • Reducción del tiempo de diseño en comparación con un diseño a medida.
    • Coste de adquisición reducido o nulo.
  • Inconvenientes:
    • Limitaciones en la arquitectura, que en general suele ser más sencilla debido a su condición de gratuita o de código abierto.
    • El soporte puede depender de la comunidad y no ser garantizado.

Entradas relacionadas: