Flusso di progetto circuiti digitali

Documenti analoghi
ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena

VHDL come strumento di progetto di circuiti digitali

Flusso di progetto circuiti digitali. Circuiti Integrati Digitali. Il Design Productivity Gap. Tecnologia Standard Cells

Elettronica dei Sistemi Digitali L-A

Un linguaggio per la descrizione dello hardware: il VHDL

Prima esercitazione. a.a

Un linguaggio per la descrizione dello hardware: il VHDL

IL VHDL. Perché si usa un linguaggio di descrizione dell'hardware? Permette di formalizzare il progetto di sistemi digitali complessi

Seconda esercitazione

architecture tipo_architettura of nome_del_modulo is begin architecture tipo_architettura of nome_del_modulo is

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

Sommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches

Sintassi. Le varie espressioni sintattiche scritte in VHDL si possono ricondurre ai seguenti oggetti: Scalari e Vettori Nomi Oggetti: Espressioni

Elettronica per le telecomunicazioni 21/05/2004

Regole per la scrittura di VHDL Sintetizzabile. Fabio Campi. Corso di Elettronica dei Sistemi Digitali LS AA

Introduzione al VHDL. Alcuni concetti introduttivi

Introduzione al VHDL. Alcuni concetti introduttivi

Introduzione alla sintesi comportamentale

Introduzione al VHDL Lezione 2

Introduzione al VHDL Lezione 1

Introduzione al Flusso di Progetto di Circuiti e Sistemi Digitali

Corso di Reti Logiche A

$ % 16 dicembre Giovanni Beltrame 2

Quarta esercitazione

esercitazioni Corso di Laurea in Ing. elettronica Esercitazioni

Introduzione al linguaggio VHDL

Flusso di Progetto Mixed Signal in ambiente CADENCE. Approccio Analog Centric. Corso di Progettazione Mixed Signal 19/12/2013 Prof.

Modello sequenziale. Modello sequenziale: i Process 13/11/2014. ENTITY ffsr IS Port ( s,r: IN std_logic; q, qn: OUT std_logic); END ffsr;

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. VHDL - Esempi. Martedì 13 Gennaio 2009

Architetture e reti logiche Esercitazioni VHDL a.a. 2006/07. UsodelVHDL. Stefano Ferrari

Christian Pilato

Cos è il VHDL. Il VHDL è un linguaggio standard per la descrizione dell hardware

VHDL: Simulazione & Sintesi

Introduzione al VHDL Lezione 3

Sequential Processing

library ieee; use ieee.std_logic_1164.all; library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; library STD; use STD.textio.

Progettazione di circuiti integrati

Terza esercitazione. Progetto di una rete di controllo. Obiettivi Progetto e analisi di macchine a stati finiti. a.a

Lezione E15. Sistemi embedded e real-time

Dispositivi logici programmabili. Marco Cesati. Schema della lezione. Logiche programmabili. Dispositivi logici programmabili.

Tipi di segnali (logici) predefiniti. Rappresentazione dei segnali in VHDL. Tipo bit (definito nel package standard)

Computer Aided Design. Matteo Montani

Introduzione al linguaggio VHDL e al programma di simulazione e sintesi logica su FPGA utilizzato nelle esercitazioni. a.a.

METODOLOGIE PROGETTUALI CMOS

14/11/2012. Il VHDL 3 parte. Tipi. Tipi scalari INTEGER; REAL; Tipo Fisici; BOOLEAN; CHARCTER; BIT ENUMERATO; Tipo composto ARRAY RECORD FILE ACCESS

Architetture e Reti logiche. Esercitazioni VHDL. a.a. 2003/04 VHDL. Stefano Ferrari

Progettazione di circuiti integrati

Laboratorio di Elettronica Introduzione al VHDL

Reti Logiche A II Prova - 2 marzo 2009

Reti Logiche A. Introduzione al VHDL

(b) LOGIC SYNTHESIS DESIGN FLOW

Productivity Trends. Livelli di astrazione di un sistema digitale. Complexity outpaces design productivity. q=a*b+c. a.a.

Architetture dei Dispositivi Programmabili Avanzati Altera

Reti Logiche Appello del 1 marzo 2011

7. I linguaggi descrittivi HDL.

Architetture dei Dispositivi Programmabili Avanzati Altera

Reti logiche A All. Informatici (M-Z)

Reti logiche A All. Informatici (M-Z) Fabrizio Ferrandi a.a

Introduzione al linguaggio VHDL

VHDL. Il linguaggio FOCUS

Introduzione a Electronic Design Automation. Tecnologie. Circuiti integrati digitali. Sommario. M. Favalli. Tecnologia planare del silicio

INTRODUZIONE ALLE LOGICHE PROGRAMMABILI

RELAZIONE DEL PROGETTO DI UN CONTATORE BINARIO UP/DOWN MODULO 4 PER IL CORSO DI APPARATI ELETTRONICI 1. INTRODUZIONE

LSS : Reti Logiche: circuiti combinatori

Introduzione al VHDL VHDL. La storia. Corso introduttivo al VHDL. l acronimo di VHSIC Hardware Description Language

Linguaggi e ambienti CAD per la sintesi logica di sistemi digitali

Descrizione di macchine a stati tramite VHDL

MATERIA: SISTEMI AUTOMATICI ELETTRONICI

Parte 2.c. Elaborazione: Hardware dedicato

Productivity Trends. Livelli di astrazione di un sistema digitale. Complexity outpaces design productivity. q=a*b+c

Metodologie di progetto HW Livelli d astrazione

Riassunto tecnica digitale

Calcolatori Elettronici M Modulo Linguaggio VHDL Parte 1/2

Addizione tra numeri binari

Reti Logiche A II Prova - 11 febbraio 2008

1. Introduzione. Il VHDL è un linguaggio per la descrizione dell hardware (un Hardware Description Language), che può essere utilizzato per la

senza stato una ed una sola

Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03)

3.5 Esercizi con strumenti automatici

Implementazione di circuiti

Fondamenti di Informatica A. A / 1 9

Reti Logiche A. FSM in VHDL

LSS: Reti Logiche. Piero Vicini A.A

Fondamenti di Informatica e Programmazione

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina.

Reti Logiche A Esame del 14 febbraio 2006

TUTORIAL 3. Realizzazione di un contatore su scheda XSA50. A cura di De Pin Alessandro

Circuiti digitali combinatori

Linguaggi di descrizione dell hardware Progetti a.a. 2016/17

Reti Logiche A Appello del 24 febbraio 2010

MPHS AA FSM in VHDL

Introduzione a HW/SW codesign

Embedded and Reconfigurable Systems M 03 Field Programmable Gate Array (FPGA)

Laboratorio di Calcolatori Elettronici

Circuiti integrati semi-custom

Corso di Circuiti Logici Appunti e Approfondimenti A. Di Stefano

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 8/9/2015

Giancarlo Rini (rini) FPGA. 29 September 2011

Riepilogo su FSM. Descrizione di macchine a stati tramite VHDL. Esempio di FSM (Moore) Esempio di FSM (Moore)

Transcript:

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 Il Design Productivity Gap Lo sviluppo della tecnologia offre una quantita di risorse di Calcolo che supera la capacita del progettista di utilizzarle.

Tecnologia Standard Cells Per velocizzare il tempo di progetto (time-to-market) di un prodotto vengono realizzano librerie formate da celle logiche elementari Libreria Standard cells Esempio: Libreria AMS 0.35 mm (Austria Micro Systems) 270 Celle Elementari: IO Pads Celle Combinatorie Celle Sequenziali 10 Inout 12 Inputs 10 Outputs 6 Power 5 Inverters 14 Buffers 8 3state buffers 21 and 21 or 12 xor 21 nand 21 nor 6 mux 28 Blocchi misti 8 FF JK 32 FF D 10 Latches

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 : "(A*B) } 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"}} 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)

VHDL Very High speed circuits Hardware Description Language Nato nel 1985, presso il dipartimento didifesa degli USA Reso pubblico nel1987 Formalmente ridefinitoe reso standard IEEE nel1993 Tuttora piu sviluppato in Europa, mentre Verilog e considerato standard di uso comune negli USA Strumento di DESCRIZIONE, non di PROGETTO Stili di Descrizione Hardware BEHAVIORAL Register Transfer Level Gate Level Technology Dependance

VHDL: Applicazioni 1) SIMULAZIONE LOGICA 2) SYSTEM LEVEL DESCRIPTION 3) SINTESI LOGICA Sintesi Logica SYNTHESIS => 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

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) -> Mappe di Karnaugh Gli elementi sequenziali (F/F) del circuito non vengono interpretati ma instanziati esplicitamente! 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

Flusso di Sviluppo di circuiti digitali : FRONT END 1) Definizione Algoritmica (linguaggio C): q=a * b + c; 2) Descrizione VHDL del circuito: q <= a and b or c; 3) Simulazione Funzionale 4) Sintesi Logica 5) Simulazione Post-Sintesi Flusso di Sviluppo di circuiti digitali: BACK END 6) Floorplanning 7) Place & Route 8) Parasitic extraction & backannotation

Entity e Architecture ENTITY= BLACK BOX, scatola vuota che descrive l interfaccia I/O del circuito IN ENTITY OUT ARCHITECTURE = Descrizione funzionale del comportamento del circuito. Puo essere a diversi livelli,e puo essere sintetizzabile o meno Arch 1 (Beh) INOUT 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.) Esempio entity NAND is Port ( a, b : in bit; z : out bit ) architecture behavioral of NAND is signal s : bit; begin s <= a and b; z <= not s; end NAND;

Linguaggio C: VHDL vs C Linguaggio di programmazione software: genera una esecuzione SEQUENZIALE di una serie di istruzioni. VHDL: Tool CAD di progettazione hardware: genera una instanziazione (mapping) di risorse fisiche di calcolo CONCORRENTI. VHDL : Costrutti STATEMENTS: Costrutto che rappresenta un istanza circuitale. Benche vengano SIMULATI SEQUENZIALMENTE gli statements vengono ESEGUITI SIMULTANEAMENTE. Es: A <= B and C; Es: Z <= A + B; Es: Z <= 1 when (A=B) else 0 ;

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 architecture structural of FullAdder is component HalfAdder port ( in1,in2 : in bit ; s,co : out bit ) end component signal a,b,sum,carryout : bit; begin [.] HA1 : HalfAdder port map (in1 => a, in2 => b, s=>sum, co=> carryout); 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. All interno di un processo la esecuzione e SEQUENZIALE, e possono essere definite delle variabili. process(a,b) variable c,d: bit_vector(0 to 3); begin c := a + b; d := c and 011 z <= d; end process;

Sensitivity List SENSITIVITY LIST : L uscita 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. Tipi Predefiniti VHDL e un linguaggio fortemente tipato, non permette Casting. Boolean True/False Bit (*) 0,1 Bit-Vector (*) Array of Bits Character String Array of Char Integer (*) Positive Time (*) = Sintetizzabile

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 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 ); 0 1 X U Z H L - Logic 0 Logic 1 Conflict Unknown Float (3state) Weak 1 Weak 0 Don t Care 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 dell utente o di sistema. Gli operandi possono appartenere a tre categorie fondamentali PORTE : Ovvero, gli elementi di interfaccia verso l esterno del circuito SEGNALI : Elementi di comunicazione interni al circuito tra processi, statements e components VARIABILI : Rappresentano operatori temporanei, sono solo INTERNE A PROCESSI

Operatori Fondamentali <= -- and, or, xor, not +, -, * /, mod, rem, abs, ** >, >=, <, <=, Assegnamento Commento Operatori Logici Op. matematici sintetizzabili Op. matematici non sintetizzabili Operatori relazionali Alcune Regole Un Segnale non puo essere usato due volte come destinazione (corto circuito) a meno che cio non venga fatto all interno 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 all interno di processi LA ESECUZIONE DI DIVERSI STATEMENT / PROCESSI / COMPONENTS E SEMPRE CONCORRENTE, l ordine con cui sono scritti NON HA ALCUNA IMPORTANZA

Attributes ATTRIBUTES => Funzioni di simulazione che sono collegate al comportamento di segnali, tipi o array. Possono essere anche definiti dall utente S event S active S driving S stable(t) T low, T high Vero in caso di eventi su S Vero in caso di transactions su S Vero se il processo corrente pilota S Vero se non ci sono eventi in S neltempo t Valore maggiore/minore? T