Tabelle ROM combinatorie
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 21 di 38.
Una tabella di ricerca fissa descrive una mappatura di sola lettura da indirizzi a dati. Un case o una function completa può esprimerne il contenuto. Con una lettura combinatoria, cambiando l’indirizzo cambia l’uscita senza attendere un clock. Lo strumento di sintesi sceglie un’implementazione; questo sorgente non garantisce uno specifico primitivo di memoria FPGA.
Estratto pertinente; le dichiarazioni e le connessioni circostanti sono fornite nella sfida.
function [7:0] lookup;
input [1:0] addr;
begin
case(addr)
0: lookup=3;
1: lookup=5;
2: lookup=8;
3: lookup=13;
default: lookup=0;
endcase
end
endfunctionOgni indirizzo seleziona una costante definita, senza mantenere l'uscita precedente.
Specifica ogni voce della tabella e distingui la latenza di lettura combinatoria da quella registrata.
Sfida
MedioImplementa una tabella di ricerca combinatoria a otto voci. Gli indirizzi da 0 a 7 restituiscono rispettivamente 3,5,8,13,21,34,55,89. Usa una function completa basata su case per pilotare y. Colonne di output: y. Tutti i valori degli stimoli sono valori binari noti.
Completa design.v e mantieni invariati i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni degli ingressi e stampa gli output dopo che si sono stabilizzati. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Non aggiungere istruzioni di stampa, ritardi o terminazione della simulazione al design. L'output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminata da un carattere di nuova riga.
Provalo tu
module dut (input [2:0] addr, output [7:0] y);
// Sostituisci questo segnaposto con il tuo progetto.
assign y = 0;
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progettazione e verifica RTL
1RTL combinatorio affidabile
I valori predefiniti evitano i latchEncoder di prioritàConvalida one-hotDecodifica sicura dei caseRiepilogo - Router delle richieste2Larghezze e aritmetica con segno
Preservare i bit di riportoConfronti con segnoShift aritmetici a destraOverflow e saturazioneRiepilogo - Differenza con segno5Memoria e tabelle di consultazione
Tabelle ROM combinatorieMemorizzazione con array di registriPorte di lettura registrateInoltro in lettura-scritturaRiepilogo - Banco a doppia letturaEsercitati da solo: Compilatore Verilog online