VHDL come strumento di progetto di circuiti digitali - PowerPoint PPT Presentation

About This Presentation
Title:

VHDL come strumento di progetto di circuiti digitali

Description:

Title: introduzione al VHDL Subject: corso di elettronica dei sistemi digitali LS Author: Antonio Deledda Last modified by: deledda Created Date: 10/19/2002 9:33:29 PM – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 39
Provided by: AntonioD154
Category:

less

Transcript and Presenter's Notes

Title: VHDL come strumento di progetto di circuiti digitali


1
VHDL come strumento di progetto di circuiti
digitali
  • Antonio Deledda
  • Corso di Elettronica dei Sistemi Digitali LS
  • AA 2005-2006

2
  • adeledda_at_deis.unibo.it
  • Tel. Interno 0512093829
  • Centro ARCES, Viale Pepoli 3/2
  • http//www.micro.deis.unibo.it/cgi-bin/dida?deled
    da/www/Dida01

3
Circuiti Integrati Digitali
X(t)
Y(t)
ALGORITMO
Architetture Programmabili (?P, DSP)
FPGA
ASIC
4
Flusso di progetto circuiti digitali (anni 80/90)
1) Definizione Algoritmica y-x
2) Schematic Entry
3) Custom Layout (place route)
4) Parasitic extraction Backannotation
5
Il Design Productivity Gap
Lo sviluppo della tecnologia offre una quantita
di risorse di Calcolo che supera la capacita
del progettista di utilizzarle.
6
Tecnologia Standard Cells
Per velocizzare il tempo di progetto
(time-to-market) di un prodotto vengono
realizzano librerie formate da celle logiche
elementari
7
Libreria Standard cells
Esempio Libreria AMS 0.35 ?m (Austria Micro
Systems)
270 Celle Elementari
IO Pads 10 Inout 12 Inputs 10 Outputs 6 Power
Celle Combinatorie 5 Inverters 14 Buffers 8 3state buffers 21 and 21 or 12 xor 21 nand 21 nor 6 mux 28 Blocchi misti
Celle Sequenziali 8 FF JK 32 FF D 10 Latches
8
Libreria Standard Cells Cella AND2
cell(AN2) area 0.64
cell_footprint "AND2" pin (A B) direction
input fanout_load
5 capacitance 0.05 pin(Q)
direction output max_fanout
95 max_capacitance
0.9494 function "(AB)
timing() intrinsic_rise 0.22
intrinsic_fall 0.12
rise_resistance 3.16
fall_resistance 2.00
slope_rise 0.00
slope_fall 0.00
related_pin "A B"
9
HDL
Hardware Description Languages
  • Linguaggi standard internazionale per la
    descrizione di circuiti integrati digitali
  • Strumento convenzionale per il progetto e per la
    documentazione di blocchi digitali
  • Permettono la rappresentazione di istanze
    hardware da system level fino a gate level
  • Linguaggi HDL piu comuni VHDL , Verilog
    (Standard IEEE)

10
VHDL
Very High speed circuits Hardware Description
Language
  • Nato nel 1985, presso il dipartimento di difesa
    degli USA
  • Reso pubblico nel 1987
  • Formalmente ridefinito e reso standard IEEE nel
    1993
  • Tuttora piu sviluppato in Europa, mentre
    Verilog e considerato standard di uso comune
    negli USA

11
Stili di Descrizione Hardware
  • BEHAVIORAL
  • Register Transfer Level
  • Gate Level

Technology Dependance
12
VHDL Applicazioni
  1. SIMULAZIONE LOGICA
  2. SYSTEM LEVEL DESCRIPTION
  3. SINTESI LOGICA

13
Sintesi Logica
SYNTHESIS gt The process of deriving EFFICIENT
results from
CLEAR specifications
Il processo AUTOMATIZZATO di sintesi logica
trasforma una descrizione HDL (Behavioral) in una
NETLIST di gates elementari che mantengono la
stessa funzionalita
LA sintesi logica puo essere eseguita su un
SOTTOINSIEME RTL del linguaggio VHDL detto VHDL
Sintetizzabile. Molti costrutti VHDL NON SONO
SINTETIZZABILI. Per avere sintesi efficiente, gli
elementi sequenziali (Registri, F/Fs) devono
essere descritti ESPLICITAMENTE. Inoltre, i
meccanismi di sintesi NON SONO STANDARDIZZATI,
quindi diversi strumenti (software) di sintesi
possono dare risultati anche MOLTO
diversi. Infine, I risultati della Sintesi
dipendono FORTEMENTE dalla libreria di GATES
ELEMENTARI (Standard Cells) su cui e eseguita
14
Sintesi logica Da RTL ai Gates
Codice RTL rigorosa separazione tra logica
Combinatoria (sintetizzabile) e logica sequenziale
SINTESI LOGICA Il software interpreta la
funzionalita del circuito e la realizza
attraverso celle
elementari (STD_CELLS)
-gt Mappe di Karnaugh
Gli elementi sequenziali (F/F) del circuito non
vengono interpretati ma instanziati
esplicitamente!
15
Sintesi logica Timing Driven
Il processo di sintesi e dettato dalle
temporizzazioni, si tenta di minimizzare il piu
lungo percorso combinatorio (critical
path) interno al design
16
Flusso di Sviluppo di circuiti digitali FRONT
END
1) Definizione Algoritmica (linguaggio C) qa
b c
2) Descrizione VHDL del circuito q lt a and b
or c
3) Simulazione Funzionale
4) Sintesi Logica
5) Simulazione Post-Sintesi
17
Flusso di Sviluppo di circuiti digitali BACK END
6) Floorplanning
7) Place Route
8) Parasitic extraction backannotation
18
Entity e Architecture
OUT
IN
  • ENTITY BLACK BOX, scatola vuota
  • che descrive linterfaccia I/O del circuito

ENTITY
INOUT
  • ARCHITECTURE Descrizione funzionale
  • del comportamento del circuito. Puo essere a
    diversi livelli,e puo essere sintetizzabile o
    meno

Arch 1 (Beh)
Arch 2 (RTL)
Ad ogni entity possono corrispondere molteplici
architectures, a seconda del tipo e del livello
di descrizione voluto es, la sintesi trasforma
una architecture RTL in una a gate-level, sempre
riferita alla stessa entity
Arch 3 (Gate L.)
19
Esempio
entity NAND is Port ( a , b in bit
z out bit ) architecture behavioral
of NAND is signal s bit begin s lt a and
b z lt not s end NAND
20
Esempio (bis)
entity NAND is Port ( a , b in bit
z out bit ) end NAND architecture
behavioral of NAND is signal s bit begin s
lt a and b z lt not s end behavioral
21
VHDL Costrutti
  • STATEMENTS Costrutto che rappresenta un
    istanza circuitale.
  • Benche vengano SIMULATI SEQUENZIALMENTE gli
    statements
  • vengono ESEGUITI SIMULTANEAMENTE.
  • Es s lt a and b
  • Es z lt out s

22
VHDL Costrutti
  • PROCESSI Un processo rappresenta uno statement
    espanso , ovvero una operazione non elementare
    composta da un insieme di operazioni elementari
    che si suppongono eseguite nello stesso istante.
  • Allinterno di un processo l esecuzione e
    SEQUENZIALE, e possono essere definite delle
    variabili.
  • SOLO allinterno di processi possono essere
    inserite espressioni di controllo condizionali
    (IF, CASE, WAIT, etc.)

process(a,b) variable c,d bit_vector(0 to
3) begin c a b d c and 011
z lt d end process
23
Sensitivity List
SENSITIVITY LIST Luscita di un processo viene
ricalcolata ogni volta si ha un evento
(cambiamento di valore) su uno dei segnali
appartenenti alla sensitivity list
In VHDL sintetizzabile, I processi sono puramente
combinatori e tutti gli ingressi del processo
devono appartenere alla Sensitivity list.
24
Esempio (Half_Adder behavioral)
entity Half_Adder is Port ( a , b , enable in
bit out, carry out bit ) end
Half_Adder architecture behavioral of Half_Adder
is begin process(a,b,enable)
begin if(enable 1) out lt
a xor b carry lt a and
b else out lt 0 carry lt
0 end if end process end behavioral
25
VHDL Costrutti
  • INSTANZIAZIONE GERARCHICA E possibile
    istanziare in un dispositivo descritto in VHDL
    componenti circuitali di libreria descritti
    separatamente,purche la loro interfaccia di I/O
    sia descritta, come component, nella architecture

entity Half_Adder is Port ( a , b , enable in
bit out, carry out bit ) end
Half_Adder
26
Esempio (Half_Adder strutturale)
architecture structural of Half_Adder
is component lib_and3 port ( in1,in2,in3 in
bit Z out bit ) end
component component lib_and2 port ( in1,in2 in
bit Z out bit ) end
component component lib_xor2 port ( in1,in2 in
bit Z out bit ) end
component signal s bit Begin My_and3
lib_and3 port map (in1 gt a, in2 gt b,
in3 gtenable, Z gt out) My_and2 lib_and2
port map (in1 gt enable, in2 gt s, Z gt
carry) My_xor2 lib_xor2 port map
(in1 gt a, in2 gt b, Z gt s) end structural
27
Tipi di dato
  • Nel VHDL le dichiarazioni di porte, segnali, e
    variabili devono specificare il loro tipo o
    sottotipo
  • Types
  • Scalar
    () Sintetizzabile
  • Integer ()
  • Real
  • Character
  • Boolean
  • Bit ()
  • Std_Ulogic Std_Logic (std_logic_1164 library)
    ()
  • Physical
  • Enumerated
  • Composite
  • Array
  • Record
  • Std_Ulogic_vector Std_Logic_vector
    (std_logic_1164 library) ()
  • Access File types

28
Tipi scalari (Integer)
  • Rappresentazione a 32 bit
  • range(standard) -2311 to 231-1
  • Esempio

architecture behavioral of int_type is Begin
process(..) variable a INTEGER Begin
a 1 a1.0 -- not legal end
process end behavioral
29
Tipi scalari (Real)
  • Single precision (32 bit)
  • Double precision (64 bit)
  • Esempio

architecture behavioral of Real_type is Begin
process(..) variable a REAL Begin
a 1.3 a -7.5 a1 -- not
legal end process end behavioral
30
Tipi scalari (Enumerated)
  • Lista di possibili valori specificati dallutente
  • Esempio

architecture behavioral of enum_type is TYPE
binary IS (ON, OFF) Begin process(..)
variable a,b binary Begin a ON
b OFF end process end behavioral
31
Tipi compositi (Array)
  • Utilizzato per ragruppare elementi dello stesso
    tipo in un singolo oggetto VHDL
  • Esempio

architecture test of array_type_example
is . TYPE shift_mem IS ARRAY(0 to 7) OF
INTEGER Begin process(DATA_IN, )
variable my_shift_mem shift_mem Begin
DATA_OUT lt my_shift_mem(7) for I in 7
downto 1 loop my_shift_mem(I)
my_shift_mem(I-1) end loop
my_shift_mem(0) DATA_IN end process end
test
32
Tipi compositi (Record)
  • Utilizzato per ragruppare elementi dello stesso
    tipo in un singolo oggetto VHDL
  • Gli elementi sono referenziati mediante I nomi
    dei gruppi

architecture test of rec_type_example is TYPE
binary IS (ON, OFF) TYPE switch_info IS
RECORD status BINARY
IDnumber INTEGER END RECORD Begin
process(DATA_IN, ) variable switch
switch_info Begin switch.status
ON switch.IDnumber 30 ..
end process end test
33
IEEE Std_logic_1164
Si tratta di un package di libreria,
SINTETIZZABILE, che permette di definire
segnali (o variabili, interne a processi) che
descrivano il comportamento elettrico del segnale
stesso
0 Logic 0
1 Logic 1
X Conflict
U Unknown
Z Float (3state)
H Weak 1
L Weak 0
- Dont Care
use ieee.std_logic_1164.all .. entity adder
is port ( a,b in std_logic_vector(7 downto
0) z out std_logic_vector(7
downto 0) ovf out std_logic )
34
Operandi Fondamentali
In VHDL un operando fondamentale puo riferirsi
un tipo predefinito, a un tipo strutturato
(Array o Struct), o ad una tipologia custom
definita in una libreria, sia essa dellutente o
di sistema. Gli operandi possono appartenere a
tre categorie fondamentali PORTE Ovvero,
gli elementi di interfaccia verso lesterno del
circuito SEGNALI Elementi
di comunicazione interni al circuito tra
processi, statements e
components VARIABILI Rappresentano operatori
temporanei, sono solo INTERNE A
PROCESSI
35
Operatori Fondamentali
lt Assegnamento
-- Commento
and, or, xor, not Operatori Logici
, -, Op. matematici sintetizzabili
/, mod, rem, abs, Op. matematici non sintetizzabili
gt, gt, lt, lt, Operatori relazionali
36
Alcune Regole
  • Un Segnale non puo essere usato due volte come
    destinazione (corto circuito) a meno che cio non
    venga fatto allinterno di un processo
  • Una porta di uscita non puo essere usata come
    sorgente (ingresso) da statement / processo /
    blocco gerarchico
  • I costrutti IF/LOOP, intrinsecamente sequenziali,
    possono essere usati solo allinterno di processi
  • LA ESECUZIONE DI DIVERSI STATEMENT / PROCESSI /
    COMPONENTS E SEMPRE CONCORRENTE, lordine con
    cui sono scritti NON HA ALCUNA IMPORTANZA

37
Attributes
ATTRIBUTES gt Funzioni di simulazione che sono
collegate
al comportamento di segnali, tipi o
array. Possono essere
anche definiti dallutente
Sevent Vero in caso di eventi su S
Sactive Vero in caso di transactions su S
Sdriving Vero se il processo corrente pilota S
Sstable(t) Vero se non ci sono eventi in S nel tempo t
Tlow , Thigh Valore maggiore/minore ? T
38
Flip Flop con reset e enable
Entity FF is port ( clk, enable,
reset, D in BIT Q
out BIT ) End FF Architecture
behavioral of FF is begin process(CLK, reset)
Begin if reset 1 then Q lt 0
elsif clkevent and clk 1 then if
enable 1 then Q lt D end
if end if end process end behavioral
Write a Comment
User Comments (0)
About PowerShow.com