Funzioni combinatorie
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 11 di 38.
Una funzione Verilog function racchiude un calcolo senza durata, riutilizzabile all’interno di un modulo. Dichiarane la larghezza del valore restituito, gli argomenti di input e le variabili locali, quindi assegna il risultato al nome della function usando assign. Le funzioni combinatorie non contengono ritardi né controlli di evento; un ciclo con limiti fissi può descrivere una logica ripetuta.
Estratto pertinente; le dichiarazioni e le connessioni circostanti sono fornite nella sfida.
function [7:0] gray;
input [7:0] value;
begin gray = value ^ (value >> 1); end
endfunctionChiamare la function calcola un’espressione senza aggiungere tempo di simulazione.
Assegna il risultato della function in ogni percorso e mantieni le funzioni combinatorie prive di controlli temporali.
Sfida
MedioImplementa una function Verilog gray che converte un valore binario senza segno a 8 bit in codice Gray usando value XOR (value shiftato a destra di uno). Pilota y chiamando la function con a. Colonne di output: y. Tutti i valori degli stimoli sono valori binari noti.
Completa design.v e mantieni i nomi dei moduli e delle 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 stampe, ritardi o terminazioni della simulazione al design. L'output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un carattere di nuova riga.
Provalo tu
module dut (input [7:0] a, 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 segno3RTL riutilizzabile
Funzioni combinatorieParametri sicuri rispetto alla larghezzaCicli generateGenerate condizionaleRiepilogo - Maschera di bit riutilizzabileEsercitati da solo: Compilatore Verilog online