yosys/tests/xsthammer/run-xst.sh

76 lines
1.3 KiB
Bash

#!/bin/bash
set -e
mkdir -p xst
. /opt/Xilinx/14.2/ISE_DS/settings64.sh
rm -rf xst_temp
mkdir xst_temp
cd xst_temp
if [ $# -eq 0 ]; then
set -- $( ls ../rtl | sed 's,\.v$,,' )
fi
for job
do
cat > $job.xst <<- EOT
run
-ifn $job.prj
-ifmt mixed
-ofn $job
-ofmt NGC
-p xc6vlx75t-2-ff784
-top $job
-opt_mode Speed
-opt_level 1
-power NO
-iuc NO
-keep_hierarchy NO
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator /
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-bram_utilization_ratio 100
-dsp_utilization_ratio 100
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style lut
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-shreg_extract YES
-rom_style Auto
-auto_bram_packing NO
-resource_sharing YES
-async_to_sync NO
-use_dsp48 auto
-iobuf NO
-max_fanout 100000
-bufg 32
-register_duplication YES
-register_balancing No
-optimize_primitives NO
-use_clock_enable Auto
-use_sync_set Auto
-use_sync_reset Auto
-iob auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5
EOT
cat > $job.prj <<- EOT
verilog work "../rtl/$job.v"
EOT
xst -ifn $job.xst
netgen -w -ofmt verilog $job.ngc $job
cp $job.v ../xst/$job.v
done