[Eda-dev] qflow Docker experiment

Øyvind Harboe oyvind.harboe at zylin.com
Thu Jul 4 17:34:54 EDT 2019


Answering some of my own questions:


   - regarding smaller feature size technology file. Looks like "gscl45nm"
   is included in latest qflow. I still get the "addspacers" error with
   gscl45nm. If that works, that's as good as I would dare to hope for with
   open source tools
   - I have some smaller modules now working with static timing. I'm
   getting a maximum frequency at the "backanno" stage and I believe I'm
   looking at the longest register-to-register paths, much like with an FPGA
   timing report.

I will be studying smaller pieces of the design to try to learn something
when I compare these parts of the design to FPGA.


On Thu, Jul 4, 2019 at 10:55 PM Øyvind Harboe <oyvind.harboe at zylin.com>
wrote:

> This is a short account of my Docker experiment with qflow.
>
> Comments welcome!
>
> I wanted to give qflow another try and I knew I had to create a Dockerfile
> for two reasons:
>
>    1. Once I have this up and running, I'd like to have the static timing
>    analysis as part of our continous integration reports. I really want a
>    sense of where the critical path is in custom silicon vs. an FPGA.
>    2. This is open source, so I want to be able to access modified
>    versions of the source and reproduce/rebuild the resulting qflow toolchain
>    easily. Sometimes I'll want the latest release, other times I'll want to
>    get things from git + patch a bit or do other special steps, like
>    installing technology files I can get my mittens on.
>
> With the attached Dockerfile, I get as far as place and route with my
> chosen test. It seems to segfault in something called "addspacers":
>
> # /usr/local/share/qflow/bin/addspacers -stripe 5 150 PG -p vdd -g gnd -f
> FILL -O -l /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef -o
> ControlUnitTestBench_filled.def ControlUnitTestBench
> corrupted size vs. prev_size
> Aborted (core dumped)
>
> *Questions that come to mind:*
>
>
>    - Looks like "addspacers" is part of qflow, but is the "Aborted (core
>    dumped)"  a somewhat disturbing error message for already invalid
>    input(incorrect data generated upstream) or is it a problem in
>    "addspacers"? Which module should I try to upgrade/downgrade?
>    - Can I get something newer than osu035 (350nm, right?). I've heard
>    about open source/academic 40nm technology files, but is that generally
>    available these days?
>
>
>
> # qflow place ControlUnitTestBench
> --------------------------------
> Qflow project setup
> --------------------------------
>
> Technology set to osu035 from existing qflow_vars.sh file
> Regenerating files for existing project ControlUnitTestBench
> Qrouter detail maze router version 1.4.59.T
> Reading LEF data from file
> /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef.
> LEF Read, Line 135: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 136: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 140: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 141: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 151: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 152: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 156: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 157: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 167: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 168: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 172: NOTE:  Old format VIARULE ignored.
> LEF Read, Line 173: NOTE:  Old format VIARULE ignored.
> LEF file:  Defines site corner (ignored)
> LEF file:  Defines site IO (ignored)
> LEF file:  Defines site core (ignored)
> LEF read: Processed 3179 lines.
> LEF Read: encountered 0 errors and 12 warnings total.
> Vertical route layer at non-minimum pitch 3.2.  Using smaller pitch 1.6,
> will route on 1-of-2 tracks for layer metal4.
> Running vlog2Cel to generate input files for graywolf
> vlog2Cel  -l  /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef -u
> 100 -o //ControlUnitTestBench.cel //ControlUnitTestBench.rtlnopwr.v
> No ControlUnitTestBench.cel1 file found for project. . . no partial
> blockages to apply to layout.
> No ControlUnitTestBench.cel2 file found for project. . . continuing
> without pin placement hints
> Running GrayWolf placement
> graywolf -n ControlUnitTestBench
> Running getantennacell to determine cell to use for antenna anchors.
> getantennacell.tcl ControlUnitTestBench
>  /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef
> Running getfillcell to determine cell to use for fill.
> getfillcell.tcl ControlUnitTestBench
>  /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef FILL
> Using cell FILL for fill
> Running place2def to translate graywolf output to DEF format.
> place2def.tcl ControlUnitTestBench FILL
> Running addspacers to generate power stripes and align cell right edge
> addspacers -stripe 5 150 PG -p vdd -g gnd -f FILL -O  -l
>  /usr/local/share/qflow/tech/osu035/osu035_stdcells.lef -o
> ControlUnitTestBench_filled.def ControlUnitTestBench
> *Abort (core dumped)*
> addspacers failed with exit status 134
> Premature exit.
>
> --
> Øyvind Harboe, General Manager, Zylin AS, +47 917 86 146
>


-- 
Øyvind Harboe, General Manager, Zylin AS, +47 917 86 146
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.opencircuitdesign.com/pipermail/eda-dev/attachments/20190704/7e16c9bf/attachment-0001.html>


More information about the Eda-dev mailing list