Sntesis Lgica con HDL - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Sntesis Lgica con HDL

Description:

dataflow: Implica una estructura y un comportamiento ... Se usan en descripciones de tipo structural, dataflow y/o RTL. Ejemplo: A = B C; ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 26
Provided by: fmor5
Category:
Tags: hdl | con | dataflow | lgica | sntesis

less

Transcript and Presenter's Notes

Title: Sntesis Lgica con HDL


1
Síntesis Lógica con HDL
  • Especificación y
  • Metodología en VHDL

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

3
Estilos de Descripción (1/2)
  • En VHDL exiten únicamente 3 estilos definidos
  • dataflow Implica una estructura y un
    comportamiento
  • behavioral No existe información estructural
  • structural Se describen las interconexiones de
    los componentes (comportamiento implícito)
  • Se pueden combinar los estilos anteriores en una
    misma descripción
  • Estas descripciones hacen referencia a la forma
    de especificar el objeto de VHDL architecture

4
Estilo de Descripción (2/2)
  • 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
Ejemplos (1/2)
  • architecture dataflow of ejemplo1 is
  • begin
  • Cltnot(A xor B)
  • end dataflow
  • Ejemplo Data_flow
  • architecture behavioral of ejemplo1 is
  • begin
  • process (A,B) begin
  • if (A B) then
  • C lt 1
  • else
  • C lt 0
  • end if
  • end process
  • end behavioral
  • Ejemplo Behavioral

6
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
  • Se declaran señales internas y los componentes
    que se utilizan
  • Los componentes han de estar definidos en una
    libreria
  • structural

U0
A
U1
C
I
XR2
INV
B
7
Variables vs Señales (1/3)
  • 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
  • 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
Variables vs Señales (2/3)
  • 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
  • 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
  • Las operaciones tienen una precedencia por
    defecto, salvo que se usen paréntesis
  • El uso de paréntesis también impacta en el
    resultado final de la síntesis

9
Variables vs Señales (3/3)
  • signal A,B,C,X,Y mi_vector
  • begin
  • process(A,B,C)
  • begin
  • C lt A IGNORADA
  • X lt C 2
  • C lt B PROCESADA
  • Y lt C 2
  • end process
  • signal A,B,X,Ymi_vector
  • begin
  • process(A,B)
  • variable C mi_vector
  • begin
  • C A INMEDIATO
  • X lt C 2
  • C B INMEDIATO
  • Y lt C 2
  • end process

X
2
X
2


A
B
B
Y
Y

2

2
10
Ejemplo
11
Procesos y Sentencias Concurrentes
  • Sentencia concurrente
  • Signal S,Astd_logic
  • S lt A and B
  • Equivale a una forma abreviada del process
  • Cada sentencia da lugar a un process
  • Siempre señales
  • Se evalua siempre que cambia A y/o B
  • Process
  • Signal S,Astd_logic
  • Process (A)
  • begin
  • S lt A and B
  • end process
  • Variables o señales
  • Se activa solo si en A se produce un evento
  • Puede haber varios process en paralelo

12
Síntesis de Sentencias Concurrentes (1/3)
  • Se ejecutan de forma asíncrona, sin un orden
    prefijado
  • Siempre dentro de una architecture y entre
    señales
  • Se usan en descripciones de tipo structural,
    dataflow y/o RTL
  • Ejemplo
  • A lt B C
  • D lt E F
  • 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
A

C
E

D
F
13
Síntesis de Sentencias Concurrentes (2/3)
  • El resultado de la síntesis es siempre
    combinacional
  • Existen 2 formas de asignación de valores en
    sentencias concurrentes
  • Condicional Similar a las sentencias if de los
    process
  • Selección Similar a las sentencias case de los
    process
  • Ejemplo
  • Zlt A when (Xgt3) else
  • B when (Y5) else
  • C

X
gt 3
Y
5
C
0
0
Multiplexores con orden de prioridad
Z
B
1
A
1
14
Síntesis de Sentencias Concurrentes (3/3)
  • Se deben evitar la realimentación de una señal en
    la misma sentencia, pues se sintetizan bucles
    asíncronos
  • A lt B A
  • El compilador advierte de esta situación!
  • 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 lt A
  • C lt B

B
A

A
A
C
B
15
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
IF en Lógica Combinacional
  • VHDL

process (a,b,sel) begin if(sel 1)
then c lt a else c lt b end if end
process
1
a
c
mux
b
0
sel
17
IF sin ELSE en Expresión Combinacional
  • VHDL

process(a,sel) begin if(sel 1) then
b lt a end if end process
b
a
D
Q
E
QN
sel
18
IF en Lógica Secuencial
  • VHDL

19
IF sin ELSE en Lógica Secuencial
  • VHDL

20
Condiciones Asíncronas
VHDL
process(clk,reset) begin if(reset0)
then c lt 0 elsif (clkevent and clk
1) then if(sel1) then c
lt a end if end process
0
c
mux
D
Q
a
1
sel
CK
clr
clk
reset
21
CASE en Combinacionales
  • VHDL

22
CASE en Secuenciales. FSM
  • VHDL

process(clk,reset) begin if(reset0) then
statuslt0 elsif (clkevent and clk1)
then case(status) is when 0gtif(c1)
then statuslt1 end if when
1gtstatuslt2 when 2gtif(c1) then
statuslt1 else statuslt0
end if end case end
if end process
c0
0
c1
1
c0
cX
2
c1
23
Atributos y Restricciones
  • 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
  • Influyen en el trade-off del sintetizador
  • Los sintetizadores suelen incorporar una
    herramienta de análisis de tiempos

24
Flujo Síntesis Lógica
25
CONCLUSIONES
  • 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
Write a Comment
User Comments (0)
About PowerShow.com