Run Single FC Step
Run a single Fusion Compiler step with backup and report checking.
Argument: $ARGUMENTS = step name. One of: init, floorplan, synthesis, placement, clocktree, routing, dfm, output
fc/scripts/setup.tcl file starting from the current directory.fc/scripts/setup.tcl to extract DESIGN_NAME and PROJECT_PATH.Each step requires a checkpoint from the previous step:
| Step | Requires Checkpoint | Produces Checkpoint |
|---|---|---|
init |
| (none -- creates library from scratch) |
${DESIGN_NAME}_initial |
floorplan | ${DESIGN_NAME}_initial | ${DESIGN_NAME}_floorplan |
synthesis | ${DESIGN_NAME}_floorplan | ${DESIGN_NAME}_synthesis |
placement | ${DESIGN_NAME}_synthesis | ${DESIGN_NAME}_placement |
clocktree | ${DESIGN_NAME}_placement | ${DESIGN_NAME}_clocktree |
routing | ${DESIGN_NAME}_clocktree | ${DESIGN_NAME}_route |
dfm | ${DESIGN_NAME}_route | ${DESIGN_NAME}_dfm |
output | ${DESIGN_NAME}_dfm | (writes files to fc/output/) |
init):
$PROJECT_PATH/fc/${DESIGN_NAME}.dlib existsinit which creates a new one):
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cp -a $PROJECT_PATH/fc/${DESIGN_NAME}.dlib $PROJECT_PATH/fc/backup_${STEP}_${TIMESTAMP}.dlib
cd $PROJECT_PATH/fc && mkdir -p scripts report output temp
cd $PROJECT_PATH/fc/temp && fc_shell -f ../scripts/flows/run_${STEP}.tcl 2>&1 | tee ../report/run_${STEP}.log
For longer steps (synthesis, clocktree, routing), consider using run_in_background: true or the nohup pattern:
cd $PROJECT_PATH/fc/temp && nohup fc_shell -f ../scripts/flows/run_${STEP}.tcl > ../report/run_${STEP}.log 2>&1 &
echo $! > /tmp/.fc_step_pid
Then poll for completion by checking if the process is still running and tailing the log.
After the step completes, check the appropriate reports:
| Step | Check Reports (invoke /check-reports with) |
|---|---|
init | Verify save_block succeeded in log |
floorplan | Verify save_block succeeded in log |
synthesis | /check-reports fc-synthesis |
placement | /check-reports fc-placement |
clocktree | /check-reports fc-clocktree |
routing | /check-reports fc-routing |
dfm | /check-reports fc-dfm |
output | /check-reports fc-output |
Present the report summary and ask whether to proceed to the next step.
For each step, highlight the critical checks:
Error or FATAL messages.