• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
FaMAF - Leccion Clase VHDL 07
 

FaMAF - Leccion Clase VHDL 07

on

  • 1,759 views

 

Statistics

Views

Total Views
1,759
Views on SlideShare
1,758
Embed Views
1

Actions

Likes
1
Downloads
41
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    FaMAF - Leccion Clase VHDL 07 FaMAF - Leccion Clase VHDL 07 Presentation Transcript

    • CURSO VHDL LECCIÓN 07
      • Lección 7: SEÑALES Y VARIABLES
        • 7_1 – CONSTANT
        • 7_2 – SIGNAL
        • 7_3 – VARIABLE
        • 7_4 – SIGNAL VERSUS VARIABLE
        • 7_5 – NÚMERO DE REGISTROS
    • SEÑALES Y VARIABLES 1/3
      • DATOS ESTÁTICOS:
        • CONSTANT Y GENERIC
      • DATOS NO ESTÁTICOS:
        • SIGNAL Y VARIABLE
    • SEÑALES Y VARIABLES 2/3
      • CONSTANT Y SIGNAL:
        • PUEDEN SER GLOBALES Y PUEDEN SER USADAS EN EL CÓDIGO SECUENCIAL Y EN EL CÓDIGO CONCURRENTE
    • SEÑALES Y VARIABLES 3/3
      • VARIABLE:
        • SON LOCALES A LOS CÓDIGOS SECUENCIALES: PROCEDURES, FUNCTIONS Y PROCESS
    • Curso VHDL Lección 07
      • Lección 7: SEÑALES Y VARIABLES
        • 7_1 – CONSTANT
        • 7_2 – SIGNAL
        • 7_3 – VARIABLE
        • 7_4 – SIGNAL VERSUS VARIABLE
        • 7_5 – NÚMERO DE REGISTROS
    • 7_1 CONSTANT 1 /2
      • CONSTANT NOMBRE: TIPO :=VALOR;
      • EJEMPLOS:
      • constant set_bit: bit := ‘1’;
      • constant data_memory: memory
      • := ((‘0’, ‘0’, ‘0’, ‘0’),
      • (‘0’, ‘0’, ‘0’, ‘0’),
      • (‘0’, ‘0’, ‘0’, ‘0’));
    • 7_1 CONSTANT 2 /2
      • Pueden ser declarados dentro de: PACKAGES,
      • ENTITY,
      • ARCHITECTURES
    • Curso VHDL Lección 07
      • Lección 7: SEÑALES Y VARIABLES
        • 7_1 – CONSTANT
        • 7_2 – SIGNAL
        • 7_3 – VARIABLE
        • 7_4 – SIGNAL VERSUS VARIABLE
        • 7_5 – NÚMERO DE REGISTROS
    • 7_2 SIGNAL 1 /4
      • SIRVEN PARA PASAR VALORES HACIA DENTRO O FUERA DEL SISTEMA O BIEN ENTRE MÓDULOS INTERNOS.
      • SON LOS “CABLES”
      • LOS PORTS SON SIGNALS
    • 7_2 SIGNAL 2 /4
      • SIGNAL NOMBRE:
      • TYPE [RANGE] [:= INITIAL VALUE];
      • signal control: bit := ‘0’;
      • signal count: integer range 0 to 100 :=14;
      • signal y: std_logic_vector (7 downto 0)
      • := “10001001”;
    • 7_2 SIGNALS 3/4 .
    • 7_2 SIGNALS 4/4 .
    • Curso VHDL Lección 07
      • Lección 7: SEÑALES Y VARIABLES
        • 7_1 – CONSTANT
        • 7_2 – SIGNAL
        • 7_3 – VARIABLE
        • 7_4 – SIGNAL VERSUS VARIABLE
        • 7_5 – NÚMERO DE REGISTROS
    • 7_3 VARIABLE 1 /4
      • SON LOCALES A LOS FUNCTIONS, PROCESS O PROCEDUREES Y SOLO PUEDEN DECLARARSE DENTRO DE LOS MIMOS, (DENTRO DE CÓDIGO SECUENCIAL)
      • NO SE PUEDEN USAR PARA PASAR VALORES HACIA EL EXTERIOR DIRECTAMENTE
    • 7_2 VARIABLE 2 /4
      • VARIABLE NOMBRE:
      • TYPE [RANGE] [:= INITIAL VALUE];
      • variable control: bit := ‘0’;
      • variable count: integer range 0 to 100 :=14;
      • variable y: std_logic_vector (7 downto 0)
      • := “10001001”;
    • 7_2 VARIABLE 3/4
      • ---------------------------------------------------------------
      • LIBRARY IEEE;
      • USE IEEE.STD_LOGIC_1164.ALL;
      • ---------------------------------------------------------------
      • ENTITY COUNT_ONES IS
      • PORT(
      • DIN: IN STD_LOGIC_VECTOR(7 DOWNTO 0));
      • ONES: OUT INTEGER RANGE 0 TO 8);
      • END COUNT_ONES;
      .
    • 7_2 VARIABLES 4/4 .
    • Curso VHDL Lección 07
      • Lección 7: SEÑALES Y VARIABLES
        • 7_1 – CONSTANT
        • 7_2 – SIGNAL
        • 7_3 – VARIABLE
        • 7_4 – SIGNAL VERSUS VARIABLE
        • 7_5 – NÚMERO DE REGISTROS
    • 7_4: Singal Versus Variable 1/15
    • 7_4: Singal Versus Variable 2/15
      • --Ejemplo de mal uso de signal y buen uso de variable:
      • ---------------------------------------------------
      • Library ieee;
      • Use ieee.std_logic_1164.all;
    • 7_4: Singal Versus Variable 3/15
      • Entity mux is
      • Port(a,b,c,d,s1,s0: in std_logic; y: out std_logic);
      • End mux;
      • Architecture not_ok of mux is
      • signal sel: integer range 0 t0 3;
      • Begin
      • Process(a,b,c,d,s0,s1)
      • begin
      • …… ..
      • end process;
      • end not_ok;
    • 7_4: Signal Versus Variable 4/15
      • Architecture not_ok of mux is
      • signal sel: integer range 0 t0 3;
      • Begin
      • Process(a,b,c,d,s0,s1)
      • begin
      • sel<=0;
      • if(s0=‘1’) then sel<=sel+1; end if;
      • if (s1=‘1’) then sel<=sel+2; end if;
      • case sel is
      • when 0 => y<=a;
      • when 1 => y<=b;
      • when 2 => y<=c;
      • when 3 => y<=d;
      • end case;
      • end process;
      • end not_ok;
    • 7_4: Singal Versus Variable 5/15
      • Entity mux is
      • Port(a,b,c,d,s1,s0: in std_logic; y: out std_logic);
      • End mux;
      • Architecture ok of mux is
      • Begin
      • Process(a,b,c,d,s0,s1)
      • variable sel: integer range 0 to 3;
      • begin
      • …… ..
      • end process;
      • end ok;
    • 7_4: Signal Versus Variable 6/15
      • Architecture ok of mux is
      • Begin
      • Process(a,b,c,d,s0,s1)
      • variable sel: integer range 0 to 3;
      • begin
      • sel:=0;
      • if(s0=‘1’) then sel<=sel+1; end if;
      • if (s1=‘1’) then sel<=sel+2; end if;
      • case sel is
      • when 0 => y<=a;
      • when 1 => y<=b;
      • when 2 => y<=c;
      • when 3 => y<=d;
      • end case;
      • end process;
      • end ok;
    • 7_4: Singal Versus Variable 7/15
      • --Otro Ejemplo comparando el uso de signal y de variable:
      • ---------------------------------------------------
      • Library ieee;
      • Use ieee.std_logic_1164.all;
    • 7_4: Singal Versus Variable 8/15
    • 7_4: Singal Versus Variable 9/15
    • 7_4: Singal Versus Variable 10/15
    • 7_4: Singal Versus Variable 11/15
    • 7_4: Singal Versus Variable 12/15
      • Otro Ejemplo: Explicar porqué funciona bien el código siguiente:
    • 7_4: Singal Versus Variable 13/15
    • 7_4: Singal Versus Variable 14/15
    • 7_4: Singal Versus Variable 15/15
    • 7_4: Singal Versus Variable 14/7
    • 7_4: Singal Versus Variable 14/7