This project is automation of toolchain for IC Project course.
In the main directory run the following in command line and then reload the terminal:
touch ~/.bash_aliases
echo "alias icp='source $PWD/scripts/setup_icp'" >> ~/.bash_aliases
echo "alias map_files='source $SCRIPT_DIR/map_files'" >> ~/.bash_aliases
After this setup_icp can be easily called by `icp' from any directory.
setup_icp : sets up environment (QuestaSim, Genus, Encounter, PrimeTime and STM Libraries) for Digital IC design.
map_files : sets environment variables like file and library names that are then used by different programs.
ictool : toolchain script.
setup_icp
│ project_dirs (user defined)
map_files
| env/lib_list (user defined)
| env/lib_prefs (user defined)
| env/file_list (user defined)
ictool
| lib_paths (user defined)
|
└── simulate
| | sim/sim_prefs (user defined)
│ │ sim/waves.do (user defined)
| | sim/vcd.do (user defined)
│
└── synthesis
| └── synth/synthesis.tcl
| | synth/synth_prefs.tcl (user defined)
│
└── layout
| └── pnr/pnr_flow.tcl (wip)
| | pnr/mmmc.view (wip)
| | pnr/pad.io (user defined)
│
└── power
| pwr/power.tcl
This allows user to call genus, primetime, encounter, vsim etc from command line:
icp
This command should be run after icp, it updates the environt variables that are needed for ictool.
map_files
ictool -o synth -p LPHVT -c bc -v 1.05 -t 105
If the options -p LPHVT -c bc -v 1.05 -t 105 are not specified, then the defaults are used from lib_prefs file
ictool -o sim
And then choosing a simulation option:
b - behavioural model
s - post-synthesis design
l - post-layout design
vcd - post-layout simulation that generates vcd file
ictool -o layout
ictool -o power
setup_icpscript can stop working if the institution changes tools and their directories.