PDF de programación - Diseño electrónico digital integrado - Back to basics

Imágen de pdf Diseño electrónico digital integrado - Back to basics

Diseño electrónico digital integrado - Back to basicsgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Marzo del 2018)
479 visualizaciones desde el 9 de Marzo del 2018
677,0 KB
18 paginas
Creado hace 12a (01/10/2011)
Diseño electrónico digital integrado:

Back to basics

Sep-2011 F.Barbero

Escuela Politécnica Superior - Universidad Autónoma de Madrid

Flip-flop D con Reset Asíncrono

• Captura un dato con el flanco de reloj
• La pata de reset lo vuelve a su valor inicial inmediatamente.

R

D

Q

CLK

CLK

R

D

Q

El clock puede ser activo en flanco de subida (lo normal) o de bajada (rarísimo).
El reset puede estar presente o no, y ser activo a nivel alto o a nivel bajo.
El reset puede poner el flip-flop a 0 o a 1.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Registro (Register)

• Conjunto de 1 o más flip-flops en paralelo, se comportan igual

pero pueden tener valores de más de un bit

R

D[7:0] Q[7:0]

CLK

CLK

R

D

Q

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Lógica combinacional
(combinational logic)

• Porción de un circuito que aplica una función lógica a un

conjunto de bits de entrada para dar un conjunto de bits de
salida, por propagación directa (sin esperar ningún reloj)

Bits

y=f(x)

Bits resultantes

Retardo de propagación

Depende de lo rápida que sea la tecnología

(transistores, pistas…), NO de un reloj.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

RTL (Register Transfer Level)

• Tipo de descripción “behavioral” de un circuito que se basa

exclusivamente en transferir datos entre registros bien
definidos (tipo “D”). Como casos particulares, puede existir
solamente lógica combinacional o solamente registros

¡Único tipo de descripción sintetizable!

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Procesos secuenciales y combinacionales
• En descripciones HDL, decimos que un proceso es

“secuencial” cuando engloba registros y opcionalmente lógica
combinacional a sus entradas, mientras que un proceso
“combinacional” sólo tiene lógica combinacional.

Proceso secuencial

Proceso combinacional

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Flip-flop (FF) D con Reset Asíncrono

• VHDL:

process (clk,rst)

begin

if rst='1' then

q <= '0';

elsif clk'event and clk='1' then

q <= d;

end if;

end process;

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Flip-flop D con Reset Asíncrono

• Con clock enable:

process (clk,rst)

begin

if rst='1' then

q <= '0';

elsif clk'event and clk='1' then

if ce='1' then

R

D’

Q

CLK

D

CE

q <= d;

end if;

end if;

end process;

¡No es más que lógica combinacional añadida!
No despistarse: recordar el elemento básico,

el FF D, con o sin reset asíncrono.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Flip-flop D sin Reset Asíncrono

• VHDL:

process (clk)

begin

if clk'event and clk='1' then

D

Q

q <= d;

end if;

end process;

CLK

En diseño ASIC se evita lo máximo posible el usar FF sin reset.
En FPGA su uso es más frecuente.
 Si se quiere hacer diseño portable de FPGA a ASIC, lo mejor es usarlo siempre.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Logica combinacional

• VHDL: process que en su lista de sensibilidad

tiene las entradas de la función combinacional

architecture uam of mux is

Se debe asignar

siempre (en

todos los casos)

a la salida un

valor

begin

process(a,b,sel)

begin

if sel='1' then

y <= a;

else

y <= b;

end if;

end process;

end uam;

Todas las entradas

deben estar en la lista

de sensibilidad

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Procesos VHDL

• En una descripción RTL VHDL todo son procesos

combinacionales o secuenciales (FF), ejecutándose
concurrentemente.

• Las asignaciones concurrentes nos permiten escribir

más rápidamente procesos combinacionales.

s <= (a and b) + c;

with a+b select

s <= d when "0000",
e when "1010",
'0' when others;





Todo esto se hace con signals.
Las variables VHDL permiten tener variables temporales dentro de los process (al
estilo de la programación software).

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Descripción estructural

• Ejemplo: top-level práctica laboratorio PicoBlaze:

pico_example

kcpsm3

interrupt
interrupt_ack

decoder

port_id[7:0]

PortId[7:0] Sel[2:0]

write_strobe

read_strobe

out_port[7:0]

clk

reset

mux_rdata

in_port[7:0]

RDataOut[7:0]

Sel[2:0]

Address[9:0]

Instruction[17:0]

RDataIn0[7:0]

RDataIn1[7:0]

RDataIn2[7:0]

rom_prog

clk

address[9:0]

instruction[17:0]

gen_interrupt

Clk
Reset

Interrupt
InterruptAck

Sel
Write
Address[1:0]
WData[7:0]
RData[7:0]

switches_leds

Clk
Reset

SlideSwitches[7:0]

SW[7:0]

PushButtons[3:0]

Leds[7:0]

LD[7:0]

Sel
Write
Address[1:0]
WData[7:0]
RData[7:0]

sevenseg

Clk
Reset

Sel
Write
Address[2:0]
WData[7:0]
RData[7:0]

Segment[7:0]

SEG_*

Anode[3:0]

AN[3:0]

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Descripción estructural
• VHDL: componentes e instanciaciones

top.vhd

a.vhd

a1.vhd

a2.vhd

b.vhd

c.vhd

ENTITY top IS PORT
( ... )
END top;

ARCHITECTURE structural OF top IS
signal s1,s2 : std_logic;

COMPONENT a
PORT ( entrada : IN std_logic;

salida

: OUT std_logic );

END COMPONENT;

begin

u1: a PORT MAP

(entrada=>s1, salida=>s2);

....

end jerarquica;

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Cronogramas

• Ejemplo: escritura del micro en puerto

– El dato va de un registro del micro a un registro de

un periférico.

clk

write strobe

out_port[7:0]

12

45

6F

07

B8

32

portRegister[7:0]

00

45

07

B8

Actúa de “enable”

¡Ojo! : captura el dato que estaba estable

cuando llegó el flanco de reloj.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Cronogramas

• Ondas más realistas:

clk

write strobe

out_port[7:0]

12

45

portRegister[7:0]

00

6F

45

07

B8

32

07

B8

Así es más facil tener claro qué valor carga el registro, pero…:
- En simulación sin tiempos nos vamos a encontrar la otra representación
- En el cuaderno es más cómodo usar la otra representación 

Importante: recordar que el papel y el lápiz también existen, y el papel
cuadriculado es una herramienta de diseño a tener en cuenta…

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Setup

• Los FF no son “perfectos”, necesitan que el dato

de entrada esté estable un mínimo de tiempo

Si este tiempo es menor que tSETUP del FF,
su salida Q se va a un estado impredecible (‘X’)

CLK

R

D

Q

Hold : Mismo concepto, pero el requerimiento es de estabilidad de D tras el flanco de reloj.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Slack y frecuencia máxima

• El slack es el tiempo que nos sobra para poder
cumplir con los requisitos (si es negativo, mal)

CLK

R

D

Q

delay

tSETUP

slack

Si encogemos más y más el periodo de reloj, el retardo (delay) va a ser el mismo y el tiempo de setup
también, pero el slack disminuye. Cuando es 0 hemos alcanzado la frecuencia máxima para ese “path”.

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Metaestabilidad

• Puede aparecer al tomar como dato una entrada externa al sistema o



proveniente de otro “dominio de reloj”.
El cambio del dato se produce a la vez que el de reloj, y la salida se comporta
de forma anómala. Puede provocar fallos graves en los circuitos.

tSETUP

CLK

D

Q



Se soluciona poniendo una cadena de FFs

dato

asíncrono

dato

sincronizado

Oct-2010 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid
  • Links de descarga
http://lwp-l.com/pdf9356

Comentarios de: Diseño electrónico digital integrado - Back to basics (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad