orologio e display cont 16

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

DESCRIZIONE DEL FUNZIONAMENTO

Introduzione al VHDL. Alcuni concetti introduttivi

Circuiti sequenziali. Circuiti sequenziali e applicazioni

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

Un linguaggio per la descrizione dello hardware: il VHDL

CONTATORI ASINCRONI. Fig. 1

Un linguaggio per la descrizione dello hardware: il VHDL

2 storage mechanisms positive feedback charge-based

Interfaccia DAC per generatore di funzioni basato su fpga

Registri. Registri semplici

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

I CONTATORI. Definizioni

PSPICE Circuiti sequenziali principali

Reti Logiche Appello del 1 marzo 2011

POLITECNICO DI BARI! DIPARTIMENTO DI INGEGNERIA ELETTRICA E DELL INFORMAZIONE!

Ottava esercitazione. Soluzione prova d esame 14 Settembre a.a

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

Flip-flop e loro applicazioni

Sequential Logic. 2 storage mechanisms positive feedback charge-based. Inputs. Outputs COMBINATIONAL LOGIC. Current State. Next state.

(competenze digitali) CIRCUITI SEQUENZIALI

Anno scolastico Supervisore Prof. Giancarlo Fionda Insegnante di Elettronica

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

PROGRAMMAZIONE MODULARE

Descrizioni VHDL Behavioral

Calcolatori Elettronici M Modulo Mapping di un progetto VHDL su FPGA

Registri. «a2» Copyright Daniele Giacomini --

Programmazione modulare a.s

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO

Elettronica delle TLC II Esercitazione I

Reti Logiche A Appello del 24 febbraio 2010

Verifica di Sistemi. 2. Il latch SR a porte NOR non accetta la condizione: a. S=0, R=0 b. S=1, R=1 c. S=0, R=1 d. S=1, R=0

Introduzione I contatori sono dispositivi fondamentali nell elettronica digitale e sono utilizzati per:

interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver

Nonostante l avvento delle più moderne

Circuiti sequenziali

Calcolatori Elettronici

Topward electronics TPS ALTERA Max EPM7128SLC84-15

Complementi ed Esercizi di Reti Logiche in VHDL

I Indice. Prefazione. Capitolo 1 Introduzione 1

Ecco i miei appunti di Elettronica 2 (li potete usare dopo aver studiato per ripassare) (26/04/ 09)

Lezione E15. Sistemi embedded e real-time

Flip flop: tempificazione latch ed edge-triggered

Moduli logici. Interfacciamento di dispositivi logici. Parametri statici e dinamici. Circuiti logici combinatori Circuiti logici sequenziali

Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni. Relazione Progetto del Corso di Elettronica Dei Sistemi Digitali

Misure di frequenza e di tempo

Permutazioni e Gioco del 15. Dott.ssa Giovanna Rosone

I bistabili ed il register file

ARCHITETTURA DEI SISTEMI DI ELABORAZIONE

Misure di frequenza e di tempo

LUCCHETTO DIGITALE A COMBINAZIONE

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

PIANO DI LAVORO DEI DOCENTI

Classe III specializzazione elettronica. Elettrotecnica e elettronica

Addizione tra numeri binari

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

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

LATCH E FLIP-FLOP PREMESSA

Reti Logiche A Esame del 19 febbraio 2007

Logica sequenziale. I dispositivi logici si suddividono in due famiglie principali:

LATCH E FLIP-FLOP PREMESSA

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

VERIFICA DEL FUNZIONAMENTO DI CONTATORI ASINCRONI E VISUALIZZAZIONE DEL CONTEGGIO SU VISUALIZZATORE A LED A 7 SEGMENTI

Infine si realizzi uno schematico che colleghi vari oggetti.

Generazione di Impulsi Digitali. Antonio Affinito

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

Circuiti sequenziali e elementi di memoria

A.C. Neve Esercizi Digitali 1

Università degli Studi di Padova. Corso di Laurea in Ingegneria Elettronica

Progetto di una Slot Machine da sala scommesse implementata in VHDL e C#.

Reti Logiche A. Introduzione al VHDL

Circuiti sincroni Circuiti sequenziali: i bistabili

ELETTRONICA dei SISTEMI DIGITALI Universita di Bologna, sede di Cesena

Introduzione al VHDL per logiche programmabili

Úimparare & approfondiredi FRANCESCO PENTELLA

FONDAMENTI DI LOGICA DIGITALE 1 DL 3155E20 LOGICA. Blocchi funzionali. Argomenti teorici

Calcolatori Elettronici

Reti Logiche A Esame del 24 febbraio 2006

Misure di frequenza e di tempo

PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore

Calcolatori Elettronici Reti Sequenziali Asincrone

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Misuratore di frequenza

Metronomo. Realizzato da Andrea Corda

CONTATORE/TIMER PROGRAMMABILE CTC Z80 1. Piedinatura 2. Struttura interna 4. Modo timer 5. Modo Counter 8. Programmazione del CTC 13

Microprocessore a 16 bit in tecnologia CMOS 45nm

Generatore di numeri casuali

Run MT100 PROFESSIONAL STOPWATCH

Simulazione. Simulazione verilog. Testbench. Testbench

Contatori e registri a scorrimento

FUNZIONI INDICE. Cadenziometro (Pacer) Impostabile da 10 a 240 segnali acustici al minuto.

Elementi di Elettronica Digitale

Grazie per aver acquistato un cronometro a intervalli GYMBOSS minimax.

Progetto di una Slot Machine da sala scommesse implementata in VHDL e C# Andrea Manganaro Elio Romanelli

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

Chapter 1. Circuiti sequenziali: macchine a stati

I CONTATORI SINCRONI

ES IS ORIGINAL COMPRESSORSS

Modellazione RTL. Modulo 7

Quando possiamo dire che un numero a è sottomultiplo del numero b? Al posto dei puntini inserisci è divisibile per oppure è divisore di

Transcript:

Tocci giovanni orologio e display obiettivo: costruzione di un orologio che sappia tenere in conto minuti e secondi. specifiche di progetto: Il nostro orologio, sarà costituito da : divisore di frequenza. contatore modulo 60. contatore modulo 24. contatore modulo 10. contatore modulo 16. flip flop JK. display 7 segmenti. Per creare i nostri contatori siamo partiti da un elemento di memoria fondamentale il flip-flop. Partendo da questo componente possiamo ricavarci il contatore 16 poi il contatore 10, contatore 100, contatore 60 e contatore 24. FLIP-FLOP la nostra entity sarà composta da : clear, clock, preset : IN std_logic; j,k : IN std_logic; q,qn : OUT std_logic); Questo primo componente sarà descritto con un process. Esso riuscirà ad ottenere 4 differenti uscite. Una di memoria, due che permotto il cambio di stato ed infine la j<='1', k<='1' che compongono la memoria negata. Dopo aver descritto il funzionamento del flip-flop, possiamo passare alla simulazione Test banch, dove assegneremo il valore al clear e al preset. cont 16 Il modulo 16 è un contatore formato da 4 flip-flop in cascata. Questo componentne è asincrono perchè il clock entra solo nel primo flip-flop, facendolo propagare sulle uscite. la nostra entity sarà composta da :

clear, clock : IN std_logic; q : OUT std_logic_vector); Mentre per quanto riguarda l' architecture, abbiamo usato la strutturale. TB : Come si può vedere dalla cattura del test-bench, riesce a contare fino a sedici e poi torna a 0 per ricominciare. cont10 Il modulo 10 è formato da un contatore modulo 16. Per ottenere un conteggio minore di 16, doppiamo fermare il contatore a 10, portando le due uscite, q(1) e q(3), ( 1010 =10) in una nand e il segnale uscente collegato a una and con il clear. In questo modo il nostro contatore potrà essere azzerato e farlo ripartire da 0. la nostra entity sarà composta da : clear, clock : IN std_logic; q : OUT std_logic_vector); Questo modulo, sarà descritto con la strutturale e sarà usato per formare il cont 60 e cont 24.

TB : Alla fine grazie al test bench, mettendo il clear a '1', possiamo vedere come riesca a contare da 0 a 9, per poi riazzerarsi e rincominciare. ----------------------------------------------------------------- Timer questo cmponente sarà composto da un top file con all' interno due contatori: cont24 cont60. entity orologio_display is unita_min : out STD_LOGIC_VECTOR (3 downto 0); decine_min : out STD_LOGIC_VECTOR (3 downto 0); unita_ore : out STD_LOGIC_VECTOR (3 downto 0); decine_ore : out STD_LOGIC_VECTOR (3 downto 0)); end orologio_display; le uscite saranno 4, ogni una vettoriale, appunto per differenziare le decine e le unità dei minuti e dei secondi. Come si può vedere dall' illustrazione, abbiamo le uscite dei rispettivi contatori(7-0), che si vanno a suddividere in per poi entrare a loro volta suddivisi in vettori più piccoli (3-0). cont60 formato da due cont10, esso deve portare fuori i segnali dei minuti. entity contatore60 is q : out STD_LOGIC_VECTOR (7 downto 0)) end contatore60;

TB : Alla fine grazie al test bench, mettendo il clear a '1', possiamo vedere come riesca a contare da 0 a 59, per poi riazzerarsi e rincominciare. Cont 24 formato da un cont60, esso deve portare fuori i segnali dei secondi entity contatore24 is q : out STD_LOGIC_VECTOR (7 downto 0)); end contatore24; TB : Alla fine grazie al test bench, mettendo il clear a '1', possiamo vedere come riesca a contare da 0 a 23, per poi riazzerarsi e rincominciare. --------------------------------------------------- display Il display, serve per visualizzare il tempo che scorre. È un 7 segmenti quindi visualizzeremo i secondi e i minuti sopra i display secondo il seguente schema :

Avrà entrate vettoriali per le unità e decine dei secondi e dei minuti, e come uscita, appunto un vettore che si collega ai segmenti del display. entity display is Port ( clk : in STD_LOGIC; en : in STD_LOGIC; D0 : in STD_LOGIC_VECTOR (3 downto 0); D1 : in STD_LOGIC_VECTOR (3 downto 0); D2 : in STD_LOGIC_VECTOR (3 downto 0); D3 : in STD_LOGIC_VECTOR (3 downto 0); AN : out STD_LOGIC_VECTOR (3 downto 0); seg : out STD_LOGIC_VECTOR (0 to 6)); end display; divisore100 il divisore100, è necessario per diminuire la frequenza del clock. La necessità di un divisore di frequenza si ha sia perché con uno stesso segnale di clock si devono pilotare circuiti a frequenza diversa top module la entity del file top model è : entity timer_display is enable : in STD_LOGIC; an : out STD_LOGIC_VECTOR (3 downto 0); seg : out STD_LOGIC_VECTOR (0 to 6)); end timer_display;

Sarà descritto con la forma struttutrale, e sarà composto da : un divisore100: component divisore100 is fc : out STD_LOGIC); end component; dal cont60 + cont24 : component orologio_display is unita_min : out STD_LOGIC_VECTOR (3 downto 0); decine_min : out STD_LOGIC_VECTOR (3 downto 0); unita_ore : out STD_LOGIC_VECTOR (3 downto 0); decine_ore : out STD_LOGIC_VECTOR (3 downto 0)); end component; dal display : component display is Port ( clk : in STD_LOGIC; en : in STD_LOGIC; D0 : in STD_LOGIC_VECTOR (3 downto 0); D1 : in STD_LOGIC_VECTOR (3 downto 0); D2 : in STD_LOGIC_VECTOR (3 downto 0); D3 : in STD_LOGIC_VECTOR (3 downto 0); AN : out STD_LOGIC_VECTOR (3 downto 0); seg : out STD_LOGIC_VECTOR (0 to 6)); end component; Quindi ripartendo dall' inizio, abbiamo un divisore di frequenza per ridurre il clock, due cont rispettivamente suddivisi con uscite vettoriali ed un file display. Mentre per quanto riguarda l' architecture del top file, e quindi il port map, ho collegato i vari segnali alle uscite fino ad arrivare al display il quale con le uscite per il 7 segmenti, andrannop ad azionare il display raffigurando il timer funzionante. begin divisore100_1: divisore100 port map (clock => clock, cl => cl, fc => fc1); orologio_display1 : orologio_display port map ( clock => fc1, cl => cl, decine_min => s,decine_ore => d,unita_min => a,unita_ore=>f); display_1 : display port map ( D0 => s, D1 => a, D2 => d, D3 => f, en => enable, clk => clock, seg => seg, AN=> an); end Behavioral;

file UCF: SIMULAZIONE Per la simulazione, ho implementato il tutto, visualizzando sul display il risultato richiesto, con appunto la visione del tempo che scorre. Nella immaggine di sinistra solo i secondi, mentre a destra sono presenti i minuti.