|
|
- # variables
- DESIGN = cpldtest
- PART = xc9572xl-10-vq44
-
- CURDIR = $(shell pwd)
- CONFDIR = ${CURDIR}/config
- UCFDIR = ${CURDIR}/constraints
- WORKDIR = ${CURDIR}/work
- NETLISTDIR = ${CURDIR}/netlist
- BINDIR = ${CURDIR}/binary
- REPORTS = ${CURDIR}/reports
-
- SRC_LIST = $(shell cat $(CONFDIR)/$(DESIGN).prj | sed -r 's:^.*"../(.*)":\1:')
-
- # synthesis options
- XSTFLAGS = run -ifmt VHDL -ofmt NGC -opt_level 2 -fsm_encoding sequential -pld_xp yes -pld_mp yes \
- -keep_hierarchy yes -safe_implementation no -wysiwyg yes -ifn $(CONFDIR)/$(DESIGN).prj \
- -p $(PART) -ofn $(DESIGN) -top $(DESIGN)E -tmpdir xsttmp -xsthdpdir xsthdpdir
-
- NGDFLAGS = -nt timestamp -verbose -dd ngd -p $(PART) \
- -uc $(UCFDIR)/$(DESIGN).ucf -sd $(NETLISTDIR)
-
- FITFLAGS = -loc on -optimize speed -nomlopt -wysiwyg -unused float -keepio -slew fast -p $(PART)
-
- TFLAGS = -detail -iopath
-
-
- # create directories
- DUMMY:=$(shell mkdir -p $(WORKDIR))
- DUMMY:=$(shell mkdir -p $(BINDIR))
- DUMMY:=$(shell mkdir -p $(REPORTS))
-
- .PHONY: all clean
-
- all : programmingfile
-
- programmingfile : $(WORKDIR)/$(DESIGN).jed
- cp $(WORKDIR)/$(DESIGN).jed $(BINDIR)/
-
- # generate script for xst in command line mode
- $(WORKDIR)/xst.conf : $(CONFDIR)/$(DESIGN).prj
- touch $(WORKDIR)/xst.conf
- echo $(XSTFLAGS) >> $(WORKDIR)/xst.conf
-
- # generate netlist constraints file
- $(WORKDIR)/$(DESIGN).ngc: $(SRC_LIST) $(WORKDIR)/xst.conf
- cd $(WORKDIR); xst -ifn xst.conf
- cp $(WORKDIR)/xst.srp $(REPORTS)/$(DESIGN)_xst.txt
-
- # generate native generic database file (ngd)
- $(WORKDIR)/$(DESIGN).ngd : $(WORKDIR)/$(DESIGN).ngc $(UCFDIR)/$(DESIGN).ucf
- cd $(WORKDIR); ngdbuild $(NGDFLAGS) $(DESIGN).ngc $(DESIGN).ngd
- cp $(WORKDIR)/$(DESIGN).bld $(REPORTS)/$(DESIGN).bld
-
- # generate vm6 file
- $(WORKDIR)/$(DESIGN).vm6 : $(WORKDIR)/$(DESIGN).ngd
- cd $(WORKDIR); cpldfit $(FITFLAGS) $(DESIGN).ngd
- cp $(WORKDIR)/$(DESIGN).rpt $(REPORTS)/$(DESIGN).rpt
-
- # generate programming file
- $(WORKDIR)/$(DESIGN).jed : $(WORKDIR)/$(DESIGN).vm6
- cd $(WORKDIR); hprep6 -i $(DESIGN).vm6
-
-
- # clean all
- clean :
- rm -rf $(WORKDIR)/*
- rm -rf $(BINDIR)/$(DESIGN).jed
- rm -rf $(REPORTS)/$(DESIGN).trp
-
- distclean :
- rm -rf $(WORKDIR)
- rm -rf $(BINDIR)
- rm -rf $(REPORTS)
|