URL
https://opencores.org/ocsvn/hwlu/hwlu/trunk
Subversion Repositories hwlu
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 7 to Rev 8
- ↔ Reverse comparison
Rev 7 → Rev 8
/hwlu/trunk/syn/xst/bin/change_dw.pl
0,0 → 1,28
#! /usr/bin/perl |
# |
# File : change_dw.pl |
# Description: Changes values for the DW generic at declaration site. |
# To be used with the "hw_loops<num>_top.vhd" top-level file. |
# Resulting file is expected to be renamed to |
# "hw_loops<num>_top_fix.vhd". |
# Usage : ./change_dw.pl <file.vhd> <dw> |
# |
# Author : Nikolaos Kavvadias (c) 2010 |
# |
|
open(FILE1,"<$ARGV[0]")|| die "## cannot open file $ARGV[0]\n"; |
|
$dw_ix = 0; |
|
while ($line = <FILE1>) |
{ |
if ($line =~ m/.*DW.*:.*integer.*8/) |
{ |
if ($dw_ix < 1) |
{ |
$line =~ s// DW : integer := $ARGV[1]/; |
$dw_ix = 1; |
} |
} |
print $line; |
} |
/hwlu/trunk/syn/xst/bin/run_xst_hwlu.sh
0,0 → 1,65
#!/bin/bash |
|
VPP_HOME=/usr/local/bin/vpp |
VPP=vpp |
|
ARCH=DUMMY |
DEVICE=DUMMY |
|
|
#for device in 2 |
#for device in 3 |
for device in 4 |
do |
# |
if [ "$device" = "0" ] |
then |
ARCH="spartan3" |
DEVICE="xc3s200-ft256-4" |
elif [ "$device" = "1" ] |
then |
ARCH="spartan3" |
DEVICE="xc3s1000-ft256-4" |
elif [ "$device" = "2" ] |
then |
ARCH="spartan3" |
DEVICE="xc3s1500-fg456-4" |
elif [ "$device" = "3" ] |
then |
ARCH="virtex4" |
DEVICE="xc4vlx25-ff668-10" |
elif [ "$device" = "4" ] |
then |
ARCH="virtex5" |
DEVICE="xc5vlx50t-ff665-1" |
fi |
# |
# for dw in 8 12 16 |
# for dw in 8 |
for dw in 12 |
# for dw in 16 |
do |
# for nlp in 1 2 3 4 5 6 7 8 |
for nlp in 2 5 |
do |
cd ../../../rtl/vhdl |
# ../../sw/gen_priority_encoder ${nlp} prenc |
# ../../sw/gen_hw_looping -nlp ${nlp} -nodistrib hw |
../../sw/gen_hw_looping -nlp ${nlp} hw |
cd ../../syn/xst/bin |
./change_dw.pl ../../../rtl/vhdl/hw_loops${nlp}_top.vhd ${dw} >../../../rtl/vhdl/hw_loops${nlp}_top_fix.vhd |
make -f Makefile.ise clean |
make -f Makefile.ise DEFAULT_ARCH=hw_looping DEFAULT_PART=${DEVICE} PROJECT=hw_looping${nlp} SOURCES="../../../rtl/vhdl/add_dw.vhd ../../../rtl/vhdl/reg_dw.vhd ../../../rtl/vhdl/cmpeq.vhd ../../../rtl/vhdl/index_inc.vhd ../../../rtl/vhdl/prenc_loops${nlp}.vhd ../../../rtl/vhdl/hw_loops${nlp}_top_fix.vhd" TOP=hw_looping hw_looping${nlp}.ngc |
done |
done |
done |
|
if [ "$SECONDS" -eq 1 ] |
then |
units=second |
else |
units=seconds |
fi |
echo "This script has been running $SECONDS $units." |
|
exit 0 |
/hwlu/trunk/syn/xst/bin/Makefile.ise
0,0 → 1,117
XDIR = /cygdrive/c/Xilinx92i |
|
############################################################################ |
# Some nice targets |
############################################################################ |
|
#install: $(PROJECT).bit |
# ljp $< /dev/parport0 |
|
floorplan: $(PROJECT).ngd $(PROJECT).par.ncd |
$(FLOORPLAN) $^ |
|
report: |
cat *.srp |
|
clean:: |
rm -f *.work *.xst |
rm -f *.ngc *.ngd *.bld *.srp *.lso *.prj |
rm -f *.map.mrp *.map.ncd *.map.ngm *.mcs *.par.ncd *.par.pad |
rm -f *.pcf *.prm *.bgn *.drc |
rm -f *.par_pad.csv *.par_pad.txt *.par.par *.par.xpi |
rm -f *.bit |
rm -f *.vcd *.vvp |
rm -f verilog.dump verilog.log |
rm -rf _ngo/ |
rm -rf xst/ |
|
|
############################################################################ |
# Simulation using cver and gtkwave |
############################################################################ |
|
#CVER = cver |
#GTKWAVE = ~/bin/gtkwave |
#CVERFLAGS = $(XDIR)/verilog/src/glbl.v |
#CVERFLAGS += -y $(TOPDIR)/Unisims |
#CVERFLAGS += +libext+.v+ -q |
#CVERFLAGS += +define+SIMULATION |
|
#.PRECIOUS: %.vcd |
|
#sim_%: %.vcd |
# $(GTKWAVE) $^ $@.save |
|
#%.vcd: sim_%.v $(SOURCES) |
# @rm -f $@.vcd |
# $(CVER) $^ $(CVERFLAGS) |
# @rm -f verilog.log |
|
|
############################################################################ |
# Xilinx tools and wine |
############################################################################ |
|
XST_DEFAULT_OPT_MODE = Speed |
XST_DEFAULT_OPT_LEVEL = 1 |
|
XBIN = $(XDIR)/bin/nt |
XST=$(XBIN)/xst |
NGDBUILD=$(XBIN)/ngdbuild |
MAP=$(XBIN)/map |
PAR=$(XBIN)/par |
BITGEN=$(XBIN)/bitgen |
PROMGEN=$(XBIN)/promgen |
FLOORPLAN=$(XBIN)/floorplanner |
|
XSTWORK = $(PROJECT).work |
XSTSCRIPT = $(PROJECT).xst |
|
.PRECIOUS: %.ngc %.ngc %.ngd %.map.ncd %.bit %.par.ncd |
|
ifndef XST_OPT_MODE |
XST_OPT_MODE = $(XST_DEFAULT_OPT_MODE) |
endif |
ifndef XST_OPT_LEVEL |
XST_OPT_LEVEL = $(XST_DEFAULT_OPT_LEVEL) |
endif |
ifndef ARCH |
ARCH = $(DEFAULT_ARCH) |
endif |
ifndef PART |
PART = $(DEFAULT_PART) |
endif |
|
#compile: $(PROJECT).xst |
# $(XST) |
|
$(XSTWORK): $(SOURCES) |
> $@ |
for a in $(SOURCES); do echo "vhdl work $$a" >> $@; done |
|
$(XSTSCRIPT): $(XSTWORK) |
> $@ |
echo -n "run -ifn $(XSTWORK) -ifmt mixed -top $(TOP) -ofn $(PROJECT).ngc" >> $@ |
echo " -ofmt NGC -p $(PART) -iob false -iobuf no -opt_mode $(XST_OPT_MODE) -opt_level $(XST_OPT_LEVEL)" >> $@ |
|
%.ngc: $(XSTSCRIPT) |
$(XST) -ifn $< |
|
%.ngd: %.ngc $(PROJECT).ucf |
$(NGDBUILD) -intstyle ise -dd _ngo -uc $(PROJECT).ucf -p $(PART) $*.ngc $*.ngd |
|
%.map.ncd: %.ngd |
$(MAP) -o $@ $< $*.pcf |
|
%.par.ncd: %.map.ncd |
$(PAR) -w -ol high $< $@ $*.pcf |
|
%.bit: %.par.ncd |
$(BITGEN) -w -g UnusedPin:PullNone $< $@ $*.pcf |
|
%.prm: %.bit |
$(PROMGEN) -o $@ -w -u 0 $< |
|
############################################################################ |
# End |
############################################################################ |