Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.naic.edu/~phil/hardware/pdev/fpga/gx/sp/sim/Makefile
Дата изменения: Thu Jun 26 04:27:55 2008
Дата индексирования: Sat Sep 6 19:55:04 2008
Кодировка:

Поисковые слова: http www.astronomy.ru forum index.php topic 4644.0.html

include ../src/Makefile.defs

# Jeff Mock
# 2030 Gough St.
# San Francisco, CA 94109
# jeff@mock.com
#
# Copyright 2005,2006
#
# $URL: https://www.mock.com/svn/pdev/trunk/gx/sp/sim/Makefile $
# $Id: Makefile 920 2007-02-25 20:17:33Z jeff $

# DEBUG = 1

# Test signal parameters
#
PER = 10.1
PHASE = 0
# SWEEP = 0.0005
SWEEP = 0.0002
AMP = 0.05
NOISE = 0.1
# AMP = 0.00
# NOISE = 0.5

LPF_DEC = 2
LPF_NARROW = 1.2
LPF_WINDOW = hanning
LPF_SRC = ../../jfft/dlpf/src
LPF_OVL = 8

PFBIMP = gen
# PFBIMP = rtl

CMIXIMP = gen
# CMIXIMP = rtl

DLPFIMP = gen
# DLPFIMP = rtl

# Frames to drop (minus one) after sync before starting first integration
# 1 for FFT, 4 for PFB (4x overlap)
SIM_SCNT = 4

# Dump output of stokes calculation before accumulators
# +define+DUMP_STOKES

# Dump output of accumulators for packing
# +define+DUMP_ACC

# Dump output of packer before external sram fifo
# +define+DUMP_PACK

# Dump 32-bit output of external sram fifo going to pi DMA interface
# +define+DUMP_PFOX
#

# Use BFM for extram instead of Cypress model
# +define+EXTRAM_BFM
#
CVER_OPT = +define+${CHIP}

ifdef DEBUG
CVER_OPT += +define+DEBUG
endif

ifdef TEST
CVER_OPT += +${TEST}
endif

WINDOW = hamming
COEFF_OPT = --maxlen=8192 --width=16 --fwid=4 --window=${WINDOW}

ALLSRC = ${SRCVH} ${SRCV}

plot: sim
perl ${STOKESPLOT} --pack --fn=plot0

# need DUMP_STOKES defined for this to work
plot0x-i.png: pack.out
perl ${STOKESPLOT} --n=${SIM_LEN} --width=32 --fn=plot0x

sim: ${N}.f ${TBV} ${ALLSRC} ${PFBDIR} ${CMIXDIR} ${DLPFDIR} sig1.mem sig2.mem fir_coeff
rm -rf wave.vcd
${CVER} -f ${N}.f ${CVER_OPT}

simx: ${N}.fx ${TBV} sig1.mem sig2.mem fir_coeff
rm -rf wave.vcd
${CVER} -f ${N}.fx ${CVER_OPT}

simz1: ${N}.f ${TBV} ${ALLSRC} ${PFBDIR} ${CMIXDIR} ${DLPFDIR} sig1.mem sig2.mem fir_coeff
rm -rf wave.vcd
${CVER} -f ${N}.f +p1zero ${CVER_OPT}

simz2: ${N}.f ${TBV} ${ALLSRC} ${PFBDIR} ${CMIXDIR} ${DLPFDIR} sig1.mem sig2.mem fir_coeff
rm -rf wave.vcd
${CVER} -f ${N}.f +p2zero ${CVER_OPT}

simnoise: ${N}.f ${TBV} ${ALLSRC} ${PFBDIR} ${CMIXDIR} ${DLPFDIR} sig1.mem sig2.mem fir_coeff
rm -rf wave.vcd
${CVER} -w -f ${N}.f +p1noise +p2noise ${CVER_OPT}

# This applies zeros to both channels and then does a step
# function after everything has settled (450 clocks). This
# makes sure that the data output for the two channels is
# aligned.
#
simstep: ${N}.f ${TBV} ${ALLSRC} ${PFBDIR} ${CMIXDIR} ${DLPFDIR} sig1.mem sig2.mem fir_coeff
rm -rf wave.vcd
${CVER} -w -f ${N}.f +p1step +p2step ${CVER_OPT}

clean:
rm -rf wave.vcd waves.tbl verilog.log ${N}.f *.mem
rm -rf pfb.out stokes.out plot0* plot.* p-* coeff*
rm -rf *.out ${N}.fx ${CMIXDIR} ${DLPFDIR} *.lx2 *coeff*
${MAKE} -C ${PFB} clean

cleanpfb:
${MAKE} -C ${PFB} clean
rm -rf fir_coeff

${PFBDIR}: Makefile
${MAKE} -C ${PFB} ${PFBIMP}

${CMIXDIR}: Makefile
${MAKE} -C ${CMIX} ${CMIXIMP}

${DLPFDIR}: Makefile
${MAKE} -C ${DLPF} ${DLPFIMP}

# echo "+define+VIRTEX2" >> ${N}.f
${N}.f: Makefile ${PFBDIR} ${CMIXDIR} ${DLPFDIR}
rm -rf ${N}.f
echo "+define+LPF_DEC=${LPF_DEC}" >> ${N}.f
echo "+define+SIM" >> ${N}.f
echo "+define+DIE_${DIE}" >> ${N}.f
echo "+nointeractive" >> ${N}.f
echo "+notimingchecks" >> ${N}.f
echo "+licq_all+" >> ${N}.f
echo "+change_port_type" >> ${N}.f
echo "+libext+.vmd+.v" >> ${N}.f
echo "-y ../../xilinx/unisim" >> ${N}.f
echo "-y ${XILINX}/verilog/src/unisims" >> ${N}.f
echo "-y ${XILINX}/verilog/src/simprims" >> ${N}.f
for i in ${GLBL} ${SRCVH} ${SRCV} ${TBV} ${PFBDIR}/*.v ${CMIXDIR}/*.v ${DLPFDIR}/*.v; do \
echo "$$i" >> ${N}.f ; \
done

${N}.fx: Makefile
rm -rf ${N}.fx
echo "+define+LPF_DEC=${LPF_DEC}" >> ${N}.f
echo "+define+SIM" >> ${N}.fx
echo "+define+SIM_GATE" >> ${N}.fx
echo "+define+DIE_${DIE}" >> ${N}.fx
echo "+nointeractive" >> ${N}.fx
echo "+suppress_warns+653+3102+531" >> ${N}.fx
echo "+notimingchecks" >> ${N}.fx
echo "+show_canceled_e" >> ${N}.fx
echo "+licq_all+" >> ${N}.fx
echo "+change_port_type" >> ${N}.fx
echo "+libext+.vmd+.v" >> ${N}.fx
echo "-y ../../xilinx/simprims" >> ${N}.fx
for i in ${SRCVH} ${TBV} ; do \
echo "$$i" >> ${N}.fx ; \
done
echo "../build/${N}.v" >> ${N}.fx ; \

sig1.mem: Makefile ${MKSIN}
perl ${MKSIN} --n=1 --frames=100000 --seed=1 \
--amp=${AMP} --period=${PER} --offset=2047 \
--deltap=${SWEEP} \
--width=12 --noise=${NOISE} --poff=0.0 > sig1.mem


sig2.mem: Makefile ${MKSIN}
perl ${MKSIN} --n=1 --frames=100000 --seed=2 \
--amp=${AMP} --period=${PER} --offset=2047 \
--deltap=${SWEEP} \
--width=12 --noise=${NOISE} --poff=${PHASE} > sig2.mem

TLEN = 16 32 64 128 256 512 1024 2048 4096 8192
fir_coeff:
rm -rf fir_coeff
for len in ${TLEN} ; do \
rm -rf coeff0 coeff1 coeff2 coeff3 ; \
echo "Length $$len" ; \
perl ${JFFT}/src/mkcoeff ${COEFF_OPT} --n=$$len \
--start=-1 --stop=-2 --fn=coeff0 ; \
perl ${JFFT}/src/mkcoeff ${COEFF_OPT} --n=$$len \
--start=0 --stop=-1 --fn=coeff1 ; \
perl ${JFFT}/src/mkcoeff ${COEFF_OPT} --n=$$len \
--start=1 --stop=0 --fn=coeff2 ; \
perl ${JFFT}/src/mkcoeff ${COEFF_OPT} --n=$$len \
--start=2 --stop=1 --fn=coeff3 ; \
cat coeff0 coeff1 coeff2 coeff3 >> fir_coeff ; \
done
perl ${LPF_SRC}/mkdlpf_coeff \
--dec=${LPF_DEC} \
--width=16 \
--narrow=${LPF_NARROW} \
--start=-3 \
--stop=-4 \
--fwid=${LPF_OVL} \
--window=${LPF_WINDOW} \
--table=lpf_coeff0
perl ${LPF_SRC}/mkdlpf_coeff \
--dec=${LPF_DEC} \
--width=16 \
--narrow=${LPF_NARROW} \
--start=-2 \
--stop=-3 \
--fwid=${LPF_OVL} \
--window=${LPF_WINDOW} \
--table=lpf_coeff1
perl ${LPF_SRC}/mkdlpf_coeff \
--dec=${LPF_DEC} \
--width=16 \
--narrow=${LPF_NARROW} \
--start=-1 \
--stop=-2 \
--fwid=${LPF_OVL} \
--window=${LPF_WINDOW} \
--table=lpf_coeff2
perl ${LPF_SRC}/mkdlpf_coeff \
--dec=${LPF_DEC} \
--width=16 \
--narrow=${LPF_NARROW} \
--start=0 \
--stop=-1 \
--fwid=${LPF_OVL} \
--window=${LPF_WINDOW} \
--table=lpf_coeff3