• No se han encontrado resultados

Porque estudiar diseño digital?

N/A
N/A
Protected

Academic year: 2022

Share "Porque estudiar diseño digital?"

Copied!
46
0
0

Texto completo

(1)

1: Intro 1

¿Porque estudiar diseño digital?

Es la base para la implementación de todos los sistemas computacionales modernos

Construcción de unidades más complejas de componentes primitivos.

Conocer los principios para organizar los bloques constructivos básicos de la computadores.

El paralelismo inherente en el hardware es nuestra primera introducción a la computación paralela.

Proveer un modelo y un entendimiento de cómo funciona una computadora.

(2)

1: Intro 2

Diseño digital: nuestro PC

(3)

1: Intro 3

Objetivos

El lenguaje de diseño y modelamiento digital

Álgebra de Boole

Funciones y representación de variables discretas

Minimización lógica

Conceptos de estados

Análisis temporal

Herramientas CAD

Concepto de estados en sistemas digitales

Análogo a variables y

contadores en el software

Como especificar, simular, compilar y analizar sistemas

Lenguajes de descripción de HW

Herramientas para simular la operación de nuestros diseños

Compiladores lógicos para

sintetizar los bloques de diseños

Implementación en hardware programable

Diferentes tecnologías de implementación de hardware

Contrastar con diseño de SW

Implementaciones de máquinas secuenciales y paralelas

Especificar algoritmos, recursos de procesamiento y almacenamiento

(4)

1: Intro 4

Objetivos

Visto por capas

Arquitectura abstracta Síntesis y optimización

Bloques básicos

Compuertas y flip-flops

(5)

1: Intro 5

Objetivos

Resumen: Se estudiaran...

Los fundamentos matemáticos de las funciones de variables discretas boolenas, su estructura y

diversos métodos de representación.

Los principios y técnicas para modelar situaciones del mundo real, mediante funciones booleanas y registros.

Se analizaran sistemas ya diseñados para

posteriormente diseñar, implementar o sintetizar mediante diferentes tecnologías sistemas digitales combinacionales y secuenciales.

(6)

1: Intro 6

1850: George Boole inventa el álgebra de Boole

convierte proposiciones lógicas a símbolos

permite la manipulación de la lógica proposicional

1938: Claude Shannon aplica el álgebra de Boole al desarrollo de circuitos conmutados (switched circuits)

su tesis de Magíster

1945: John von Neumann desarrolla el primer programa de computadora en la arquitectura de programa almacenado (stored-program computer)

sus elementos de conmutación son tubos de vacío

Un poco de historia

(7)

1: Intro 7

1946: ENIAC . . . La primera computadora electrónica

18,000 tubos de vacío

varios miles de multiplicaciones por minuto.

1947: Shockley, Brattain y Bardeen (Bell Labs) inventan el transistor

Reemplazo tubos de vacío

Permitió la mayor integración de múltiples dispositivos.

Comienzo de la electrónica moderna.

Un poco de historia

(8)

1: Intro 8

¿Que es el diseño digital?

¿Qué es el diseño?

Dada la especificación de un problema, lograr determinar una manera de resolverla, seleccionando apropiadamente desde un grupo de

componentes disponibles.

Siempre considerando un conjunto de criterios (requerimientos) como tamaño, costo, poder, confiabilidad, elegancia, simplicidad etc.

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

¿Qué es el diseño digital?

Determinación de las componentes de hardware digitales que implementan las especificaciones de comunicación, control y procesamiento de los datos.

Más específicamente, es descomponer la solución en redes

combinacionales y/o secuenciales organizando jerárquicamente el diseño empleando herramientas computacionales modernas.

Hay muchas diferentes tecnologías que se pueden usar para implementar un diseño (e.g., componentes, dispositivos

programables, transistores en un chip, etc.)

El diseño tiene que ser optimizado para los requerimientos previamente especificados.

(9)

1: Intro 9

¿Que es el diseño digital?

Conceptos básicos en sistemas digitales.

Sistema con una entrada E y una salida S

Las variables E y S sólo pueden tomar los valores discretos: 0, 1, 2, 3.

(10)

1: Intro 10

¿Que es el diseño digital?

Codificación.

Se denomina codificación binaria al proceso de asignar un vector booleano a un símbolo o valor de la variable multivaluada.

Sistema numérico binario.

• En el sistema numérico binario la base numérica es 2, y los dígitos sólo pueden ser 0 y 1.

(11)

1: Intro 11

¿Que es el diseño digital?

Información. Bit, Byte.

Se denomina bit, que es un acrónimo de Binary Digit, a la cantidad de información

requerida para distinguir entre dos opciones igualmente probables.

Tablas de verdad.

(12)

1: Intro 12

¿Que es el diseño digital?

Compuertas básicas. Operadores booleanos.

En el álgebra de Boole se definen los

operadores and y or, mediante las tablas de verdad .

Expresiones booleanas.

(13)

1: Intro 13

¿Que es el diseño digital?

Esquemático.

(14)

1: Intro 14

Algunas aplicaciones del diseño digital

Computadores

CPUs, bus, equipos periféricos de I/O (discos,

pendrives, teclados, impresoras, mouse, pantallas, etc)

Redes y comunicaciones

centrales, estaciones base, teléfonos, módems,

routers, switches, hubs, gateways, gatekeepers (VoIP)

Sistemas embebidos

electrodomésticos

aparatos portátiles: celulares, iPods, organizadores

juguetes y juegos de video

aparatos a control remoto

controladores industriales, robots

Equipos científicos

equipos de prueba, sensores, aparatos médicos

Muchos otros

(15)

1: Intro 15

Algunas tendencias actuales en el diseño digital

Tendencias de la industria para diseño de hardware

Diseños mas grandes e integrados.

Tiempo al mercado mas corto.

Productos mas baratos.

Escala

Uso común de herramientas computacionales sobre métodos manuales.

Múltiples niveles de diseño y representación.

Tiempo

Énfasis en representaciones abstractas de diseño.

Uso de componentes programables (e.g. FPGA) sobre otros de función fija.

Técnicas automáticas de síntesis del diseño lógico (e.g. Verilog).

Importancia de buenas metodologías y procesos de diseño.

Costo

Uso de simulación para depurar (debug).

Simulación y verificación (testing) antes de construcción.

(16)

1: Intro 16

Diseño digital: computación abstracta versus

implementación

Computación abstracta es un ejercicio mental o de software (programas).

Esta clase trata sobre como se puede implementar sistemas de computación en hardware que usan voltajes para

representar valores lógicos binarios (1 y 0).

Elementos básicos de la computación.

Representación binaria: 0, 1

Asignación: x = y

Operaciones sobre datos: x + y – 5

Control:

• expresiones secuénciales 1; 2; 3;...

• expresiones condicionales: if x == 1 then y

• ciclos (loops): for (i = 1; i == 5; i++) x = x + A[i];

• procedimientos (funciones)

Uso común de lenguajes y herramientas computacionales (e.g.

HDL, Verilog, Xylinx) sobre métodos manuales.

Múltiples niveles de diseño y representación.

(17)

1: Intro 17

Abstracción digital

Abstracción digital binaria

Consiste en representar las señales análogas reales de entrada y salida usando valores discretos lógicos 0 y 1

Margen de ruido

Margen de ruido

Volts

lógica 1

lógica 0

zona de transición entre lógica 0 y 1 4

3 2

0.5 - 0.5

1 0

Voh

Vol Vil Vih

(18)

1: Intro 18

Abstracción digital

¿

Porque es útil la digitalización?

Permite el desarrollo modular de sistemas

Ayuda a prevenir que un 0 sea confundido con un 1 y viceversa, valores específicos dependen de la

tecnología usada (e.g. TTL)

e.g. VIL debe ser un poco mayor que VOL

Vol Vil

Vil Vol

Volts

tiempo

(19)

1: Intro 19

Abstracción digital

Bit (Binary digit): unidad de información

Si se tienen 2 eventos igualmente probables y se desea conocer cuál se produce, debe aportarse 1 bit de información

Interruptor abierto es 1

Interruptor cerrado es 0

Se puede codificar en un bit, el estado del interruptor

¿Si hay 8 eventos posibles, para conocer la

ocurrencia de uno de ellos deben tenerse

cuantos bits de información?

(20)

1: Intro 20

Abstracción digital

La información puede definirse como:

conocimiento comunicado o recibido concerniente a un hecho particular, el cual reduce la incertidumbre del receptor

Si tenemos un espacio de muestreo dividido en 2

N

casos que son igualmente probables E

k

(k = 1, 2, ..., 2

N

) entonces la información (en bits)

proveída por el hecho E

k

es N bits

(21)

1: Intro 21

Abstracción digital

Evento

Se denomina evento al cambio de valor de una señal en un instante de tiempo.

¿Que es un canto de bajada/subida?

Pasar de nivel lógico 1 a 0 se denomina canto de bajada.

Un canto de subida se produce cuando la señal pasa de nivel lógico 0 a 1.

1

0

(22)

1: Intro 22

¿Qué es el hardware digital?

El modelo del sistema digital tiene inputs y outputs

Sistemas combinacionales (sin memoria)

sus outputs solo dependen de sus inputs

Sistemas secuenciales (con memoria)

sus outputs dependen no solo de sus inputs actuales sino que también de inputs previos (tienen memoria)

inputs sistema outputs

Máquina abstracta:

Una máquina abstracta es un modelo de computación que establece cómo se generan las acciones, o eventos de salida, a partir de los mensajes o eventos de entrada.

(23)

1: Intro 23

¿Que es el hardware digital?

Colección de dispositivos que miden y controlan señales que usan voltajes digitales (e.g. una

cantidad física que se interpreta como un “0” o un

“1”)

e.g.: lógica digital binaria

• “0” cuando el voltaje en una señal es < 0.8 V

• “1” cuando el voltaje es > 2.0 V

El tener Voh > Vih y Vol < Vil causa que la señales lógicas

“1” y “0” se vayan regenerando

(24)

1: Intro 24

¿Que es el hardware digital?

Interruptor (switch): elemento básico del hardware

Implementar un circuito simple (flecha muestra si un cable cambia a “1”)

A Z

Z A

A Z

cerrar switch (si A es “1”) y prender la bombilla (Z)

abrir switch (si A es “0”) y apagar la bombilla (Z)

(25)

1: Intro 25

¿Que es el hardware digital?

La composición de interruptores (e.g.

transistores) en elementos mas complejos implementa las funciones de lógica Booleana.

¿Como hago un AND y un OR de dos interruptores?

AND

OR

Z A and B

Z A or B

A B

A

B

(26)

1: Intro 26

¿Que es el hardware digital?

Los valores de los interruptores (switches)

determinan si hay o no hay una ruta para encender la luz

Para construir cómputos mas complejos

usar la luz (output de un circuito) para activar otros circuitos

interconectar redes de circuitos (e.g. ICs o circuitos integrados en wafers)

típicamente se diseñan y modelan estos circuitos usando aplicaciones de software (e.g. MAGIC para VLSI)

(27)

1: Intro 27

Hardware digital vs análogo

Es conveniente pensar en los sistemas digitales como teniendo solo valores discretos . En realidad los

componentes electrónicos tienen un comportamiento continuo, análogo.

¿Porque se hace la abstracción digital?

Interruptores operan de esta manera, es fácil modularizar diseños basado en compuertas digitales

Es mas fácil pensar en valores discretos

Los voltajes se pueden ir renovando entre los componentes manteniendo su valor lógico

¿Porque funciona?

Los errores en voltajes no se propagan

Siempre se cambian a 0 o 1

(28)

1: Intro 28

Sistemas Combinacionales

Se denominan máquinas o sistemas combinacionales a aquellos cuyas salidas, en un instante de tiempo, dependen solamente de los valores que toman las entradas en ese instante de tiempo (no tienen memoria)

Lo cual puede describirse por una función o tabla (truth table) que especifique los valores de las salidas para cada una de las combinaciones posibles de las entradas

En estos sistemas las componentes no cambian sus propiedades a medida que transcurre el tiempo

(29)

1: Intro 29

fácil de implementar con transistores CMOS

(los interruptores mas disponibles)

Símbolos Lógicos

Sistemas lógicos combinacionales usan compuertas estándar que se denominan compuertas lógicas

Buffer, NOT

AND, NAND

OR, NOR

Z

A

B Z

Z A

A B

(30)

1: Intro 30

Sistemas Combinacionales:

ejemplo

Subsistema de calendario: numero de días en un mes

Usado para controlar un reloj de tipo LCD

Input: mes, indicador de año bisiesto (leap year)

Output: numero de días (28, 29, 30 o 31) en ese mes

(31)

1: Intro 31

Sistemas Combinacionales:

ejemplo

Implementación en software

integer number_of_days ( month, leap_year_flag) {

switch (month) {

case 1: return (31);

case 2: if (leap_year_flag == 1) then return (29)

else return (28);

case 3: return (31);

...

case 12: return (31);

default: return (0);

} }

(32)

1: Intro 32

Sistemas Combinacionales:

ejemplo

month leap

d28d29d30d31

month leap d28 d29 d30 d31

0000

0001 0 0 0 1

0010 0 1 0 0 0

0010 1 0 1 0 0

0011 0 0 0 1

0100 0 0 1 0

0101 0 0 0 1

0110 0 0 1 0

0111 0 0 0 1

1000 0 0 0 1

1001 0 0 1 0

1010 0 0 0 1

1011 0 0 1 0

1100 0 0 0 1

1101

111–

Implementación digital

Codificación:

Cuántos bits para cada input/output?

Número binario para el mes

Cuatro alambres para 28 - 31

Comportamiento:

combinacional

especificado en la tabla

(33)

1: Intro 33

Sistemas Combinacionales:

ejemplo

Análisis

d28 = 1 cuando month=0010 y leap=0

d28 = m8'•m4'•m2•m1'•leap‘

d31 = 1 cuando month=0001 o month=0011 o ...

month=1100

d31 = (m8'•m4'•m2'•m1) + (m8'•m4'•m2•m1) + ...

(m8•m4•m2'•m1')

d31 = podemos simplificarlo mas?

símbolo de and

símbolo de or

month leap d28 d29 d30 d31

0001 0 0 0 1

0010 0 1 0 0 0

0010 1 0 1 0 0

0011 0 0 0 1

0100 0 0 1 0

...

1100 0 0 0 1

1101

111–

0000

(34)

1: Intro 34

Sistemas Combinacionales:

ejemplo

d28 = m8'•m4'•m2•m1'•leap’

d29 = m8'•m4'•m2•m1'•leap

d30 = (m8'•m4•m2'•m1') + (m8'•m4•m2•m1') + (m8•m4'•m2'•m1) + (m8•m4'•m2•m1)

= (m8'•m4•m1') + (m8•m4'•m1)

d31 = (m8'•m4'•m2'•m1) + (m8'•m4'•m2•m1) + (m8'•m4•m2'•m1) + (m8'•m4•m2•m1) + (m8•m4'•m2'•m1') + (m8•m4'•m2•m1') + (m8•m4•m2'•m1')

(35)

1: Intro 35

Máquinas de Estados o Secuenciales

Se denominan máquinas de estados o secuenciales a aquellas cuyas salidas, en un instante de tiempo, dependen de los valores que toman las entradas y de su estado en ese instante de tiempo. Se comienza con un estado inicial.

Se usa una función de transición que especifique los valores de las salidas y del próximo estado para cada una de las combinaciones posibles de las entradas y del estado presente. También se puede usar un diagrama de estados.

Una matriz puede servir para indicar los diferentes valores de esta función.

Las entradas se deben usar una vez que la máquina haya procesado las entradas previas y este estable.

(36)

1: Intro 36

Máquinas de Estados: ejemplo

Candado de combinación:

Seleccionar 3 valores en secuencia y se abre el candado.

Si hay un error se debe recomenzar la secuencia (reset).

Input: secuencia de valores, reset.

Outputs: candado abierto/cerrado.

Memoria: debe recordar combinación.

(37)

1: Intro 37

Máquinas de Estados: ejemplo

Implementación en software

integer combination_lock ( ) { integer v1, v2, v3;

integer error = 0;

static integer c[3] = 3, 4, 2; // clave

while (!new_value( ));

v1 = read_value( );

if (v1 != c[1]) then error = 1;

while (!new_value( ));

v2 = read_value( );

if (v2 != c[2]) then error = 1;

while (!new_value( ));

v3 = read_value( );

if (v2 != c[3]) then error = 1;

if (error == 1) then return(0); else return (1);

}

(38)

1: Intro 38

Máquinas de Estados: ejemplo

Codificación:

¿Cuántos bits por valor de input?

¿Cuántos valores en la secuencia?

¿Cómo sabemos que hay un valor nuevo de input?

¿cómo representar los estados?

Comportamiento:

Línea clock indica cuando.

mirar los inputs (sistema tiene que estar estable después de un cambio).

Secuencial: secuencias de valores deben ser introducidos.

Secuencial: recordar si ocurre un error

Especificar los estados finitos.

reset value

open/closed new

clock state

(39)

1: Intro 39

Máquinas de Estados: ejemplo

Diagrama de estados:

5 estados

Representan situaciones en la ejecución de la máquina

Cada estado tiene outputs

• 6 transiciones entre estados, 5 auto transiciones, 1 global

Cambios en estados ocurren cuando reloj indica que se puede

• Inputs: reset, new, resultado de comparaciones

• Output: open /closed (abierto /cerrado)

C2!=value

& new

C3!=value

& new reset

not new not new

not new closed

S1

closed C1=value

& new

S2

closed C2=value

& new

S3

C3=value

& new

OPEN open

C1!=value

& new

closed ERR

(40)

1: Intro 40

Máquinas de Estados: ejemplo

¿Ruta de datos versus control?

ruta de datos

• Almacenamiento para combinación

• Comparador

control

• Controlador de estados finitos

• Control para ruta de datos

• Cambios en estados controlados por reloj (clock) reset

open/closed new

C1 C2 C3

comparator

value

equal

multiplexer

equal

controller

mux

control clock

(41)

1: Intro 41

Máquinas de Estados: ejemplo

Refinar máquina de estados finitos

Incluir datos internos de la estructura del HW

closed

closed mux=C1 reset

equal

& new

not equal

& new not equal

& new not equal

& new

not new not new

not new

S1 S2 S3 OPEN

ERR

closed

mux=C2 equal

& new

closed

mux=C3 equal

& new

open

(42)

1: Intro 42

Máquinas de Estados: ejemplo

¿Máquina de estados finitos actualizada?

Generar tabla estados o transiciones

reset new equal state state mux open/closed

1 S1 C1 closed

0 0 S1 S1 C1 closed

0 1 0 S1 ERR closed

0 1 1 S1 S2 C2 closed

0 0 S2 S2 C2 closed

0 1 0 S2 ERR closed

0 1 1 S2 S3 C3 closed

0 0 S3 S3 C3 closed

0 1 0 S3 ERR closed

0 1 1 S3 OPEN – open

0 OPEN OPEN – open

0 ERR ERR closed

next

closed

closed mux=C1 reset

equal

& new

not equal

& new not equal

& new not equal

& new

not new not new

not new

S1 S2 S3 OPEN

ERR

closed

mux=C2 equal

& new

closed

mux=C3 equal

& new

open

(43)

1: Intro 43

Máquinas de Estados: ejemplo

Codificar tabla de estados

estado puede ser: S1, S2, S3, OPEN o ERR

• 3 bits mínimo para codificar

output mux puede ser: C1, C2, o C3

• 2 bits mínimo para codificar

output open /closed puede ser: open o closed

• mínimo 1 bit para codificar

Trabajo en grupo: elegir codificación de bits para los estados, generar tabla de estados (hay muchas

opciones!)

(44)

1: Intro 44

Máquinas de Estados: ejemplo

Codificar tabla de estados

estado puede ser: S1, S2, S3, OPEN o ERR

• usar 4 bits

output mux puede ser: C1, C2, o C3

• usar 3 bits

output open /closed puede ser: open o closed

• usar 1 bit para codificar

reset new equal state state mux open/closed

1 0001 001 0

0 0 0001 0001 001 0

0 1 0 0001 0000 0

0 1 1 0001 0010 010 0

0 0 0010 0010 010 0

0 1 0 0010 0000 0

0 1 1 0010 0100 100 0

0 0 0100 0100 100 0

0 1 0 0100 0000 0

0 1 1 0100 1000 1

0 1000 1000 1

0 0000 0000 – 0

next

buena elección!

mux es idéntico a los últimos 3 bits del estado

open / closed es

idéntico al primer bit del estado

(45)

1: Intro 45

Jerarquía de diseño

sistema digital

ruta de datos ruta de control

registros de estado

red combinacional (lógica)

multiplexer comparator / ALU memorias /

registros

registros lógica / compuertas

redes de compuertas (transistores)

(46)

1: Intro 46

Resumen

¿De que se trata este curso?

Desarrollar soluciones a problemas usando circuitos combinacionales y secuenciales efectivamente organizando el diseño jerárquicamente.

Utilizar técnicas y herramientas modernas.

Tomar ventaja de oportunidades de optimización.

Referencias

Documento similar

La combinación, de acuerdo con el SEG, de ambos estudios, validez y fiabilidad (esto es, el estudio de los criterios de realidad en la declaración), verificada la

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

Sabemos que, normalmente, las ​cookies deben ser almacenadas y enviadas de vuelta al servidor sin modificar; sin embargo existe la posibilidad de que un atacante

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados