Penn Logo
Vertical Line

Implementation of Computation Group


Pathfinder Pathology and Remediation Supplemental Materials

Table of Contents


This page contains patches, script, sources and directions to examine the synthesis of the data presented in: "Timing-Driven Pathfinder Pathology and Remediation: Quantifying and Reducing Delay Noise in VPR-Pathfinder"

Quick Start

Download setup.bin and run "sh setup.bin". You will be asked to download the upstream VPR source. That will result in the creation of a pf_fpga_2011 directory with everything you need (at least in terms of what we provide) to run. A wizard will walk you through running the various tasks.

If you wish to return to the wizard after quitting run the "" script in the pf_fpga_2011. Every command run by that script will be shown to you, suggesting how to use the individual work scripts manually.

Required Software

  • General POSIX compliant environment (/bin/sh, grep, find ...)
  • Everything needed to build and run VPR
  • zlib (If you can build VPR you probably already have it)
  • perl
  • gnuplot*
  • R*
  • LaTeX*
* - Note: Gnuplot, R, and LaTeX are only needed to render the graphs and table.

Slightly Less Quick Start

If you are uncomfortable with running unknown scripts from the web, the archive is also available as a normal tarball, pf_fpga_2011.tgz, unpack it, and run the script in the pf_fpga_2011 directory.


Note all scripts are configured with the assumption that they are run from root of the pf_fpga_2011 directory prepared by the setup script.

These examples are repeated in the README found in the pf_fpga_2011 directory. The "" script generates commands like these when running requested tasks. The actual commands it executes can be found in history.log.

Preparing the shuffled netlists

  • ./scripts/ alu4 1-10
  • ./scripts/ des 1-10
  • ./scripts/ apex2,apex4,tseng 1-10

Running the Experiments and Presenting the Data

Every figure is produced with three steps: Routing, Harvesting, and Rendering. Only the routing scripts take arguments. To render using the data we used for the paper, copy the desired dat files from the authors_data subdirectory of pf_fpga_2011 or download from the Data section to your pf_fpga_2011 directory and render.
Running the work to generate the raw data Harvest the raw data Render the figure/table
./scripts/ alu4 des tseng ./scripts/ ./scripts/
./scripts/ alu4 --base 1-10 ./scripts/ ./scripts/render_fig2.R
./scripts/ alu4 1.3,1.1,tcs 28-32 --base 1-10 ./scripts/ ./scripts/render_fig3.R
./scripts/ alu4 9.5e-9,10e-9,10.5e-9 1-10 ./scripts/ ./scripts/render_fig4.R
./scripts/ alu4,des,tseng 1-10 ./scripts/ ./scripts/render_table.R

Data From the Paper

These dat files contained we used to render the graphs and table in the paper. To use them with the provided render scripts, save the desired dat file to your pf_fpga_2011 directory and run the corresponding render script, either manually or with the "" wizard. These files are also part of the tarball and located in pf_fpga_2011.

The netlist shuffler does not use seeds, so your perturbed netlist results may not exactly match our data. You should still see the same general results once you run enough samples to start to see the distributions.

Figure File
Figure 1 fig1.dat
Figure 2 fig2.dat
Figure 3 fig3.dat
Figure 4 fig4.dat
Figure 5 fig3.dat*
Table 1 table.dat
* - Note: Figures 3 and 5 are rendered from the same data.


This research was funded in part by National Science Foundation grant CCF-0904577. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
Room# 315, 200 South 33rd Street, Electrical and Systems Engineering Department, Philadelphia , University of Pennsylvania, PA 19104.