Caso di studio 1: Progetto di un sistema su un chip

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Caso di studio 1: Progetto di un sistema su un chip"

Transcript

1 Caso di studio 1: Progetto di un sistema su un chip 1 Caso di studio 1: Progetto di un sistema su un chip In questo caso di studio Progettazione di un sistema per la realizzazione su un chip FPGA Come usare strumenti CAD Come usare moduli parametrici Cosa considerare tipicamente nella progettazione Nel Capitolo 10 si è discusso l uso di microcontrollori nei sistemi embedded. In un applicazione embedded, è desiderabile usare quanti meno chip sia possibile. Idealmente, un singolo chip potrebbe realizzare l intero sistema. Il termine sistema su un singolo chip (SOC) è in uso per designare questa tecnologia. In applicazioni semplici, alcuni dei microcontrollori disponibili in commercio possono realizzare tutte le funzioni necessarie. Questo è improbabile per applicazioni più complesse. La progettazione di un microcontrollore per un applicazione embedded complessa e la sua realizzazione sotto forma di un singolo chip specifico è un obiettivo ambizioso e costoso. È anche molto dispendioso in termini di tempo. Eppure, il tempo di sviluppo per la maggior parte dei prodotti di consumo deve essere breve. Un chip che realizzi un intero sistema per una certa applicazione si può sviluppare in un tempo molto più breve se il progettista ha accesso a moduli con circuiti predefiniti che siano disponibili in una forma facile da usare. Il circuito di un processore è uno dei moduli necessari. Tali circuiti sono detti nuclei-processore (processor core) nella letteratura tecnica. Si può ottenere una varietà di nuclei-processore, mediante accordi per le licenze, da un certo numero di aziende. Si possono ottenere altri moduli per realizzare memoria, interfacce di ingresso/uscita, circuiti di conversione A/D e D/A, o circuiti di elaborazione digitale di segnale, DSP (Digital Signal Processing). Lo sviluppatore di un sistema completa quindi il progetto utilizzando i moduli disponibili e progettando il resto dei circuiti specifici per l applicazione. I fornitori di nuclei-processore e di altri moduli vendono i progetti piuttosto che i chip. Essi forniscono la proprietà intellettuale, IP (Intellectual Property) che altri possono usare per progettare i loro chip. Per facilitare lo sviluppo di prodotti basati su IP, sono disponibili una varietà di strumenti di assistenza alla progettazione, CAD (Computer-Aided Design). Il costo di realizzazione di un chip progettato in modo personalizzato è un fattore importante. La fabbricazione di tali chip è costosa e, sebbene offrano prestazioni migliori e consumi ridotti, il loro costo può essere giustificato solo

2 Caso di studio 1: Progetto di un sistema su un chip 2 se sono necessari un gran numero di chip per applicazioni specifiche. Una possibilità alternativa è l uso di tecnologia FPGA (Field Programmable Gate Array), ovvero di matrici di porte logiche programmabili sul campo. C1.1 Realizzazione FPGA Le FPGA forniscono una piattaforma attraente per la realizzazione di sistemi su singolo chip. A differenza dei chip microcontrollori disponibili in commercio, che forniscono al progettista una serie di unità funzionali predefinite, i dispositivi FPGA permettono una completa libertà nel processo di progettazione. Essi permettono l inclusione di moduli IP adatti e quindi la generazione del resto del sistema come desiderato. Questo si può realizzare con relativa facilità. Una volta che il progetto è completato e collaudato, lo si può realizzare in un dispositivo FPGA immediatamente. La capacità delle FPGA è drammaticamente cresciuta. Un singolo chip FPGA può realizzare un sistema che comprende centinaia di migliaia di porte logiche. Tali chip sono sufficientemente grandi da poter realizzare le funzionalità tipiche di un microcontrollore e altri circuiti necessari per un applicazione embedded complessa. In questo caso di studio si esaminano le questioni relative all impiego di FPGA in un ambiente embedded. Per rendere la discussione quanto più pratica possibile, si considera la tecnologia fornita da Altera Corporation, che è uno dei principali fornitori di dispositivi FPGA e software CAD di supporto. C1.1.1 Dispositivi FPGA La struttura di base delle FPGA è spiegata in Appendice A. I dispositivi FPGA contengono un gran numero di elementi logici e risorse di cablaggio versatili che si possono usare per interconnetterli. Di solito contengono anche una notevole quantità di memoria che si può usare per realizzare le parti di RAM e ROM di un sistema embedded se i requisiti di dimensione della memoria non sono troppo grandi. Molte FPGA includono anche circuiti moltiplicatori, che sono particolarmente utili nelle applicazioni DSP. Un dispositivo FPGA va programmato per realizzare un particolare progetto. Gli elementi logici includono interruttori programmabili da impostare per realizzare le funzioni logiche desiderate. Tipicamente, si può programmare un elemento logico per realizzare funzioni logiche di quattro, cinque o sei variabili. L elemento logico comprende inoltre un flip-flop per rende-

3 Caso di studio 1: Progetto di un sistema su un chip 3 re possibile la realizzazione di registri e macchine a stati finiti. Le linee di interconnessione contengono anche interruttori programmabili, che si usano per interconnettere gli elementi logici per realizzare il circuito desiderato. Il processo di programmazione per l impostazione degli interruttori viene detto configurazione del dispositivo FPGA. Nella maggior parte dei dispositivi FPGA, lo stato di ogni interruttore programmabile si trova in una cella SRAM del tipo discusso nel Paragrafo Poiché le celle SRAM mantengono il loro stato solo finché l FPGA ha l alimentazione, tali FPGA sono volatili. Se si toglie l alimentazione si deve riconfigurare il dispositivo quando la si fornisce nuovamente. Per configurare l FPGA, si devono caricare le informazioni di configurazione nel dispositivo. Questo viene fatto tipicamente utilizzando un altro chip, detto dispositivo di configurazione, che mantiene le informazioni richieste in una memoria di tipo Flash. Ogni volta che si fornisce l alimentazione, il dispositivo di configurazione programma automaticamente l FPGA. Di solito la memoria Flash del dispositivo di configurazione è abbastanza grande da contenere non solo i dati di configurazione per i circuiti da realizzare nell FPGA, ma anche informazioni aggiuntive che possono includere dati o codice. Se nell FPGA si realizza un nucleo-processore, allora nel dispositivo di configurazione si può memorizzare del codice che il processore eseguirà. C1.1.2 La scelta del processore La componente significativa di qualsiasi sistema su chip è il nucleo-processore. Esistono due alternative distinte per i sistemi basati su FPGA. Una riguarda un processore che è definito in software e realizzato in una FPGA allo stesso modo di qualsiasi altro circuito. L altra comporta un chip FPGA specializzato che ha un nucleo realizzato sul chip al momento della fabbricazione. Nucleo-processore software La soluzione più flessibile è quella di realizzare un modulo software scritto in un linguaggio di descrizione dell hardware, come Verilog o VHDL, che specifica un processore parametrico. Il progettista di un sistema embedded può impostare i parametri per ottenere un processore con le caratteristiche adatte per l applicazione prevista. Per esempio, un parametro riguarda la configurazione della cache, dove le scelte possono essere: nessuna cache; cache per le istruzioni, ma non per i dati; cache per le istruzioni e per i dati.

4 Caso di studio 1: Progetto di un sistema su un chip 4 Un altro parametro può riguardare l inserimento di circuiti moltiplicatori e divisori nel processore. Le operazioni di moltiplicazione e divisione si possono realizzare in hardware, tuttavia si possono anche realizzare in software. Realizzarle in hardware fa uso di più risorse FPGA, ma migliora notevolmente le prestazioni. Nucleo-processore hardware Un alternativa all approccio software al nucleo-processore è di realizzare il processore direttamente come un modulo hardware sul chip, creando così una FPGA specializzata. Questo produce un sistema con prestazioni più elevate. Il costo di tali FPGA è superiore al costo dei dispositivi FPGA regolari. C1.2 Strumenti per la progettazione assistita dal calcolatore I produttori di dispositivi FPGA forniscono potenti strumenti CAD che rendono il compito di progettare sistemi embedded relativamente facile. Una varietà di moduli predefiniti sono forniti in forma parametrica. Il progettista crea un sistema inserendo questi moduli e specificando i parametri per soddisfare i requisiti dell applicazione. Esempi di tali moduli sono: nuclei-processore, moduli di memoria e interfacce, interfacce di I/O parallele, interfacce di I/O seriali, circuiti temporizzatori/contatori. Tali moduli possono essere sufficienti per realizzare tutte le funzioni necessarie in un sistema embedded desiderato. Se non lo sono, allora si devono progettare e includere nel sistema ulteriori circuiti specializzati. Tipicamente, prima si specifica un sottosistema che comprende un nucleoprocessore e altri moduli parametrici. Si usa uno strumento CAD per generare un modulo che realizza il sottosistema. Questo modulo è definito in un linguaggio di descrizione dell hardware. Se ne crea quindi un istanza nel progetto complessivo, insieme ad altri eventuali circuiti specifici per l applicazione che siano stati creati. Infine, si usa un altro strumento CAD per sintetizzare e realizzare il progetto complessivo in una forma utilizzabile per configurare il dispositivo FPGA. Oltre al dispositivo FPGA, è necessario includere i componenti esterni necessari per completare il sistema, come interruttori, schermi e chip di memoria

5 Caso di studio 1: Progetto di un sistema su un chip 5 aggiuntiva. Tali componenti vanno collegati ai piedini appropriati sulla FP- GA. Si discuteranno questi aspetti nel contesto di un esempio di progettazione nel Paragrafo C.3. Per dare al lettore un esempio specifico di strumenti CAD e moduli per dispositivi FPGA, si considerano brevemente gli strumenti forniti da Altera Corporation. Tutte le informazioni sulla sua tecnologia e sugli strumenti sono disponibili sul sito web di Altera: C1.2.1 Strumenti CAD Altera I principali strumenti CAD Altera sono noti come software Quartus II. Essi comprendono una gamma completa di strumenti necessari per progettare e realizzare un sistema digitale in un dispositivo FPGA. Si può usare uno di questi strumenti, il SOPC Builder (generatore SOPC), per progettare sistemi che comprendono un nucleo-processore. Questo strumento fornisce un certo numero di moduli parametrici che si possono usare nel sistema progettato. Per illustrare la loro natura, si considereranno quattro di questi moduli. Processore Nios II Il processore Nios II è descritto negli approfondimenti applicativi dei capitoli 2 e 3. Per la realizzazione su FPGA, è fornito in tre versioni: economica, standard e veloce. La versione economica è la più semplice e meno costosa da realizzare (in termini di risorse FPGA). Essa ha anche le prestazioni più basse. Non incorpora alcuna cache, non è in pipeline e non usa predizioni di salto. Si ottengono prestazioni migliori con la versione standard, che è dotata di una cache per le istruzioni, è in pipeline e usa la predizione statica di salto. Si ottengono le migliori prestazioni con la versione veloce, che include entrambe le cache per istruzioni e dati e usa la predizione dinamica di salto. Vi sono diversi parametri che un progettista può specificare, comprese le dimensioni delle cache per istruzioni e dati. I nuclei-processore Nios II sono sufficientemente piccoli da occupare solo una piccola parte di un dispositivo FPGA. È possibile realizzare fino a dieci nuclei Nios II su una FPGA relativamente piccola. Memoria Si possono usare blocchi di memoria in un dispositivo FPGA per realizzare le cache e una porzione della memoria principale. La porzione della memoria principale realizzata in questo modo viene detta memoria su chip. Si può configurare questa memoria in vari modi: la si può realizzare come memoria

6 Caso di studio 1: Progetto di un sistema su un chip 6 Spiazzamento dell indirizzo (in byte) 0 (n 1) Dati di ingresso/uscita 0 Dati 4 Controllo della direzione di ciascuna linea di ingresso Direzione 8 Abilitazione delle interruzioni di ciascuna linea di ingresso Maschera-interruzioni 12 Direzione del fronte in ciascuna linea di ingresso Cattura-fronte Figura C1.1: Registri nell interfaccia PIO. di tipo RAM o ROM e se ne possono specificare le dimensioni e la lunghezza di parola in fase di progettazione. Se la memoria su chip non è abbastanza grande da contenere il software necessario in un applicazione embedded, allora occorre fornire memoria aggiuntiva utilizzando chip di memoria esterni. Il SOPC Builder facilita la generazione di controllori e interfacce necessarie per collegare un sistema realizzato nella FPGA a una varietà di componenti di memoria esterni, quali SRAM, SDRAM e dispositivi Flash. Interfaccia di I/O parallela Un interfaccia parallela, detta PIO, è un modulo parametrico che si può usare sia per funzioni di ingresso che di uscita. In fase di progettazione si può selezionare la porta dati per servire come: porta di ingresso, porta di uscita, porta bidirezionale. Se si sceglie l opzione bidirezionale, allora le linee di dati PIO si devono collegare a piedini di tipo tristate della FPGA. Il processore accede a una PIO come a un interfaccia con unificazione degli spazi di indirizzamento di memoria e I/O e comunica con essa nel modo descritto nel Capitolo 3. I registri della PIO sono mostrati in Figura C1.1. La dimensione n del registro è un parametro specificato in fase di progettazione nell intervallo da 1 a 32. I registri vengono utilizzati come segue. Il registro Dati contiene n bit di dati che sono trasferiti fra il processore e l interfaccia PIO.

7 Caso di studio 1: Progetto di un sistema su un chip 7 Il registro Direzione determina la direzione di trasferimento (ingresso o uscita) per ciascuna delle n linee di dati quando si realizza una porta bidirezionale. Il registro Maschera-interruzioni è utilizzato per abilitare le interruzioni dalle linee di ingresso collegate alla PIO. Si possono sollevare richieste di interruzioni individuali su ciascuna delle n linee di ingresso possibili. Il registro Cattura-fronte indica variazioni di valori logici rilevate nei segnali sulle linee di ingresso collegate alla PIO. Il tipo di fronte (ascendente o discendente) che viene rilevato è specificato in fase di progettazione. Le linee che collegano la PIO a un dispositivo I/O si possono configurare individualmente. Se la PIO serve solo come porta di ingresso, tutte le n linee sono configurate come ingressi in fase di progettazione. Analogamente, per una porta di uscita, tutte le linee sono configurate come uscite. In questi casi, il registro Direzione non è necessario, e non è realizzato nel circuito generato. Per una porta bidirezionale il registro Direzione è incluso; quando il valore del suo bit k è uguale a 1 (0), la linea k della porta funziona come uscita al (ingresso dal) dispositivo di I/O collegato. Quando la PIO è usata come porta di ingresso, il registro Dati contiene i valori logici attualmente presenti sulle linee di ingresso. Si possono rilevare variazioni nei valori logici sulle linee di ingresso mediante il registro Catturafronte. In fase di progettazione, è possibile specificare che i bit di questo registro siano impostati a 1 quando si ha un fronte nel segnale di ingresso. Il fronte si può specificare come: ascendente, discendente, o qualsiasi dei due. I bit del registro Cattura-fronte sono azzerati da un istruzione di programma che scrive uno zero nel registro. Il registro Maschera-interruzioni consente di abilitare e disabilitare le interruzioni. Scrivendo 1 nella posizione del bit k del registro si abilitano le interruzioni causate dall attività sulla linea di ingresso k. Le interruzioni possono essere: sensibili al livello, nel qual caso viene sollevata una richiesta di interruzione quando il segnale su una qualsiasi linea di ingresso abilitata ha valore 1; sensibili al fronte, nel qual caso viene sollevata una richiesta di interruzione quando un qualsiasi bit abilitato nel registro Cattura-fronte è uguale a 1. Si noti che gli indirizzi dei registri PIO in Figura C1.1 sono distanziati di quattro, indipendentemente dalla lunghezza n. Così, gli indirizzi dei registri sono allineati alla parola.

8 Caso di studio 1: Progetto di un sistema su un chip 8 Temporizzatore di intervallo Il modulo temporizzatore fornisce una funzionalità simile a quella del cronometro descritto nel Problema risolto 3.2 dell Eserciziario. Il suo componente principale è un contatore il cui contenuto è decrementato di uno a ogni ciclo del clock. Si può specificare che il contatore sia a 32 o 64 bit. In questa discussione si assumerà che il contatore abbia 32 bit. L interfaccia del temporizzatore di intervallo ha i registri rappresentati in Figura C1.2. Ogni registro ha 16 bit. Nel registro di stato si usano solo due bit: ESEGUI è uguale a 1 quando il contatore è in esecuzione, altrimenti è uguale a 0; questo bit non è interessato se il processore scrive nel registro di stato; TO è il bit di timeout; è impostato a 1 quando il contatore raggiunge lo 0 e resta impostato a 1 fino a quando il processore lo annulla scrivendo uno 0 in esso. Nel registro di controllo, si usano quattro bit: Spiazzamento dell indirizzo (in byte) RUN TO Registro di stato 4 STOP START CONT ITO Registro di controllo 8 Valore iniziale del contatore (16 bit inferiori) 12 Valore iniziale del contatore (16 bit superiori) 16 Valore istantaneo del contatore (16 bit inferiori) 20 Valore istantaneo del contatore (16 bit superiori) Figura C1.2: Registri nell interfaccia del temporizzatore di intervallo. ARRESTO è impostato a 1 per fermare il contatore; AVVIO è impostato a 1 per far sì che il contatore si avvii; CONT determina il comportamento del contatore quando raggiunge 0: se CONT=0, il contatore si ferma quando raggiunge 0; se CONT=1, il contatore ricarica il valore di conteggio iniziale e continua a contare;

9 Caso di studio 1: Progetto di un sistema su un chip 9 ITO abilita le interruzioni quando è impostato a 1. Si deve caricare il valore di conteggio iniziale in due operazioni di scrittura a 16 bit. Si usano i registri di valore istantaneo del contatore per ottenere un istantanea del contenuto del contatore mentre è in esecuzione. Un operazione di scrittura su uno qualsiasi dei due registri fa scattare l istantanea, il che significa che il contenuto corrente del contatore è caricato nei registri di valore istantaneo. Questi registri si possono poi leggere in modo usuale. Oltre alla possibilità di utilizzare il valore iniziale di conteggio per definire un periodo di timeout, si può specificare un periodo di timeout predefinito in fase di progettazione. Il periodo di tempo predefinito è usato se il valore di conteggio iniziale è zero. Si genera una richiesta di interruzione quando TO=1 e ITO è impostato a 1. Per cancellare questa richiesta, il processore deve scrivere uno 0 in TO. Nel prossimo paragrafo, si utilizzeranno i moduli di cui sopra in un esempio di progettazione completo. C1.3 Esempio di orologio sveglia In questo paragrafo si presenta un esempio dettagliato di sistema embedded. Si mostra come si può realizzare una sveglia utilizzando la tecnologia FPGA. La sveglia, mostrata in Figura C1.3, ha le seguenti caratteristiche: vi sono quattro schermi a 7 segmenti che indicano l orario in ore e minuti, si usa un interruttore scorrevole on/off per attivare la funzione di allarme, si usano due interruttori scorrevoli per abilitare l impostazione dell orario attuale e dell ora di sveglia, si usano due interruttori a pulsante per impostare le ore e i minuti, un LED indica che l allarme è attivato, due LED, disposti verticalmente, creano i due punti che separano ore e minuti, si emette un ronzio quando l interruttore scorrevole dell allarme è attivato e si raggiunge l ora di sveglia. C1.3.1 Vista di utente del sistema La Figura C1.3 mostra la sveglia come è vista dall utente. Gli schermi a sette segmenti, del tipo illustrato in Figura P3.3a dell Eserciziario, indicano l orario, mostrato nell intervallo da 00:00 fino a 23:59. Il funzionamento dell orologio è il seguente:

10 Caso di studio 1: Progetto di un sistema su un chip 10 Ora Minuto Imposta orario attuale Imposta orario Allarme allarme on/off Allarme ON Figura C1.3: Vista di utente della sveglia. quando si fornisce l alimentazione, l orario del giorno e l orario di allarme sono azzerati; si imposta l orario del giorno attivando l interruttore scorrevole Imposta orario attuale e quindi impostando il tempo mediante i pulsanti Ora e Minuto: ogni volta che si preme un pulsante, l orario visualizzato viene incrementato di uno; l orario di sveglia è impostato allo stesso modo quando si attiva l interruttore Imposta orario allarme; si attiva l allarme mediante l interruttore Allarme on/off ; ciò fa sì che il corrispondente LED si accenda; l altoparlante emette un ronzio quando si raggiunge l orario di sveglia con l interruttore di allarme attivato. C1.3.2 Definizione del sistema e generazione L obiettivo qui è di realizzare la sveglia con un chip FPGA e componenti esterni che comprendono: interruttori scorrevoli, pulsanti, schermi a 7 segmenti, LED e un altoparlante. La Figura C1.4 illustra il sistema desiderato. Il processore è il Nios II. La memoria su chip è sufficientemente grande per soddisfare le esigenze della presente applicazione, persino in chip FPGA molto piccoli. I componenti esterni sono collegati tramite interfacce PIO. Vi sono due cronometri. Uno è progettato per fornire intervalli di un minuto, da utilizzare per aggiornare l orario attuale. L altro serve a generare un onda quadra che produce un ronzio. Si realizzano i cronometri usando il modulo Temporizzatore di intervallo descritto nel Paragrafo C Si assume che gli interruttori scorrevoli generino un segnale logico 1 quando attivati. Gli interruttori a pulsante sono antirimbalzo e generano un segnale logico 0 quando vengono pigiati.

11 Caso di studio 1: Progetto di un sistema su un chip 11 Processore Memoria sul chip Temporizzatore dei minuti Temporizzatore del segnale acustico Chip FPGA Rete di interconnessione PIO1 PIO2 PIO3 PIO4 PIO5 Interruttori scorrevoli Interruttori a pulsante Schermi a 7 segmenti LED Altoparlante Figura C1.4: Diagramma a blocchi della sveglia. Il sistema è realizzato nel dispositivo FPGA usando il software Quartus II. Si usa il Generatore SOPC per realizzare i blocchi nella zona ombreggiata della Figura C1.4. I blocchi PIO sono configurati come segue: PIO1 è una porta di ingresso a tre bit; i suoi ingressi sono sensibili al livello; PIO2 è una porta di ingresso a due bit; i suoi ingressi sono sensibili al fronte di discesa, in modo che un bit nel registro Cattura-fronte sia impostato a 1 quando il pulsante corrispondente viene premuto; PIO3 è un porta di uscita a 32 bit; ogni byte sarà collegato a uno schermo a 7 segmenti, sì che ciascuno dei bit da 0 a 6 di un byte azioni un segmento, mentre non si usa il bit 7; il byte di ordine inferiore sarà collegato alla cifra più bassa dei minuti, quello di ordine superiore alla cifra più alta delle ore; PIO4 è una porta di uscita a tre bit; PIO5 è una porta di uscita a un bit. Usando il Generatore SOPC, questo sistema viene specificato come mostrato in Figura C1.5. Si noti che le PIO hanno nomi che indicano le loro funzioni. Il Generatore SOPC assegna gli indirizzi ai vari componenti nel sistema. La memoria su chip occupa l intervallo da 0 a 0x3FFF, mentre le interfacce di cronometri e PIO hanno indirizzi a partire da 0x5000. Il progettista, se lo desidera, può specificare indirizzi diversi. Si noti inoltre che

12 Caso di studio 1: Progetto di un sistema su un chip 12 Figura C1.5: Sistema su chip FPGA progettato con SOPC Builder. i cronometri e gli interruttori a pulsante possono sollevare richieste di interruzioni (IRQ). L ultima colonna nella figura indica le posizioni dei bit dei registri di controllo Nios II ctl3 e ctl4 che sono associati con le interruzioni provenienti da queste sorgenti. Il Generatore SOPC crea il sistema specificato producendo un modulo che descrive il sistema in uno dei linguaggi di descrizione dell hardware Verilog o VHDL. C1.3.3 Realizzazione del circuito Il sistema software Quartus II include un compilatore che accetta una specifica di un sistema digitale in un linguaggio di descrizione dell hardware. Il compilatore sintetizza un circuito che realizza il sistema, e determina come questo circuito deve essere realizzato sul chip FPGA. Poiché i dispositivi esterni devono essere collegati ai piedini della FPGA, il progettista deve specificare le connessioni desiderate. Questa operazione è detta assegnazione dei piedini. Il compilatore genera la realizzazione finale sotto forma di un file di configurazione usato per scaricare le informazioni di configurazione nel dispositivo FPGA. La Figura C1.4 non mostra tutti i componenti necessari per realizzare l orologio sveglia completo. Mancano l alimentazione, il generatore di segnale di clock e il dispositivo di configurazione necessario a programmare la FPGA.

13 Caso di studio 1: Progetto di un sistema su un chip 13 Si assume che sia fornito un segnale di clock esterno a 100 MHz. I piedini della FPGA in genere non si possono collegare direttamente a dispositivi esterni quali interruttori, schermi a sette segmenti e LED. Ciascun dispositivo ha le proprie caratteristiche elettriche, il che significa che solitamente si devono usare componenti quali resistori, come in Figura Nel nostro progetto, i pulsanti per l impostazione di ore e minuti sono connessi ai corrispondenti bit b 1 e b 0 della PIO, rispettivamente. Gli interruttori scorrevoli imposta orario attuale, imposta orario allarme, e allarme on/off sono rispettivamente collegati ai corrispondenti bit b 2, b 1, e b 0. Il cronometro dei minuti ha un periodo di timeout di 60 secondi. Il cronometro del segnale acustico ha un periodo di timeout di 1 ms. C1.3.4 Software applicativo Occorre realizzare un programma da eseguire sull hardware progettato per realizzare le funzioni dell orologio sveglia. Realizzeremo due programmi, uno in linguaggio C e un altro nel linguaggio assemblativo Nios II, per illustrare come si possono scrivere questi programmi. Il programma sviluppato deve essere compilato in codice macchina Nios II. All avvio, tale codice sarebbe caricato nella memoria sul chip dal dispositivo di configurazione. Qui si adotta il seguente approccio per realizzare i programmi. L orario attuale e l orario di sveglia sono mantenuti sotto forma di interi binari a 32 bit che rappresentano il tempo in minuti. L orario attuale è incrementato di uno ogni volta che il cronometro dei minuti raggiunge lo zero, il che è indicato dal valore 1 del bit TO nel suo registro di stato. Quando l orario attuale viene incrementato, occorre verificare se ha raggiunto 1440, che è il numero di minuti in un giorno. In tal caso, si deve azzerare l orario in modo da corrispondere alla transizione da 23:59 a 00:00. Un controllo analogo è necessario quando si imposta l orario premendo i pulsanti. Per visualizzare l ora, le quattro cifre decimali che rappresentano ore e minuti sono calcolate dividendo il tempo per 600 per ottenere la cifra di ordine alto delle ore, quindi dividendo il resto per 60 per ottenere la cifra di ordine basso delle ore, e così via. Si usa una tabella per ottenere le corrispondenti sequenze binarie che sono inviate agli schermi a 7 segmenti. Si usa il cronometro del segnale acustico per creare un segnale a onda quadra di 500 Hz, che produce un ronzio quando è collegato a un altoparlante. Questo cronometro è eseguito in modalità continua. Dal momento che ha un periodo predefinito di timeout di 1 ms, si potrebbe generare direttamente il segnale a 500 Hz invertendo il valore logico del segnale alla fine di ogni periodo

14 Caso di studio 1: Progetto di un sistema su un chip 14 del cronometro. Tuttavia, per illustrare come si può definire un periodo diverso in un programma, si userà il registro del valore iniziale del contatore per specificare il periodo desiderato. In questo caso, occorre il valore 0x30D40 per il segnale a 500 Hz se il contatore è pilotato da un clock a 100 MHz. Quando si usa la scansione per il segnale di timeout di un cronometro, è necessario controllare il bit TO nel suo registro di stato. Poiché il bit RUN è sempre uguale a 1 quando il contatore gira, si può effettuare la scansione controllando se il contenuto del registro di stato è uguale a 3. Il bit TO si può portare a 0 semplicemente scrivendo uno zero nel registro di stato, perché lo stato del bit RUN non è influenzato da un operazione di scrittura. Programma C La Figura C1.6 mostra un possibile programma in linguaggio C. La presente applicazione non è impegnativa in termini di prestazioni, quindi si usa il metodo della scansione per accedere a tutte le PIO e ai cronometri. I commenti nel programma spiegano il significato delle varie istruzioni. Si osservi che la macro AGGIUSTA definisce un espressione che incrementa l orario in modo opportuno in diverse situazioni. Programma in linguaggio assemblativo La Figura C1.7 presenta un programma Nios II. Per illustrare l uso delle interruzioni, il programma usa le interruzioni per gestire il cronometro dei minuti. Si usa la scansione per il cronometro del segnale acustico. In fase di progettazione, il Generatore SOPC ha assegnato 0x20 quale indirizzo dove inizia il gestore delle interruzioni quando il processore accetta una richiesta di interruzione. Il gestore di interruzioni verifica che vi sia un interruzione causata da un dispositivo esterno al processore Nios II e aggiusta di conseguenza l indirizzo di rientro (si veda l Approfondimento applicativo 3.2 per una spiegazione dettagliata del meccanismo delle interruzioni del Nios II); quindi azzera il bit TO nel cronometro dei minuti e chiama la routine di servizio delle interruzioni. Si noti che il gestore delle interruzioni salva, e poi ripristina, il contenuto dei registri r2 e ra. Salva il contenuto di ra, che è il registro di collegamento che contiene l indirizzo di rientro da sottoprogramma, poiché un interruzione da cronometro può aversi durante l esecuzione di un sottoprogramma; anche il gestore delle interruzioni usa il registro ra per una chiamata alla routine di servizio delle interruzioni, AGGIORNA ORA, che incrementa l orario attuale (e a mezzanotte lo azzera). Il programma principale inizia impostando la pila del processore e azzerando le locazioni di memoria che contengono l orario. Come parte del

15 Caso di studio 1: Progetto di un sistema su un chip 15 processo di inizializzazione, imposta il periodo di timeout per il cronometro del segnale acustico; quindi fa partire entrambi i cronometri e abilita le interruzioni dal cronometro dei minuti. Il ciclo principale, CICLO, controlla lo stato degli interruttori scorrevoli e prende i provvedimenti necessari. Il sottoprogramma DISP visualizza l orario attuale o l orario di sveglia, mantenuti alle locazioni di memoria 0x1000 o 0x1010, sugli schermi a sette segmenti. Si usa il sottoprogramma SE- TSUB per impostare i valori di minuti e ore quando si pigiano i corrispondenti pulsanti. Ogni volta che si pigia un pulsante si incrementa il valore di uno. Si usa la tabella alla fine del programma per convertire una cifra decimale nella corrispondente sequenza di sette bit per visualizzarla. I commenti nel programma spiegano il significato delle varie istruzioni. I registri di controllo e ctl3 ctl4 si possono anche indicare mediante i nomi ienable e ipending, rispettivamente. Questi sono i nomi usati nel programma. # d e f i n e t e m p m i n u t i ( v o l a t i l e i n t *) 0 x5000 # d e f i n e t e m p t o n o ( v o l a t i l e i n t *) 0 x5020 # d e f i n e c u r s o r i ( v o l a t i l e i n t *) 0 x5040 # d e f i n e p u l s a n t i ( v o l a t i l e i n t *) 0 x5050 # d e f i n e d i s p l a y ( i n t *) 0 x5060 # d e f i n e LED ( i n t *) 0 x5070 # d e f i n e a l t o p a r l a n t e ( i n t *) 0 x5080 # d e f i n e AGGIUSTA( t, x ) ( ( t +x ) >=1440)?( t +x 1440):( t +x ) i n t o r a a t t u a l e, o r a s v e g l i a, s v e g l i a a t t i v a, o r a r i o ; / * T a b e l l a d i c o n v e r s i o n e da e s a d e c i m a l e a 7 s e g m e n t i u n s i g n e d c h a r t a b e l l a [ 1 6 ] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x18, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F } ; void i m p o s t a T e m p o r i z z a t o r e T o n o ( ) { *( t e m p t o n o + 2) = 0x0D40 ; / * Imposta i l p e r i o d o d i t i m e o u t *( t e m p t o n o + 3) = 0 x03 ; / * p e r f u n z i o n a m e n t o c o n t i n u o. *( t e m p t o n o + 1) = 0x6 ; / * Avvia i n m o d a l i t a ' c o n t i n u a. } void DISP ( o r a r i o ) / * O t t i e n i l a s e q u e n z a d e i 7 s e g m e n t i. { * d i s p l a y = t a b e l l a [ o r a r i o / 600] << 24 t a b e l l a [ ( o r a r i o % 600) / 60] << 16 t a b e l l a [ ( o r a r i o % 60) / 10] << 8 t a b e l l a [ ( o r a r i o % 1 0 ) ] ; }... continua nella Parte b Figura C1.6: Programma C per la sveglia (Parte a).

16 Caso di studio 1: Progetto di un sistema su un chip 16 main ( ) { o r a a t t u a l e = o r a s v e g l i a = s v e g l i a a t t i v a = 0 ; i m p o s t a T e m p o r i z z a t o r e T o n o ( ) ; *( t e m p m i n u t i + 1) = 0x6 ; / * Esegui i n m o d a l i t a ' c o n t i n u a. w h i l e ( 1 ) { i f (* t e m p m i n u t i == 3) / * Un minuto e ' t r a s c o r s o. { * t e m p m i n u t i = 0 ; / * Azzera i l b i t TO. o r a a t t u a l e = AGGIUSTA( o r a a t t u a l e, 1 ) ; } i f ( ( * c u r s o r i & 1)!= 0) / * C o n t r o l l a se l ' i n t e r r u t t o r e { / * s v e g l i a e ' a t t i v o. *LED = 7 ; / * Accendi i l LED s v e g l i a. i f ( o r a a t t u a l e == o r a s v e g l i a ) s v e g l i a a t t i v a = 1 ; / * Avvia i l suono d e l l a s v e g l i a. e l s e s v e g l i a a t t i v a = s v e g l i a a t t i v a & (* c u r s o r i & 1 ) ; i f (* t e m p t o n o == 3) / * Genera l ' onda quadra. { * a l t o p a r l a n t e = (* a l t o p a r l a n t e ˆ 1) & s v e g l i a a t t i v a ; * t e m p t o n o = 0 ; / * Azzera i l b i t TO. } } e l s e { *LED = 6 ; / * Spegni i l LED s v e g l i a. s v e g l i a a t t i v a = 0 ; } i f ( ( * c u r s o r i & 4)!= 0) / * C o n t r o l l a l ' i n t e r r u t t o r e i m p o s t a o r a r i o. { DISP ( o r a a t t u a l e ) ; / * Mostra l ' o r a r i o d e l g i o r n o. i f ( ( * ( p u l s a n t i + 3) & 1)!= 0) / * Imposta i m i n u t i? o r a a t t u a l e = AGGIUSTA( o r a a t t u a l e, 1 ) ; e l s e i f ( ( * ( p u l s a n t i + 3) & 2)!= 0) / * Imposta l e o r e? o r a a t t u a l e = AGGIUSTA( o r a a t t u a l e, 6 0 ) ; *( p u l s a n t i + 3) = 0 ; / * Azzera i l r e g i s t r o C a t t u r a f r o n t e. } e l s e i f ( ( * c u r s o r i & 2)!= 0) / * C o n t r o l l a l ' i n t e r r u t t o r e i m p o s t a s v e g l i a. { DISP ( o r a s v e g l i a ) ; / * Mostra l ' o r a r i o d i s v e g l i a. i f ( ( * ( p u l s a n t i + 3) & 1)!= 0) / * Imposta i m i n u t i? o r a s v e g l i a = AGGIUSTA( o r a s v e g l i a, 1 ) ; e l s e i f ( ( * ( p u l s a n t i + 3) & 2)!= 0) / * Imposta l e o r e? o r a s v e g l i a = AGGIUSTA( o r a s v e g l i a, 6 0 ) ; *( p u l s a n t i + 3) = 0 ; / * Azzera i l r e g i s t r o C a t t u r a f r o n t e. } e l s e DISP ( o r a a t t u a l e ) ; / * Mostra l ' o r a r i o d e l g i o r n o. } } Figura C1.6: Programma C per la sveglia (Parte b).

17 Caso di studio 1: Progetto di un sistema su un chip 17.equ temp minuti, 0x05000.equ temp tono, 0x5020.equ cursori, 0x5040.equ pulsanti, 0x5050.equ display, 0x5060.equ LED, 0x5070.equ altoparlante, 0x5080.equ ORA ATTUALE, 0x1000.equ ORA SVEGLIA, 0x1010.equ PILA, 0x2000 start: br MAIN /* Gestore interruzione */.org 0x20 subi sp, sp, 8 /* Salva registri. */ stw r2, 0(sp) stw ra, 4(sp) rdctl et, ipending beq et, r0, MAIN /* Errore se non è un interruzione */ /* esterna, trattarlo come riavvio. */ subi ea, ea, 4 /* Decrementa ea per eseguire */ /* l istruzione interrotta quando */ /* ritorna al programma principale. */ movia r2, temp minuti /* Azzera il bit TO nel */ sthio r0, (r2) /* temporizzatore dei minuti. */ call AGGIORNA ORA /* Chiama routine di servizio */ /* dell interruzione. */ ldw r2, 0(sp) /* Ripristina i registri. */ ldw ra, 4(sp) addi sp, sp, 8 eret /* Programma principale */ MAIN: movia sp, PILA /* Inizializza puntatore alla pila. */ movia r2, ORA SVEGLIA /* Azzera buffer dell orario sveglia. */ stw r0, (r2) movia r2, ORA ATTUALE /* Azzera buffer dell orario attuale. */ stw r0, (r2) movia r2, cursori /* Indirizzo interruttori a cursore. */ movia r3, LED /* Indirizzo dei LED. */ movia r4, display /* Indirizzo schermi a 7 segmenti. */ movia r5, pulsanti /* Indirizzo dei pulsanti. */... continua nella Parte b Figura C1.7: Programma Nios II per la sveglia (Parte a).

18 Caso di studio 1: Progetto di un sistema su un chip 18 movi r6, 6 /* Accendi i due LED */ stbio r6, (r3) /* verticali. */ movia r6, temp tono ori r7, r0, 0x0D40 /* Inizializza il periodo */ sthio r7, 8(r6) /* del temporizzatore del tono. */ ori r7, r0, 0x03 sthio r7, 12(r6) movi r7, 6 /* Avvia temporizzatore del tono. */ sthio r7, 4(r6) movia r6, temp minuti /* Indirizzo temporizzatore minuti. */ addi r7, r0, 7 /* Avvia il temporizzatore. */ sthio r7, 4(r6) movi r7, 1 wrctl ienable, r7 /* Abilita interruzioni */ /* dal temporizzatore. */ wrctl status, r7 /* Abilita interruzioni esterne. */ CICLO: movia r10, ORA ATTUALE /* Visualizza orario del giorno. */ call DISP ldbio r7, (r2) andi r11, r7, 1 /* Interruttore sveglia attivo? */ beq r11, r0, PROSSIMO movi r11, 7 /* Se sì, allora accendi il */ stbio r11, (r3) /* LED sveglia. */ movia r9, ORA SVEGLIA ldw r11, (r9) /* Confronta l orario di sveglia */ ldw r12, (r10) /* con l orario attuale. */ bne r11, r12, PROSSIMO /* La sveglia dovrebbe suonare? */ movia r8, temp tono movi r12, 1 CICLO SVEGLIA: call DISP ldbio r7, (r2) andi r13, r7, 1 /* Interruttore sveglia attivo? */ beq r13, r0, PROSSIMO ldhio r9, (r8) /* Leggi stato temporizzatore tono. */ sthio r0, (r8) /* Azzera il bit TO. */ andi r9, r9, 1 /* Controlla se il contatore è a 0. */ xor r12, r9, r12 /* Genera successivo semiciclo */ movia r11, altoparlante /* dell onda quadra; invia */ stbio r12, (r11) /* il segnale all altoparlante. */ br CICLO SVEGLIA... continua nella Parte c Figura C1.7: Programma Nios II per la sveglia (Parte b).

19 Caso di studio 1: Progetto di un sistema su un chip 19 PROSSIMO: movi r11, 6 /* Spegni LED che indica che la */ stbio r11, (r3) /* sveglia è attiva. */ TEST CURSORI: ldbio r7, (r2) andi r11, r7, 2 /* Interruttore imposta sveglia attivo? */ beq r11, r0, ATTIVA /* Se no, controlla orario corrente. */ movia r10, ORA SVEGLIA /* Va impostata l ora di sveglia. */ br ORARIO ATTIVA: andi r11, r7, 4 /* Interruttore imposta orario attivo? */ beq r11, r0, CICLO /* Tutti i cursori sono disattivati. */ movia r10, ORA ATTUALE ORARIO: call DISP call SETSUB br TEST CURSORI /* Visualizza l orario sugli schermi a 7 segmenti. */ DISP: subi sp, sp, 24 /* Salva registri. */ stw r11, 0(sp) stw r12, 4(sp) stw r13, 8(sp) stw r14, 12(sp) stw r15, 16(sp) stw r16, 20(sp) ldw r11, (r10) /* Carica l orario da mostrare. */ movi r12, 600 /* Per determinare la prima cifra */ divu r13, r11, r12 /* delle ore, dividi per 600. */ ldb r15, TABELLA(r13) /* Ottieni serie dei 7 segmenti. */ slli r15, r15, 8 /* Fai spazio alla prossima cifra. */ mul r14, r13, r12 /* Calcola il resto della */ sub r11, r11, r14 /* divisione. */ movi r12, 60 /* Dividi il resto per 60 per avere */ divu r13, r11, r12 /* la seconda cifra delle ore. */ ldb r16, TABELLA(r13) /* Ottieni serie dei 7 segmenti, */ or r15, r15, r16 /* concatenala alla prima cifra */ slli r15, r15, 8 /* e falla scorrere. */ mul r14, r13, r12 /* Determina i minuti che */ sub r11, r11, r14 /* devono essere mostrati. */... continua nella Parte d Figura C1.7: Programma Nios II per la sveglia (Parte c).

20 Caso di studio 1: Progetto di un sistema su un chip 20 movi r12, 10 /* Per determinare la prima cifra dei */ divu r13, r11, r12 /* minuti, dividi per 10. */ ldb r16, TABELLA(r13) /* Ottieni la serie dei 7 segmenti, */ or r15, r15, r16 /* concatenala alle prime due cifre */ slli r15, r15, 8 /* e falla scorrere. */ mul r14, r13, r12 /* Calcola il resto, che */ sub r11, r11, r14 /* è l ultima cifra. */ ldb r16, TABELLA(r11) /* Concatena l ultima cifra alle */ or r15, r15, r16 /* 3 cifre precedenti. */ movia r11, display stw r15, (r11) /* Visualizza la serie ottenuta. */ ldw r11, 0(sp) /* Ripristina registri. */ ldw r12, 4(sp) ldw r13, 8(sp) ldw r14, 12(sp) ldw r15, 16(sp) ldw r16, 20(sp) addi sp, sp, 24 ret /* Imposta l orario desiderato. */ SETSUB: subi sp, sp, 16 /* Salva registri. */ stw r11, 0(sp) stw r12, 4(sp) stw r13, 8(sp) stw r14, 12(sp) ldbio r12, 12(r5) /* Controlla i pulsanti. */ stbio r0, 12(r5) /* Azzera registro Cattura-fronte. */ andi r13, r12, 1 /* Il pulsante dei minuti è pigiato? */ beq r13, r0, ORE /* Se no, controlla le ore. */ ldw r11, (r10) /* Carica l orario corrente. */ movi r12, 60 /* Dividi per 60 per determinare */ divu r13, r11, r12 /* il numero di ore. */ mul r14, r13, r12 /* Il resto della divisione */ sub r11, r11, r14 /* è il numero di minuti. */ addi r11, r11, 1 /* Incrementa i minuti. */ blt r11, r12, SALVAM /* Salva se minore di 60, */ mov r11, r0 /* altrimenti poni i minuti a 00. */... continua nella Parte e Figura C1.7: Programma Nios II per la sveglia (Parte d).

21 Caso di studio 1: Progetto di un sistema su un chip 21 SALVAM: add r11, r14, r11 /* (ore x 60) + (minuti aggiornati). */ stw r11, (r10) /* Salva il nuovo orario. */ br FATTO ORE: andi r13, r12, 2 /* Il pulsante delle ore è pigiato? */ beq r13, r0, FATTO /* Se no, allora rientra. */ ldw r11, (r10) /* Carica l orario corrente in minuti. */ addi r12, r11, 60 /* Aggiungi 60 minuti. */ movi r13, 1440 /* Controlla se l orario aggiornato */ blt r12, r13, SALVAO /* è minore di 24:00. */ sub r12, r12, r13 /* Reimposta l orario a 00:00. */ SALVAO: stw r12, (r10) /* Salva il nuovo orario. */ FATTO: ldw r11, 0(sp) /* Ripristina registri. */ ldw r12, 4(sp) ldw r13, 8(sp) ldw r14, 12(sp) addi sp, sp, 16 ret /* Routine di servizio interruzioni che aggiorna orario corrente */ AGGIORNA ORA: subi sp, sp, 12 /* Salva registri. */ stw r2, 0(sp) stw r3, 4(sp) stw r4, 8(sp) movia r2, ORA ATTUALE ldw r3, (r2) /* Carica l orario attuale del giorno. */ addi r3, r3, 1 /* Incrementa di uno i minuti. */ movi r4, 1440 /* Fatto se l orario aggiornato è */ blt r3, r4, SALVAT /* minore di 24:00. */ mov r3, r0 /* Altrimenti, ponilo a 00:00. */ SALVAT: stw r3, (r2) /* Salva l orario aggiornato. */ ldw r2, 0(sp) /* Ripristina registri. */ ldw r3, 4(sp) ldw r4, 8(sp) addi sp, sp, 12 ret /* Tabella di conversione da cifre esadecimali a 7 segmenti */.org 0x1050 TABELLA:.byte 0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78.byte 0x00, 0x18, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F.end Figura C1.7: Programma Nios II per la sveglia (Parte e).

22 Caso di studio 1: Progetto di un sistema su un chip 22 C1.4 Osservazioni conclusive Il progettista di un sistema embedded cerca inevitabilmente l approccio più semplice e più conveniente. Un chip microcontrollore che possiede le risorse per realizzare un intero sistema può essere la scelta migliore. La situazione è diversa se sono necessari chip aggiuntivi per realizzare il sistema. In tal caso le soluzioni FPGA sono molto interessanti poiché hanno probabilmente bisogno di un minor numero di chip per realizzare il sistema. Un altra considerazione è la disponibilità di moduli predefiniti. Un chip microcontrollore contiene un certo numero di moduli differenti. Qualsiasi caratteristica che non si possa realizzare usando questi moduli deve essere realizzata utilizzando chip aggiuntivi. Un dispositivo FPGA consente al progettista di progettare qualsiasi tipo di circuito digitale. Si possono realizzare circuiti molto grandi e complessi nei dispositivi FPGA moderni. Progetti pratici spesso coinvolgono circuiti che eseguono operazioni di uso comune. Tali circuiti sono di solito disponibili come moduli di libreria, come illustrato dalle interfacce di I/O e dai circuiti dei cronometri utilizzati nel paragrafo precedente. Per le applicazioni di elaborazione di segnali, la libreria comprende tipici circuiti di filtraggio. Se un sistema si deve collegare a un altro calcolatore utilizzando uno schema standard di interconnessione, come per esempio PCI Express, il compito del progettista è molto più semplice se è disponibile un interfaccia PCI Express come modulo predefinito. C1.5 Problemi C1.1 [F] Nel Paragrafo C1.3.4, si è detto che il segnale a 500 Hz a onda quadra si può generare semplicemente invertendo il valore logico del segnale al termine di ciascun periodo di timeout del cronometro del segnale acustico, progettato per aver luogo ogni millisecondo. Modificare il programma in Figura C1.6 per sfruttare questo fatto. C1.2 [F] Ripetere il Problema C1.1 per il programma in Figura C1.7. C1.3 [M] Si consideri il formato di visualizzazione per la sveglia nel Paragrafo C1.3. Invece di visualizzare l orario da 00:00 a 23:59, si desidera visualizzarlo come da 12:00 a 11:59 AM o PM. Si supponga che un quarto LED sia disponibile e collegato al bit b 3 di una PIO larga quattro bit invece della PIO larga tre bit usata nel Paragrafo C1.3. Questo LED indica PM quando è

23 Caso di studio 1: Progetto di un sistema su un chip 23 acceso. Modificare il programma in Figura C1.6 per visualizzare l orario in questo modo. C1.4 [M] Ripetere il Problema C1.3 per il programma in Figura C1.7. C1.5 [F] Si supponga che un solo cronometro, con un periodo predefinito di timeout di 1 ms, sia usato nella sveglia del Paragrafo C1.3. Apportare le appropriate modifiche al programma in Figura C1.6 per fornire il comportamento richiesto. C1.6 [F] Ripetere il Problema C1.5 per il programma in Figura C1.7. C1.7 [F] In Figura C1.7 si sono usate le interruzioni per gestire il cronometro dei minuti e la scansione per il cronometro del segnale acustico. Modificare il programma per usare le interruzioni per entrambi i cronometri. C1.8 [M] Nella sveglia del Paragrafo C1.3, si imposta l orario incrementando il valore corrente ogni volta che si preme un pulsante. Questo potrebbe essere noioso se si deve premere molte volte un pulsante. Un alternativa migliore sarebbe quella di incrementare l ora automaticamente ogni 0,5 secondi mentre un pulsante viene tenuto premuto. Quali cambiamenti si dovrebbero fare all hardware per fornire questa funzionalità, se è il caso di farne? Modificare il programma in Figura C1.6 per realizzare la funzionalità. C1.9 [M] Ripetere il Problema C1.8 per il programma in Figura C1.7. C1.10 [M] Si desidera rendere intermittenti a intervalli di un secondo i due LED disposti verticalmente nella sveglia quando si fornisce l alimentazione. Essi dovrebbero cessare di lampeggiare non appena l utente inizia a impostare l orario. Modificare il programma in Figura C1.6 per realizzare questo comportamento. C1.11 [M] Ripetere il Problema C1.10 per il programma in Figura C1.7.

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

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

Capitolo 3 Operazioni di ingresso e uscita

Capitolo 3 Operazioni di ingresso e uscita Capitolo 3 Operazioni di ingresso e uscita 3.1. Per assicurare che i dati siano letti solo una volta. 3.2. Assumendo i registri dell interfaccia dello schermo in Figura 3.3, si può usare il seguente programma:

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

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

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

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

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

Manuale Terminal Manager 2.0

Manuale Terminal Manager 2.0 Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette

Dettagli

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 StruxureWare Data Center ExpertDispositivo virtuale Il server StruxureWare Data Center Expert 7.2 è disponibile come dispositivo virtuale, supportato

Dettagli

Elettronica dei Sistemi Programmabili

Elettronica dei Sistemi Programmabili Elettronica dei Sistemi Programmabili Introduzione Stefano Salvatori Università degli Studi Roma Tre (stefano.salvatori@uniroma3.it) Università degli Studi Roma Tre Elettronica dei Sistemi Programmabili

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

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

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

GESGOLF SMS ONLINE. Manuale per l utente

GESGOLF SMS ONLINE. Manuale per l utente GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo

Dettagli

Invio SMS. DM Board ICS Invio SMS

Invio SMS. DM Board ICS Invio SMS Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove

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

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

1.4b: Hardware. (Memoria Centrale)

1.4b: Hardware. (Memoria Centrale) 1.4b: Hardware (Memoria Centrale) Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.11, 3.13 IV ediz.: cap. 2.8, 2.9 Questi lucidi Memoria Centrale Un

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

introduzione I MICROCONTROLLORI

introduzione I MICROCONTROLLORI introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la

Dettagli

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

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Studio Legale. Guida operativa

Studio Legale. Guida operativa Studio Legale Guida operativa Cliens Studio Legale Web Cliens Studio Legale Web è un nuovo strumento che consente all avvocato di consultare i dati presenti negli archivi Cliens del proprio studio, attraverso

Dettagli

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica I componenti di un Sistema di elaborazione. Memoria centrale Memorizza : istruzioni dati In forma BINARIA : 10001010101000110101... È costituita da una serie di CHIP disposti su una scheda elettronica

Dettagli

Corso PLC - Manuale Pratico 1

Corso PLC - Manuale Pratico 1 Corso PLC - Manuale Pratico 1 "!#$ % L'unità centrale di un PLC, chiamata più semplicemente CPU, normalmente occupa il primo modulo del rack. Si individua subito in quanto tipicamente è dotata di un selettore,

Dettagli

Gerarchia delle memorie

Gerarchia delle memorie Memorie Gerarchia delle memorie Cache CPU Centrale Massa Distanza Capacità Tempi di accesso Costo 2 1 Le memorie centrali Nella macchina di Von Neumann, le istruzioni e i dati sono contenute in una memoria

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

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11 ZFIDELITY - ZSE Software & Engineering Pag.1 / 11 Indice Presentazione ZFidelity... 3 Menù Principale... 4 La Gestione delle Card... 5 I tasti funzione... 5 La configurazione... 6 Lettore Con Connessione

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

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

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

MANUALE PER L UTENTE. Centrale Antifurto 8 zone a Microprocessore con tastiera di comando. Ver. 1.0 ACCENTA CEN800. MANUALE UTENTE Centrale ACCENTA8

MANUALE PER L UTENTE. Centrale Antifurto 8 zone a Microprocessore con tastiera di comando. Ver. 1.0 ACCENTA CEN800. MANUALE UTENTE Centrale ACCENTA8 MANUALE PER L UTENTE ACCENTA CEN800 Ver. 1.0 Centrale Antifurto 8 zone a Microprocessore con tastiera di comando SICURIT Alarmitalia Spa Via Gadames 91 - MILANO (Italy) Tel. 02 38070.1 (ISDN) - Fax 02

Dettagli

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo 01595 Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo INDICE DESCRIZIONE DEL SOFTWARE DI INTERFACCIAMENTO CON I SISTEMI GESTIONALI (ART. 01595) 2 Le

Dettagli

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

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

IRSplit. Istruzioni d uso 07/10-01 PC

IRSplit. Istruzioni d uso 07/10-01 PC 3456 IRSplit Istruzioni d uso 07/10-01 PC 2 IRSplit Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Installazione 4 3. Concetti fondamentali

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

ISTRUZIONI PER L INSTALLAZIONE SOLO MEDIANTE TASTIERA

ISTRUZIONI PER L INSTALLAZIONE SOLO MEDIANTE TASTIERA Le serrature ComboGard Pro possono venire configurate utilizzando un software di installazione ComboGard Pro o una serie di comandi della tastiera. Questo documento contiene le istruzioni relative alla

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

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

2 - Modifica. 2.1 - Annulla 2.2 - ANNULLA TOPOGRAFICO 2.3 - ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

2 - Modifica. 2.1 - Annulla 2.2 - ANNULLA TOPOGRAFICO 2.3 - ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1 2 - Modifica FIGURA 2.1 Il menu a tendina Modifica contiene il gruppo di comandi relativi alla selezione e alla gestione delle proprietà delle entità del disegno e alla gestione dei layer. I comandi sono

Dettagli

Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici

Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici Prerequisiti Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici L opzione Multimagazzino è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione L opzione Multimagazzino

Dettagli

Installazione del software Fiery per Windows e Macintosh

Installazione del software Fiery per Windows e Macintosh 13 Installazione del software Fiery per Windows e Macintosh Il CD del Software per l utente comprende le utilità di installazione di Fiery Link. Il software di utilità Fiery è supportato in Windows 95/98,

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

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte. I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?

Dettagli

TASTIERA DI COMANDO E CONTROLLO PER INVERTERS EL.-5000

TASTIERA DI COMANDO E CONTROLLO PER INVERTERS EL.-5000 ELCOM S.R.L. TASTIERA DI COMANDO E CONTROLLO PER INVERTERS EL.-5000 ( Rev. 0.3s ) MANUALE USO TASTIERA EL.-5000 I pulsanti hanno le seguenti funzioni: Comando di START abilitazione alla marcia con accensione

Dettagli

Prima di iniziare l installazione, controlla che tutte le parti necessarie siano presenti. La scatola dovrebbe contenere:

Prima di iniziare l installazione, controlla che tutte le parti necessarie siano presenti. La scatola dovrebbe contenere: M A N U A L E N I - 7 0 7 5 0 2 1 C O N T E N U T O D E L L A C O N F E Z I O N E 4 C A R AT T E R I S T I C H E T E C N I C H E 4 G A M M A D I A P P L I C A Z I O N I 4 I N S TA L L A Z I O N E H A R

Dettagli

Versione 2.0. Manuale d uso. Software per la gestione. degli applicativi Bticino. TiManager 03/07-01 PC

Versione 2.0. Manuale d uso. Software per la gestione. degli applicativi Bticino. TiManager 03/07-01 PC Versione 2.0 03/07-01 PC Manuale d uso TiManager Software per la gestione degli applicativi Bticino TiManager INDICE 2 1. Requisiti Hardware e Software Pag. 4 2. Installazione Pag. 4 3. Concetti fondamentali

Dettagli

Procedure di ripristino del sistema.

Procedure di ripristino del sistema. Procedure di ripristino del sistema. Procedure adatte a sistemi con sistema operativo Microsoft Windows 7 In questo manuale verranno illustrate tutte le procedure che potrete utilizzare per creare dei

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

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Materiali per il modulo 1 ECDL. Autore: M. Lanino Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0

SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0 SmartGPS Satellite Information System Guida all utilizzo del programma Sviluppato da Fabio e Marco Adriani Versione 1.0.0 Benvenuto in SmartGPS, l'applicativo che consente di determinare, utilizzando un

Dettagli

Replica con TeraStation 3000/4000/5000/7000. Buffalo Technology

Replica con TeraStation 3000/4000/5000/7000. Buffalo Technology Replica con TeraStation 3000/4000/5000/7000 Buffalo Technology Introduzione La funzione di replica consente di sincronizzare una cartella in due diversi dispositivi TeraStation quasi in tempo reale. Il

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

MANUALE ESSE3 Gestione Registro delle lezioni

MANUALE ESSE3 Gestione Registro delle lezioni MANUALE ESSE3 Gestione Registro delle lezioni DOCENTI 1 INDICE 1. INTRODUZIONE E ACCESSO... 3 2. GESTIONE DEL REGISTRO... 4 2.1. Informazioni generali... 6 2.2. Stato del Registro... 7 2.2.1. Transizioni

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

Esame di Stato 2015. Materia: SISTEMI AUTOMATICI PRIMA PARTE

Esame di Stato 2015. Materia: SISTEMI AUTOMATICI PRIMA PARTE Esame di Stato 2015 Materia: SISTEMI AUTOMATICI PRIMA PARTE Il problema proposto riguarda un sistema di acquisizione dati e controllo. I dati acquisiti sono in parte di natura digitale (misura del grado

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

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05 Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05 Sommario A. Introduzione... 2 B. Descrizione generale... 2 C. Caratteristiche... 3 D. Prima di utilizzare il programma applicativo

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

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo Release 4.90 Manuale Operativo BARCODE Gestione Codici a Barre La gestione Barcode permette di importare i codici degli articoli letti da dispositivi d inserimento (penne ottiche e lettori Barcode) integrandosi

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

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

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

Sharpdesk V3.3. Guida all installazione Versione 3.3.04

Sharpdesk V3.3. Guida all installazione Versione 3.3.04 Sharpdesk V3.3 Guida all installazione Versione 3.3.04 Copyright 2000-2009 di SHARP CORPORATION. Tutti i diritti riservati. È vietata la riproduzione, l adattamento o la traduzione senza previa autorizzazione

Dettagli

2 - Modifica. 2.1 - Annulla. 2.2 - Selezione finestra. S.C.S. - survey CAD system FIGURA 2.1

2 - Modifica. 2.1 - Annulla. 2.2 - Selezione finestra. S.C.S. - survey CAD system FIGURA 2.1 2 - Modifica FIGURA 2.1 Il menu a tendina Modifica contiene il gruppo di comandi relativi alla selezione delle entità del disegno, alla gestione dei layer, alla gestione delle proprietà delle varie entità

Dettagli

G S M C O M M A N D E R Duo S

G S M C O M M A N D E R Duo S Il GSM Commander Duo S permette, di attivare indipendentemente o contemporaneamente due contatti elettrici, Contatto1 (C1) e Contatto2 (C2), attraverso una chiamata telefonica a costo zero al numero della

Dettagli

Guida Rapida di Syncronize Backup

Guida Rapida di Syncronize Backup Guida Rapida di Syncronize Backup 1) SOMMARIO 2) OPZIONI GENERALI 3) SINCRONIZZAZIONE 4) BACKUP 1) - SOMMARIO Syncronize Backup è un software progettato per la tutela dei dati, ed integra due soluzioni

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15 WG TRANSLATE Pagina 1 di 15 Sommario WG TRANSLATE... 1 1.1 INTRODUZIONE... 3 1 TRADUZIONE DISPLAY FILE... 3 1.1 Traduzione singolo display file... 4 1.2 Traduzione stringhe da display file... 5 1.3 Traduzione

Dettagli

Mon Ami 3000 Cespiti Gestione cespiti e calcolo degli ammortamenti

Mon Ami 3000 Cespiti Gestione cespiti e calcolo degli ammortamenti Prerequisiti Mon Ami 3000 Cespiti Gestione cespiti e calcolo degli ammortamenti L opzione Cespiti è disponibile per le versioni Contabilità e Azienda Pro. Introduzione Il cespite è un qualsiasi bene materiale

Dettagli

Misure di frequenza e di tempo

Misure di frequenza e di tempo Misure di frequenza e di tempo - 1 Misure di frequenza e di tempo 1 - Contatori universali Schemi e circuiti di riferimento Per la misura di frequenza e di intervalli di tempo vengono diffusamente impiegati

Dettagli

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

Come creare il test di Yasso tramite l applicazione Training Center

Come creare il test di Yasso tramite l applicazione Training Center Come creare il test di Yasso tramite l applicazione Training Center A differenza degli altri test pubblicati da Garmin, il test di Yasso necessita di un approfondimento. Il test di Yasso è un test molto

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari A.A. 2013 2014 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

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

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

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Corso basi di dati Installazione e gestione di PWS

Corso basi di dati Installazione e gestione di PWS Corso basi di dati Installazione e gestione di PWS Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Cosa è PWS? Il Personal Web Server altro non è che una versione ridotta del

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

GESTIONE CANTINA MANUALE UTENTE. @caloisoft GESTIONE CANTINA 1

GESTIONE CANTINA MANUALE UTENTE. @caloisoft GESTIONE CANTINA 1 GESTIONE CANTINA MANUALE UTENTE @caloisoft GESTIONE CANTINA 1 IL PROGRAMMA CANTINA Si tratta di un programma per la gestione di una cantina che permette di mantenere un archivio aggiornato di tutte le

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