# # Jeff Mock # 2030 Gough # San Francisco, CA 94109 # jeff@mock.com # (c) 2004 # DLPF = ../../jfft/dlpf SRC = ${DLPF}/src include ${SRC}/Makefile.defs N = ${PREFIX} # DEBUG = 1 NARROW = 1.2 SAMPLES = 1000 OWIDTH = 12 WIDTH = 12 XWIDTH = 16 CWIDTH = 16 OVL = 8 DEC = 80 DECMAX = 1024 DECMAXL2 = 10 # log base 2 of DECMAX IMP = virtex2 CNT=100 PER = 27 # PER = 128 # PER = 8 XLPF = gen/${PREFIX}.v AMP = 0.99 MP = --mp=2 # Number of CPUs for sim sim: ${N}.f ${TBV} ${SRCV} ${XLPF} sig1.mem sig2.mem coeff0 rm -rf wave.vcd ${CVER} -w -f ${N}.f simx: ${N}.f ${TBV} ${SRCV} ${XLPF} sig1.mem sig2.mem coeff0 rm -rf wave.vcd ${CVER} -w -f ${N}.f +p2zero +p1step sim1: ${N}.f ${TBV} ${SRCV} ${XLPF} sig1.mem sig2.mem coeff0 rm -rf wave.vcd ${CVER} -w -f ${N}.f +p2zero sim2: ${N}.f ${TBV} ${SRCV} ${XLPF} sig1.mem sig2.mem coeff0 rm -rf wave.vcd ${CVER} -w -f ${N}.f +p1zero plot0.png: ${N}.f ${TBV} ${SRCV} ${XLPF} coeff0 perl ${SRC}/doplot \ --width=${OWIDTH} \ --iwidth=${WIDTH} \ --samples=${SAMPLES} \ --dec=${DEC} \ --ovl=${OVL} \ --start=0.0 \ --stop=0.3 \ --amp=${AMP} \ --keep=100 \ --avg \ --cnt=${CNT} \ --fn=plot0.png \ --cmd=${N}.f \ --range=100 ${MP} plots: hanning.png hamming.png rect.png tri.png hanning.png: ${MAKE} clean ${MAKE} plot0.png WINDOW=hanning CNT=600 mv plot0.png hanning.png hamming.png: ${MAKE} clean ${MAKE} plot0.png WINDOW=hamming CNT=600 mv plot0.png hamming.png rect.png: ${MAKE} clean ${MAKE} plot0.png WINDOW=rect CNT=600 mv plot0.png rect.png tri.png: ${MAKE} clean ${MAKE} plot0.png WINDOW=tri CNT=600 mv plot0.png tri.png coeff0: perl ${SRC}/mkdlpf_coeff \ --dec=${DEC} \ --width=${CWIDTH} \ --narrow=${NARROW} \ --start=-3 \ --stop=-4 \ --fwid=${OVL} \ --window=${WINDOW} \ --table=coeff0 perl ${SRC}/mkdlpf_coeff \ --dec=${DEC} \ --width=${CWIDTH} \ --narrow=${NARROW} \ --start=-2 \ --stop=-3 \ --fwid=${OVL} \ --window=${WINDOW} \ --table=coeff1 perl ${SRC}/mkdlpf_coeff \ --dec=${DEC} \ --width=${CWIDTH} \ --narrow=${NARROW} \ --start=-1 \ --stop=-3 \ --fwid=${OVL} \ --window=${WINDOW} \ --table=coeff2 perl ${SRC}/mkdlpf_coeff \ --dec=${DEC} \ --width=${CWIDTH} \ --narrow=${NARROW} \ --start=0 \ --stop=-1 \ --fwid=${OVL} \ --window=${WINDOW} \ --table=coeff3 DLPF_OPTS = --ro \ --vdec=${DECMAX} \ --width=${WIDTH} \ --owidth=${OWIDTH} \ --cwidth=${CWIDTH} \ --xwidth=${XWIDTH} \ --prefix=${PREFIX} \ --window=${WINDOW} \ --ovl=${OVL} gen ${XLPF}: Makefile ${GENPROG} -rm -rf gen mkdir gen perl ${SRC}/mkdlpf ${DLPF_OPTS} \ --imp=behave --odir=gen rtl: Makefile ${GENPROG} -rm -rf rtl mkdir rtl perl ${SRC}/mkdlpf ${DLPF_OPTS} \ --imp=${IMP} --odir=rtl ${N}.f: Makefile ${SRC}/Makefile.defs ${XLPF} rm -rf ${N}.f echo "+define+WIDTH=${WIDTH}" >> ${N}.f echo "+define+OWIDTH=${OWIDTH}" >> ${N}.f echo "+define+CWIDTH=${CWIDTH}" >> ${N}.f echo "+define+XWIDTH=${XWIDTH}" >> ${N}.f echo "+define+SAMPLES=${SAMPLES}" >> ${N}.f echo "+define+LPFMODULE=${PREFIX}" >> ${N}.f echo "+define+DEC=${DEC}" >> ${N}.f echo "+define+DECMAX=${DECMAX}" >> ${N}.f echo "+define+DECMAXL2=${DECMAXL2}" >> ${N}.f echo "+define+OVL=${OVL}" >> ${N}.f if [ -n "${DEBUG}" ] ; then \ echo "+define+DEBUG" >> ${N}.f ; \ fi echo "+nointeractive" >> ${N}.f echo "+notimingchecks" >> ${N}.f echo "+licq_all+" >> ${N}.f echo "+change_port_type" >> ${N}.f echo "+libext+.v" >> ${N}.f echo "-y ${XILINX}/verilog/src/unisims" >> ${N}.f echo "-y ${XILINX}/verilog/src/simprims" >> ${N}.f for i in ${TBV} ${SRCV} gen/*.v ; do \ echo "$$i" >> ${N}.f ; \ done sig1.mem: Makefile ${SRC}/mksin perl ${SRC}/mksin --phase=-90 --amp=${AMP} --period=${PER} \ --width=${WIDTH} --offset=0 --n=${DEC} \ --frames=${SAMPLES} > sig1.mem sig2.mem: Makefile ${SRC}/mksin perl ${SRC}/mksin --phase=90 --amp=${AMP} --period=${PER} \ --width=${WIDTH} --offset=0 --n=${DEC} \ --frames=${SAMPLES} > sig2.mem clean: rm -rf wave.vcd verilog.log ${N}.f lpf.out sig1.mem sig2.mem rm -rf ${PREFIX}*.v gen rtl rm -rf plot plot*.png coeff*