Asignacion de Senales

24
Asignación de señales en VHDL

description

asignaciones de señales en lenguaje vhdl

Transcript of Asignacion de Senales

Page 1: Asignacion de Senales

Asignación de señales en VHDL

Page 2: Asignacion de Senales

VHDL: Asignación de señales

• La asignación a una señal establece una o más transacciones sobre la

misma

• Cada señal tiene asociada una forma de onda proyectada, que es una

lista de transacciones que indica los valores futuros de la señal.

• Por ejemplo: s <= ‘1’ after 20 ns;

causará que la señal tome el valor ‘1’ 20 ns después de ejecutada la

asignación. Esto se representa de la siguiente manera:

• La asignación puede realizarse de acuerdo a dos tipos de retardo:

inercial y transporte.

‘1’

20 ns

Sistemas Digitales - FIUBA

Page 3: Asignacion de Senales

VHDL: Asignación de señales

• Ejemplo 1

entity pru_inercial is port ( E: in bit; S: out bit );end;

architecture beh of pru_inercial isbegin process(E) begin S <= E after 10 ns; end process;end;

entity pulso isend;

architecture pulso_arq of pulso is signal E: bit; signal S: bit; component pru_inercial is port ( E: in bit; S: out bit ); end;begin E <= ‘0’, ‘1’ after 20 ns, ‘0’ after 35 ns; aa: pru_inercial port map(E => E, S => S)end;

Sistemas Digitales - FIUBA

Page 4: Asignacion de Senales

‘0’

‘1’

20 ns‘0’

‘0’

E

S

‘0’

35 ns

‘0’

10 ns

E

S

t =

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 5: Asignacion de Senales

‘0’

‘1’

20 ns‘0’

‘0’

E

S

‘0’

35 ns

‘0’

10 ns

E

S

t =

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 6: Asignacion de Senales

‘1’

20 ns‘0’

‘0’

E

S

‘0’

35 ns

‘0’

10 ns

E

S

t = 10

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 7: Asignacion de Senales

‘1’

20 ns‘1’

‘0’

E

S

‘0’

35 ns

‘1’

30 ns

E

S

t = 20

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 8: Asignacion de Senales

‘0’

35 ns‘1’

‘1’

E

S‘1’

30 ns

E

S

t = 30

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 9: Asignacion de Senales

‘0’

35 ns‘0’

‘1’

E

S‘0’

45 ns

E

S

t = 35

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 10: Asignacion de Senales

‘0’

‘0’

E

S‘0’

45 ns

E

S

t = 45

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 11: Asignacion de Senales

‘0’

‘0’

E

S

E

S

t > 45

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 12: Asignacion de Senales

VHDL: Asignación de señales

¿Qué ocurriría si la entrada fuera un pulso de 5 ns?

E <= ‘0’, ‘1’ after 20 ns, ‘0’ after 25 ns;

0 5 10 15 20 25 30 35 40 45 50

0

1

Sistemas Digitales - FIUBA

Page 13: Asignacion de Senales

‘0’

‘1’

20 ns‘0’

‘0’

E

S

‘0’

25 ns

‘0’

10 ns

E

S

t =

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 14: Asignacion de Senales

‘0’

‘1’

20 ns‘0’

‘0’

E

S

‘0’

25 ns

‘0’

10 ns

E

S

t =

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 15: Asignacion de Senales

‘1’

20 ns‘0’

‘0’

E

S

‘0’

25 ns

‘0’

10 ns

E

S

t = 10

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 16: Asignacion de Senales

‘1’

20 ns‘1’

‘0’

E

S

‘0’

25 ns

‘1’

30 ns

E

S

t = 20

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 17: Asignacion de Senales

‘0’

‘0’

E

S‘1’

30 ns

E

S

t = 25

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

‘0’

25 ns

‘0’

35 ns

Sistemas Digitales - FIUBA

Page 18: Asignacion de Senales

‘0’

35 ns

‘0’

‘0’

E

S

E

S

t = 35

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 19: Asignacion de Senales

‘0’

‘0’

E

S

E

S

t > 35

0 5 10 15 20 25 30 35 40 45 50

VHDL: Asignación de señales

Sistemas Digitales - FIUBA

Page 20: Asignacion de Senales

VHDL: Asignación de señales

entity asigna_02 isend;

architecture asigna_02_arq of asigna_02 is signal a, b, c: std_logic := '0';begin

a <= ‘1’ after 2 ns; b <= not a after 3 ns; c <= not b after 10 ns;end;

• Ejemplo 2

Sistemas Digitales - FIUBA

Page 21: Asignacion de Senales

VHDL: Asignación de señales

entity asigna_03 isend;

architecture asigna_03_arq of asigna_03 is signal x: std_logic := ‘Z';begin process begin

x <= ‘1’ after 5 ns; x <= ‘0’ after 8 ns; x <= ‘1’ after 6 ns; wait; end process;end;

• Ejemplo 3

Sistemas Digitales - FIUBA

Page 22: Asignacion de Senales

VHDL: Asignación de señales

entity asigna_04 isend;

architecture asigna_04_arq of asigna_04 is signal x: std_logic := ‘Z';begin process begin x <= '1' after 5 ns, '0' after 10 ns, '1' after 20 ns; x <= '0' after 12 ns, '1' after 16 ns, '0' after 25 ns; wait; end process;end;

• Ejemplo 4

Sistemas Digitales - FIUBA

Page 23: Asignacion de Senales

VHDL: Asignación de señales

entity asigna_05 isend;

architecture beh of asigna_05 is constant N: integer := 4; constant TA: bit_vector(0 to N-1) := "1100"; constant TB: bit_vector(0 to N-1) := "1010"; signal a, b, c: bit := '0';begin c <= a xor b after 10 ns; process begin for i in 0 to N-1 loop a <= TA(i); b <= TB(i); wait on c for 20 ns; end loop; wait; end process;end;

• Ejemplo 5

Sistemas Digitales - FIUBA

Page 24: Asignacion de Senales

VHDL: Asignación de señales

• Ejemplo 5: Formas de onda obtenidas

Sistemas Digitales - FIUBA