3. 6. 2014

Simulace VHDL pomocí GHDL

Máme-li hardware definovaný pomocí VHDL kódu, můžeme jeho chování simulovat pomocí komerčních nástrojů, např. Altera Quartus, Xilinx ISE nebo Lattice Diamond. Anebo můžeme použít free/open-source program GHDL.

GHDL vytváří ze zdrojových VHDL souborů spustitelné programy a jejich spuštěním následně vznikají soubory s popisem signálů na jednotlivých datových linkách.

Simulace pomocí GHDL sestává z několika kroků, které je šikovné řídit pomocí programu make. Mějme dva moduly cm.vhdl a dm.vhdl, a k nim testovací moduly cm_tb.vhdl a dm_tb.vhdl, kde „_tb“ je zkratka pro „testbench“. Makefile pak může vypadat například takto:

GHDL=ghdl
GHDLFLAGS=

#--------------------------------------
# Execute all simulations
all: cm.vcd dm.vcd

#--------------------------------------
cm.vcd: cm_tb
 # Run unit (= execute)
 $(GHDL) -r $< --vcd=$@

# Target is the simulated entity name
cm_tb: cm.o cm_tb.o
 # Elaborate unit (= link)
 $(GHDL) -e $(GHDLFLAGS) $@

#--------------------------------------
dm.vcd: dm_tb
 # Run unit (= execute)
 $(GHDL) -r $< --vcd=$@

# Target is the simulated entity name
dm_tb: dm.o dm_tb.o
 # Elaborate unit (= link)
 $(GHDL) -e $(GHDLFLAGS) $@

#--------------------------------------
%.o: %.vhdl
 # Analyze file (= compile)
 $(GHDL) -a $(GHDLFLAGS) $<

Výstupem budou soubory cm.vcd a dm.vcd obsahující simulované průběhy signálů. Tyto soubory můžeme zobrazit například pomocí programu gtkwave.

Žádné komentáře: