Contact Me


The idea of a consistent, unified (across EDA tool platforms) format for expressing low power intent is fantastic. 

However, there are a few languages: CPF, UPF and even company proprietary formats vying for world domination in the power format language arena.

If history repeats itself, as was/is the case for Hardware Description Languages: Verilog and VHDL, there will always be more than one, and so long as they continue to evolve and (somewhat) interoperate, then so be it --- as users/designers, we will simply pick what's best for the job and focus on the design issues and not the language issues/wars!

That said, the x-power-format project will simply help provide parsers, translators and tools to help designers deal with the likely coexistence of xPF languages.

In the end, it's not the language which matters, it's the actual EDA tools which use whatever language to do the right thing to help you get your designs done better (lower power for one).

Currently, there are some nifty utilities available:

  • cpf2html which demonstrates a Tcl-based CPF parser and provides an HTML cross reference for any set of CPF files processed.  This HTML output provides hyperlinks from the CPF commands to the Si2 CPF documentation.  This utility is useful for learning and also design reviews.

  • cpf2dot which creates a dot format graph indicating the locations of level shifters and isolation cells.   The cool thing about the utility is that you do NOT need any RTL; it simply creates the hierarchy based on instance name specifications within the CPF file.

    You will need to download the Graphviz (open source) package from to get dot and fdp (which renders better looking graphs for our use).

Happy xPF-ing!

P.S.  Please contact me to contribute tools, utilities, ideas, etc. to this project.


  1. Run cpf2html on example from CPF spec 1.0:

    > download cpf.x.y.tar.gz  #x.y is version (e.g. 1.0)
    > tar zxvf cpf.x.y.tar.gz
    > cd xpf
    > bin/cpf2html -h  #help on command
    > bin/cpf2html dat/ex1.cpf > ex1.htm
    > load ex1.htm in browser
      (Note: tested in Firefox and IE 7.0.5730.11)

  2. Run cpf2dot on example above:

    > download and install cpf.x.y.tar.gz and graphviz
    > bin/cpf2dot -h  #help on command
    > bin/cpf2dot dat/ex1.cpf | dot -Kfdp -Tpng -o ex1.png
    > load ex1.png in browser