CAPITOLO Evoluzione nella progettazione dei circuiti integrati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CAPITOLO 2. 2.1 Evoluzione nella progettazione dei circuiti integrati"

Transcript

1 CAPITOLO 2 Questo capitolo contiene una breve storia sull evoluzione nella progettazione dei circuiti integrati, seguita da una approfondita analisi dei mezzi che vengono usati attualmente a tale scopo, dedicando particolare attenzione agli strumenti software utilizzati. L uso dei vari programmi di composizione di circuiti e di simulazione è caldamente consigliato dalla fonderia ES2, la quale per garantire il corretto funzionamento dell integrato una volta fabbricato, pretende siano state fatte tutte le simulazioni software possibili a priori. Alcuni passi della metodologia da seguire sono obbligatori, altri sono opzionali anche se caldamente raccomandati: io ho cercato di seguire tutti i passi descritti nell ES2 Cadence Design Kit [7] che integra le librerie della fonderia ES2 nell ambiente di lavoro di Cadence DFWII. 2.1 Evoluzione nella progettazione dei circuiti integrati La progettazione e la realizzazione di circuiti integrati è stata fino a pochi anni fa un esclusiva degli Stati Uniti e del Giappone. Per questo motivo da alcuni anni la Comunità Economica Europea ha deciso di lanciare un programma di ricerca chiamato ESPRIT (European Strategic Program for Research in Information Technology) con lo scopo di promuovere iniziative di ricerca nel mondo delle industrie e delle università. Questo programma è nato proprio per rendere tecnologicamente indipendente l Europa dagli altri Paesi per quanto riguarda la progettazione di circuiti integrati. In particolare nell ambito di ESPRIT è nata un organizzazione chiamata prima EUROCHIP e ora EUROPRACTICE a cui fanno riferimento diverse università e industrie europee. Il fine di Europractice è di favorire l interazione ed uno scambio produttivo fra le università e le imprese private nel seguente modo: vengono forniti alle università a costi molto ridotti tutti i prodotti software necessari a sviluppare progetti completi purché le finalità siano di tipo didattico (in questo contesto anche la produzione dei prototipi ha un costo notevolmente ridotto). In questo modo le industrie possono poi acquisire personale specializzato nel settore senza dovere compiere questa formazione personalmente. Si tenta così di colmare il vuoto di competenze nel settore sia a livello industriale sia accademico. La progettazione di circuiti integrati è in continua evoluzione ed ha subito radicali cambiamenti negli ultimi 30 anni. Sin dalle prime esperienze di 27

2 integrazione di più transistor su silicio, cioè dal 1960, la progettazione di circuiti integrati era riservata esclusivamente ad ingegneri elettronici molto esperti e a specialisti dei semiconduttori. L unico tipo di progettazione possibile era di tipo full-custom secondo cui tutti i dettagli implementativi del circuito sono sotto il controllo del progettista il quale deve dimensionare i transistor uno a uno e comporre layout geometrici che vengono poi simulati per mezzo di un simulatore analogico. Per questi motivi lo sviluppo di circuiti complessi, contenenti decine o centinaia di migliaia di transistor, richiedeva tempi molto lunghi e considerevoli sforzi. 70 % 60 % 50 % 40 % 30 % 20 % 10 % Full-custom Semi-custom FPGA Fig. 2.1 : Rapporto di produzione fra progettazione full-custom e semicustom. Nei primi anni Ottanta la progettazione full-custom cominciò a cedere il passo ad un tipo di progettazione più ad alto livello, la progettazione semicustom In questa nuova modalità di lavoro il progettista tratta con celle ottimizzate fornite direttamente dalle fonderie insieme con i loro parametri di lavoro, tipicamente porte logiche (ad esempio NAND, NOR, XOR), memorie RAM, dispositivi di I/O (pad), ecc., e le compone in schemi circuitali dove sono evidenziati i collegamenti (schematic se la visualizzazione è di tipo grafico o netlist se è di tipo descrittivo). Queste rappresentazioni sono poi simulate via software tenendo conto dei tempi di ritardo di ogni singola porta e poi sono trasformate in layout geometrici con l aiuto di efficienti programmi 28

3 (placement & routing). In questo modo il progettista non tratta mai con singoli transistor, né è tenuto a sapere la struttura interna delle celle usate. Per tutti questi motivi negli ultimi anni la progettazione semi-custom di circuiti digitali è diventata dominante rispetto a quella full-custom come visibile in fig Nella stessa figura è visualizzata anche la produzione di FPGA (Field Programmable Gate Array), circuiti standard programmabili dall utente in base all applicazione per cui verranno utilizzati. Come metodologia di progetto gli FPGA possono essere ricondotti alla progettazione semi-custom. La progettazione full-custom viene praticata tuttora nel campo analogico e, in campo digitale, da chi non si accontenta delle prestazioni delle standard cell, cioè delle porte logiche standard fornite dalla fonderia, ma preferisce ottimizzare ogni minimo dettaglio per incrementare al massimo la velocità di funzionamento del circuito elettronico. in polisilicio VDD in out diffusione n m etallo diffusione p (a) (b) in out out <= not(in) (c) Fig. 2.2 : NOT CMOS rappresentato dal punto di vista del layout (a), schematic (b), simbolo (c) e descrizione VHDL (d). Un ulteriore salto metodologico nella progettazione di circuiti elettronici digitali è avvenuta con l introduzione dei i linguaggi descrittivi ad alto livello (d) 29

4 HDL (Hardware Description Language). Gli HDL sono linguaggi di programmazione ad alto livello che includono strutture dati e istruzioni tali da poter descrivere il funzionamento dell hardware. Essi supportano la descrizione di un circuito su vari livelli di astrazione, partendo da una prima descrizione del comportamento voluto e introducendo via via strutture aggiuntive in un processo di raffinamento gerarchico finché non si raggiunge il livello delle porte logiche. In ognuno di questi livelli gerarchici il codice HDL non rappresenta solo una descrizione ma può essere simulata per verificarne la funzionalità logica e sintetizzata cioè convertita in un circuito vero e proprio costituito da varie celle standard scelte dalle librerie di una fonderia. I più famosi linguaggi HDL sono il Verilog e il VHSIC HDL, più comunemente noto come VHDL. Il Verilog è usato soprattutto in America mentre il linguaggio più diffuso in Europa è il VHDL, il cui standard è stato fissato nel 1987 ed è chiamato IEEE La fig. 2.2 mette a confronto il modo di visualizzare una semplice porta logica NOT dal punto di vista fullcustom, cioè a livello di layout, semi-custom a livello di schema elettrico e di simbolo dotato di parametri di funzionamento e al livello più generale di descrizione VHDL. Grazie al linguaggio VHDL e all uso dei programmi della Cadence comprati attraverso Europractice i tempi di la progettazione di circuiti integrati sono stati ridotti drasticamente: ad esempio la progettazione del processore fuzzy a 4 ingressi del 94 è stata stimata in 1.5 anni uomo mentre il lavoro relativo al processore HEPE96 ha richiesto in lavoro di 0.5 anni uomo. Il mio lavoro relativo al processore HEPE97 è stato ancora più breve grazie ai vantaggi offerti dal VHDL. Contemporaneamente sono stati abbassati anche i tempi di attesa dal momento in cui un progetto viene inviato alla fonderia fino alla sua riconsegna. Ora infatti questo tempo si aggira sui 2 mesi di attesa e si prevede in un futuro non molto lontano la restituzione del circuito integrato in tempi inferiori alle 2 settimane. 2.2 Flusso di progetto Il diagramma di flusso di figura 2.3 evidenzia tutti i passi necessari nell ordine in cui devono essere eseguiti, con le necessarie iterazioni che servono a migliorare e ad ottimizzare il progetto. I passi principali possono essere così elencati : (1) Generazione dello schema elettrico del circuito (schematic) (1.1) Stesura del codice VHDL. (1.2) Generazione di megacelle (opzionale). 30

5 (1.3) Simulazione funzionale del codice VHDL(Leapfrog). (1.4) Generazione dello schema elettrico attraverso la sintesi del codice VHDL (Synergy). (1.5) Inclusione dei pad di I/O (dispositivi per l input/output) e di alimentazione. (2) Simulazione (2.1) Simulazione circuitale (Verilog XL). (2.2) Simulazione temporale (Veritime). (2.3) Simulazione dei difetti di fabbricazione (Verifault XL). (3) Generazione del layout (3.1) Posizionamento delle megacelle. (3.2) Posizionamento delle porte logiche standard (standard cell). (3.3) Creazione dei canali di collegamento. (3.4) Routing globale (attribuzione delle connessioni logiche ai canali fisici) (3.5) Routing dettagliato (creazione delle connessioni fisiche). (3.6) Estrazione delle capacità parassite post-layout. (3.7) Simulazione post-layout tenendo conto delle capacità parassite dovute alle connessioni fisiche. (4) Verifica del progetto (4.1) DRC (Design Rule Check) : verifica che i parametri geometrici del circuito siano rispettati. (4.2) ERC (Electrical Rule Check) : verifica che i parametri elettrici del circuito siano rispettati. (4.3) LVS (Layout Versus Schematic) : verifica che le strutture dello schematic e del layout coincidano. (5) Sottomissione del progetto e fabbricazione Una volta finito il progetto viene inviato alla fonderia ES2 per un controllo e per la fabbricazione finale. Nei seguenti paragrafi verranno spiegati in dettaglio tutti i passi qui menzionati, sottolineando con particolare attenzione come funzionano internamente i vari programmi di sintesi e di simulazione e come riescono a fornire un circuito finale le cui probabilità di funzionare sono molto alte. 31

6 no Fig. 2.3 : Diagramma di flusso nella progettazione di circuiti integrati. 32

7 2.3 Il linguaggio VHDL [8] Il linguaggio VHDL è un linguaggio descrittivo dell hardware digitale che permette di descrivere le funzionalità dei circuiti elettronici con un livello di astrazione più alto del livello delle singole porte logiche. Il VHDL sta diventando rapidamente il mezzo più diffuso sia in Europa sia in America per la progettazione di circuiti integrati digitali. Le aziende americane che progettano e sviluppano ambienti integrati di CAD elettronico si stanno standardizzando sul VHDL come input e output dei lori prodotti. Fra questi si trovano in commercio programmi di simulazione e di sintesi, programmi che generano codice VHDL a partire dallo schema elettrico e programmi che convertono il VHDL in altri linguaggi descrittivi dell'hardware e viceversa. La descrizione VHDL di un circuito può avere diversi livelli di astrazione : il livello più alto (quello più lontano dall hardware) contiene una sommaria descrizione sul comportamento dell intera rete, un livello intermedio descrive la suddivisione del circuito nei vari sottoblocchi ed il funzionamento di ciascuno di questi mentre il livello di astrazione più basso, quello più vicino all hardware, è la descrizione del circuito a livello delle porte logiche. Il grande vantaggio di questo approccio risiede nel fatto che ogni descrizione VHDL a qualsiasi livello può essere simulata funzionalmente e può essere eventualmente convertita in uno schema elettrico tramite sintesi, in modo che il funzionamento del circuito può essere tenuto sotto stretto controllo ad ogni livello di astrazione. Quando si comincia la progettazione di un circuito integrato conviene descrivere con il linguaggio VHDL il livello di astrazione più alto definendo ingressi e uscite ed il comportamento interno a grandi linee, poi conviene fare uno schema a blocchi del circuito e una descrizione VHDL per ognuno di questi blocchi. La descrizione VHDL del livello più alto conterrà al suo interno tutti i sottoblocchi collegati fra loro tramite segnali opportunamente temporizzati. Un altro grande vantaggio del linguaggio VHDL sta nel fatto che il codice può essere mappato in uno schema circuitale vero e proprio usando le porte logiche di una qualsiasi libreria tecnologica. Quando un circuito viene costruito manualmente con un CAD elettronico qualsiasi come EDGE e sorge la necessità di riprogettarlo interamente con una libreria tecnologica diversa tutto il progetto deve essere ricominciato da zero, in quanto i parametri di funzionamento delle celle variano da una fonderia all altra. Invece il codice VHDL che sta alla base di un progetto è assolutamente indipendente dalla libreria usata e rimane tale e quale qualsiasi sia la piattaforma tecnologica sulla quale verrà poi implementato. Questa caratteristica del VHDL risulta molto 33

8 utile in quanto dover riprogettare un intero circuito con una libreria diversa può capitare più spesso di quanto non si creda : ad esempio il chip da me progettato è stato implementato con la libreria tecnologica ES2 0.7 µm CMOS Library Design Kit, la libreria più moderna che la ES2 fornisce tramite Europractice. Se in un futuro prossimo si volesse riprogettare il processore usando una tecnologia più avanzata per incrementarne ulteriormente le prestazioni, ad esempio a 0.5 µm, oppure si volesse passare ad una libreria tecnologica di un altra fonderia non sarebbe necessario ripartire dal principio. In questo modo una nuova versione del chip potrebbe essere realizzata riducendo drasticamente il tempo e gli sforzi occorsi la prima volta. Senza entrare nel merito di una approfondita descrizione della sintassi e delle istruzioni del linguaggio VHDL per la quale si rimanda al VHDL Language Reference Manual i paragrafi seguenti contengono una descrizione della terminologia corrente usata in VHDL e una spiegazione di come il VHDL riesce a tenere conto della natura intrinsecamente sequenziale / parallela dell hardware da descrivere Terminologia VHDL I termini elencati di seguito sono correntemente usati in VHDL e verranno utilizzati nei capitoli successivi nella spiegazione del codice sorgente dei blocchi del processore. I commenti relativi alle linee di codice VHDL sono riportate in corsivo. Entità : costituisce l interfaccia fra il circuito in esame ed il mondo esterno. Essa specifica il numero e il tipo delle porte di ingresso e di uscita senza contenere alcun dettaglio sull architettura interna del circuito. In VHDL l entità corrisponde al simbolo nelle tradizionali metodologie di progetto dei CAD elettronici. Negli schemi elettronici tradizionali solo i simboli delle porte logiche semplici come NOT, NAND, XOR, ecc., hanno una rappresentazione grafica dedicata, riconosciuta ormai come standard, mentre tutti i blocchi più complicati sono rappresentati come rettangoli dotati di ingressi e uscite e di un nome che li identifica. Questa stessa funzione è svolta dal nome dato all entità. Ad esempio l entità di un semplice multiplexer a 2 ingressi può essere così descritta : entity multiplexer is port(a,b,s : in bit ; out : out bit) ; end entity 34

9 Il nome multiplexer è assegnato all entità che contiene tre bit in ingresso a, b, s ed un bit in uscita, out. Architettura : descrive quanto avviene all interno della scatola nera definita dall entità. Continuando quindi il paragone di prima l architettura è la controparte VHDL della vista schematic cosi come l entità lo è del simbolo con una sostanziale differenza : mentre la vista schematic è ovviamente di tipo strutturale, cioè a livello di porte logiche e relativi collegamenti, l architettura VHDL può essere sia di tipo strutturale sia di tipo comportamentale (behavioral). Una architettura di tipo strutturale contiene una lista di tutte le porte usate con i relativi collegamenti, mentre una architettura di tipo comportamentale si limita a descrivere il comportamento logico desiderato del circuito con una serie di espressioni logiche comuni a molti linguaggi di programmazione. Ad esempio l architettura behavioral del sopracitato multiplexer è semplicemente : architecture behavioral of multiplexer is if(s = 1 ) then out <= a ; --assegnazione del valore di a all uscita out else out <= b ; --assegnazione del valore di b all uscita out end if ; end architecture ; con una sintassi molto simile alla maggior parte dei linguaggi di programmazione. Configurazione : si usa l istruzione di configurazione quando si vuole porre all interno della descrizione VHDL di un circuito un blocco appartenente alla libreria o un blocco costruito in precedenza. Ad esempio se si vuole inserire la cella multiplexer descritta precedentemente la sintassi dell istruzione di configurazione è la seguente : mpx : multiplexer port map(a => A, b => B, s => S, out => OUT) ; Questa istruzione crea una copia della cella multiplexer di nome mpx e ne associa gli ingressi ai segnali esterni A, B, S e OUT. 35

10 Attributo : è un insieme di dati utili associato alla descrizione VHDL di un circuito. Per esempio si possono attribuire ad un circuito caratteristiche di funzionamento quali la massima corrente d uscita, la temperatura massima di lavoro o il carico capacitivo che le uscite dovranno pilotare. Processo : l istruzione process è l unità di base di una architettura di tipo comportamentale VHDL. Essa permette di rendere sequenziale l ordine di esecuzione di diverse istruzioni che altrimenti opererebbero in parallelo Esempi di progettazione VHDL In questo paragrafo verranno descritti i vari modi possibili per descrivere con il linguaggio VHDL un semplice flip-flop di tipo set-reset. Il simbolo e lo schema circuitale sono ovviamente noti e sono visualizzati in fig. 2.4 : si tratta di passare da questo tipo di descrizione schematica alla descrizione VHDL. Q (a) (b) Fig. 2: Simbolo(a) e schematic(b) di un flip-flop di tipo set-reset. Fig. 2.4: Simbolo (a) e schematic (b) di un flip-flop di tipo set-reset. La stesura del codice per l entità non può essere che la seguente : entity srff is port(set, reset : in bit ; -- set e reset sono ingressi a 1 bit q, notq : out bit) ; -- q e notq sono uscite a 1 bit end srff ; Passando alla descrizione dell architettura si possono intraprendere tre strade diverse : 36

11 1) Architettura strutturale : Un primo modo di descrivere l architettura del flip-flop è a livello delle porte logiche che lo costituiscono : le due porte NAND vengono riferite e collegate fra loro tramite opportuni segnali : architecture netlist of srff is component nand2 -- descrizione del componente usato port(a, b : in bit ; -- a e b sono due ingressi a 1 bit c : out bit) ; --c è una uscita a 1 bit end component ; begin --inizia la descrizione dei collegamenti U1 : nand2 port map(a => set, b => notq, c => q) ; U2 : nand2 port map(a => reset, b => q, c => notq) ; end netlist ; Vengono generate due copie U1 e U2 della porta logica nand2, un semplice nand a due ingressi, e i rispettivi ingressi a, b e l uscita c vengono collegati come scritto. Una architettura di questo tipo si chiama netlist ed è un modo esattamente equivalente di descrivere lo schema circuitale elencando tutte le singole porte ed i rispettivi collegamenti. È ovvio che adottando questo tipo di architettura il progettista deve già avere chiaro in mente lo schema elettrico, quindi non sfrutta in pieno le potenzialità del linguaggio VHDL e dei programmi di sintesi. 2) Architettura comportamentale (behavioral) : In questo tipo di rappresentazione le uscite sono definite in base ad operazioni logiche effettuate sugli ingressi : architecture behavioral of rsff is begin q <= NOT(notq AND set) ; --istruzione di assegnazione al segnale q notq <= NOT(q AND reset) ; --istruzione di assegnazione al segnale notq end behavioral ; Tramite un programma di sintesi come Synergy gli operatori logici AND e NOT vengono implementati in hardware con due porte NAND. Inoltre occorre sottolineare che le due istruzioni di assegnazione ai segnali q e notq sono istruzioni concorrenti, cioè non vengono eseguite in un ordine prestabilito. Ogni assegnazione viene eseguita appena si ha un cambiamento su 37

12 uno dei due segnali che si trova alla destra del simbolo di assegnazione <=. Nel caso considerato appena si ha una variazione di notq viene eseguita la prima istruzione che produce una variazione di q, quest ultima variazione produce quindi l esecuzione della seconda istruzione di assegnazione. 3) Architettura sequenziale : Il terzo modo di rappresentare l architettura di un circuito consiste nell usare l istruzione processo che permette di rendere le istruzioni di assegnazione a segnale di tipo sequenziale : architecture sequential of rsff is begin process(set, reset) --inizio dell istruzione processo begin if(set = 1 and reset = 0 ) then --caso 1 q <= 0 ; notq <= 1 ; elsif(set = 0 and reset = 1 ) then --caso 2 q <= 1 ; notq <= 0 ; elsif(set = 1 and reset = 1 ) then --caso 3 q <= NOT(notq) ; notq <= NOT(q) ; end if ; end process ; end sequential ; L istruzione process viene eseguita quando avviene una variazione su uno dei due ingressi set e reset e le istruzioni contenute all interno del processo sono eseguite in modo sequenziale. In questo modo una volta partito il processo prima viene assegnato un valore a q e soltanto dopo a notq. Se invece la riga di codice VHDL fosse stata : notq <= X ; q <= X ; dove per X si intende un qualunque valore logico, allora l ordine di esecuzione delle istruzioni sarebbe stato l opposto. In conclusione sono stati descritti tre tipi di architetture per la medesima entità e può sorgere la domanda : quale è l architettura più adatta per descrivere il flip-flop set-reset? L architettura di tipo netlist è indicata se si ha già chiaro in mente lo schema circuitale ma può essere conveniente usarla solo per circuiti molto 38

13 piccoli; inoltre è la meno flessibile in quanto si riferisce a componenti di una ben precisa libreria, quindi non sfrutta in pieno i vantaggi offerti dal VHDL. Per quanto riguarda gli altri due tipi di architettura un uso sapiente di istruzioni sequenziali e parallele all interno della stessa architettura può portare ad efficienti modellizzazioni del comportamento dell hardware. Gli esempi qui riportati dovrebbero permettere di leggere e capire come è stato strutturato il codice VHDL di ogni blocco del processore il cui codice è riportato in versione integrale e completo in Appendice B. Lo stile usato quasi ovunque è quello di una architettura mista behavioral / sequenziale : l architettura tipo è suddivisa in vari processi indipendenti, alcuni sincronizzati con il clock (cioè vengono attivati solo dall arrivo del fronte di salita o di discesa del clock), altri sincronizzati con la variazione di segnali di tipo più generale come reset o memory enable. Tutti questi processi sono indipendenti fra loro, perciò a volte può risultare difficile avere un controllo pieno della propagazione dei segnali fra i vari processi. È per questo motivo che risulta utile avere un simulatore di codice VHDL quale Leapfrog Simulator che permette di conoscere istante per istante come variano i segnali all interno di ogni processo e quindi permette un controllo del comportamento globale. 2.4 Generazione delle megacelle Alcuni componenti elettronici standard come le memorie RAM, ROM, FIFO ed i moltiplicatori possono essere generati automaticamente grazie ad un programma fornito dalla fonderia ES2 senza doverli progettare a partire da una descrizione VHDL o dal livello delle porte logiche. Il programma in linguaggio C ES2generate permette di generare una qualsiasi delle megacelle citate inserendo soltanto i parametri di lavoro voluti dall utente. Ad esempio nel processore HEPE97 sono presenti tre memorie RAM generate come megacelle. Il programma interattivo ES2generate richiede il numero di parole della memoria ed il numero di bit per ogni parola e produce in uscita le diverse configurazioni finali fra cui è possibile scegliere. Per quanto riguarda la memoria delle regole Ramrule, che contiene tutte le regole del sistema fuzzy, inserendo il numero di parole, 64, ed il numero di bit per parola, 9, si ottiene in uscita la possibilità di scegliere fra 4 possibili configurazioni della Ramrule : Tempo d accesso Dimensioni laterali Area totale 1) 8.79 ns x mm x mm 0.32 mm 2 2) 8.02 ns x mm x mm 0.32 mm 2 3) 8.03 ns x mm x mm 0.35 mm 2 39

14 4) 8.31 ns x mm x mm 0.54 mm 2 La scelta fra queste 4 possibilità può sembrare del tutto arbitraria ma deve essere guidata da precise linee guida : il parametro più importante da scegliere in base alla temporizzazione esterna della memoria è il tempo d accesso, cioè il tempo che passa dalla commutazione del segnale di abilitazione della memoria (memory enable) a quando il dato è stato letto o scritto. Occorre poi prestare attenzione alle dimensioni laterali della memoria il cui valore è del tutto irrilevante in fase di simulazione dello schema circuitale ma che può diventare decisivo in fase di progettazione ed ottimizzazione del layout del progetto. Per riempire al meglio gli spazi all interno dell area utilizzata per realizzare il circuito integrato può risultare più conveniente scegliere una memoria RAM di forma quasi quadrata oppure una memoria molto più lunga che larga. Nel nostro caso, per esempio, dopo avere provato tutte le possibili configurazioni nel layout finale del processore la scelta è caduta sulla terza possibilità in quanto le dimensioni laterali erano quelle che meglio si adattavano alla geometria dei vari blocchi. Quando poi la fonderia ES2 dovrà realizzare fisicamente la memoria su silicio farà uso di tutti i file generati dal programma ES2generate per precisare i parametri fisici della memoria. 2.5 Simulazione funzionale con Leapfrog Simulator Leapfrog Simulator permette di simulare il funzionamento logico partendo dalla descrizione VHDL di una rete logica a qualsiasi livello di astrazione. Questo risulta molto utile quando l architettura VHDL è formata da più processi che lavorano in parallelo e può non essere più chiaro l ordine in cui i vari segnali commutano. Al variare dei segnali in ingresso Leapfrog visualizza istante per istante il livello logico, 0 o 1 o X cioè indefinito, di qualsiasi segnale interno e di tutte le uscite della rete logica. In questo modo la rete viene stimolata con valori in ingresso scelti dal progettista che contemporaneamente tiene sotto controllo l evolversi temporale di tutti i segnali usati nell architettura. Ad esempio il file contenente gli stimoli con cui si può simulare logicamente una qualsiasi delle architetture con cui si è descritto il flip-flop tipo set-reset può contenere i seguenti ingressi : set <= 1 ; reset <= 0 ; --istruzione di assegnazione all istante iniziale wait for 50 ns ; set <= 0 ; reset <= 1 ; --istruzione di assegnazione dopo 50 ns wait for 50 ns ; 40

15 set <= 1 ; reset <= 1 ; --istruzione di assegnazione dopo 100 ns wait for 50 ns ; All inizio i due ingressi set e reset vengono settati a 0 e rimangono in questa situazione per 50 ns, dopodiché variano portandosi nella configurazione 1-0 e così via. Le forme d onda (C-waves) generate da Leapfrog visualizzano la variazione delle uscite nel momento esatto in cui ciò dovrebbe avvenire logicamente, come visibile in fig SET RESET Q NOTQ 50 ns 50 ns 50 ns Fig. 2.5: Forme d onda relative alla simulazione del flip-flop. La simulazione funzionale del codice VHDL è molto importante anche perché, una volta accertata la sua correttezza, si può dedicare tutta l attenzione al processo di sintesi e alla simulazione dello schema circuitale così ottenuto. 2.6 Sintesi del codice VHDL L aspetto più interessante nella progettazione ad alto livello di circuiti integrati è la sintesi del codice VHDL. La sintesi è un metodo completamente automatizzato di convertire un alto livello di astrazione (descrizione VHDL) in un livello di astrazione molto più basso (schema circuitale). A livello commerciale esistono molti programmi di sintesi: i più usati sono Synergy della Cadence e Synopsys dell omonima casa americana. Noi abbiamo usato 41

16 Synergy per ragioni di compatibilità col software utilizzato che è della Cadence. Il sintetizzatore Synergy prende in ingresso il codice VHDL e lo trasforma in una lista (netlist) di porte logiche prese dalla libreria tecnologica scelta (processo di mapping). Questa netlist può poi essere ottimizzata per rispettare vincoli come area, velocità, carico capacitivo, ecc., che sono scelti dal progettista a seconda dell applicazione finale. Gli ingressi al processo di sintesi sono la descrizione VHDL, i vincoli e la libreria tecnologica come si vede in fig libreria tecnologica descrizione VHDL sintesi netlist vincoli Fig. 2.6 : Schema a blocchi del processo di sintesi. I prossimi tre paragrafi descrivono quali tipi di vincoli si possono usare e come funziona più in dettaglio il processo di sintesi vero e proprio Il processo di sintesi Per convertire una descrizione VHDL in uno schema circuitale occorrono tipicamente tre passi. Prima di tutto la descrizione VHDL viene convertita in una descrizione booleana delle uscite in funzione degli ingressi, cioè ogni uscita viene rappresentata come una serie di operazioni logiche AND e OR effettuate sugli ingressi. Tutte le normali istruzioni VHDL quali IF, CASE, LOOP e tutte le istruzioni di assegnamento a segnale vengono convertite nell equivalente booleano attraverso semplici tabelle di verità che associano i valori reali degli ingressi ai valori desiderati delle uscite. La descrizione ottenuta in questo modo è funzionalmente corretta ma non è per niente 42

17 ottimizzata, cioè se venisse direttamente convertita in uno schema circuitale implementando ogni operazione logica AND con la porta logica AND ed ogni operazione logica OR con la relativa cella il risultato ottenuto non sarebbe accettabile né in termini di area né in termini di velocità. Per questo motivo il secondo passo consiste nell applicare algoritmi di ottimizzazione booleana che portano alla realizzazione di una descrizione logica equivalente ma ottimizzata. L ultimo passo consiste nel mappare la descrizione booleana finale in porte logiche appartenenti alla libreria scelta e produrre la netlist finale. Questa netlist viene scelta fra una varietà di possibili soluzioni in base ai vincoli imposti dal progettista principalmente sull area e sulla velocità. Alcune netlist danno origine a schemi circuitali che sono molto veloci ma richiedono molte celle della libreria, altre producono schemi elettrici più lenti ma con una superficie minore Vincoli I vincoli forniscono gli obiettivi che i processi di ottimizzazione e mapping dovrebbero raggiungere e controllano l implementazione strutturale del progetto. I vincoli disponibili nei moderni programmi di sintesi riguardano l area, i ritardi, la potenza assorbita, il carico, ecc., ma quelli più usati riguardano essenzialmente l area e la velocità. Più in dettaglio: 1) Area : il vincolo sull area viene usato per specificare il valore di superficie desiderato entro il quale il progettista spera rientri il circuito. L unità di misura con cui viene specificata l area può essere scelta dal progettista ma di solito si usano i micrometri quadrati (µm 2 ). Imponendo ad un circuito il vincolo di non superare i 1200 µm 2 il programma di sintesi ottimizza la netlist ottenuta fino a soddisfare l obiettivo richiesto se ciò è possibile, altrimenti ricerca il valore più vicino possibile a quello desiderato. Specificando come vincolo un area uguale a 0 µm 2 l algoritmo di ottimizzazione lavorerà fino a trovare l area più piccola possibile anche se ciò andrà interamente a scapito del tempo di propagazione del segnale dall ingresso alle uscite. 2) Velocità : questo vincolo viene usato per tenere sotto controllo i ritardi massimi di propagazione del segnale in alcuni percorsi del circuito. Ad esempio un vincolo temporale tipico è il ritardo massimo con cui il segnale si propaga dall ingresso all uscita. Questo vincolo guida il processo di ottimizzazione e di mapping fino ad una netlist che soddisfa la richiesta. Per il sintetizzatore questo tipo di richieste è il più difficile da rispettare. La figura 2.7 permette di chiarire meglio questo concetto. Lo schema disegnato 43

18 è molto rappresentativo per una tipica rete logica sequenziale : il flusso logico dei dati è sincronizzato con un clock e nel tempo che passa da un colpo di clock al successivo il segnale deve essere elaborato dalla logica combinatoria che si trova fra uno strato di registri ed il successivo. Si può comunicare al sintetizzatore quale dovrebbe essere la frequenza di lavoro del clock in modo che l ottimizzatore manipoli la logica combinatoria in modo tale che il segnale prodotto faccia in tempo a sincronizzarsi con il periodo di clock successivo. Altrimenti si può direttamente porre un vincolo temporale sulle uscite della logica combinatoria in relazione agli ingressi. Per raggiungere questo obiettivo il sintetizzatore esegue un analisi temporale dei ritardi in ogni nodo del circuito, tenendo conto del tempo di propagazione di ogni singola porta e sommando questi ritardi per ogni porta che viene attraversata. Se alla fine di questo lavoro di verifica il sintetizzatore giunge alla conclusione che i vincoli temporali sono stati rispettati, il processo di ottimizzazione e mapping può ritenersi concluso, altrimenti ulteriori strategie di ottimizzazione dovranno essere applicate. REGISTRO A REGISTRO B INGRESSO LOGICA COMBINATORIA USCITA CLOCK Fig. 2.7: Struttura tipica di una rete logica sequenziale Libreria tecnologica La libreria tecnologica contiene tutte le informazioni necessarie al programma di sintesi per creare una netlist di porte logiche che soddisfi ai vincoli imposti dal progettista. Di ogni porta logica la libreria tecnologica contiene non solo la funzionalità logica, ma anche l area, il ritardo dall ingresso all uscita (minimo, tipico, massimo), il fanin (il valore capacitivo 44

19 assegnato alla porta d ingresso), il fanout (la capacita di pilotare le porte che seguono) e tutte le caratteristiche fisiche utili al sintetizzatore. Le tabelle tab. 2.1 e 2.2 riportano tutte le caratteristiche della porta logica AND2 (AND a due ingressi) della libreria StdLib della ES2. Lunghezza µm Larghezza µm Numero di transistor 7 Dissipazione 4.26 µw/mhz Fanin in A pf Fanin in B pf Fanout in Y 1.31 pf Tab. 2.1: Tabella con le caratteristiche di una porta logica AND2 della libreria StdLib della ES2. CODICE DA A MIN TIP MAX tplh a y 0.14 ns 0.30 ns 0.60 ns tphl a y 0.19 ns 0.40 ns 0.80 ns tplh b y 0.17 ns 0.36 ns 0.71 ns tphl b y 0.18 ns 0.38 ns 0.75 ns dtplh a o b y 0.37 ns/pf 0.78 ns/pf 1.55 ns/pf dtphl a o b y 0.39 ns/pf 0.82 ns/pf 1.63 ns/pf Tab. 2.2: Tempi di ritardo fra ingresso e uscite della porta AND2. Nella successiva fig. 2.8 è visualizzato il funzionamento dell algoritmo del sintetizzatore per calcolare il tempo che il segnale impiega fra la porta A1 e la C1. Esso è dato da: dove: ritardo totale = (ritardo intrinseco) + (ritardo dovuto al carico) + (ritardo dovuto alla connessione fisica) il ritardo intrinseco è il tempo che la porta B1 impiegherebbe per commutare se non dovesse pilotare altre porte; 45

20 il ritardo dovuto al carico è il ritardo dovuto al carico capacitivo da pilotare rappresentato dalla porta C1 ; il ritardo dovuto alla connessione fisica è il tempo che il segnale impiega per propagarsi lungo la connessione fisica fra le porte B1 e C1. ritardo dovuto al carico A1 B1 C1 ritardo intrinseco ritardo dovuto al collegamento fisico Fig. 2.8: Le tre componenti del ritardo attraverso la porta B1. Normalmente il sintetizzatore tiene conto soltanto delle prime due componenti a meno che il ritardo dovuto alle connessioni fisiche non sia giudicato determinante dal progettista: in questo caso occorre settare le opzioni del sintetizzatore in modo che ad ogni collegamento sia assegnato un ritardo. In base ai valori riportati nella libreria tecnologica della cella ES2 il sintetizzatore calcola il tempo minimo ed il tempo massimo che il segnale impiega per fare commutare la porta B1. Inoltre il sintetizzatore tiene conto del fanin e del fanout di ogni porta per controllare che non vi siano dei sovraccarichi (overload) : ad esempio la porta AND2 ha un fanout dichiarato di 1.31 pf, cioè può pilotare senza problemi tante porte logiche in parallelo tali che la capacità totale risulti inferiore a 1.31 pf. Se questo valore viene oltrepassato la cella AND2 non è più capace di pilotare le porte che la seguono e il funzionamento dell intera rete risulta pregiudicato. A volte però può capitare che il sintetizzatore commetta degli errori e produca degli schemi elettrici con sovraccarichi di diversa entità: si ha un important overload quando il rapporto fra il carico capacitivo effettivo e quello massimo pilotabile è maggiore di 1.4, un overload normale invece 46

21 quando questo rapporto è compreso fra 1 e 1.4. L unico modo per risolvere questo tipo di problema è intervenire direttamente sullo schema elettrico introducendo delle porte buffer (BUF39 nella libreria standard della fonderia ES2) che hanno un basso fanin e sono in grado di pilotare un alto carico capacitivo. La libreria tecnologica può anche contenere dati riguardanti le variazioni dei parametri di funzionamento di una cella in funzione delle condizioni effettive di lavoro, quali la tensione di alimentazione o la temperatura del dispositivo. Tenendo conto di tutti questi fattori è molto probabile che lo schema elettrico finale sia perfettamente corrispondente alle aspettative del progettista sotto ogni punto di vista. 2.7 Strumenti di simulazione Poiché le reti logiche diventano giorno dopo giorno sempre più complicate i progettisti si trovano di fronte all arduo problema di assicurarsi che i loro progetti funzionino correttamente una volta realizzati. I costi di realizzazione uniti al tempo totale di fabbricazione rendono vitale la necessità che il progetto commissionato sia corretto e perfettamente funzionante in ogni sua parte, prima di essere commissionato alla fonderia. È per tutti questi motivi che la simulazione circuitale assistita al calcolatore assume particolare importanza, in quanto ci si aspetta che un progetto che abbia superato tutte le simulazioni software funzioni esattamente allo stesso modo una volta implementato in hardware. Un approccio possibile per simulare il funzionamento di un progetto è dividere la verifica funzionale e temporale in due processi separati, per mezzo di due programmi diversi ognuno ottimizzato per il proprio compito. In questo modo il simulatore funzionale è libero di usare un semplice modello per i ritardi che permette una verifica funzionale molto veloce. Un secondo programma gestisce separatamente la verifica dei tempi usando algoritmi sofisticati creati appositamente per l analisi temporale. L ambiente integrato di lavoro Cadence utilizza questo tipo di approccio con i due simulatori Verilog e Veritime. Verilog è un simulatore logico estremamente veloce che permette una rapida analisi funzionale, Veritime è il corrispettivo analizzatore dei tempi che permette un approfondita analisi temporale del medesimo circuito. Veritime è capace di svolgere o una analisi temporale di ogni percorso della rete logica desiderato oppure una unica forma di analisi ibrida che fonde la potenza di una analisi temporale basata sulla conoscenza dei vettori di ingresso e di programmi che calcolano il tempo impiegato dal segnale su ogni possibile percorso del circuito. I prossimi paragrafi descrivono più in dettaglio il 47

22 funzionamento di Verilog e Veritime e come devono essere usati per testare nel modo più approfondito possibile il funzionamento di un circuito. 2.8 Simulazione circuitale con Verilog XL Il primo controllo da effettuare sullo schema elettrico ottenuto con il sintetizzatore Synergy ha lo scopo di verificare che questo si comporti esattamente come descritto nel codice VHDL. Poiché il codice VHDL è stato simulato in precedenza con alcuni vettori di ingresso usando il simulatore Leapfrog, conviene stimolare la rete circuitale ottenuta con gli stessi ingressi per verificare che i risultati siano compatibili. Il procedimento è analogo alla simulazione logica: in un file di stimolo STL (Simulation Test Language) vengono scritti i vettori di test che verranno posti in ingresso al circuito; quindi le uscite e tutti i segnali interni richiesti dal progettista vengono monitorati per controllare che i risultati siano corretti. Tutti i segnali di cui si vuole controllare l evoluzione temporale sono graficati con forme d onda (c-waves) esattamente come avveniva con Leapfrog ma tenendo conto del ritardo introdotto da ogni cella. Fra le opzioni di simulazione si può scegliere se considerare per ogni cella il tipo di ritardo minimo, tipico o massimo fra i tre valori che si trovano nella libreria tecnologica: di solito viene scelto il ritardo massimo per mettersi nel caso peggiore possibile, anche se la possibilità che tutte le celle di una rete commutino con il ritardo massimo è una situazione altamente improbabile, è molto più probabile una distribuzione normale dei ritardi attorno ad un valore medio. La fig. 2.9 mostra le forme d onda relative al flip-flop setreset 48

23 Fig. 2.9: Forme d onda relative alla simulazione del flip-flop con Verilog. generate da Verilog e va confrontata con la fig. 2.3 che riporta le forme d onda generate da Leapfrog. Poiché il simulatore Verilog usa lo stesso algoritmo per il calcolo dei ritardi di Synergy si può verificare l accuratezza del lavoro svolto dal sintetizzatore. In più Verilog produce in uscita il file dl.log nel quale è riportato il carico capacitivo reale di tutti i segnali interni al circuito, compresi eventuali sovraccarichi che devono essere eliminati con l introduzione di celle buffer nello schema circuitale. Vediamo come esempio una parte di un file di stimolo STL relativo ad un flip-flop di tipo D per capire in particolar modo come temporizzare il clock ed i segnali in ingresso rispetto al clock: Input.stl di un flip-flop di tipo D --definizione dei segnali usati defpin Data_in in --dato in ingresso defpin Ck clk --clock defpin Data_out out --dato in uscita --definizione delle temporizzazioni deftiming 100ps 2ns 20ns defclock Ck --basso per 10 ns e alto per 10 ns defstrobe in edge...%%%%% Data_in --il dato cambia dopo 10 ns defformat (Data_in) deftest xv(0) --entra il dato a livello logico 0 xv(1) --entra il dato a livello logico 1 49

24 endtest Ck Data_in 10 ns 10 ns 20 ns Fig. 2.10: Temporizzazione del flip-flop tipo D descritto nel file input.stl. La visualizzazione grafica dei segnali relativi a questi stimoli è riportata in fig Per prima cosa con l istruzione defpin vengono definiti gli ingressi Data_in e Ck e l uscita Data_out. Con l istruzione deftiming viene specificata la temporizzazione degli ingressi: 100ps è la risoluzione usata nella visualizzazione delle forme d onda d uscita (ogni evento che ha una dinamica inferiore ai 100 ps non viene rilevato da Verilog), 20 ns è il periodo del clock usato, 2 ns è la decima parte del periodo clock, il valore temporale di ognuno dei puntini, unità o percentuali che si trovano nelle istruzioni successive. L istruzione defclock definisce la temporizzazione del segnale Ck, cioè come varia il clock all interno dei 20 ns: cinque punti seguiti da cinque unità stanno a significare che per 10 ns il clock sta a livello logico 0 per poi commutare e rimanere a livello logico 1 per i rimanenti 10 ns. Se l istruzione defclock fosse stata la seguente: defclock Ck allora il clock sarebbe rimasto a livello logico 0 per 4 ns (due puntini equivalgono a 4 ns), a livello 1 per 10 ns e di nuovo a 0 fino alla fine del periodo. Con la stessa istruzione si potrebbe definire un clock asimmetrico, ad esempio un clock che rimane più tempo a livello logico 0 che a 1, mettendo più puntini che unità. L istruzione defstrobe in edge definisce la temporizzazione dell unico ingresso Data_in rispetto al clock: i 5 punti seguiti da 5 simboli % significano che il dato commuta 10 ns dopo l inizio del 50

25 periodo clock, come visibile in fig Usando quindi le istruzioni defclock e defstrobe si può modellare a piacimento la temporizzazione dei segnali di ingresso ad una rete data. La successiva istruzione defformat contiene una lista di tutti gli ingressi ad esclusione del clock (in questo caso solo Data_in) mentre tutte le istruzioni comprese fra deftest ed endtest contrassegnate con la parola chiave xv costituiscono la successione dei livelli logici dei segnali d ingresso con le temporizzazioni definite sopra: in questo caso ad esempio durante il primo periodo di clock Data_in si trova a livello logico 0 mentre durante il secondo si trova ad 1. Una volta verificato il funzionamento del circuito con Verilog è necessario passare ad una più approfondita analisi temporale con Veritime, che è capace di evidenziare problemi spesso invisibili a Verilog. 2.9 Analisi temporale con Veritime Veritime è un programma della Cadence dedicato ad una analisi approfondita della temporizzazione delle reti logiche digitali. I prossimi paragrafi sono dedicati ad una spiegazione dettagliata del modo di operare di Veritime e degli algoritmi che ne stanno alla base confrontandoli con quelli usati dal sintetizzatore Synergy e da Verilog Dispositivi di memoria e vincoli temporali Le reti logiche contengono generalmente parti di logica puramente combinatoria, dove il segnale scorre attraverso le porte rispettando i relativi ritardi di propagazione. Ogni blocco di logica combinatoria è di solito seguito e preceduto da uno o più elementi pilotati da un clock che servono a memorizzare lo stato dei segnali per il periodo di clock successivo. Questi elementi di logica sequenziale, che d ora in poi saranno chiamati dispositivi di memoria, sono essenziali per costruire architetture di tipo pipeline e sono particolarmente importanti per Veritime. Lo scopo principale dell analisi dei tempi è verificare che il flusso di dati attraverso i blocchi di logica combinatoria sia sufficientemente veloce da non violare i vincoli imposti sui dispositivi di memoria. Dal punto di vista dell analisi di una rete si può dire che tali dispositivi suddividono l intera rete in blocchi più semplici da trattare. Questi dispositivi di memoria comprendono : flip-flop di tipo latch : un flip-flop di questo tipo lascia passare il dato solo se la linea del clock è attiva, mentre memorizza l ultimo valore in ingresso quando il clock è a livello logico 0. 51

26 flip-flop di tipo edge-triggered : un flip-flop di questo tipo trasferisce il dato dall ingresso all uscita solo quando si ha una transizione sul valore del clock (ad esempio quando passa dal valore 0 a 1). Si usa il termine registro per indicare un insieme di flip-flop di tipo edeg-triggered che sono comandati in parallelo dal medesimo clock. memorie RAM : le memorie vengono usate per memorizzare una grande quantità di dati. Anche se di solito non sono pilotate da un clock devono rispettare alcuni rigidi vincoli temporali (timing check). Ad esempio l indirizzo inviato ad una RAM non deve variare non solo durante la fase di scrittura in memoria ma anche per un certo periodo precedente e seguente la scrittura. Vincoli temporali di questo tipo sono una parte importante del progetto e una completa analisi temporale ne deve tenere conto. In una analisi di Veritime i vincoli temporali imposti su ciascuno dei dispositivi di memoria sopra descritti sono incorporati nella libreria tecnologica. I più comuni vincoli temporali sono quelli di setup, di hold e di nochange (vedi fig e fig. 2.12). Clock 4 3 setup hold regione di violazione (il dato non deve cambiare in questo periodo) Fig. 2.11: Diagramma temporale dei vincoli di setup e hold. 52

27 I vincoli di setup e hold specificano che il dato in ingresso deve rimanere stabile per un certo periodo di tempo prima e dopo che vari il segnale del clock. Il vincolo nochange invece è usato per specificare che il dato non deve assolutamente commutare di livello entro un periodo specificato dal progettista. Le RAM hanno una serie di vincoli relativi alla temporizzazione del bus di indirizzi, del bus di dati di ingresso e uscita e dei segnali di enable di lettura e di scrittura che sono tutti specificati nella libreria Megacell. clock 4 lim ite 1 3 limite 2 regione di violazione Fig. 2.12: Diagramma temporale del vincolo nochange. La maggior parte dei vincoli temporali è usata per governare il rapporto fra due ingressi di un dispositivo di memoria, tipicamente un dato e un clock. Veritime trova una violazione quando la relativa temporizzazione dei percorsi che conducono a tali ingressi è tale da violare il vincolo temporale che governa il dispositivo Come Veritime trova le violazioni temporali Per verificare la presenza di violazioni temporali nella temporizzazione di un flip-flop Veritime deve calcolare gli istanti di tempo in cui si ha una variazione sul dato e sul clock. Per fare questo il simulatore deve analizzare tutta la logica combinatoria che sta a monte del flip-flop, tenendo in considerazione tutti i possibili percorsi che il dato e il clock possono scegliere. In più sia per il dato, sia per il clock, Veritime tiene conto dell istante minimo e di quello massimo in cui può avvenire la commutazione : l istante minimo è calcolato utilizzando il percorso più corto assegnando ad ogni porta attraversata il ritardo di propagazione minimo, l istante massimo invece è 53

28 calcolato sul percorso più lungo assegnando il ritardo di propagazione massimo ad ogni porta. In questo modo entrambi i segnali in ingresso al flipflop avranno un intervallo di tempo in cui possono commutare. La scelta del percorso più corto con ritardi minimi e di quello più lungo con ritardi massimi è dovuta alla necessità di prendere in considerazione i due casi estremi che possono verificarsi. Una volta eseguiti questi calcoli Veritime esamina la sovrapposizione dei due intervalli : se c è la possibilità che il vincolo temporale associato al flip-flop non sia rispettato viene visualizzato un messaggio di errore. Di fronte ad un problema di questo tipo si possono intraprendere diverse azioni, ad esempio si può : 1) aumentare il periodo del clock (e quindi diminuire la frequenza di lavoro) ; 2) diminuire la lunghezza del collegamento fisico fra due punti sul layout ; 3) usare componenti più veloci o, in un progetto full-custom, riprogettare certi transistor per renderli più veloci ; 4) usare algoritmi logici più veloci, ad esempio sostituendo un sommatore in cascata con un carry look ahead ; 5) cambiare l architettura del progetto, ad esempio spezzando in più periodi di clock una operazione complessa. Ognuno di questi accorgimenti richiede di dovere riprendere e modificare l architettura del progetto fino a quando non siano state eliminate tutte le violazioni. Il simulatore Veritime aiuta a scegliere fra le varie possibili decisioni da prendere con alcune utilità che lo contraddistinguono : ad esempio Veritime può evidenziare il percorso che dà dei problemi direttamente sullo schematic in modo che si possa intervenire solo nel punto critico. Un altra caratteristica utile di Veritime è la funzione distribuzione dei percorsi, che può aiutare a stimare quanto sia difficile correggere i problemi temporali nel circuito. Questa routine calcola il tempo impiegato su ciascuno dei possibili percorsi fra un insieme di ingressi e un insieme di uscite, producendo in uscita l istogramma della distribuzione dei ritardi : se solo pochi percorsi producono una violazione allora il problema può essere risolto con il minimo sforzo modificando i soli percorsi interessati, se invece un numero di percorsi molto grande è fonte di violazioni allora il blocco circuitale deve essere riprogettato da capo. La funzione di distribuzione dei percorsi usa un algoritmo ottimizzato per essere molto veloce anche quando il numero totale di percorsi possibili è enorme. Prima di prendere delle decisioni drastiche occorre però studiare accuratamente l errore visualizzato da Veritime, in quanto si potrebbe anche trattare di un falso errore. Una falsa violazione non rappresenta un errore vero 54

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE. Design Flow

ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE. Design Flow ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE Design Flow Prof. Luigi Raffo Dipartimento di ingegneria elettrica ed elettronica Università di Cagliari Flusso di progetto classico su silicio

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X. Algebra Di Boole L algebra di Boole è un ramo della matematica basato sul calcolo logico a due valori di verità (vero, falso). Con alcune leggi particolari consente di operare su proposizioni allo stesso

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Reti sequenziali sincrone

Reti sequenziali sincrone Reti sequenziali sincrone Un approccio strutturato (7.1-7.3, 7.5-7.6) Modelli di reti sincrone Analisi di reti sincrone Descrizioni e sintesi di reti sequenziali sincrone Sintesi con flip-flop D, DE, T

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Circuiti sequenziali e elementi di memoria

Circuiti sequenziali e elementi di memoria Il Livello Logicoigitale I circuiti sequenziali Corso ACSO prof. Cristina SILVANO Politecnico di Milano Sommario Circuiti sequenziali e elementi di memoria Bistabile SR asincrono Temporizzazione e clock

Dettagli

Calcolatori Elettronici B a.a. 2006/2007

Calcolatori Elettronici B a.a. 2006/2007 Calcolatori Elettronici B a.a. 2006/2007 RETI LOGICHE: RICHIAMI Massimiliano Giacomin 1 Due tipi di unità funzionali Elementi di tipo combinatorio: - valori di uscita dipendono solo da valori in ingresso

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Reti sequenziali. Esempio di rete sequenziale: distributore automatico.

Reti sequenziali. Esempio di rete sequenziale: distributore automatico. Reti sequenziali 1 Reti sequenziali Nelle RETI COMBINATORIE il valore logico delle variabili di uscita, in un dato istante, è funzione solo dei valori delle variabili di ingresso in quello stesso istante.

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

L applicazione dei vettori di collaudo

L applicazione dei vettori di collaudo L applicazione dei vettori di collaudo Fulvio Corno Maurizio Rebaudengo Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Introduzione Gli ATE I programmi di collaudo.

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Scheda. Il CRM per la Gestione del Marketing. Accesso in tempo reale alle Informazioni di rilievo

Scheda. Il CRM per la Gestione del Marketing. Accesso in tempo reale alle Informazioni di rilievo Scheda Il CRM per la Gestione del Marketing Nelle aziende l attività di Marketing è considerata sempre più importante poiché il mercato diventa sempre più competitivo e le aziende necessitano di ottimizzare

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

LA MOLTIPLICAZIONE IN CLASSE SECONDA

LA MOLTIPLICAZIONE IN CLASSE SECONDA LA MOLTIPLICAZIONE IN CLASSE SECONDA Rossana Nencini, 2013 Le fasi del lavoro: 1. Proponiamo ai bambini una situazione reale di moltiplicazione: portiamo a scuola una scatola di biscotti (. ) e diamo la

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Statistica 4038 (ver. 1.2)

Statistica 4038 (ver. 1.2) Statistica 4038 (ver. 1.2) Software didattico per l insegnamento della Statistica SERGIO VENTURINI, MAURIZIO POLI i Il presente software è utilizzato come supporto alla didattica nel corso di Statistica

Dettagli

Laurea Specialistica in Informatica

Laurea Specialistica in Informatica Corso di Laurea in FISICA Laurea Specialistica in Informatica Fisica dell informazione 1 Elementi di Architettura degli elaboratori Prof. Luca Gammaitoni Informazioni sul corso: www.fisica.unipg unipg.it/gammaitoni/fisinfoit/gammaitoni/fisinfo

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione Commutazione 05.2 Trasmissione di dati al di fuori di un area locale avviene tramite la Autunno 2002 Prof. Roberto De Prisco -05: Reti a di circuito Università degli studi di Salerno Laurea e Diploma in

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda. Scheda Il CRM per la Gestione delle Vendite Le organizzazioni di vendita sono costantemente alla ricerca delle modalità migliori per aumentare i ricavi aziendali e ridurre i costi operativi. Oggi il personale

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

CONTABILITÀ FINANZIARIA ASCOT 3 IL PROSPETTO DI CONCILIAZIONE SPECIFICHE FUNZIONALI SCHEMI OPERATIVI SOLUZIONE AI PROBLEMI

CONTABILITÀ FINANZIARIA ASCOT 3 IL PROSPETTO DI CONCILIAZIONE SPECIFICHE FUNZIONALI SCHEMI OPERATIVI SOLUZIONE AI PROBLEMI PROGETTO ASCOT COD. : ASCOT-31-PC-01 VERS. : 1.00.00 DATA : 1.03.2002 CONTABILITÀ FINANZIARIA ASCOT 3 IL PROSPETTO DI CONCILIAZIONE SPECIFICHE FUNZIONALI SCHEMI OPERATIVI SOLUZIONE AI PROBLEMI AGGIORNAMENTI

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

FIRESHOP.NET. Gestione completa delle fidelity card & raccolta punti. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione completa delle fidelity card & raccolta punti. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione completa delle fidelity card & raccolta punti Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 3 La gestione delle fidelity card nel POS... 4 Codificare una nuova fidelity

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Rendering air show e verifica della sincronizzazione

Rendering air show e verifica della sincronizzazione Capitolo 5 Rendering air show e verifica della sincronizzazione 5.1 Introduzione Il Rendering 3D dell evoluzioni acrobatiche costituisce uno degli aspetti cruciali dell applicazione realizzata. L ambiente

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

CONTROLLO IN TENSIONE DI LED

CONTROLLO IN TENSIONE DI LED Applicazioni Ver. 1.1 INTRODUZIONE CONTROLLO IN TENSIONE DI LED In questo documento vengono fornite delle informazioni circa la possibilità di pilotare diodi led tramite una sorgente in tensione. La trattazione

Dettagli

Criteri di Valorizzazione in Inventario Documentazione tecnica

Criteri di Valorizzazione in Inventario Documentazione tecnica Servizi Informatici Wingesfar Criteri di Valorizzazione in Inventario Documentazione tecnica Sommario PREMESSA... 1 LA VALORIZZAZIONE... 1 INTRODUZIONE... 1 OPZIONI INVENTARIO... 1 VALORIZZAZIONE AL COSTO...

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Application note. CalBatt NomoStor per i sistemi di accumulo di energia 1. Panoramica Application note CalBatt NomoStor per i sistemi di accumulo di energia Gli Energy Management Systems () sono dispositivi atti al controllo dei flussi di energia dalle sorgenti di produzione

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4) FAQ INVIO DOMANDE CIGO CON FLUSSO XML Cosa serve per inviare una domanda CIGO con il flusso XML? (pag. 2) Come si prepara una domanda in formato XML? (pag. 3) Che differenza c è tra una richiesta XML ed

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13 Università di Udine - Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Laboratorio di Architettura degli Elaboratori - A.A. 2012/13 Circuiti logici, lezione 1 Sintetizzare

Dettagli

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro. PREMESSA: Anche intuitivamente dovrebbe a questo punto essere ormai chiaro

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Gestione del workflow

Gestione del workflow Gestione del workflow Stefania Marrara Corso di Tecnologie dei Sistemi Informativi 2004/2005 Progettazione di un Sistema Informativo Analisi dei processi Per progettare un sistema informativo è necessario

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

Dettagli