Download FPGA: Herramientas de diseño

Document related concepts
no text concepts found
Transcript
FPGA: Herramientas de diseño
Proceso diseño
Design and implement a simple unit permitting to
speed up encryption with RC5-similar cipher with
fixed key set on 8031 microcontroller. Unlike in
the experiment 5, this time your unit has to be able
to perform an encryption algorithm by itself,
executing 32 rounds…..
Especificación (Enunciado del problema)
Descripción VHDL
Library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
Simulación funcionalidad
entity RC5_core is
port(
clock, reset, encr_decr: in std_logic;
data_input: in std_logic_vector(31 downto 0);
data_output: out std_logic_vector(31 downto 0);
out_full: in std_logic;
key_input: in std_logic_vector(31 downto 0);
key_read: out std_logic;
);
end AES_core;
Síntesis
Simulación post-síntesis
2
Proceso diseño
Implementación
Simulación temporal.
Configuración
Test en el chip
3
Herramientas simulación
Y otras muchas…
4
5
6
Herramientas de síntesis
… y otras
7
Síntesis lógica
Descripción VHDL
Netlist circuito
architecture MLU_DATAFLOW of MLU is
signal A1:STD_LOGIC;
signal B1:STD_LOGIC;
signal Y1:STD_LOGIC;
signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC;
begin
A1<=A when (NEG_A='0') else
not A;
B1<=B when (NEG_B='0') else
not B;
Y<=Y1 when (NEG_Y='0') else
not Y1;
MUX_0<=A1 and B1;
MUX_1<=A1 or B1;
MUX_2<=A1 xor B1;
MUX_3<=A1 xnor B1;
with (L1 & L0) select
Y1<=MUX_0 when "00",
MUX_1 when "01",
MUX_2 when "10",
MUX_3 when others;
end MLU_DATAFLOW;
8
Estrategia
• Simulación + Xilinx
• Xilinx como herramienta única.
9
Implementación con Xilinx
10
Translation
Synthesis
Circuit netlist
Electronic Design
Interchange Format
EDIF
Timing Constraints
Constraint Editor
Native
Constraint
File
NCF
UCF
User Constraint File
Translation
NGD
Native Generic Database file
11
Netlist del circuito
12
Mapping
LUT4
LUT1
FF1
LUT5
LUT2
FF2
LUT3
13
Placing
FPGA
CLB SLICES
14
Routing
FPGA
Programmable Connections
15
Configuration
• Una vez implementado el diseño, se debe generar un fichero para
configuración de la FPGA.
• bit stream (.bit)
• El fichero BIT puede ser utilizado directamente con la FPGA o puede
ser convertido a un fichero PROM para almacenar la información de
programación.
16
Flujo de diseño: Download
Unprogrammed
device
Programmed
device
(a) Host computer
(b) Device programmer
17
ISE 6.X: Descripción de la
herramienta
Project Navigator
Sources in
project
HDL
editor
Processes for
Current Source
Message
Console
19
Xilinx: Proceso de diseño
• Paso 1: Diseño
• HDL
• Esquemáticos.
• Paso 2: Síntesis diseño
(generación netlist).
• Paso 3: Implementación del
diseño:
• Translate, Map, Place&Route
• Paso 4: Configuración de la
FPGA.
20
Procesos
Paso 1: Diseño
Paso 2: Síntesis
(generación netlist).
MODELO PULL
Paso 3: Implementación
Paso 4: Configuración
21
Flujo de diseño: Implementación
• Implementación incluye varias fases:
• Translate: Combina múltiples ficheros en un
único netlist.
• Map: Agrupa los símbolos lógicos del netlist
(puertas) en componentes físicos (slices y
IOBs).
• Place & Route: Distribuye los componentes en
el chip, los conecta y genera informes con
análisis temporales.
22
Flujo de diseño: Download
• Una vez que el diseño es implementado,
se debe generar un fichero final para volcar
en la FPGA (bitstream  .bit)
• El fichero BIT puede ser volcado
directamente en la FPGA o convertido a un
fichero PROM, que almacena la
información de programación.
23
Flujo de diseño: Download
Unprogrammed
device
Programmed
device
(a) Host computer
(b) Device programmer
24
Generando ficheros de informes
• La mayoría de los informes se
generan de forma automática
durante la implementación:
•
•
•
•
•
•
Translation
Map
Place & Route
Asynchronous Delay
Pad
Post Place & Route Static Timing
Report
25
Ficheros de informes
• Translation (menos importante)
• Map.
• Importante chequearlo antes de seguir con P&R.
• Resumen diseño: Recursos usados (slices, flip-flops, LUTs...).
• Lógica eliminada (por falta de recursos disponibles).
• Propiedades IOB: Si un flip-flop es usado o no...
• Place & Route
• Utilización del dispositivo.
• Caminos (“nets”) que no se han podido cablear.
• Resumen de la temporización: retardos y funcionamiento.
• Asynchronous Delay
• Información sobre los 20 caminos más largos.
• Pad
• Post Place & Route Static Timing Report
26