Progettazione RTL: percorsi dati e pipeline
Definisci i contratti numerici e temporali, poi progetta un'ALU, un controllore, una pipeline e buffer ready-valid. Quattro laboratori eseguibili con modelli di riferimento verificano i limiti aritmetici, gli stalli, le FIFO e l'ordinamento prima di un progetto finale di calcolo in streaming.
Che cosa imparerai
- Distinguere i contratti relativi a larghezze, interpretazione con segno, riporto e overflow
- Pianificare trasferimenti tra registri, controllo mediante FSM e memoria sincrona
- Calcolare latenza, throughput e intervallo di avvio
- Gestire gli stalli ready-valid e i limiti delle FIFO senza perdite
- Costruire verifiche con scoreboard che coprano conflitti e reset
- Verificare un progetto finale di calcolo in streaming mediante modelli autonomi
Prima di iniziare
Gli esercizi nel browser usano modelli didattici e non compilano né eseguono HDL. Per eseguire il codice separatamente, segui la guida Digital Design Studio del tuo sistema operativo e accedi quando l’operazione lo richiede.
Installazione e primo avvio ↗ · Download ↗Programma
- Contratti numerici e aritmetici
- Trasforma un'equazione in un contratto del percorso datiConcetto
Specifica larghezze, eventi di accettazione e risultati validi insieme all'aritmetica.
- Larghezze, estensione del segno e overflowConcetto
Usa esempi numerici per distinguere interpretazione, estensione e riduzione della larghezza.
- Laboratorio: modello di riferimento di un'ALU a otto bitEsercitazione
Verifica ADD, SUB, AND, XOR, riporto e prestito con un programma autonomo.
- Verifica: riporto e overflow con segnoVerifica
Distingui i limiti numerici nell'interpretazione senza segno e con segno.
- Trasferimenti tra registri e controllo
- Leggi i trasferimenti tra registri ai fronti di clockConcetto
Separa stato precedente e successivo e segui come le abilitazioni conservano i valori memorizzati.
- Pianifica le risorse condivise con una FSMConcetto
Accumula quattro valori con un solo sommatore definendo le transizioni di stato e l'acquisizione.
- Contratti temporali per richieste e risposte di memoriaConcetto
Distingui letture sincrone, tag ritardati e collisioni sullo stesso indirizzo.
- Verifica: conservare un risultato completatoVerifica
Separa la consegna nello stato DONE dall'accettazione della richiesta successiva.
- Temporizzazione e throughput delle pipeline
- Memorizza l'intera transazione ai confini della pipelineConcetto
Suddividi l'aritmetica di somma e scalatura mantenendo allineati valid, tag e larghezze.
- Latenza, throughput e intervallo di avvioConcetto
Calcola il ritardo di una singola transazione separatamente dalla frequenza sostenuta di completamento.
- Laboratorio: segui due stadi e le bolleEsercitazione
Calcola lo stato successivo da quello precedente e confronta tag, valori e fronti di uscita.
- Verifica: che cosa significa II=1Verifica
Evita di confondere il numero di stadi con il throughput sostenuto.
- Controllo del flusso ready-valid
- Eventi di accettazione e stabilità durante gli stalliConcetto
Assegna le responsabilità di sorgente e destinazione e conserva i payload in stallo.
- Progetta un registro elastico con una posizioneConcetto
Accetta in una posizione vuota oppure sostituisci un elemento consumato contemporaneamente.
- Laboratorio: verifica 1024 configurazioni di stalloEsercitazione
Esercita mantenimento, sostituzione e svuotamento con tutte le configurazioni ready di dieci cicli.
- Verifica: contare una transazione in stalloVerifica
Distingui la durata di valid dal numero effettivo di handshake.
- FIFO e limiti dei conflitti
- FIFO vuota, piena e trasferimenti simultaneiConcetto
Separa l'occupazione dai puntatori e specifica il comportamento di inserimento e rimozione ai limiti.
- Dipendenze, conflitti di risorse e inoltroConcetto
Confronta stalli e inoltro quando un'operazione richiede un risultato precedente.
- Mantieni la contabilità delle transazioni durante svuotamento e resetConcetto
Separa l'annullamento dalla consegna e allinea lo stato valid alle code attese.
- Verifica: sostituzione in una FIFO pienaVerifica
Calcola occupazione e ordinamento per inserimento e rimozione simultanei.
- Verifica e calcolatrice in streaming
- Combina uno scoreboard con invarianti localiConcetto
Verifica valori, ordinamento, occupazione e stabilità durante gli stalli a partire dalle transazioni accettate.
- Laboratorio finale: FIFO e calcolatrice in streaming a due stadiEsercitazione
Collega una FIFO di ingresso con profondità due, due stadi elastici e uno scoreboard.
- Misura le prestazioni e rivedi il progettoConcetto
Specifica le finestre di osservazione, diagnostica gli stalli e delimita le prove offerte dal modello.
- Verifica finale: stalli senza perdite e completamento del transitoVerifica
Combina aritmetica, contabilità del lavoro in sospeso e condizioni di completamento.