Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Matt Liberty
    @maliberty
    @quentinw91 I've asked the pdngen developer if he has any thoughts on your problem. I'll update when I hear from him.
    wackoswami
    @wackoswami:matrix.org
    [m]
    or anyone else?
    Austin Rovinski
    @rovinski
    @quentinw91 @maliberty I believe this problem has shown up before and it's because the size of the design is smaller than the (M4 power rail pitch)*2, so PDNGen can't fit both VDD and VSS. I think the best solution is to just add a check for this rather then erroring on an empty array.
    8 replies
    Raynchowkw
    @Raynchowkw
    The openroad-flow-scripts/tools/openroad from openroad-flow-script git and the openroad from openroad git are not in the same branch. Which one I should use if I want to run the flow to test modification in TritonRoute?
    4 replies
    quentinw91
    @quentinw91
    OpenRoad_floorplan.png
    stevvik
    @stevvik
    Hi! I found that openroad does not understand the following assign structure in verilog, that was generated by yosys: assign { WORD_OUT[20], WORD_OUT[0] } = { WORD_OUT[23], WORD_OUT[10] }; He doesn't like {} brackets. I don't know is this issue resolved in openroad-flow.
    4 replies
    stevvik
    @stevvik

    I attempted to make the openroad stable version (tag 2021_03_09_stable) using docker (docker build -t openroad:2021_03_09_stable) and got a compilation errors like:

    /OpenROAD/src/rsz/src/Resizer.cc: In member function 'void rsz::Resizer::repairSetup(float)':
    /OpenROAD/src/rsz/src/Resizer.cc:2209:71: error: no matching function for call to 'sta::dbSta::vertexWorstSlackPath(sta::Vertex&, sta::MinMax, sta::PathRef&)'
    sta_->vertexWorstSlackPath(worst_vertex, MinMax::max(), worst_path);
    ^
    In file included from /OpenROAD/src/dbSta/src/../include/db_sta/dbSta.hh:40,
    from /OpenROAD/src/rsz/src/../include/rsz/Resizer.hh:44,
    from /OpenROAD/src/rsz/src/Resizer.cc:36:
    /OpenROAD/src/sta/include/sta/Sta.hh:958:11: note: candidate: 'sta::PathRef sta::Sta::vertexWorstSlackPath(sta::Vertex, const sta::MinMax)'
    PathRef vertexWorstSlackPath(Vertex *vertex,

    Any ideas what is the problem?

    Trefor Southwell
    @treforsouthwell
    Hi, I've just started to look at the OpenRoad project to see if it's something we could use inside Imagination Technologies. I'm afraid I became quickly blocked, we have legacy code in VHDL and then new code in SV. I found the SV code wouldn't read in yosys as it seems some constructs are unsupported (I did raise a ticket on the git hub). I also tried to read VHDL via the GHDL interface but that also wouldn't read our code and threw up errors. I suppose the question is are people building their RTL code from the start to work within the supported features of the tools?
    Matt Liberty
    @maliberty
    @treforsouthwell I think people are using sv2v for converting system verilog to plain verilog. I've heard of people using ghdl but I don't have any experience with it.
    Matt Liberty
    @maliberty
    @stevvik perhaps you need git submodule update --init --recursive
    Trefor Southwell
    @treforsouthwell

    @treforsouthwell I think people are using sv2v for converting system verilog to plain verilog. I've heard of people using ghdl but I don't have any experience with it.

    Thanks Matt, I'll give it a try.

    stevvik
    @stevvik
    @maliberty Matt, thank you very much! It helped! I'm not so familiar with git and now I see that I had to update STA submodule revision after reverting from openroad HEAD to tag version.
    mi-and-core
    @mi-and-core
    @treforsouthwell On the subject of open source sv2v translators: a long history and still wip. See https://antmicro.com/blog/2019/11/systemverilog-test-suite/ for a quick overview of the various open source translators (including Zacharys sv2v mentioned by Matt) and https://symbiflow.github.io/sv-tests-results/ for a recent comparison table. Two types of problems: (1) sometimes rarely used sv constructs are not translated as they should and (2) the sv standard is sometimes too vague and allows customers (e.g. Xilinx) to make their own interpretations. The first class of problems is solvable, but the second is not. See the githubs of the various translators for details.
    stevvik
    @stevvik
    Hi! After openroad flow installation in docker I have 4 images installed:
    openroad/flow-scripts
    openroad/centos7-builder-gcc
    openroad/yosys
    openroad/centos7-dev
    Are all other than openroad/flow-scripts images auxiliary and I can remove them?
    stevvik
    @stevvik
    In https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts#readme it is necessary to fix "This step will create a runner image tagged as openroad/flow." because the generated image name now is openroad/flow-scripts.
    Raynchowkw
    @Raynchowkw
    Are there sample scripts for reference to run openroad tool step by step for sample designs until detailed routing?
    Matt Liberty
    @maliberty
    @stevvik you can remove the other containers as they are used to build the software. You can submit a PR for an needed doc changes
    @Raynchowkw you can run any of the design in OpenROAD-flow-scripts. The smallest design is gcd.
    1 reply
    Raynchowkw
    @Raynchowkw

    I am a little new to git. I wonder what the correct steps of updating local code with repo are.

    @stevvik perhaps you need git submodule update --init --recursive

    Do we just only need to run this one? Or run

    git submodule update --init --recursive
    git submodule update --recursive --remote

    or git pull origin master --recurse-submodules?
    Thanks for any help.

    10 replies
    Raynchowkw
    @Raynchowkw
    Hi folks, I want to ask how to run make in the openroad-flow-scripts/flow for the same design again. Because I make some modification to the src code, I want to run the flow again. But I get "make: Nothing to be done for 'default'." I can only run make again after I change the design file in the configuration in Makefile.
    Do I need to manually delete all the directories it create for a design in order to run it again?
    8 replies
    Raynchowkw
    @Raynchowkw
    If someone is also interested in dumping out pin access points information in detailed routing done by TritonRoute, we can discuss and learn together.
    Raynchowkw
    @Raynchowkw
    I have a question about development.
    I want to fork or clone the openroad-flow-scripts repo to my own repo to make some changes in openroad/src.
    1. I find when I use "fork" in github web, submodule in my repo is not included (it's directed to page '404').
    2. I use git clone -recursive <openroad-flow-scripts> to clone code to my location; I use git remote origin upstream, git remote add origin <my_created_flow_script_repo.git> to let the local code point to my repo. However, the submodule directory 'tools/openroad' is also '404'.
      Now I have made some changes in /tools/openroad/src and I want to keep the changes in my repo. How to do this?
      Thanks.
    11 replies
    abh1_g0wda
    @abh1_g0wda:matrix.org
    [m]
    Hi Folks.. is it possible to dump GDS file using OpenRoad tool
    mi-and-core
    @mi-and-core
    yes, see https://github.com/The-OpenROAD-Project/OpenLane/tree/master/scripts/klayout/scrotLayout.sh (xvfb is used) and scrotLayout.py for details. The resolution (2048x2048) can be changed in scrotLayout.py.
    stefanottili
    @stefanottili
    AFAIK OpenRoad doesnt write gds directly. Use klayout or magic (OpenLane) to convert def to gds or better oasis. With klayout 0.27.1 both klayout and the strm2xxx buddies read lef,def,lefdef.map and gds or oasis to collect the leafcells.
    darshilmod
    @darshilmod
    Hey all! So I installed OpenROAD and ran the flow with the gcd circuit and everything works properly, but how do I make OpenROAD use my own verilog codes for the flow. I know that I will need a constraint file, verilog file and a config file. But where do I put these files? And are there any specific rules to be followed while writing a verilog code so that its more appropriate for OpenROAD?
    Arya Reais-Parsi
    @growly_gitlab
    Hello, does the flow work for non-sequential designs? i.e. purely combinational. It seems somewhat involved to pull CTS out of the scripts and it's unclear what additional assumptions I'm going to break. Thought I'd ask before I start hacking
    Matt Liberty
    @maliberty
    @darshilmod you can look at gcd as an example of the files needed. You could create a directory parallel to gcd in the appropriate designs/<platform> and add your files. You would set DESIGN_CONFIG to your new design.
    @growly_gitlab I don't think anything special is required. CTS should just be a no-op. That said I haven't actually tried it so you might hit some issues.
    dralabeing
    @dralabeing
    I ran make PDK after the initial setup; the make hangs here:
    Creating magic generation script to generate magic database files.
    Running magic to create magic database files.... Using the latest release from the efabless repo
    Zeeshan Rafique
    @zeeshanrafique23
    Amm yes that’s the issue @dralabeing
    You need to clone caravel_user_project_example then follow their README to make the PDK
    Arya Reais-Parsi
    @growly_gitlab
    @maliberty Turning it off causes lots of things to break. And by turning it off I mean uncommenting the commands or the tcl scripts in the Makefile. Is there a graceful way to do this?
    Patrick H Madden
    @profmadden
    I'm planning on integrating a few of my tools into the OpenROAD framework. Is the single binary still "the way" to do things? The docs look like it should be fairly straight forward. What I'm looking at is this: https://openroad.readthedocs.io/en/latest/contrib/OpenroadArch.html
    6 replies
    Arya Reais-Parsi
    @growly_gitlab
    update: to turn CTS off I had to comment out clock_tree_synthesis from the cts.tcl scrip, as well as the subsequent set_propagated_clock and repair_clock_nets commands (otherwise i got a hard crash with no useful error)
    1 reply
    dralabeing
    @dralabeing
    @zeeshanrafique23 thanks..I was able to run the flow with the current SDK-don't need caravel design.. had to update local repo and ensure I had the master build...then openlane ran through fine ...tested on spm
    Raynchowkw
    @Raynchowkw
    Hi all, I have a question in running build flow-script locally.
    When I run ./build_openraod.sh --local, it automatically check out a commit id of submodule (which may or may not be the HEAD of master). How can I make sure it checkout the latest stable state of master?
    3 replies
    Raynchowkw
    @Raynchowkw
    In TritonRoute, is FlexPA::genPattern corresponded to cluster-based pattern selection, and FlexPA::genInstPattern instance-based pattern generation? Is FlexPA::genPattern_commit doing the selection?
    lakshmi-sathi
    @lakshmi-sathi

    Hi everyone.

    I was trying to run the flow on a black parrot design and the flow terminates after routing step like so:
    "
    [WARNING GRT-0211] dbGcellGrid already exists in db. Clearing existing dbGCellGrid
    [ERROR GRT-0118] Routing congestion too high.
    Error: fastroute.tcl, 7 GRT-0118
    1:14:18elapsed 99%CPU 5545724memKB
    make: * [results/sky130hd/bp/base/route.guide] Error 1
    "

    A utilisation of 12% is shown after the floorplan step.
    The design was borrowed from the 45nm examples and I have given 3 times the original values for die area and core area, in the config.mk:
    "
    These values must be multiples of placement site
    x=0.19 y=1.4
    export DIE_AREA = 0 0 6600.03 6598.2
    export CORE_AREA = 30.21 33.6 6569.82 6568.8

    export PLACE_DENSITY = 0.20
    "

    I have tried both low and high place densities. When it's too low, the flow terminates and suggests going for place density of 0.06. Densities larger than that gives this congestion error.

    Can someone give me an idea what I may be missing?

    2 replies
    Attaching a screenshot.
    image.png
    vijayank88
    @vijayank88
    Hi All,
    I am new to open road flow.. Installed using below steps; and facing below error. Help someone how to fix the issue.
    1. Clone the OpenROAD-flow repository
      git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow.git
      cd OpenROAD-flow
    2. Ensure the docker daemon is running and docker is in your PATH, then run
      the docker build:
      ./build_openroad.sh
    3. Start an interactive shell in a docker container using your user credentials
      docker run -it -u $(id -u ${USER}):$(id -g ${USER}) openroad/flow bash
    4. Update your container environment
      ```
      source ./setup_env.sh

    Try example run steps:

    $ source ./setup_env.sh
    OPENROAD: /home/arjun/OPEN_ROAD_FLOW/OpenROAD-flow/tools/OpenROAD
    $ ls
    build_openroad.sh Dockerfile flow jenkins LICENSE_BUILD_RUN_SCRIPTS README.md setup_env.sh tools
    $ cd flow/
    /flow$ make
    [INFO][FLOW] Using platform directory ./platforms/nangate45
    ./util/markDontUse.py -p "FILLCELL_X1 AOI211_X1 OAI211_X1" -i platforms/nangate45/lib/NangateOpenCellLibrary_typical.lib -o objects/nangate45/tinyRocket/base/lib/NangateOpenCellLibrary_typical.lib
    Traceback (most recent call last):
    File "./util/markDontUse.py", line 4, in <module>
    import gzip
    File "/usr/local/lib/python3.5/gzip.py", line 9, in <module>
    import zlib
    ImportError: No module named 'zlib'
    make: [Makefile:248: objects/nangate45/tinyRocket/base/lib/NangateOpenCellLibrary_typical.lib] Error 1
    /flow$ ls
    designs Makefile objects platforms README.md scripts test util
    /flow$ make DESIGN_CONFIG=designs/nangate45/swerv.mk
    [INFO][FLOW] Using platform directory ./platforms/
    Makefile:148: platforms//config.mk: No such file or directory
    make:
    No rule to make target 'platforms//config.mk'. Stop.
    /flow$
    darshilmod
    @darshilmod

    @darshilmod you can look at gcd as an example of the files needed. You could create a directory parallel to gcd in the appropriate designs/<platform> and add your files. You would set DESIGN_CONFIG to your new design.

    Yes i did this and its all working properly, thank you

    dralabeing
    @dralabeing

    @vijayank88 Welcome to OpenROAD!

    Did you try running swerv using a local build first? This goes through clean
    I had trouble with the docker build with the latest git image. Also, the DESIGN_CONFIG path setting is incorrect. should be designs/nangate45/swerv/config.mk.
    I will check the other errors you are seeing.

    In the meanwhile please try running your tests without the docker, building locally. Also, be sure to git clone the latest image.

    dralabeing
    @dralabeing
    @vijayank88 The issue is that you are using the Docker image "openroad/flow" which is from 2yrs ago.
    The image created by the build_openroad.sh script is named "openroad/flow-scripts".
    Please use the latest build and the updated documentation and try again
    vijayank88
    @vijayank88
    Thanks for the help. I will re-check at my end again.
    abh1_g0wda
    @abh1_g0wda:matrix.org
    [m]

    Hi All... I am trying to perform timing analysis of global routing Vs detailed routing but the OpenRoad tool is dumping exactly the same timing report(max and min) in both scenarios. Can anyone please help me out

    SCRIPT SNIPPET:
    set_routing_layers -signal $global_routing_layers -clock $global_routing_clock_layersglobal_route -guide_file $route_guide -overflow_iterations 100

    estimate_parasitics -global_routing
    report_checks -path_delay min_max -format full_clock_expanded -fields {input_pin slew capacitance} -digits 3
    report_worst_slack -min
    report_worst_slack -max
    report_tns
    set tr_params [make_tr_params $route_guide 1]
    detailed_route -param $tr_params

    report_checks -path_delay min_max -format full_clock_expanded -fields {input_pin slew capacitance} -digits 3
    report_worst_slack -min
    report_worst_slack -max
    report_tns

    Any command that I might be missing in the script??