mirror of
git://projects.qi-hardware.com/nn-usb-fpga.git
synced 2025-04-21 12:27:27 +03:00
Adding ghdl simulation to plasma project
This commit is contained in:
@@ -1,13 +1,26 @@
|
||||
DESIGN = plasma
|
||||
PINS = $(DESIGN).ucf
|
||||
DEVICE = xc3s500e-VQ100-4
|
||||
#DEVICE = xc3s500e-fg320-4
|
||||
BGFLAGS = -g TdoPin:PULLNONE -g DonePin:PULLUP \
|
||||
-g CRC:enable -g StartUpClk:CCLK
|
||||
|
||||
SIM_CMD = /opt/cad/modeltech/bin/vsim
|
||||
SIM_COMP_SCRIPT = simulation/$(DESIGN)_TB.do
|
||||
SIMGEN_OPTIONS = -p $(FPGA_ARCH) -lang $(LANGUAGE)
|
||||
|
||||
SIMTOP = $(DESIGN)_tb
|
||||
GHDL_SIM_OPT = --stop-time=1ms
|
||||
SIMDIR = simu
|
||||
GHDL_CMD = ghdl
|
||||
GHDL_SIMU_FLAGS = --ieee=synopsys -P$$XILINX/ghdl/unisim --warn-no-vital-generic
|
||||
GHDL_SYNTHESIS_FLAGS = --ieee=synopsys -P$$XILINX/ghdl/unisim --warn-no-vital-generic
|
||||
GHDL_PANDR_FLAGS = --ieee=synopsys -P$$XILINX/ghdl/simprim --warn-no-vital-generic
|
||||
VIEW_CMD = gtkwave
|
||||
TESTBENCH_FILE = $(DESIGN)_TB.vhd
|
||||
SYNT_TESTBENCH_FILE = $(DESIGN)_TB_syn.vhd
|
||||
SYNTHESIS_FILE = simu/$(DESIGN)_synt.vhd
|
||||
LIBRARY_FILE = mlite_pack.vhd
|
||||
|
||||
SRC_HDL = mlite_pack.vhd plasma.vhd ram_image.vhd alu.vhd control.vhd mem_ctrl.vhd mult.vhd shifter.vhd bus_mux.vhd mlite_cpu.vhd pc_next.vhd pipeline.vhd reg_bank.vhd uart.vhd
|
||||
|
||||
all: bits
|
||||
@@ -22,7 +35,7 @@ clean:
|
||||
clean-build:
|
||||
rm -rf build
|
||||
|
||||
cleanall: clean
|
||||
cleanall: clean clean_ghdl
|
||||
rm -rf build work $(DESIGN).bit
|
||||
|
||||
bits: $(DESIGN).bit
|
||||
@@ -67,15 +80,36 @@ $(DESIGN).bit: build/project_r.ncd build/project_r.twr
|
||||
cd build && bitgen project_r.ncd -l -w $(BGFLAGS)
|
||||
@mv -f build/project_r.bit $@
|
||||
|
||||
build/project_r.v: build/project_r.ncd
|
||||
cd build && netgen -sim -ofmt vhdl project_r.ncd -pcf project.pcf && ngd2ver project.ngd -w project.v
|
||||
build/project.vhd: build/project.ngc
|
||||
cd build && netgen -w -ofmt vhdl project.ngc project.vhd
|
||||
|
||||
sim:
|
||||
cd simulation; $(SIM_CMD) -do $(DESIGN)_TB.do
|
||||
|
||||
timesim: build/project_r.v
|
||||
cd simulation; $(SIM_CMD) -do $(DESIGN)_TIMING_TB.do
|
||||
ghdl-simu : ghdl-compil ghdl-run ghdl-view
|
||||
|
||||
sim:
|
||||
cd simulation; $(SIM_CMD) -do $(DESIGN)_TB.do
|
||||
ghdl-synthesis : ghdl-compil-synthesis ghdl-run ghdl-view
|
||||
|
||||
ghdl-compil :
|
||||
mkdir -p simu
|
||||
$(GHDL_CMD) -i $(GHDL_SIMU_FLAGS) --workdir=simu --work=work $(TESTBENCH_FILE) $(LIBRARY_FILE) $(SRC_HDL)
|
||||
$(GHDL_CMD) -m $(GHDL_SIMU_FLAGS) -fexplicit --workdir=simu --work=work $(SIMTOP)
|
||||
@mv $(SIMTOP) simu/$(SIMTOP)
|
||||
|
||||
ghdl-compil-synthesis: build/project.vhd
|
||||
mkdir -p simu
|
||||
cp build/project.vhd simu/$(DESIGN)_synt.vhd
|
||||
$(GHDL_CMD) -i $(GHDL_SYNTHESIS_FLAGS) --workdir=simu --work=work $(SYNT_TESTBENCH_FILE) $(SYNTHESIS_FILE)
|
||||
$(GHDL_CMD) -m $(GHDL_SYNTHESIS_FLAGS) --workdir=simu --work=work $(SIMTOP)
|
||||
@mv $(SIMTOP) simu/$(SIMTOP)
|
||||
|
||||
ghdl-run :
|
||||
@$(SIMDIR)/$(SIMTOP) $(GHDL_SIM_OPT) --vcdgz=$(SIMDIR)/$(SIMTOP).vcdgz
|
||||
|
||||
ghdl-view:
|
||||
gunzip --stdout $(SIMDIR)/$(SIMTOP).vcdgz | $(VIEW_CMD) --vcd
|
||||
|
||||
clean_ghdl :
|
||||
$(GHDL_CMD) --clean --workdir=simu
|
||||
-rm -rf simu
|
||||
|
||||
|
||||
Reference in New Issue
Block a user