mirror of https://github.com/YosysHQ/picorv32.git
75 lines
2.1 KiB
Bash
75 lines
2.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -ex
|
||
|
|
||
|
rm -rf synplify.tmp
|
||
|
mkdir synplify.tmp
|
||
|
cd synplify.tmp
|
||
|
|
||
|
cat > impl_syn.prj << EOT
|
||
|
add_file -verilog -lib work ../../../picorv32.v
|
||
|
impl -add impl -type fpga
|
||
|
|
||
|
# implementation attributes
|
||
|
set_option -vlog_std v2001
|
||
|
set_option -project_relative_includes 1
|
||
|
|
||
|
# device options
|
||
|
set_option -technology SBTiCE40
|
||
|
set_option -part iCE40HX8K
|
||
|
set_option -package CT256
|
||
|
set_option -speed_grade
|
||
|
set_option -part_companion ""
|
||
|
|
||
|
# compilation/mapping options
|
||
|
set_option -top_module "picorv32"
|
||
|
|
||
|
# mapper_options
|
||
|
set_option -frequency auto
|
||
|
set_option -write_verilog 0
|
||
|
set_option -write_vhdl 0
|
||
|
|
||
|
# Silicon Blue iCE40
|
||
|
set_option -maxfan 10000
|
||
|
set_option -disable_io_insertion 0
|
||
|
set_option -pipe 1
|
||
|
set_option -retiming 0
|
||
|
set_option -update_models_cp 0
|
||
|
set_option -fixgatedclocks 2
|
||
|
set_option -fixgeneratedclocks 0
|
||
|
|
||
|
# NFilter
|
||
|
set_option -popfeed 0
|
||
|
set_option -constprop 0
|
||
|
set_option -createhierarchy 0
|
||
|
|
||
|
# sequential_optimization_options
|
||
|
set_option -symbolic_fsm_compiler 1
|
||
|
|
||
|
# Compiler Options
|
||
|
set_option -compiler_compatible 0
|
||
|
set_option -resource_sharing 1
|
||
|
|
||
|
# automatic place and route (vendor) options
|
||
|
set_option -write_apr_constraint 1
|
||
|
|
||
|
# set result format/file last
|
||
|
project -result_format edif
|
||
|
project -result_file impl.edf
|
||
|
impl -active impl
|
||
|
project -run synthesis -clean
|
||
|
EOT
|
||
|
|
||
|
icecubedir="${ICECUBEDIR:-/opt/lscc/iCEcube2.2014.08}"
|
||
|
export SBT_DIR="$icecubedir/sbt_backend"
|
||
|
export SYNPLIFY_PATH="$icecubedir/synpbase"
|
||
|
export LM_LICENSE_FILE="$icecubedir/license.dat"
|
||
|
export TCL_LIBRARY="$icecubedir/sbt_backend/bin/linux/lib/tcl8.4"
|
||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}$icecubedir/sbt_backend/bin/linux/opt"
|
||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}$icecubedir/sbt_backend/bin/linux/opt/synpwrap"
|
||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}$icecubedir/sbt_backend/lib/linux/opt"
|
||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}$icecubedir/LSE/bin/lin"
|
||
|
"$icecubedir"/sbt_backend/bin/linux/opt/synpwrap/synpwrap -prj impl_syn.prj -log impl.srr
|
||
|
|
||
|
grep 'instance.*cellRef' impl/impl.edf | sed 's,.*cellRef *,,; s,[ )].*,,;' | sort | uniq -c
|