Updated iCEcube2 version in icecube.sh to 2015.08, switched from Synplify to LSE

This commit is contained in:
Clifford Wolf 2016-01-01 17:18:42 +01:00
parent 8bc618254f
commit 75421c016f
2 changed files with 69 additions and 7 deletions

1
icefuzz/.gitignore vendored
View File

@ -3,6 +3,7 @@
*.psb
*.tmp/
*.txt
*.asc
*.vsb
*.sdf
/work_*/

View File

@ -1,8 +1,8 @@
#!/bin/bash
#
# Installing iCEcube2:
# - Install iCEcube2.2014.08 in /opt/lscc/iCEcube2.2014.08
# - Install License in /opt/lscc/iCEcube2.2014.08/license.dat
# - Install iCEcube2.2015.08 in /opt/lscc/iCEcube2.2015.08
# - Install License in /opt/lscc/iCEcube2.2015.08/license.dat
#
# Creating a project:
# - <project_name>.v ## HDL sources (use "top" as name for the top module)
@ -21,7 +21,7 @@
# sudo apt-get install libxcursor1:i386 libXinerama.so.1:i386 libXinerama1:i386 libfreetype6:i386
# sudo apt-get install libfontconfig1:i386 libglib2.0-0:i386 libstdc++6:i386 libelf1:i386
#
# icecubedir="/opt/lscc/iCEcube2.2014.08"
# icecubedir="/opt/lscc/iCEcube2.2015.08"
# sudo sed -ri "1 s,/bin/sh,/bin/bash,;" $icecubedir/synpbase/bin/synplify_pro
# sudo sed -ri "1 s,/bin/sh,/bin/bash,;" $icecubedir/synpbase/bin/c_hdl
# sudo sed -ri "1 s,/bin/sh,/bin/bash,;" $icecubedir/synpbase/bin/syn_nfilter
@ -33,7 +33,8 @@ if [ -z "$scriptdir" ]; then scriptdir="."; fi
set -ex
set -- ${1%.v}
icecubedir="${ICECUBEDIR:-/opt/lscc/iCEcube2.2014.08}"
icecubedir="${ICECUBEDIR:-/opt/lscc/iCEcube2.2015.08}"
export FOUNDRY="$icecubedir/LSE"
export SBT_DIR="$icecubedir/sbt_backend"
export SYNPLIFY_PATH="$icecubedir/synpbase"
export LM_LICENSE_FILE="$icecubedir/license.dat"
@ -72,6 +73,14 @@ case "${ICEDEV:-hx1k-tq144}" in
iCEPACKAGE="QN84"
iCE40DEV="iCE40LP1K"
;;
ul1k-cm36a)
iCEPACKAGE="CM36A"
iCE40DEV="iCE40UL1K"
;;
ul1k-swg16)
iCEPACKAGE="CM36A"
iCE40DEV="iCE40UL1K"
;;
*)
echo "ERROR: Invalid \$ICEDEV device config '$ICEDEV'."
exit 1
@ -79,17 +88,25 @@ esac
case "$iCE40DEV" in
iCE40HX1K)
icetech="SBTiCE40"
libfile="ice40HX1K.lib"
devfile="ICE40P01.dev"
;;
iCE40HX8K)
icetech="SBTiCE40"
libfile="ice40HX8K.lib"
devfile="ICE40P08.dev"
;;
iCE40LP1K)
icetech="SBTiCE40"
libfile="ice40LP1K.lib"
devfile="ICE40P01.dev"
;;
iCE40UL1K)
icetech="SBTiCE40UL"
libfile="ice40BT1K.lib"
devfile="ICE40T01.dev"
;;
esac
(
@ -119,7 +136,7 @@ set_option -vlog_std v2001
set_option -project_relative_includes 1
# device options
set_option -technology SBTiCE40
set_option -technology $icetech
set_option -part $iCE40DEV
set_option -package $iCEPACKAGE
set_option -speed_grade
@ -161,6 +178,43 @@ impl -active impl
project -run synthesis -clean
EOT
cat > impl_lse.prj << EOT
#device
-a $icetech
-d $iCE40DEV
-t $iCEPACKAGE
#constraint file
#options
-optimization_goal Area
-twr_paths 3
-bram_utilization 100.00
-ramstyle Auto
-romstyle Auto
-use_carry_chain 1
-carry_chain_length 0
-resource_sharing 1
-propagate_constants 1
-remove_duplicate_regs 1
-max_fanout 10000
-fsm_encoding_style Auto
-use_io_insertion 1
-use_io_reg auto
-resolve_mixed_drivers 0
-RWCheckOnRam 0
-fix_gated_clocks 1
-loop_limit 1950
-ver "input.v"
-p "$PWD"
#set result format/file last
-output_edif impl/impl.edf
#set log file
-logfile "impl_lse.log"
EOT
try_rerun() {
for i in {0..3}; do
if "$@"; then return 0; fi
@ -168,8 +222,15 @@ try_rerun() {
return 1
}
# synthesis
# synthesis (Synplify Pro)
if false; then
"$icecubedir"/sbt_backend/bin/linux/opt/synpwrap/synpwrap -prj impl_syn.prj -log impl.srr
fi
# synthesis (Lattice LSE)
if true; then
"$icecubedir"/LSE/bin/lin/synthesis -f "impl_lse.prj"
fi
# convert netlist
"$icecubedir"/sbt_backend/bin/linux/opt/edifparser "$icecubedir"/sbt_backend/devices/$devfile impl/impl.edf netlist -p$iCEPACKAGE -yinput.pcf -sinput.sdc -c --devicename $iCE40DEV