Estructural_Curso_FPGA.pdf

Anuncio
Departamento de
Sistemas e Informática
Síntesis de sistemas digitales en FPGA
Diseño jerárquico - Estilo de descripción
estructural
2016
Contenido
 Diseño jerárquico
 Descripción en estilo estructural
 Ejemplo de aplicación
 Elementos sintácticos
 Comparación de distintos estilos de descripción
 Ejercitación
2
Diseño jerárquico
El sistema se plantea como una estructura que permite dividirlo
en partes más reducidas
Es una metodología de diseño desarrollada
para manejar la complejidad
VHDL provee herramientas específicas para abordar
este tipo de diseño
 Estilo de descripción estructural
 Definición de componentes
3
Descripción estructural
Describe la estructura del circuito como
interconexión entre componentes
Orientada hacia el diseño jerárquico
Dirigida a la reutilización de diseños y dispositivos
Los componentes conectados pueden variar desde primitivas
de bajo nivel a módulos de alta complejidad
4
Descripción estructural. Ejemplo
Módulo TOP del diseño donde
se instancian los componentes
Instancias de los componentes
en el diseño
En el módulo TOP se deben declarar
los componentes y realizar el mapeo
de los puertos para interconectarlos
5
5
Descripción estructural. Ejemplo
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Sistema is
Port ( e1 : in STD_LOGIC;
e2 : in STD_LOGIC;
clk : in STD_LOGIC;
reset : in STD_LOGIC;
sal1 : out STD_LOGIC;
sal2 : out STD_LOGIC);
end Sistema;
6
Descripción estructural. Ejemplo
architecture Behavioral of Sistema is
component contador
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
TC : out STD_LOGIC;
En : in STD_LOGIC;
cero : out STD_LOGIC);
end component;
component registro
Port ( IH : in STD_LOGIC;
IL : in STD_LOGIC;
clk : in STD_LOGIC;
reset : in STD_LOGIC;
s : out STD_LOGIC);
end component;
7
Contador del ejemplo
architecture Behavioral of Contador is
signal cuenta:std_logic_vector (3 downto 0);
begin
process(clk,reset)
begin
if reset = '1' then cuenta <= (others => '0');
elsif clk'event and clk = '1'then
if en = '1' then cuenta <= cuenta + 1;
end if;
end if;
end process;
TC <= '1' when cuenta = "1111" else '0';
cero <= '1' when cuenta = "0000" else '0';
end Behavioral;
8
Contador del ejemplo
Contador de 4 bits con reset asincrónico y habilitación de cuenta
cero: detecta “0000”
Esquemático RTL
TC: detecta cuenta máxima
9
Registro del ejemplo
architecture Behavioral of Registro is
signal aux: std_logic_vector(1 downto 0);
begin
aux <= Ih & Il;
process (clk, reset)
begin
if reset = '1' then s <= '0';
elsif clk = '1' and clk'event then
case aux is
when "10" => s <= '1';
when "01"=> s <= '0';
when "11"=> s <= '1';
when others => null;
end case;
end if;
end process;
10
IH
IL
Qt+1
0
0
Qt
0
1
0
1
0
1
1
1
1
Registro del ejemplo
Esquemático RTL
11
IH
IL
Qt+1
0
0
Qt
0
1
0
1
0
1
1
1
1
Descripción estructural. Ejemplo
Esquemático RTL
signal TC1, TC2, cero1,cero2: std_logic;
begin
Cuenta1: contador
port map (clk => clk, reset=>reset, En => e1, TC => TC1, cero => cero1);
Cuenta2: contador
port map (clk => clk, reset=>reset, En => e2, TC => TC2, cero => cero2);
12
Descripción estructural. Ejemplo
Esquemático RTL
Cuenta2
signal TC1, TC2, cero1,cero2: std_logic;
begin
Reg1: registro
port map (clk => clk, reset=> reset, Ih => TC1, Il => cero2, s => sal1);
Reg2: registro
port map (clk => clk, reset=> reset, Ih => TC2, Il=> cero1, s => sal2);
13
Descripción estructural. Sintaxis
Declaración de componente:
component contador
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
TC : out STD_LOGIC;
En : in STD_LOGIC;
cero : out STD_LOGIC);
end component;
Los componentes utilizados
deben estar definidos
 Previamente en el diseño
 Bibliotecas del entorno
 Paquetes o bibliotecas adicionales
14
Descripción estructural. Sintaxis
Instanciación y mapeo de puertos:
Cuenta1: contador -- Se instancia el componente
port map (clk => clk, reset => reset, En => e1, TC => TC1, cero => cero1);
Los puertos del componente se pueden conectar a los puertos del sistema
La conexión de puertos entre componentes se realiza con señales
15
Estilos de descripción VHDL
Descripción Estructural
Si los componentes son de bajo nivel o primitivas !!!
Descripción de Flujo de datos
Interconexión entre objetos del lenguaje
Descripción Algorítmica
Descripción comportamental p. p. dicha
16
Nivel de Abstracción
Lista de componentes interconectados
Descripción estructural
Es la forma de interconectar
en VHDL módulos complejos,
subsistemas o IP cores
Divide y vencerás
En este caso representa una vista de alto nivel del sistema
Diseño jerárquico
17
TP3 – ítem 2: Implementación en placa
Componentes
 R = 1: Estado inicial
 P1 = 1: Rota a la izquierda
 P2= 1: Encendidos
18
¿Preguntas?
Descargar