MCNC Standard Cell Benchmark Circuits

Here are a number of MCNC benchmark circuits, in a format suitable for TimberWolf System's place and route package. Most of these were converted to the TimberWolf 7.0/1.0 format using a modified version of the MCNC program v2. The current version of TimberWolf is the commercial implementation, and is 1.0. This is newer than the last official University release of 6.0--this is a constant source of confusion.

Using stock conversion tools wasn't an option. I'm interested in timing performance of the circuits, and the stock MCNC converter only produced TimberWolf 6.0 format files, which do not support signal direction information. I'm not aware of any other converters that go from the MCNC yal or vpnr formats to the TimberWolf 1.0 format directly--let me know if you know of one! I'll put my modified version of v2 up when I get it a bit cleaned up, and check with MCNC on distribution rights.

I had contacted both TimberWolf Systems, and the University of Washington, to try and get versions of these files from them, but TWS didn't have them handy, and the grad students who handled this at UW had graduated, and the research group there was moving away from place and route. The group at MCNC have gone on to other projects as well (maintaining a benchmark set is a thankless job--they did quite a bit of good work for a long time).

There are a number of tarred and gzipped benchmark files. For a benchmark X, download X.tz, and then do a zcat X.tz | tar xvf - in the appropriate directory. In each file, you'll find some of the following.

  • .lib and .ckt files -- Describe the circuit
  • .par file -- The parameters that you need to run TW7
  • .pl3 and .pin -- The TimberWolf placement and GR. Note that for some benchmarks, the place and route tools run twice, generating .pl7 and .pn2 files; I rename these to .pl3 and .pin, and that's what is stored in these benchmarks.
  • ignores -- Nets to ignore for timing analysis (things like reset nets, etc.) Also, nets that have no drivers are normally listed here. It is assumed that ignored nets are always "ready", and do not impact circuit delay.
  • clocks -- Names of the clock nets. I ignore these for timing as well, but not everyone does. A few papers I've seen on timing driven placement don't filter out clock net, leading to a skewed view of what timing improvements are possible. In my work, clock nets are also assumed to be always "ready," and do not impact the critical paths.
  • sequential -- Names of sequential cells, or the name of the model for sequential cells. Outputs of these cells are assumed to be primary inputs to the circuit.
  • tw_run -- The output of the TimberWolf place and route tools.
  • There seem to be some problems with the new conversions of Primary1 and Primary2--the sizes of the pads don't look correct, so I've put up the version produced by the "stock" MCNC converter, followed by TimberWolf System's TW6-->TW7 converter "tif". The Industry benchmarks don't contain signal direction information, so timing analysis on those isn't interesting.

    Be careful with scaling of dimensions when reporting results. Due to some internal requirements of the TimberWolf tools, the benchmarks fract, struct, and biomed have dimensions doubled, while the benchmark golem3 has dimensions multiplied by 4. Before reporting results, divide the first group by 2, and the second by 4.

    Also, be warned that there's a strong possibility of garbage in, garbage out with these benchmarks, and some brain failures on my part during the conversion. The benchmarks are all quite old, were planned for 1.2 micron technology or larger, and contain a number of things that at the very least are odd (nets with no drivers, nets with multiple drivers, etc.). I generally ignore the resistances and capacitances on the pins, and set them to the appropriate values at run-time in my global router. They're too large to check thoroughly by hand, so I may have missed other problems.

    So--if you encounter some errors, don't be surprised. And if you can figure out what's wrong, and what should be changed to fix the problem, please email me at pmadden@cs.binghamton.edu to let me know. I would love to have some help making sense out of these things.

    So, with the standard disclaimers about not having any sort of warranty, here are the MCNC place and route benchmarks in TW7/1 format.  twmcnc.tgz