Disegni organizzati gerarchicamente Ciascun elemento del disegno ha: –Uninterfaccia ben definita –Una precisa specifica del comportamento usando o: Una.

Slides:



Advertisements
Presentazioni simili
Automi temporizzati.
Advertisements

Informatica Generale Marzia Buscemi
if (condizione.) { blocco_istruzioni } else
Software di base: Linguaggi di Programmazione
Strutture di controllo
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Linguaggio C++ Selezione.
Selezione A. Ferrari.
Procedure e funzioni In linguaggio C.
Algoritmi e Programmazione
Segnali ed esecuzione concorrente. Introduzione I segnali simulano i collegamenti fisici tra blocchi Servono a sincronizzare o scambiare dati tra processi.
SPIM Esercizi. Esercizio 1 – il comando li Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
SPIM Esercizi. Esercizio 7 – load/store Il codice deve: Inserire in memoria la word 0x a Leggere questo dato e inserirlo in s0 Sommarci 5 Salvare.
Fondamenti di Informatica
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Introduzione ai circuiti sequenziali
Circuiti di memorizzazione elementari: i Flip Flop
CONVERTITORI A/D ad ELEVATE PRESTAZIONI
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Disegnare un circuito sequenziale sincrono che implementa lalgoritmo espresso dal seguente pseudo linguaggio: 1.If (start = 0) then wait; elseif(start=1)
Decoder Struttura generale del decoder
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Algoritmi su Tipi Semplici
9) If e else. Lab.Calc.I AA2002/03 - cap.92 espressione.
Istruzioni di selezione (If/else/switch)
Strutture di controllo in C -- Flow Chart --
Elementi di Informatica
Rete Sincrona Una rete sequenziale sincrona, è dotata di un ingresso E, di un segnale di Clock e uno di reset. Ad ogni fronte del Clock, deve essere campionato.
1 Premessa In questo progetto sono stati implementati tutti gli esercizi di Complementi di esercizi di Reti logiche. Elenco degli esercizi svolti: 1.Registro.
D.E.I.S. Universita di Bologna VHDL come strumento CAD allinterno di flussi di progetto per dispositivi Digitali VHDL come strumento CAD allinterno di.
VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA
VHDL come strumento di progetto di circuiti digitali
MACCHINE A STATI FINITI
Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output.
Contatore: esempio di circuito sequenziale
ELEMENTI DI PROGRAMMAZIONE
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lezione 6 Strutture di controllo Il condizionale
Lascensore di un edificio a 2 piani utilizza 2 sensori S0, S1 per determinare la posizione della cabina passeggeri. Il segnale generato da ciascun sensore.
Lascensore di un edificio a 2 piani utilizza 2 sensori S0, S1 per determinare la posizione della cabina passeggeri. Il segnale generato da ciascun sensore.
Lo sviluppo top down Le funzioni
Capitolo 8: Progetto di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May 1993.
Programma di Informatica Classi Prime
Ripasso : Algoritmi.
1.1 Sistemi di elaborazione
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN.
DIVERTIRSI CON SCRATCH
Linguaggi algoritmici
JavaScript Generalità Cos'è JavaScript?
Metodologia Top_Down Lo PSpice A/D offre la possibilità di progettare con la metodologia TOP-DOWN. Progettare in Top-Down significa progettare stabilendo.
Università Degli Studi di Napoli “ Federico II”
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Programmazione Concorrente e Distribuita
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
1 Parte 2 Fondamenti di programmazione. 2 Definizione intuitiva di algoritmo Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo.
Architettura dei Sistemi Operativi
Circuiti Sequenziali Elementi di memoria Logic combinatoria Inputs
LATCH. Circuiti Sequenziali I circuiti sequenziali sono circuiti in cui lo stato di uscita del sistema dipende non soltanto dallo stato di ingresso presente.
Circuiti di memorizzazione elementari: i Flip Flop
Espressioni regolari (1)
Capitolo 10: Realizzazione di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May.
C++:Strutture di Controllo
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Calliope-Louisa Sotiropoulou I NTRODUZIONE ALLA T ECNOLOGIA D ELL ’FPGA F IELD P ROGRAMMABLE G ATE A RRAYS PISA, 02/03/2016 Marie Curie IAPP Fellow - University.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Linguaggio C++ Selezione.
Transcript della presentazione:

Disegni organizzati gerarchicamente Ciascun elemento del disegno ha: –Uninterfaccia ben definita –Una precisa specifica del comportamento usando o: Una descrizione algoritmica Una descrizione strutturale dellhardware Modella la concorrenza, la temporizzazione, e il clock: –Gestisce circuiti asincroni e sincroni –I disegni possono essere simulati VERILOG HDL (Hardware Description Language)

macchina a stati semaforo in verilog module sm_DAC(); Dichiarazione varibili … Funzionalità endmodule; module sm_DAC(res,clk,start_DAC,Cout, CNT_EN,CNT_RES,DAC_CLK,LOAD); Dichiarazione varibili … Funzionalità endmodule; Il blocco costruttivo fondamentale di verilog è il modulo Start_DAC clk res CNT_EN DAC_CLK SM_DAC CNT_RES CoutLOAD

Dichiarazione dei segnali: segnali di input module sm_DAC( res,clk,start_DAC,Cout, CNT_EN,CNT_RES,DAC_CLK,LOAD); input res, clk, start_DAC, Cout; … Funzionalità endmodule; Il blocco costruttivo fondamentale di verilog è il modulo Start_DAC clk res CNT_EN DAC_CLK SM_DAC CNT_RES Cout LOAD

Dichiarazione dei segnali: segnali di output module sm_DAC( res,clk,start_DAC,Cout, CNT_EN,CNT_RES,DAC_CLK,LOAD); input res, clk, start_DAC, Cout; output CNT_EN, CNT_RES, DAC_CLK, LOAD; reg CNT_EN, CNT_RES, DAC_CLK, LOAD; Funzionalità endmodule; Start_DAC clk res CNT_EN DAC_CLK SM_DAC CNT_RES Cout LOAD

Definizione degli stati module sm_DAC( res,clk,Start_DAC,Cout, CNT_EN,CNT_RES,DAC_CLK,LOAD); input res, clk, start_DAC, Cout; output CNT_EN, CNT_RES, DAC_CLK, LOAD; reg CNT_EN, CNT_RES, DAC_CLK, LOAD; reg [1:0] state; parameter idle = 2'b00; parameter S0 = 2'b01; parameter S1 = 2b10; Parameter S2 = 2b11; Funzionalità endmodule;

Le transizioni degli stati module sm_DAC( res,clk,Start_DAC,Cout, CNT_EN,CNT_RES,DAC_CLK, LOAD); input res, clk, start_DAC, Cout; output CNT_EN, CNT_RES, DAC_CLK, LOAD; reg CNT_EN, CNT_RES, DAC_CLK, LOAD; reg [1:0] state; parameter idle = 2'b00; parameter S0 = 2'b01; parameter S1 = 2b10; Parameter S2 = 2b11; (posedge clk or negedge reset) begin if (reset == 0) state = idle; else … end endmodule;

Statement always begin … end Ogni volta che è soddisfatta la condizione in parentesi, vengono eseguiti tutti gli stament contenuti allinterno del blocco begin-end Blocco begin-end: analogo a un raggruppamento di istruzioni {} del linguaggio di programmazione C. state=idle è eseguito ogni volta che il segnale res compie una transizione negativa Altrimenti su ogni bordo positivo di clk... clk or negedge res) begin if(reset == 0) state=idle else …

(posedge clk or negedge reset) begin if (reset == 0) state = idle; else case (state) idle: if(start_DAC == 1) state = S0; else state = idle; S0: state = S1; S1: if(Cout == 1) state = S2; else state = S0; S2: state = idle; endcase end

La definizione dei segnali di output (state) begin case (state) idle: begin CNT_EN= 0; CNT_RES = 1; DAC_CLK = 0; LOAD = 1; end S0: begin CNT_EN= 1; CNT_RES = 1; DAC_CLK = 1; LOAD = 1; end S1: begin CNT_EN= 0; CNT_RES = 1; DAC_CLK = 0; LOAD = 1; end S2: begin CNT_EN= 0; CNT_RES = 0; DAC_CLK = 0; LOAD = 0; end endcase end

La definizione dei segnali di output (state) begin case (state) idle: begin CNT_EN= 0; CNT_RES = 1; DAC_CLK = 0; LOAD = 1; end S0: begin CNT_EN= 1; CNT_RES = 1; DAC_CLK = 1; LOAD = 1; end S1: begin CNT_EN= 0; CNT_RES = 1; DAC_CLK = 0; LOAD = 1; end S2: begin CNT_EN= 0; CNT_RES = 0; DAC_CLK = 0; LOAD = 0; end endcase end