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_icp
script can stop working if the institution changes tools and their directories.