mirror of https://github.com/YosysHQ/icestorm.git
Updated iCEcube2 version in icecube.sh to 2015.08, switched from Synplify to LSE
This commit is contained in:
parent
8bc618254f
commit
75421c016f
|
|
@ -3,6 +3,7 @@
|
||||||
*.psb
|
*.psb
|
||||||
*.tmp/
|
*.tmp/
|
||||||
*.txt
|
*.txt
|
||||||
|
*.asc
|
||||||
*.vsb
|
*.vsb
|
||||||
*.sdf
|
*.sdf
|
||||||
/work_*/
|
/work_*/
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Installing iCEcube2:
|
# Installing iCEcube2:
|
||||||
# - Install iCEcube2.2014.08 in /opt/lscc/iCEcube2.2014.08
|
# - Install iCEcube2.2015.08 in /opt/lscc/iCEcube2.2015.08
|
||||||
# - Install License in /opt/lscc/iCEcube2.2014.08/license.dat
|
# - Install License in /opt/lscc/iCEcube2.2015.08/license.dat
|
||||||
#
|
#
|
||||||
# Creating a project:
|
# Creating a project:
|
||||||
# - <project_name>.v ## HDL sources (use "top" as name for the top module)
|
# - <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 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
|
# 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/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/c_hdl
|
||||||
# sudo sed -ri "1 s,/bin/sh,/bin/bash,;" $icecubedir/synpbase/bin/syn_nfilter
|
# 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 -ex
|
||||||
set -- ${1%.v}
|
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 SBT_DIR="$icecubedir/sbt_backend"
|
||||||
export SYNPLIFY_PATH="$icecubedir/synpbase"
|
export SYNPLIFY_PATH="$icecubedir/synpbase"
|
||||||
export LM_LICENSE_FILE="$icecubedir/license.dat"
|
export LM_LICENSE_FILE="$icecubedir/license.dat"
|
||||||
|
|
@ -72,6 +73,14 @@ case "${ICEDEV:-hx1k-tq144}" in
|
||||||
iCEPACKAGE="QN84"
|
iCEPACKAGE="QN84"
|
||||||
iCE40DEV="iCE40LP1K"
|
iCE40DEV="iCE40LP1K"
|
||||||
;;
|
;;
|
||||||
|
ul1k-cm36a)
|
||||||
|
iCEPACKAGE="CM36A"
|
||||||
|
iCE40DEV="iCE40UL1K"
|
||||||
|
;;
|
||||||
|
ul1k-swg16)
|
||||||
|
iCEPACKAGE="CM36A"
|
||||||
|
iCE40DEV="iCE40UL1K"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Invalid \$ICEDEV device config '$ICEDEV'."
|
echo "ERROR: Invalid \$ICEDEV device config '$ICEDEV'."
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -79,17 +88,25 @@ esac
|
||||||
|
|
||||||
case "$iCE40DEV" in
|
case "$iCE40DEV" in
|
||||||
iCE40HX1K)
|
iCE40HX1K)
|
||||||
|
icetech="SBTiCE40"
|
||||||
libfile="ice40HX1K.lib"
|
libfile="ice40HX1K.lib"
|
||||||
devfile="ICE40P01.dev"
|
devfile="ICE40P01.dev"
|
||||||
;;
|
;;
|
||||||
iCE40HX8K)
|
iCE40HX8K)
|
||||||
|
icetech="SBTiCE40"
|
||||||
libfile="ice40HX8K.lib"
|
libfile="ice40HX8K.lib"
|
||||||
devfile="ICE40P08.dev"
|
devfile="ICE40P08.dev"
|
||||||
;;
|
;;
|
||||||
iCE40LP1K)
|
iCE40LP1K)
|
||||||
|
icetech="SBTiCE40"
|
||||||
libfile="ice40LP1K.lib"
|
libfile="ice40LP1K.lib"
|
||||||
devfile="ICE40P01.dev"
|
devfile="ICE40P01.dev"
|
||||||
;;
|
;;
|
||||||
|
iCE40UL1K)
|
||||||
|
icetech="SBTiCE40UL"
|
||||||
|
libfile="ice40BT1K.lib"
|
||||||
|
devfile="ICE40T01.dev"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
(
|
(
|
||||||
|
|
@ -119,7 +136,7 @@ set_option -vlog_std v2001
|
||||||
set_option -project_relative_includes 1
|
set_option -project_relative_includes 1
|
||||||
|
|
||||||
# device options
|
# device options
|
||||||
set_option -technology SBTiCE40
|
set_option -technology $icetech
|
||||||
set_option -part $iCE40DEV
|
set_option -part $iCE40DEV
|
||||||
set_option -package $iCEPACKAGE
|
set_option -package $iCEPACKAGE
|
||||||
set_option -speed_grade
|
set_option -speed_grade
|
||||||
|
|
@ -161,6 +178,43 @@ impl -active impl
|
||||||
project -run synthesis -clean
|
project -run synthesis -clean
|
||||||
EOT
|
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() {
|
try_rerun() {
|
||||||
for i in {0..3}; do
|
for i in {0..3}; do
|
||||||
if "$@"; then return 0; fi
|
if "$@"; then return 0; fi
|
||||||
|
|
@ -168,8 +222,15 @@ try_rerun() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# synthesis
|
# synthesis (Synplify Pro)
|
||||||
"$icecubedir"/sbt_backend/bin/linux/opt/synpwrap/synpwrap -prj impl_syn.prj -log impl.srr
|
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
|
# 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
|
"$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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue