Menu
Coddy logo textTech

Scrivi, esegui e condividi snippet di codice, senza configurare nulla.

main.v
Clicca Esegui per vedere l'output qui.
PlusargParametri di runtime passati al simulatore: leggili nel tuo testbench con $value$plusargs o $test$plusargs.
ChiaveValore

Scrivi, compila e simula Verilog HDL online

Un compilatore e simulatore Verilog online gratuito. Scrivi moduli Verilog o SystemVerilog, pilota un testbench, premi Esegui e vedi l'output su stdout più una forma d'onda VCD disegnata. Niente installazione, niente Vivado, niente Quartus, nessuna toolchain da configurare. L'editor si apre con il testbench di un contatore sincronizzato dal clock, così puoi modificarlo ed eseguirlo in pochi secondi.

Il codice viene compilato con Icarus Verilog (iverilog) e gira con vvp in un container isolato, quindi hai la vera semantica HDL di Verilog: blocchi always sincronizzati dal clock, assegnazioni non bloccanti, istanziazione gerarchica dei moduli, $display, $finish. Aggiungi $dumpfile e $dumpvars al tuo testbench e la scheda Forma d'onda mostra segnali a singolo bit e bus a più bit con un cursore trascinabile, le transizioni e un'etichetta con il valore di ogni segnale. I plusarg (+KEY=VALUE / +FLAG) arrivano al testbench tramite $value$plusargs e $test$plusargs, così puoi variare il periodo del clock, la durata dell'esecuzione e i flag delle funzionalità senza modificare il sorgente.

Perché questo compilatore Verilog è utile

  • Compilazione e simulazione immediate: scrivi Verilog HDL, premi Esegui e vedi stdout e forme d'onda VCD in pochi secondi.
  • Evidenziazione della sintassi Verilog e SystemVerilog nello stesso motore di editor usato da VS Code, con l'ambito module/endmodule e il completamento automatico delle parole chiave.
  • Visualizzatore di forme d'onda integrato: usa $dumpfile + $dumpvars nel testbench e la scheda Forma d'onda mostra segnali, bus, transizioni e un cursore spostabile con un'etichetta per il valore di ogni segnale.
  • Pannello Plusarg per i parametri del testbench: passa +CYCLES, +PERIOD, +VERBOSE tramite $value$plusargs / $test$plusargs e riesegui senza riscrivere il sorgente.

Cosa puoi creare nel playground Verilog

  • Logica combinatoria, come sommatori, multiplexer e ALU, collegata in un testbench con controlli tramite $display e feedback immediato.
  • Progetti sequenziali sincronizzati dal clock, come contatori, registri a scorrimento e macchine a stati finiti pilotati da always @(posedge clk), con forme d'onda VCD per ispezionare le transizioni dei segnali.
  • Variazione dei parametri: passa i plusarg +CYCLES, +PERIOD o +VERBOSE per cambiare il comportamento tra un'esecuzione e l'altra, come faresti dalla riga di comando con iverilog/vvp.

Domande frequenti sul compilatore Verilog online

Cos'è Verilog?
Verilog è un linguaggio di descrizione dell'hardware (HDL) usato per modellare e simulare circuiti digitali, dalle semplici porte combinatorie fino a interi processori. Descrivi moduli, fili e registri nel codice, li compili con un compilatore Verilog ed esegui un testbench per verificarne il comportamento. SystemVerilog è un'estensione di Verilog che aggiunge funzionalità di verifica. Il playground accetta entrambi.
Il compilatore Verilog online è gratuito?
Sì, il compilatore e simulatore Verilog è gratuito. Niente registrazione, nessuna licenza di Vivado o Quartus e nessuna toolchain da installare: scrivi un modulo e premi Esegui.
Devo avere Icarus Verilog o un altro strumento EDA installato?
No. Il codice viene compilato con iverilog e gira con vvp in un container isolato sul server. Tu scrivi il sorgente Verilog e premi Esegui; compilatore e simulatore fanno il resto.
Come vedo le forme d'onda del mio codice Verilog?
Dentro un blocco initial del tuo testbench, chiama $dumpfile("dump.vcd") e $dumpvars(0, your_module). Dopo l'esecuzione, la scheda Forma d'onda mostra i segnali: clicca in un punto qualsiasi di una traccia per posizionare un cursore e leggere il valore di ogni segnale in quell'istante.
Come scrivo un testbench Verilog con i plusarg?
Aggiungi delle righe nel pannello Plusarg (ad esempio CYCLES=10, VERBOSE) e vengono passate al simulatore come +CYCLES=10 +VERBOSE dalla riga di comando. Nel testbench, leggile con $value$plusargs("CYCLES=%d", n) per i valori interi, o con $test$plusargs("VERBOSE") per i flag booleani. Il codice di partenza predefinito mostra entrambi gli schemi.

Strumenti utili per Verilog

Strumenti gratuiti nel browser che si abbinano bene al playground Verilog, tutti parte di Coddy.