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:
Okomentovat