Laboratorio di Sistemi Digitali M A.A. 2010/11
|
|
- Eva Baldini
- 4 anni fa
- Visualizzazioni
Transcript
1 if (RESET_N = '0') then for col in 0 to BOARD_COLUMNS-1 loop for row in 0 to BOARD_ROWS-1 loop... elsif (rising_edge(clock)) then... Laboratorio di Sistemi Digitali M 4 Esercitazione Tetris: Datapath Primiano Tucci primiano.tucci@unibo.it
2 Agenda 1. Identificazione elementi di memoria (registri) 2. Identificazione operazioni sui registri 3. Definizione black-box datapath e segnali scambiati con Control Unit e View 4. Definizione RTL Precedentemente abbiamo modellato il problema definendo i seguenti tipi di dato: 0,0 1,0 0,1 1,1 Piece shape (enum) blocks[0..3] col (integer 0 to COLS-1) row (integer 0 to ROWS-1) Quanti registri per i pezzi? Registri board: 1 (ovviamente!) Registri piece: 1 In realtà ci basta mantenere l informazione solo sul pezzo in caduta: il falling_piece ROWS COLUMNS Board Cell[R,C] filled (1/0) shape (enum)
3 library ieee; use ieee.numeric_std.all; use ieee.std_logic_1164.all; use work.tetris_package.all; entity Tetris_Datapath is port ( CLOCK ); end entity; VHDL Tetris_Datapath.vhd (Inizio) Il package contenente le costanti e i tipi di dato definiti la settimana scorsa RESET_N -- Connections for the Controller... Le decideremo tra un po quando le cose saranno più chiare -- Connections for the View... Idem architecture RTL of Tetris_Datapath is signal board : board_type; signal falling_piece : piece_type; dopo ci serviranno altri segnali qui definiremo process e statement concorrenti Per adesso questi segnali non sono ancora dei registri. Cosa manca? Il loro RTL! Devono essere assegnati sotto rising_edge!
4 Operazioni sul falling_piece Nome operazione NEW_PIECE Registro: falling_piece Tipo di dato: piece_type Ruolo: mantiene le informazioni sul pezzo attualmente in caduta Descrizione Introduce (dall alto) un nuovo falling_piece sostituendo quello precedente MOVE_LEFT Sposta il falling_piece a sinistra Nessuno MOVE_RIGHT Sposta il falling_piece a destra Nessuno MOVE_DOWN Sposta il falling_piece in basso Nessuno ROTATE * Ruota il falling_piece (in senso orario) Nessuno CAN_MOVE_LEFT Determina se il falling_piece può essere spostato a sinistra Nessuno CAN_MOVE_RIGHT Determina se il falling_piece può essere spostato a destra Nessuno CAN_MOVE_DOWN Determina se il falling_piece può essere spostato in basso Nessuno CAN_ROTATE Determina se il falling_piece può essere ruotato Nessuno Parametri NEW_PIECE_TYPE * Per semplicità consideriamo solo la rotazione in senso orario
5 C, R C+1, R C+1, R+1 C+2, R Contenuto del falling_piece. In caso di: RESET (async) : posizione arbitraria NEW_PIECE : posizione indicata da NEW_PIECE_TYPE RTL del falling_piece FallingPiece_RTL : process(clock, RESET_N) constant PIECE_AT_RESET : piece_type := PIECE_SQUARE; constant NEW_PIECE_OFFSET : integer := BOARD_COLUMNS/2-2; if (RESET_N = '0') then falling_piece <= PIECE_AT_RESET; elsif (rising_edge(clock)) then Adoperiamo un template sincrono Altrimenti : posizione calcolata in funzione del movimento richiesto Porte (I/O) introdotte NEW_PIECE (Input) NEW_PIECE_TYPE* + (Input) if (NEW_PIECE = '1') then falling_piece.shape <= NEW_PIECE_TYPE.shape; for i in 0 to BLOCKS_PER_PIECE-1 loop falling_piece.blocks(i).row <= NEW_PIECE_TYPE.blocks(i).row; falling_piece.blocks(i).col <= NEW_PIECE_TYPE.blocks(i).col + NEW_PIECE_OFFSET; end loop; else falling_piece <= next_falling_piece; Decomponiamo il problema. end process;
6 Generazione combinatoria dei movimenti del falling_piece C, R C+1, R C+1, R+1 e se inverto il for e gli if? C+2, R Porte (I/O) introdotte MOVE_DOWN (Input) MOVE_LEFT (Input) MOVE_RIGHT (Input) ROTATE (Input) Che succede se invece degli elsif ci sono degli end if? NextFallingPiece : process(falling_piece, PORTE_CHE_DEFINIREMO ) next_falling_piece <= falling_piece; for i in 0 to BLOCKS_PER_PIECE-1 loop if (MOVE_DOWN = '1') then next_falling_piece.blocks(i).row <= falling_piece.blocks(i).row + 1; elsif (ROTATE = '1') then Smentisco la posizione verticale SCOPRITELO! (rispolverate le conoscenze di geometria) elsif (MOVE_LEFT = '1') then next_falling_piece.blocks(i).col <= falling_piece.blocks(i).col - 1; elsif (MOVE_RIGHT = '1') then next_falling_piece.blocks(i).col <= falling_piece.blocks(i).col + 1; Smentisco la posizione orizzontale end loop; end process; Confermo la posizione corrente, salvo smentita (più sotto). Ragioniamo per ogni singolo blocchetto I segnali MOVE_* (&c.) provengono dal controller NON dai pulsanti.
7 Rotazione del falling_piece Ricordate come abbiamo definito i pezzi nel package? constant PIECE_T : piece_type := ( shape => SHAPE_T, blocks => ( (col => 1, row => 0), (col => 0, row => 0), (col => 2, row => 0), (col => 1, row => 1) 0,0 1,0 2,0 1,1 )); Ma, in fondo, l ordine in cui vengono definiti i 4 blocchi è irrilevante. Facciamo una piccola variazione: il primo dei 4 blocchi rappresenta il centro di rotazione del pezzo: il pivot Il pivot, per definizione, è il punto fisso di una rotazione.
8 Pivot dei pezzi (courtesy of Marco Allegretti)
9 Rotazione del falling_piece 6,1 4,3 5,3 6,3 6,4 6,2 5,3 6,3 Il pivot non cambia le sue coordinate durante una rotazione. Ed i rimanenti 3 blocchi? Intuitivamente, nel caso di rotazione oraria: Tanto più un blocco è più in basso del pivot, tanto più si troverà alla sua sinistra. Tanto più un blocco è a sinistra del pivot, tanto più si ritroverà in alto. Parimenti per alto e sinistra. Per ogni blocco i-esimo: x offset_i = (x i x p ) y offset_i = (y i y p ) (possono assumere valori negativi!) x new = x p y offset_i = x p - y i + y p y new = y p + X offset_i = y p + x i - x
10 VHDL per rotazione falling_piece NextFallingPiece : process(falling_piece,move_down,move_left,move_right,rotate) variable pivot : block_pos_type; next_falling_piece <= falling_piece; pivot := falling_piece.blocks(0); for i in 0 to BLOCKS_PER_PIECE-1 loop... elsif (ROTATE = '1') then if (i /= 0) then -- the pivot does not require any transformation next_falling_piece.blocks(i).col <= pivot.col - (falling_piece.blocks(i).row - pivot.row); next_falling_piece.blocks(i).row <= pivot.row + (falling_piece.blocks(i).col - pivot.col);...
11 0 0 Generazione combinatoria dei segnali CAN_MOVE_X C, R 1 C+1, R C+1, R+1 C+2, R Porte (I/O) introdotte CAN_MOVE_DOWN (Output) CAN_MOVE_LEFT (Output) CAN_MOVE_RIGHT (Output) CAN_ROTATE (Output) CanMove_Signals : process(falling_piece, board) variable cur_block : block_pos_type; variable left_cell_filled : std_logic;... CAN_MOVE_LEFT <= '1'; CAN_MOVE_RIGHT <= '1'; CAN_MOVE_DOWN <= '1'; CAN_ROTATE <= '1'; for i in 0 to BLOCKS_PER_PIECE-1 loop cur_block := falling_piece.blocks(i); if (cur_block.col = 0) then CAN_MOVE_LEFT <= '0'; else left_cell_filled := board.cells((cur_block.col-1),cur_block.row).filled; if (left_cell_filled = '1') then CAN_MOVE_LEFT <= '0';... RIGHT, e DOWN omissis (sono praticamente identici) ROTATE! end process; Il movimento del falling_piece è libero in tutte direzioni salvo smentita (più sotto) Ragioniamo sempre per ogni singolo blocco Se uno qualsiasi dei (4) blocchi che compongono il pezzo è in colonna 0, il pezzo non può andare più a sinistra di così. Ma non basta Se uno (o più) dei (4) blocchi è ostruito a sinistra, il pezzo non può muoversi a sinistra.
12 Datapath :: board Registro board Tipo di dato: board_type Ruolo: mantiene le informazioni sull evoluzione del gioco (pezzi caduti) Nome operazione Descrizione Parametri CLEAR Svuota la board liberando tutte le celle nessuno MERGE Fonde il falling_piece nella board occupando le celle relative alla sua posizione attuale Nessuno REMOVE_ROW Elimina la riga selezionata. Di fatto copia il contenuto della riga soprastante. ROW_INDEX (integer) CHECK_ROW Verifica il completamento della riga selezionata ROW_INDEX (integer) QUERY_CELL Recupera il contenuto di una cella (per consentirne il disegno vedremo dopo) POSIZIONE (block_pos_type)
13 Contenuto delle celle della board. In caso di: RESET (async) : filled = 0 CLEAR : filled = 0 REMOVE_ROW : contenuto cella soprastante (!) MERGE : eventuale blocco del falling_piece avente coordinate corrispondenti Alrimenti : mantiene il valore corrente Porte (I/O) introdotte REMOVE_ROW (Input) ROW_INDEX* + (Input) D RTL della board (1/3) filled D* + shape Q Q* + Board_RTL : process(clock, RESET_N) if (RESET_N = '0') then for col in 0 to BOARD_COLUMNS-1 loop for row in 0 to BOARD_ROWS-1 loop board.cells(col,row).filled <= '0'; end loop; end loop; elsif (rising_edge(clock)) then for col in 0 to BOARD_COLUMNS-1 loop for row in 0 to BOARD_ROWS-1 loop RAGIONIAMO CELLA PER CELLA! if (CLEAR = '1') then... (continua nella prossima slide) elsif (REMOVE_ROW = '1') then... (continua nella prossima slide) elsif (MERGE = '1') then... (continua nella prossima slide) end loop; -- row loop end loop; -- col loop -- if rising_edge(..) end process; Nota: CLOCK e RESET_N impliciti per tutti i registri. RESET_N (asincrono) va utilizzato solo ed esclusivamente per l inizializzazione dell hardware e non per espletare operazioni (sincrone)
14 RTL della board (2/3) LOGICA RTL (continua da slide precedente) filled Contenuto delle celle della board. In caso di: RESET (async) : filled = 0 CLEAR : filled = 0 REMOVE_ROW : contenuto cella soprastante (!) MERGE : eventuale blocco del falling_piece avente coordinate corrispondenti Alrimenti : mantiene il valore corrente D D* + shape Q Q* + Aggiungiamo questi segnali alla entity (prima di ) type affected_by_merge_type is array(natural range <>, natural range <>) of std_logic; Signal cell_ffected_by_merge : affected_by_merge_type (0 to BOARD_COLUMNS-1, 0 to BOARD_ROWS-1); for col in 0 to BOARD_COLUMNS-1 loop for row in BOARD_ROWS-1 downto 0 loop if (CLEAR = '1') then board.cells(col,row).filled <= '0'; elsif (REMOVE_ROW = '1') then if (row = 0) then board.cells(col, row).filled <= '0'; elsif (row <= ROW_INDEX) then board.cells(col, row) <= board.cells(col, row-1); elsif (MERGE = '1') then if(affected_by_merge(col, row) = '1') then board.cells(col, row).filled <= '1'; board.cells(col, row).shape <=falling_piece.shape; end loop; -- row loop end loop; -- col loop Divide et Impera Quando il problema non è di immediata soluzione, delegatelo a voi stessi!
15 RTL della board (3/3) Generazione segnale (array) affected_by_merge D filled D* + shape Contenuto delle celle della board. In caso di: RESET (async) : filled = 0 CLEAR : filled = 0 REMOVE_ROW : contenuto cella soprastante (!) MERGE Altrimenti Q Q* + : eventuale blocco del falling_piece avente coordinate corrispondenti : mantiene il valore corrente Ruolo: indica, per ogni cella, se essa è interessata dall operazione merge, ovvero se uno dei blocchi elementari del falling_piece ne occupa la posizione. type affected_by_merge_type is array(natural range <>, natural range <>) of std_logic; signal cell_affected_by_merge : affected_by_merge_type (0 to BOARD_COLUMNS-1, 0 to BOARD_ROWS-1); (riferito ad: architecture RTL of Tetris_Datapath) AffectedByMerge : process(board, falling_piece) cell_affected_by_merge <= ((others=> (others=>'0'))); for i in 0 to BLOCKS_PER_PIECE-1 loop cell_affected_by_merge( falling_piece.blocks(i).col, falling_piece.blocks(i).row ) <= '1'; end loop; end process; Usiamo un process combinatorio per descrivere la logica più complessa (in fondo mica tanto) del segnale (in realtà un array) affected_by_merge
16 Generazione combinatoria di ROW_IS_COMPLETE RowCheck : process(board_r, ROW_INDEX) variable complete : std_logic; complete := '1'; for i in 0 to (BOARD_COLUMNS-1) loop complete := complete and board.cells(i,row_index).filled; end loop; ROW_IS_COMPLETE <= complete; end process; 0 Ad un certo punto il controller dovrà verificare se abbiamo completato una riga! In questo caso la variabile viene usata per generare dinamicamente (in funzione di BOARD_COLUMNS) una catena di AND. ROW_INDEX Porte (I/O) introdotte ROW_INDEX (Input) ROW_IS_COMPLETE (Output) ROW_IS_COMPLETE
17 Operazione di QUERY_CELL (combinatoria) Utilizzata dal View per disegnare le varie celle Attenzione! Nella nostra modellazione la board NON contiene il falling_piece (lo conterrà in occasione del successivo MERGE). Ma CellQuery : process(query_cell, board, falling_piece) variable selected_cell : board_cell_type; CELL_CONTENT.filled <= '0'; CELL_CONTENT.shape <= SHAPE_T; -- indifferente, ma nei processi combinatori -- esplicitate sempre tutti gli assegnamenti. Il View non lo sa (e non lo vuole sapere). Il View ha il compito di disegnare la scena. Per farlo non fa altro che interrogarci, chiedendoci lo stato di una determinata cella. Spetta a noi fornirgli il quadro complessivo (board + falling piece) Porte (I/O) introdotte QUERY_CELL (Input), di tipo block_pos_type {col, row} CELL_CONTENT (Output) selected_cell := board.cells(query_cell.col, QUERY_CELL.row); CELL_CONTENT <= selected_cell; -- Innanzitutto prendo la cella selezionata dalla board. -- In più faccio override in caso uno dei blocchi del -- falling_piece occupi la posizione selezionata. for i in 0 to BLOCKS_PER_PIECE-1 loop if(falling_piece.blocks(i) = QUERY_CELL) then CELL_CONTENT.filled <= '1'; CELL_CONTENT.shape <= falling_piece.shape; end loop; end process; Come mai non c è un sengale QUERY (std_logic) ma solo l indirizzo della cella da interrogare?
18 Datapath - Out of the box CLOCK RESET_N CLEAR MERGE REMOVE_ROW Operazioni sulla board NEW_PIECE MOVE_DOWN MOVE_LEFT MOVE_RIGHT ROTATE Operazioni sul falling_piece CAN_MOVE_LEFT CAN_MOVE_RIGHT CAN_MOVE_DOWN CAN_ROTATE QUERY_CELL[ ] ROW_INDEX[ ] Interrogaz. contenuto Stato righe CELL_CONTENT[ ] ROW_IS_COMPLETE
19 entity Tetris_Datapath is port ( CLOCK RESET_N Datapath - Out of the box (VHDL) -- Connections for the Controller CLEAR MOVE_DOWN MOVE_LEFT MOVE_RIGHT ROTATE MERGE REMOVE_ROW NEW_PIECE NEW_PIECE_TYPE : in piece_type; ROW_INDEX CAN_MOVE_LEFT : in integer range 0 to (BOARD_ROWS-1); : out std_logic; CAN_MOVE_RIGHT : out std_logic; CAN_MOVE_DOWN CAN_ROTATE : out std_logic; : out std_logic; ROW_IS_COMPLETE : out std_logic; -- Connections for the View QUERY_CELL : in block_pos_type; CELL_CONTENT : out board_cell_type ); end entity;
Laboratorio di Sistemi Digitali M A.A. 2010/11
if (RESET_N = '0') then for col in 0 to BOARD_COLUMNS-1 loop for row in 0 to BOARD_ROWS-1 loop... elsif (rising_edge(clock)) then... Laboratorio di Sistemi Digitali M 5 Esercitazione Tetris: Control Unit
Laboratorio di Sistemi Digitali M A.A. 2010/11
begin if (RESET_N = '0') then for col in 0 to BOARD_COLUMNS-1 loop for row in 0 to BOARD_ROWS-1 loop... elsif (rising_edge(clock)) then... Laboratorio di Sistemi Digitali M 3 Esercitazione Tetris: Introduzione
Seconda esercitazione
Seconda esercitazione progetto e simulazione di registri e contatori Obiettivi analisi del costrutto «process» analisi di reti sequenziali a.a. 2-2 VHDL : Processi 2 un processo rappresenta uno statement
Introduzione al VHDL. Alcuni concetti introduttivi
Introduzione al VHDL Alcuni concetti introduttivi Riferimenti The VHDL Cookbook, Peter J. Ashenden, Reperibile nel sito: http://vlsilab.polito.it/documents.html The VHDL Made Easy, David Pellerin, Douglas
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. VHDL - Esempi. Martedì 13 Gennaio 2009
VHDL - Esempi Martedì 13 Gennaio 2009 Processi Un process è un'istruzione concorrente che contiene un'area sequenziale. Un processo viene eseguito parallelamente alle altre istruzioni concorrenti. L'esecuzione
Terza esercitazione. Progetto di una rete di controllo. Obiettivi Progetto e analisi di macchine a stati finiti. a.a
1 Terza esercitazione Progetto di una rete di controllo Obiettivi Progetto e analisi di macchine a stati finiti 2 Macchina a Stati Finiti (FSM) Z(n)=f(x(n)) => Sistema Combinatorio Z(n)=f(x(n),x(n-1),x(n-2),..)
Introduzione al VHDL. Alcuni concetti introduttivi
Introduzione al VHDL Alcuni concetti introduttivi Riferimenti The VHDL Cookbook, Peter J. Ashenden, Reperibile nel sito: http://vlsilab.polito.it/documents.html The VHDL Made Easy, David Pellerin, Douglas
architecture tipo_architettura of nome_del_modulo is begin architecture tipo_architettura of nome_del_modulo is
Struttura file.vhd. library IEEE; use IEEE.std_logic_64.all; use IEEE.std_logic_arith.all; link a librerie e package entity nome_del_modulo is port ( term,term2 : in std_logic; term3,term4 : out std_logic)
ELETTRONICA DELLE TELECOMUNICAZIONI II ESERCITAZIONE DI LABORATORIO N.2 CODICE VHDL. Torino, 16/05/2005
Mauro Caule mat. 118381 Fabrizio Castellano mat. 122390 Luigi Fasano mat. 120730 ELETTRONICA DELLE TELECOMUNICAZIONI II ESERCITAZIONE DI LABORATORIO N.2 CODICE VHDL Torino, 16/05/2005 ENTITY sipo IS data_in:
Quarta esercitazione
1 Quarta esercitazione Soluzione di una prova d esame Obiettivo Fornire una metodologia di progetto scomposizione in blocchi e definzione dei segnali interni diagramma degli stati della FSM scrittura del
VHDL - Introduzione. //
VHDL - Introduzione VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuits Scopo presentazione: introdurre un sottoinsieme del sottoinsieme del linguaggio VHDL utilizzabile
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti
Introduzione al VHDL Lezione 3
Introduzione al VHDL Lezione 3 Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Via Comelico 39/41, I-20135 Milano (Italy) Tel.: +39-2-5835-6306 e-mail: silvano@elet.polimi.it
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.
VHDL Linguaggio di descrizione dell'hardware VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits VHDL Processi Attivati da qualche segnale Assegnazioni concorrenti A
Regole per la scrittura di VHDL Sintetizzabile. Fabio Campi. Corso di Elettronica dei Sistemi Digitali LS AA
Regole per la scrittura di VHDL Sintetizzabile Fabio Campi Corso di Elettronica dei Sistemi Digitali LS AA 2003-2004 2004 VHDL Sintetizzabile Obiettivo: Mappare su celle Hardware di libreria, riferite
Riepilogo su FSM. Descrizione di macchine a stati tramite VHDL. Esempio di FSM (Moore) Esempio di FSM (Moore)
Riepilogo su FSM Descrizione di macchine a stati tramite VHDL M. Favalli Engineering Department in Ferrara FSM: i) insieme finito di simboli di ingresso; ii) insieme finito di simboli di uscita; iii) un
Si progetti, utilizzando il linguaggio VHDL, una rete
Si progetti, utilizzando il linguaggio VHDL, una rete logica in grado di realizzare il controllore di un distributore automatico di bevande. L interfaccia di I/O della rete è la seguente: ESERCIZIO entity
Reti Logiche A Esame del 13 settembre 2007
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Esame del 13 settembre 2007 prof.ssa Cristiana Bolchini Esercizio n. 1 Effettuare
Calcolatori Elettronici M Modulo Linguaggio VHDL Parte 2/2
Calcolatori Elettronici M Modulo 2 03 - Linguaggio VHDL Parte 2/2 1 Approfondimento su segnali e variabili Progettare in VHDL una rete che periodicamente dopo tre periodi di clock setta al livello logico
Prima esercitazione. a.a
Prima esercitazione Progetto e simulazione di una semplice rete combinatoria Obiettivi Eseguire tutti i passi del flusso di progettazione Analizzare la struttura di un file.vhd Analizzare i costrutti principali
---- registro con reset e enable library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.
---- registro con reset e enable use IEEE.std_logic_unsigned.all; --Registro con reset sincrono e enable entity REGISTRO is port (CLK, RESET, ENABLE D Q : out std_logic end REGISTRO; architecture behavioral
Introduzione al VHDL Lezione 2
Introduzione al VHDL Lezione 2 Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Via Comelico 39/41, I-20135 Milano (Italy) Tel.: +39-2-5835-6306 e-mail: silvano@elet.polimi.it
Calcolatori Elettronici M Modulo Introduzione all ambiente Xilinx ISE 12.3 e ISIM
Calcolatori Elettronici M Modulo 2 06 Introduzione all ambiente Xilinx ISE 12.3 e ISIM 1 Questi lucidi forniscono una sintetica introduzione all ambiente di sviluppo Xilinx ISE 12.3 utilizzando come riferimento
Sommario. Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches
Fondamenti di VHDL Sommario VHDL: premessa e introduzione Modellizzazione Sintassi Classi di Oggetti Tipi di Dati e Operatori Package e Librerie Processi Esempi di codice VHDL VHDL Testbenches Premessa
Compito di linguaggi di descrizione dell hardware
Compito di linuai di descrizione dell hardware Esercizio 1 Si realizzi un modello comportamentale in VHDL di un lath di tipo D trasparente (con inressi d e clk, ed uscita q). Quando clk = 1, il latch é
Architetture e reti logiche Esercitazioni VHDL a.a. 2006/07. UsodelVHDL. Stefano Ferrari
Architetture e reti logiche Esercitazioni VHDL a.a. 2006/07 UsodelVHDL Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Architettureeretilogiche VHDL UsodelVHDL
Reti Logiche A Appello del 24 febbraio 2010
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Appello del 24 febbraio 2010 Matricola prof.ssa Cristiana Bolchini Cognome Nome
Architetture e reti logiche. Esercitazioni VHDL. a.a. 2005/06. Uso del VHDL. Stefano Ferrari
Architetture e reti logiche Esercitazioni VHDL a.a. 2005/06 Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi di Milano
Modello sequenziale. Modello sequenziale: i Process 13/11/2014. ENTITY ffsr IS Port ( s,r: IN std_logic; q, qn: OUT std_logic); END ffsr;
Modello sequenziale: i Process Modello sequenziale ENTITY ffsr IS Port ( s,r: IN std_logic; q, qn: OUT std_logic); END ffsr; ARCHITECTURE seq OF ffsr IS ( r PROCESS(s, IF s = 1 AND r = 0 THEN q
Sintassi. Le varie espressioni sintattiche scritte in VHDL si possono ricondurre ai seguenti oggetti: Scalari e Vettori Nomi Oggetti: Espressioni
Introduzione Il VHDL e costituito da vari formati (types)ed operatori (operators) per consentire simulazione e sintesi a vari livelli Nel package STANDARD si trovano descritti quegli oggetti destinati
14/11/2012. Il VHDL 3 parte. Tipi. Tipi scalari INTEGER; REAL; Tipo Fisici; BOOLEAN; CHARCTER; BIT ENUMERATO; Tipo composto ARRAY RECORD FILE ACCESS
Il VHDL 3 parte Tipi Tipi scalari INTEGER; REAL; Tipo Fisici; BOOLEAN; CHARCTER; BIT ENUMERATO; Tipo composto ARRAY RECORD FILE ACCESS 1 Definizione di un nuovo tipo TYPE Nome_tipo IS Definizione_tipo;
Riassunto tecnica digitale
Introduzione... 2 Operazioni... 4 OR...4 AND...4 XOR...5 Operatori logici... 5 Negazione... 6 Ottimizzare mediante il teorema di De Morgan. 7 VHDL...8 Contatori...10 Multiplexer... 11 Demultiplexer...12
Sequential Processing
Sequential Processing Istruzioni sequenziali: comandi eseguiti in maniera seriale, uno dopo l'altro (comune ai linguaggi di programmazione) TUTTE le istruzioni in una architecturesono concorrenti (vengono
Progetto finale di reti logiche
Progetto finale di reti logiche (AGGIORNATO AL 13 Marzo 2018) Si vuole implementare un componente HW descritto in VHDL che, data un immagine in scala di grigi in un formato descritto successivamente, calcoli
$ % 16 dicembre Giovanni Beltrame 2
! "# $ % Giovanni Beltrame 2 & VHDL è un linguaggio di descrizione dell hardware (Hardware Description Language) Per hardware si intendono diverse cose a seconda del contesto L hw si può descrivere a vari
Reti Logiche A II Prova - 1 febbraio 2010
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A II Prova - 1 febbraio 2010 prof.ssa Cristiana Bolchini Esercizio n. 1 Data la
interfacciamento statico e dinamico analisi di interconnessioni, driver e receiver
Elettronica per telecomunicazioni 1 Contenuto dell unità D Interconnessioni interfacciamento statico e dinamico Integrità di segnale analisi di interconnessioni, driver e receiver Diafonia accoppiamenti
Descrizione di macchine a stati tramite VHDL
Descrizione di macchine a stati tramite VHDL M. Favalli Engineering Department in Ferrara (ENDIF) FSMs VHDL Ling. di descr. dell hardware 1 / 35 Motivazioni Introdurre la descrizione di FSM in VHDL Introdurre
Reti Logiche A II Prova - 2 marzo 2009
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A II Prova - 2 marzo 2009 Matricola prof.ssa Cristiana Bolchini Cognome Nome Istruzioni
Reti Logiche A Esame del 19 febbraio 2007
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A Esame del 9 febbraio 007 Matricola prof.ssa ristiana Bolchini Esercizio n. Data
Introduzione alla sintesi comportamentale
Introduzione alla sintesi comportamentale Valentino Liberali Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Via Bramante 65, 26013 Crema, Italy Tel.: +39-0373.898.247; Fax:
Architetture e Reti logiche. Esercitazioni VHDL. a.a. 2003/04 VHDL. Stefano Ferrari
Architetture e Reti logiche Esercitazioni VHDL a.a. 2003/04 VHDL Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi di
Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03)
Esercizi VHDL nelle prove d esame di Architettura degli elaboratori (a.a. 2002/03) 18 settembre 2003 Prova del 9 giugno 2003 Descrizione VHDL (a scelta, dataflow o comportamentale) di un decoder per il
Reti Logiche A II Prova - 11 febbraio 2008
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi Reti Logiche A II Prova - febbraio 008 Matricola prof.ssa Cristiana Bolchini Cognome Nome Istruzioni
Reti Logiche A. FSM in VHDL
Reti Logiche A FSM in VHDL Gianluca Palermo Politecnico di Milano Dipartimento di Elettronica e Informazione e-mail: gpalermo@fusberta.elet.polimi.it Macchina a Stati Finiti (FSM) Tipo Moore IN NEXT STATE
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 5/9/2016
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 5/9/2016 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti
DESCRIZIONE DEL FUNZIONAMENTO
I FLIP FLOP 1.1. Flip Flop Set Reset In figura è rappresentato un f/f set reset con porte NAND. Si tratta del blocco fondamentale alla base di tutti i tipi di F/F. Tabella di verità del Flip Flop Set Reset
Linguaggi di descrizione dell hardware Progetti a.a. 2016/17
Linguaggi di descrizione dell hardware Progetti a.a. 2016/17 I progetti vengono assegnati dal docente sulla base delle preferenze degli studenti. Si raccomanda di inserire come soggetto in qualsiasi mail
Semicustom Design Flow VHDL HDL. VHDL: Applicazioni. Stili di Descrizione Hardware. Elettronica dei Sistemi Digitali L-A
Technology Dependance Elettronica dei Sistemi Digitali L-A Università di Bologna, sede di Cesena Introduzione al linguaggio VHDL F.Campi A.a. 2004-2005 Design Iteration Semicustom Design Flow Pre-Layout
Tipi di segnali (logici) predefiniti. Rappresentazione dei segnali in VHDL. Tipo bit (definito nel package standard)
Tipi di segnali (logici) predefiniti Tipo bit (definito nel package standard) Rappresentazione dei segnali in VHDL Approfondimento del corso di Linguaggi di descrizione dell hardware type Bit is ('0',
Note su VHDL. 22 gennaio 2004
Note su VHDL 22 gennaio 2004 Design Entity L unità di base di un modello VHDL consiste nella Design Entity, che può rappresentare un intero sistema, un circuito stampato, un circuito integrato oppure una
MPHS AA FSM in VHDL
MPHS AA 28-29 FSM in VHDL Cristina Silvano Politecnico di Milano Dipartimento di Elettronica e Informazione e-mail: silvano@elet.polimi.it Macchina a Stati Finiti (FSM) Tipo Moore IN NEXT STATE LOGIC RST
Flusso di progetto circuiti digitali. Circuiti Integrati Digitali. Il Design Productivity Gap. Tecnologia Standard Cells
VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Progetto di sistemi elettronici L-A AA 2005-2006 adeledda@deis.unibo.it Tel. Interno 0512093829 Centro ARCES, Viale Pepoli
Addizione tra numeri binari
Addizione tra numeri binari A=a n-1 a n-2...a i...a 0 B=b n-1 b n-2...b i...b 0 s i =a i b i c in c out =a i b i + a i c in + b i c in a i b i FA c out c in S=s n s n-1 s n-2...s i...s 0 s i a n 1 b n
VHDL come strumento di progetto di circuiti digitali
VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Progetto di sistemi elettronici L-A AA 2005-2006 1 adeledda@deis.unibo.it Tel. Interno 0512093829 Centro ARCES, Viale Pepoli
Descrizioni VHDL Behavioral
1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,
Introduzione al VHDL VHDL. La storia. Corso introduttivo al VHDL. l acronimo di VHSIC Hardware Description Language
Introduzione al VHDL Corso introduttivo al VHDL Giovanni De Luca VHDL VHDL è l acronimo di VHSIC Hardware Description Language VHSIC è l acronimo di Very High Speed Integrated Circuit La storia Il VHDL
Algoritmi, Strutture Dati e Programmi. UD 5.a: Searching (parte 1)
Algoritmi, Strutture Dati e Programmi : Searching (parte 1) Prof. Alberto Postiglione AA 2007-2008 Ricerca di un'informazione in una tabella Determinare se una parola X è presente in un dizionario (cioè
Logica sequenziale: implementazione verilog
Logica sequenziale: implementazione verilog Lucidi del Corso di Elettronica igitale Modulo 11 Università di Cagliari ipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)
Un linguaggio per la descrizione dello hardware: il VHDL
Un linguaggio per la descrizione dello hardware: il VHDL Gli Hardware Description Languages Gli HDL consentono lo sviluppo di un modello del comportamento dei sistema digitali. Gli HDL permettono l eseguibilità
Un linguaggio per la descrizione dello hardware: il VHDL
Un linguaggio per la descrizione dello hardware: il VHDL Gli Hardware Description Languages Gli HDL consentono lo sviluppo di un modello del comportamento dei sistema digitali. Gli HDL permettono l eseguibilità
Corso di Circuiti Logici Appunti e Approfondimenti A. Di Stefano
1 Aritmetica frazionaria e fixed point Nella maggior parte delle applicazioni i numeri reali sono approssimati con numeri binari che ne rappresentano la parte intera e quella frazionaria. Il numero di
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 17/6/2016
Appello d esame del 17/6/2016 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti sulle domande, minimo 2 punti sui problemi (20 minuti)
IL VHDL. Perché si usa un linguaggio di descrizione dell'hardware? Permette di formalizzare il progetto di sistemi digitali complessi
IL VHDL Cosa è il VHDL? NON è un linguaggio di programmazione! E' uno standard IEEE per la descrizione dell'hardware VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuit
Logica sequenziale: implementazione verilog
Logica sequenziale: implementazione verilog Lucidi del Corso di Elettronica Digitale Modulo 10 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)
RELAZIONE DEL PROGETTO DI UN CONTATORE BINARIO UP/DOWN MODULO 4 PER IL CORSO DI APPARATI ELETTRONICI 1. INTRODUZIONE
RELAZIONE DEL PROGETTO DI UN CONTATORE BINARIO UP/DOWN MODULO 4 PER IL CORSO DI APPARATI ELETTRONICI 1. INTRODUZIONE In generale un contatore è un dispositivo che memorizza (e a volte visualizza) il numero
Complementi ed Esercizi di Reti Logiche in VHDL
Calcolatori Elettronici M Complementi ed Esercizi di Reti Logiche in VHDL in collaborazione con Francesco Maria Sprotetto 1 Premessa In questo progetto sono stati implementati gli esercizi descritti in
Elettronica per le telecomunicazioni 21/05/2004
Contenuto dell unità D Elettronica per telecomunicazioni Interconnessioni interfacciamento statico e dinamico Integrità di segnale analisi di interconnessioni, driver e receiver Diafonia accoppiamenti
VHDL: Simulazione & Sintesi
VHDL: Simulazione & Sintesi Politecnico di Milano 18 Dicembre 2012 M. CARMINATI mcarminati@elet.polimi.it SIMULAZIONE VHDL: Simulazione & Sintesi - M. Carminati Politecnico di Milano 2 TESTBENCH Dopo aver
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica. Metodologie e strumenti per il reengineering del workflow management
Descrizione di Macchine a Stati finiti in VHDL Descrizioni di Macchine a Stati finiti in VHDL In questa lezione vedremo come un sistema digitale sequenziale può essere descritto in VHDL. Outline: Macchine
Latch in verilog. Logica sequenziale: implementazione verilog. Latch SR verilog: strutturale. Latch SR verilog
Latch in verilog Logica sequenziale: implementazione verilog Lucidi del Corso di Elettronica igitale Modulo 11 Università di Cagliari ipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica
VBA Principali Comandi
VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,
Corso di Reti Logiche A
Politecnico di Milano Reti Logiche A Corso di Reti Logiche A Introduzione al VHDL - Una prima presentazione - VHSIC-HDL HDL Very High Speed Integrated Circuit - Hardware Description Language Marco D. Santambrogio:
Reti Logiche A - Prova di mercoledì 16 febbraio 2005
Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof.ssa Cristiana Bolchini prof. Fabrizio Ferrandi Esercizio n. 1 Data la seguente espressione logica: ((c+a ) +c+a
Flusso di progetto circuiti digitali
Flusso di progetto circuiti digitali (anni 80/90) 1) Definizione Algoritmica : y=-x; 2) Schematic Entry 3) Custom Layout (place & route) 4) Parasitic extraction & Backannotation Il Design Productivity
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 11/7/2016
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 11/7/2016 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 14/7/2015
Appello d esame del 14/7/2015 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti sulle domande, minimo 2 punti sui problemi (20 minuti)
Reti Logiche A Prova di giovedì 3 febbraio 2005
olitecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof.ssa Cristiana Bolchini prof. Fabrizio Ferrandi Reti Logiche A rova di giovedì febbraio 005 Matricola Cognome Nome
Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali
Porte logiche di base Cenni circuiti, reti combinatorie, reti sequenziali NOT AND A R A B R OR A R B Quindi NAND o NOR sono complete circuiti con solo porte NAND o solo porte NOR. Reti combinatorie Rete
VHDL. Il linguaggio FOCUS
ON Il linguaggio VHDL di Antonio Di Stefano Il linguaggio VHDL consente di descrivere ed implementare circuiti complessi utilizzando tecnologie quali FPGA, CPLD, ASIC e structured ASIC. In questo articolo
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 8/9/2015
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 8/9/2015 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti
Un esempio di applicazione: Robot Dance
Informatica Grafica ][ Un esempio di applicazione: Robot Dance Robot Dance e' un gioco dove l'utente controlla un Robot ballerino Marco Gribaudo marcog@di.unito.it La prima cosa da fare e' determinare
Nonostante l avvento delle più moderne
di terminati ad entrambe le estremità con un impedenza di questo valore. Come già detto se si vuole ottenere la massima luminosità di uno dei segnali di colore occorre fornire circa 0.7V. Per fare questo
Corso di Calcolatori Elettronici I Elementi di memoria ing. Alessandro Cilardo
orso di alcolatori Elettronici I Elementi di memoria ing. Alessandro ilardo orso di Laurea in Ingegneria Biomedica Reti logiche con memoria In molte situazioni è necessario progettare reti logiche sequenziali,
Sistemi per la Progettazione Automatica. problema punti massimi i tuoi punti problema 1 14 problema 2 4 problema 3 6 problema 4 6 totale 30
Sistemi per la Progettazione Automatica Informatica - Tiziano Villa 17 Marzo 2008 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 14 problema 2 4 problema 3
La descrizione ai terminali dell unità di controllo è la seguente:
Elettronica dei Sistemi Digitali Linguaggi di Descrizione Hardware - Prova d esame 5 Luglio 2004 Come tutti ben sanno un tachimetro da bicicletta misura la velocità e la distanza percorsi dal velocipede
Laboratorio di Sistemi Digitali M A.A. 2011/12
begin if (RESET_N = '0') then for col in 0 to BOARD_COLUMNS-1 loop for row in 0 to BOARD_ROWS-1 loop... elsif (rising_edge(clock)) then... Laboratorio di Sistemi Digitali M A.A. 2011/12 1 Introduzione
Christian Pilato
Politecnico di Milano Introduzione al VHDL Christian Pilato pilato@elet.polimi.it Sommario Introduzione Struttura di un modello Interfaccia Funzionalità Concetti base Livelli di astrazione Concorrenza
Reti combinatorie. Reti combinatorie (segue)
Reti combinatorie Sommatore Sottrattore Reti sequenziali Generatore di sequenze Riconoscitore di sequenze Reti combinatorie PROGRAMMAZIONE Il programmatore riporta le istruzioni che il calcolatore dovrà
Reti combinatorie (segue) Reti combinatorie. Lezione 2. Architettura degli Elaboratori A. Sperduti 1
Reti combinatorie Reti sequenziali Sommatore Sottrattore Generatore di sequenze Riconoscitore di sequenze PROGRAMMAZIONE Il programmatore riporta le istruzioni che il calcolatore dovrà eseguire, in un
Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense
Circuiti e reti combinatorie Appendice A (libro italiano) + dispense Linguaggio del calcolatore Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e Anche per esprimere
Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 30/3/2015
ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 30/3/2015 Ogni risposta corretta +2 punti, ogni risposta sbagliata -0,5 punti, ogni risposta in bianco 0 punti Minimo 6 punti
Compito di Informatica Grafica 7 appello 20/09/2010. Nome e Cognome Numero di Matricola
Nome e Cognome Numero di Matricola Esercizio 1 (12 punti) Si consideri la base di dati di una biblioteca riportata in figura. La biblioteca gestisce un certo numero di libri, dei quali sono registrati
senza stato una ed una sola
Reti Combinatorie Un calcolatore è costituito da circuiti digitali (hardware) che provvedono a realizzare fisicamente il calcolo. Tali circuiti digitali possono essere classificati in due classi dette
Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni
Informatica (CIV) Esercitazione su FORTRAN Andrea Romanoni andrea.romanoni@polimi.it Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 3 dicembre 2013 Esercizio istogrammi
Architetture data-flow
Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni
Progettazione e sintesi di circuiti digitali
Progettazione e sintesi di circuiti digitali Lezione 16 quinta esercitazione in laboratorio prima parte 13/04/2016 A. Neviani - P.S.C.D. Contenuti dell'esercitazione In questa esercitazione: costruirete