Top Banner
Asignación de señales en VHDL
24

Asignacion de Senales

Jan 16, 2016

Download

Documents

Manuel Marucco

asignaciones de señales en lenguaje vhdl
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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