[libre-riscv-dev] Routing a first nmigen disign with Corilis

Jean-Paul Chaput Jean-Paul.Chaput at lip6.fr
Mon Feb 10 20:35:33 GMT 2020


On Mon, 2020-02-10 at 16:38 +0000, Luke Kenneth Casson Leighton wrote:
> On Mon, Feb 10, 2020 at 4:05 PM Jean-Paul Chaput
> <Jean-Paul.Chaput at lip6.fr> wrote:
> > 
> > 
> > Hello Tobias,
> > 
> > I'm a little surprised that you mention Mauka, Knik & Kite, as they should
> > no longer in the doc. They are replaced by Etesian/Coloquinte and Katana.
> > 
> > Did you use the "devel" branch ? If not, please do so. The "master" is
> > terribly late (and the new repository is https://gitlab.lip6.fr/jpc/coriolis.git)
> 
> we've got this far:
> https://libre-riscv.org/HDL_workflow/coriolis2/
> and it does include "git checkout devel"
> 
> tobias did you follow that instruction?
> 
> > Alongside with that, and my apologies for the doc to be unclear, you
> > will need Alliance and alliance-check-toolkit which are:
> > 
> > https://gitlab.lip6.fr/jpc/alliance.git
> > https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git
> 
> i will add these to
> https://libre-riscv.org/HDL_workflow/coriolis2/
> 
> > Alliance provide additional CAD tools and some cells libraries.
> > Alliance Check Toolkit gives you examples and a complete Makefile
> > architecture to automate designs.
> > 
> > You can extract from the Dockerfile in bootstrap/docker/debian9
> > the scripts to install & rebuild in your schroot environement.
> > (also take allianceInstaller.sh and socInstaller.py).
> 
> 
> 
> > Basically you are correct, as you have Verilog you can directly
> > enter Yosys (providing a cell library under the form of ".lib").
> > Yosys do not "convert" your design, it synthesize it using the
> > standard cells as building block. Then you can place (Etesian)
> > then route (Katana). You will get a *symbolic* layout that is
> > to be converted in real, but that operation needs to acces the
> > technology which is under NDA, so it is delegated to Staf
> > Verhaegen.
> 
> that bit we will do later: the goal here is to do something - anything
> - that allows us to have some reasonably accurate time-estimates for
> place-and-route of libresoc modules (any libresoc modules) once
> "initial hurdles are completed and documented".
> 
> so we just need "something" - not under NDA - to get started.  the
> problem is, we don't know what we don't know, so don't know how to
> ask, or find what we don't know we need to ask or not ask, if you know
> what i mean :)
> 
> is there a chip - any chip - any project template, any project example
> - which "works", from start to finish (excluding NDA'd tools), using
> any geometry (180nm is better), that we can look at, compile
> unmodified, so that we can document how to do that?  then, from there,
> move on to looking at replacing its verilog code with our own
> (actually .il files from yosys more like, but that's another story)?

  You must create a configuration for alliance-check-toolkit:

    alliance-check-toolkit/etc/mk/users.d/user-LOGIN.mk

    where you define where the various tools are installed
    (look in other ones to have an idea).

  You can try the ARM in alliance-check-toolkit:

    > cd alliance-check-toolkit/benchsARM/cmos/
    > make lvx

    Should take about five minutes. It's symbolic, but should be
    a configuration compatible with 180nm. To actually see the
    results:

    > make cgt

    Then "File -> Open", "arm_chip_cts_r"

    To have a very rough approximation, you can say that one lambda
    equal 180nm.

> i'd expect such a chip to be in the alliance-check-toolkit however we
> don't even know what we're looking at in order to know which bits we
> need, let alone know what to do or how to run them.
> 
> we're *literally* completely in the dark, here, having never done this
> before - at all - so unless there's a specific tutorial which says, to
> make a chip layout do this: "step 1: install these tools.  step 2: get
> this project repo.  step 3: cd to this directory.  step 4: run make or
> ./compile-place-and-route.sh" we're absolutely lost.
> 
> thx jean-paul, and apologies for not knowing where to begin, here.

  No problem. You're welcome.

  The doc is mostly for people who already have a background in ASICs,
  I will try to patch something from my lecture in VLSI to help people
  to orient themselves.

  The up-to-date documentation is supplied directly in the Coriolis
  repository:

     coriolis/documentation/output/index.html

     The links toward the doxygen doc will be invalid a this point,
     but everython else works.

   After installation, it is put in:

     coriolis-2.x/Linux.x86_64/Release.Shared/install/share/doc/coriolis2/en/html/index.html

_______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
-- 

      .-.     J e a n - P a u l   C h a p u t  /  Administrateur Systeme
      /v\     Jean-Paul.Chaput at lip6.fr
    /(___)\   work: (33) 01.44.27.53.99              
     ^^ ^^    cell:      06.66.25.35.55   home: 09.65.29.83.38

    U P M C   Universite Pierre & Marie Curie
    L I P 6   Laboratoire d'Informatique de Paris VI
    S o C     System On Chip


More information about the libre-riscv-dev mailing list