La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis Lógica con HDL Especificación y Metodología en VHDL.

Presentaciones similares


Presentación del tema: "Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis Lógica con HDL Especificación y Metodología en VHDL."— Transcripción de la presentación:

1 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis Lógica con HDL Especificación y Metodología en VHDL

2 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) ¿Qué es la Síntesis Lógica? l Obtención automática de una descripción arquitectural a partir de una funcional No es sintetizable l Utiliza un subset del lenguaje HDL (VHDL) => No es sintetizable cualquier descripción l El estilo de descripción influye notablemente. Las descripciones deben realizarse pensando en que se van a convertir en puertas reales VHDL l HDLs más comunes: VHDL y VERILOG l Es capaz de optimizar respecto del número de puertas y respecto de la temporización: l Relación área/tiempo => Trade-off l Síntesis = Traslación a puertas + Optimización

3 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Estilos de Descripción (1/2) l En VHDL exiten únicamente 3 estilos definidos: l dataflow: Implica una estructura y un comportamiento l behavioral: No existe información estructural l structural: Se describen las interconexiones de los componentes (comportamiento implícito) l Se pueden combinar los estilos anteriores en una misma descripción architecture l Estas descripciones hacen referencia a la forma de especificar el objeto de VHDL architecture

4 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Estilo de Descripción (2/2) l Hoy en día, el estilo que mejor se adapta a las herramientas de Síntesis Lógica combina los 3 anteriores junto con las experiencia de los diseñadores y las recomendaciones de aquellas: »Realizar una partición jerárquica adecuada al diseño »Los bloques a sintetizar no deben ser excesivamente grandes »Aritmética entera »Descripciones explícitas y a nivel de transferencia entre registros (RTL)

5 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Ejemplos (1/2) architecture dataflow of ejemplo1 is begin C<=not(A xor B); end dataflow; Ejemplo: Data_flow architecture behavioral of ejemplo1 is begin process (A,B) begin if (A = B) then C <= 1; else C <= 0; end if; end process; end behavioral; Ejemplo: Behavioral

6 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Ejemplos (2/2) architecture structural of ejemplo1 is signal I: bit; component XR2, INV,...; begin U0: XR2 port map (I,A,B); U1: INV port map (C,I); end structural; l Se declaran señales internas y los componentes que se utilizan l Los componentes han de estar definidos en una libreria structural U0 U1 A B I C XR2INV

7 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Variables vs Señales (1/3) l Similitudes: –Ambas son objetos de VHDL cuyo valor puede ser cambiado –Ambas son sintetizadas como lógica combinacional y/o conexiones –En ambos casos existen reglas de ámbito y persistencia como en los lenguajes de programación l Diferencias: –Las variables se usan exclusivamente dentro de los procesos (process) y subprogramas (procedure y function) –Las variables son siempre asignadas a un valor en simulación, por lo que su procesamiento es más rápido –Siempre que sea posible, desde el punto de vista de la síntesis lógica, se han de usar variables

8 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Variables vs Señales (2/3) l Recomendaciones: »Usar señales en operaciones de poca complejidad computacional »Usar variables para tipos y expresiones complejas »Asignar señales a variables, de forma temporal, siempre que sea posible »Usar señales para comunicar procesos NUNCA »No usar NUNCA tipos reales (No son sintetizables) »Reservar el tipo INTEGER para operaciones que así lo impongan »Intentar usar STD_LOGIC, STD_ULOGIC, BIT l Las operaciones tienen una precedencia por defecto, salvo que se usen paréntesis l El uso de paréntesis también impacta en el resultado final de la síntesis

9 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Variables vs Señales (3/3) signal A,B,C,X,Y: mi_vector; begin process(A,B,C) begin IGNORADA C <= A; IGNORADA X <= C + 2; PROCESADA C <= B; PROCESADA Y <= C + 2; end process; signal A,B,X,Y:mi_vector; begin process(A,B) variable C: mi_vector; begin INMEDIATO C:= A; INMEDIATO X <= C + 2; INMEDIATO C:= B; INMEDIATO Y <= C + 2; end process; 2 2 B X Y 2 A B 2 X Y

10 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Ejemplo SUMADOR abcdabcd z z z = a + b + c + dz = (a + b) + (c + d)

11 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Procesos y Sentencias Concurrentes l Sentencia concurrente: Signal S,A:std_logic; S <= A and B; l Equivale a una forma abreviada del process l Cada sentencia da lugar a un process l Siempre señales l Se evalua siempre que cambia A y/o B l Process: Signal S,A:std_logic; Process (A) begin S <= A and B; end process; l Variables o señales l Se activa solo si en A se produce un evento l Puede haber varios process en paralelo

12 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis de Sentencias Concurrentes (1/3) l Se ejecutan de forma asíncrona, sin un orden prefijado l Siempre dentro de una architecture y entre señales l Se usan en descripciones de tipo structural, dataflow y/o RTL l Ejemplo: A <= B + C; D <= E + F; l Este ejemplo produciría el mismo Hw dentro y fuera de un process. Sólo si las señales B, C, E y F estan en la lista de sensibilidad daría los mismos resultados en simulación + + B C A E F D

13 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis de Sentencias Concurrentes (2/3) l El resultado de la síntesis es siempre combinacional l Existen 2 formas de asignación de valores en sentencias concurrentes: if »Condicional: Similar a las sentencias if de los process process »Selección: Similar a las sentencias case de los process l Ejemplo: Z 3) else B when (Y=5) else C; X Y C B A =5 > Z Multiplexores con orden de prioridad

14 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis de Sentencias Concurrentes (3/3) l Se deben evitar la realimentación de una señal en la misma sentencia, pues se sintetizan bucles asíncronos A <= B + A; l El compilador advierte de esta situación! l La existencia de una asignación múltiple a una señal necesita de una función de resolución que indique como se ha de resolver C <= A; C <= B; B A A + A B C

15 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis de Sentencias Secuenciales (VHDL, VERILOG) Las más utilizadas IF Y CASE. Son más explícitas –IF codifica prioridades –CASE codifica tablas de verdad y máquinas de estados (FSM) FOR y WHILE son menos utilizadas. Son mas implícitas Operaciones directamente sintetizables: –Sumas, restas, incrementos y decrementos –Operaciones booleanas

16 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) IF en Lógica Combinacional VHDL: process (a,b,sel) begin if(sel = 1) then c <= a; else c <= b; end if; end process; a b sel cmux 1 0

17 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) IF sin ELSE en Expresión Combinacional VHDL: process(a,sel) begin if(sel = 1) then b <= a; end if; end process; a sel b D E Q QN

18 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) IF en Lógica Secuencial VHDL: process begin wait until clk´event and clk´=1; if(sel = 1) c <= a; else c <= b; end if; end process; a b sel cmux 1 0 clk DQ CK

19 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) IF sin ELSE en Lógica Secuencial VHDL: process begin wait until clkevent and clk=1; if(sel=1) then c <= a; end if; end process; a sel cmux 0 1 clk DQ CK

20 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Condiciones Asíncronas process(clk,reset) begin if(reset=0) then c <= 0; elsif (clkevent and clk =1) then if(sel=1) then c <= a; end if; end process; a sel cmux 0 1 clk DQ CK reset clr VHDL:

21 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) CASE en Combinacionales VHDL: process(bcd) begin case(bcd) is when 0=>led= ; when 1=>led= ; when 2=>led= ; when 3=>led= ; when 4=>led= ; when 5=>led= ; when 6=>led= ; when 7=>led= ; when 8=>led= ; when 9=>led= ; when others=>led = ; end case; end process;

22 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) CASE en Secuenciales. FSM VHDL: c=0 c=1 c=0 c=1 c=X process(clk,reset) begin if(reset=0) then status<=0; elsif (clkevent and clk=1) then case(status) is when 0=>if(c=1) then status<=1; end if; when 1=>status<=2; when 2=>if(c=1) then status<=1; else status<=0; end if; end case; end if; end process;

23 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Atributos y Restricciones l Se aplican desde la propia librería de componentes y desde las preferencias del usuario »fan-out, hold y setup marcados por la librería »Área, frecuencia máxima de trabajo, capacidades marcados por el usuario l Influyen en el trade-off del sintetizador l Los sintetizadores suelen incorporar una herramienta de análisis de tiempos

24 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Flujo Síntesis Lógica LIBRERÍA DE COMPONENTES DESCRIPCIÓN FUNCIONAL RESTRICCIONES SÍNTESIS DESCRIPCIÓN ESTRUCTURAL INFORME DE CARACTERIZACIÓN

25 Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) CONCLUSIONES l A la hora de especificar para síntesis no hay que perder de vista que el resultado será hardware »Restricciones en el lenguaje HDL »Restricciones físicas: retardos y área


Descargar ppt "Sadot Alexandres - Departamento de Electrónica y Automática (E.T.S.I.I-UPCO) Síntesis Lógica con HDL Especificación y Metodología en VHDL."

Presentaciones similares


Anuncios Google