ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena

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

Un linguaggio per la descrizione dello hardware: il VHDL

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

Introduzione al VHDL. Alcuni concetti introduttivi

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

(b) LOGIC SYNTHESIS DESIGN FLOW

Christian Pilato

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

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.

Reti Logiche A. Introduzione al VHDL

Calcolatori Elettronici M Modulo Linguaggio VHDL Parte 1/2

Introduzione al linguaggio VHDL

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica. Metodologie e strumenti per il reengineering del workflow management

Reti Logiche A Appello del 24 febbraio 2010

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2015/16 Classe 1 A

Addizione tra numeri binari

Università degli Studi del Sannio. Facoltà di Ingegneria

Descrizioni VHDL Behavioral

Sintesi Logica dal livello RTL. FPGA Xilinx Virtex II

Richiami di Algebra di Commutazione

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Strutture dati e loro organizzazione. Gabriella Trucco

Sistemi logici complessi

Laboratorio di Calcolatori Elettronici

LE PORTE LOGICHE. Ingresso B Ingresso A Uscita OUT

Indice. Prefazione. sommario.pdf 1 05/12/

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

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic. Design Methodologies. December 10, 2002

CORSO DI ELETTRONICA DEI SISTEMI DIGITALI

Tecnologie e Progettazione dei sistemi Informatici e di Telecomunicazioni Scheda Recupero Estivo Obiettivo

Calcolatori Elettronici M Modulo Introduzione all ambiente Xilinx ISE 12.3 e ISIM

A.S. 2015/16 CLASSE 5 AEE MATERIA: T.P.S.E. UNITA DI APPRENDIMENTO 1: AMPLIFICATORI OPERAZIONALI

SISTEMI. impostazione SISTEMI. progettazione. Saper utilizzare modelli di circuiti combinatori

Descrizione VHDL di componenti combinatori

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

Elena Baralis 2007 Politecnico di Torino 1

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer

Fondamenti di Informatica

Fondamenti di Programmazione

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

PASCAL standard. Il linguaggio PASCAL nasce come evoluzione del linguaggio ALGOL60 (ALGOrithmic Language) nel 1968 ad opera di N. Wirth.

Panoramica delle principali famiglie logiche cablate. Parametri di progetto (livelli, correnti, ritardi, consumi, etc..)

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Esercitazioni di Reti Logiche. Lezione 5

Linguaggi di programmazione

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

PIANO DI LAVORO DEI DOCENTI

Introduzione. 1.1 Evoluzione della progettazione dei sistemi digitali

Le Macchine digitali sono Sistemi artificiali che elaborano informazioni

Esercitazioni di Reti Logiche. Lezione 4

Report tecnico descrittivo delle metodologie individuate per lo sviluppo di IP (RT-MET)

Tecniche di Progettazione Digitale Richiami all algebra di Boole; domini di rappresentazione p. 2

Fondamenti di Informatica per la Sicurezza a.a. 2006/07. Calcolatori. Stefano Ferrari

Logica Digitale. Fondamenti di Informatica - Prof. Gregorio Cosentino

orario ricevimento via orario ufficio risposta entro 3 giorni

Microprocessore a 16 bit in tecnologia CMOS 45nm

Generazione di Impulsi Digitali. Antonio Affinito

Nonostante l avvento delle più moderne

Xilinx ISE Tutorial File -> New Project...

Simulazione. Simulazione verilog. Testbench. Testbench

Le aree dell informatica

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Le aree dell informatica

GLOSSARIO. ABEL Advanced Boolean Expression Language. Linguaggio di progettazione per logiche programmabili.

Ingegneria e Tecnologie dei Sistemi di Controllo. Sistemi di controllo industriale general-purpose. purpose: : PLC.

La libreria STD La libreria MODELSIM_LIB Il package TEXTIO Struttura dei testbench. La libreria standard IEEE è composta 6 package

ARCHITETTURA DI UN DBMS

Progettazione di circuiti digitali e linguaggio VHDL

Dispensa di Informatica II.1

Metodologie di Progettazione Hardware-Software

SECONDO BIENNIO ISTITUTO TECNICO ELETTRONICA ED ELETTROTECNICA

Aritmetica dei Calcolatori

associate ai corrispondenti valori assunti dall uscita.

Sistemi Combinatori & Mappe di Karnaugh

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Circuiti e algoritmi per l elaborazione dell informazione

Elementi di base del calcolatore

Il calcolatore. Architettura di un calcolatore (Hardware)

PROGRAMMA EFFETTIVAMENTE SVOLTO

ARCHITETTURA DEI SISTEMI DI ELABORAZIONE

Sistemi Web per il turismo - lezione 3 -

CAPITOLO Evoluzione nella progettazione dei circuiti integrati

FUNZIONI BOOLEANE. Vero Falso

24 - Possibili approfondimenti

Rappresentazione con i diagrammi di flusso (Flow - chart)

UNIVERSITA DEGLI STUDI DI FIRENZE. Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica !" #$ & +

Algebra di Boole e reti logiche

ASIC CARATTERISTICHE GENERALI INTRODUZIONE

Elettronica dei Sistemi Digitali Dispositivi logici programmabili

Architettura dei calcolatori e Software di sistema

Capitolo 5 Elementi architetturali di base

Il concetto di calcolatore e di algoritmo

Chapter 6 Selected Design Topics

Corso di Automazione Industriale 1. Capitolo 2

Circuiti sequenziali

Hardware Open Source per sistemi embedded

Transcript:

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena Fabio Campi Aa 2003-2004 Elettronica dei Sistemi Digitali Fabio Campi, fcampi@deis.unibo.it (con parsimonia ) 051/2093834 http://www.micro.deis.unibo.it/~campi/esd_2004 Centro ARCES, Bologna, Viale Pepoli 3/2 (5 Min dalla facolta di Ingegneria)

Sistemi Elettronici Digitali SISTEMA DIGITALE = Sistema che trasmette e/o mantiene informazione sotto forma di grandezza elettrica DISCRETA (rappresentata attraverso un valore FINITO) In pratica, I sistemi digitali utilizzano come unita di memorizzazione e comunicazione il BIT LOGICO (1,0) Sistemi Digitali X(t) ALGORITMO (stato) Y(t) Applicazioni: Controllo di Sistemi/Processi fisici Elaborazione dei segnali Digitali (DSP Digital Signal Processing)

Architetture Digitali di Calcolo X(t) ALGORITMO Y(t) ASIC Architetture Programmabili (mp, DSP) FPGA Flow Graph (Diagramma a Stati) Computazione nello SPAZIO (ASIC) Computazione nel TEMPO (Microprocessori)

Flow Graph (Diagramma a Stati) Computazione nello SPAZIO attraverso blocchi PROGRAMMABILI (FPGA) Architetture per elaborazione DSP Architetture Programmabili(Microprocessori) Computazione nel tempo Inefficienza Elevato consumo di potenza lw $2,a lw $3,b addu $2,$2,$3 mul $2,$2,$2 lw $4,c lw $5,d lw $31,16($sp) addu $4,$4 $4,$5 sll $3,$4,1 addu $3,$3 $3,$4 lw $5,e subu $2,$2 $2,$3 addu $2,$2 $2,$5 sw $2,res

Architetture per elaborazione DSP ASICs Computazione nello spazio Notevole sforzo di progetti, Alti NRE costs Bassa riusabilita, breve tempo di vita Architetture per elaborazione DSP FPGAs (Field Programmable Gate Arrays) Elaborazione nello spazio Programmazione VHDL, non familiare a sviluppatori in ambiente C/Matlab

Architetture per DSP 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 d i circuiti integrati digitali Strumento convenzionale p e r il progetto e per la documentazione d i blocchi digitali Permettono la rappresentazione d i istanze hardware d a system level f i n o a gate level Linguaggi HDL piu c o m u n i: VHDL, Verilog (Standard IEEE) VHDL Very High speed circuits Hardware Description Language Nato nel 1985, presso il dipartimento d i difesa degli U S A Reso pubblico nel 1 9 8 7 Formalmente ridefinito e reso standard IEEE nel 1993 Tuttora piu sviluppato in E u r o p a, mentre Verilog e considerato standard d i u s o comune negli U S A 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 Arch 3 (Gate L.) architecture RTL in una a gate-level, sempre riferita alla stessa entity

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 nel tempo t Valore maggiore/minore? T

Multiply-Accumulator Y ( t ) = t a ( t ) * b ( t ) Operazione molto comune in caso di Trasformate (FFT,DCT) e quindi molto Utilizzata in caso di compressione di dati multimediali (MPEG,JPEG,MP3 etc) * +