Giter Club home page Giter Club logo

lip6 / alliance-check-toolkit Goto Github PK

View Code? Open in Web Editor NEW
6.0 10.0 2.0 294.45 MB

Tutorial, examples and regression tests for Coriolis & Alliance (LIP6)

Home Page: https://coriolis.lip6.fr

Makefile 0.38% Python 78.70% Verilog 9.83% VHDL 1.01% Shell 0.10% Tcl 0.13% TeX 0.04% Prolog 9.22% C 0.21% SourcePawn 0.01% Scala 0.01% SuperCollider 0.01% Lex 0.02% Yacc 0.04% Standard ML 0.01% Perl 0.27% Awk 0.04% C++ 0.01% Ruby 0.01%
vlsi-design

alliance-check-toolkit's Introduction

Alliance Check Toolkit: Tests and Benchmarks for Alliance and Coriolis

This repository contains examples, benchmarks and tests for the Coriolis VLSI toolchain and its older counterpart Alliance.

It contains all kinds of designs using Coriolis for physical design (typically placement and routing).

For any question, you may contact the team on Matrix.

Installation

You should clone the repository in ~/coriolis-2.x/src/, and install Coriolis and Alliance.

# Clone the repositories
mkdir -p ~/coriolis-2.x/src/
git clone https://github.com/lip6/coriolis.git
git clone https://github.com/lip6/alliance.git
git clone https://github.com/lip6/alliance-check-toolkit.git

# Install Alliance and Coriolis
cd coriolis
bootstrap/allianceInstaller.sh
make install

Example design

As an example, you can look at the Arlet6502 design in benchs/arlet6502/cmos. It uses pydoit to define build steps in dodo.py.

You can build it with:

# Source Coriolis (adapt to your build path)
eval `~/coriolis-2.x/Linux.x86_64/Release.Shared/install/etc/coriolis2/coriolisEnv.py`

cd benchs/arlet6502/cmos
# Cleaning step
doit clean_flow
# Run each step individually
doit yosys
doit pnr
# You can just run this one, as it depends on the others
doit lvx

It's often nicer to use the viewer and see your design:

doit cgt
# Go to Tools->Python Script
# Write "doDesign"
# Enjoy

alliance-check-toolkit's People

Contributors

coloquinte avatar fatsie avatar fatsiefs avatar franckwajsburt avatar ip-arch avatar jpc-lip6 avatar mmlouerat avatar pshimizu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alliance-check-toolkit's Issues

nsxlib2/sff1r_x4 extend NITE

On some designs, NTIE did not connect between cells. So we have to extend it to the out of the border to connect with the next cell.

RISC-V SG13G2 layout example

We cannot execute IHP's DRC deck in batch mode, therefore, you may have to run it with GUI.
With klayout DRC, there are many coverage errors.
Usually, these errors will be treated by the foundry or layout tools.
Then I left them untouched.

Support Skywater130 with nsxlib2

Modify cells to support skywater130.
Original nsxlib2 uses symbolic distance for poly-cont, poly-poly as 2 lambda.
But skywater 130 requires 150 nm poly width and 250nm for poly-cont, 210m for poly-poly.
It may induce larger layout then I changed symbolic layout of nsxlib2 as poly-cont , poly-poly as 3 lambda.

nsxlib2 GF180mcu support

Provide the design kit for GF180mcu for nsxlib2.
This design does not have the Deep NWELL and surrounding guard rings.
These are a waste of space if we have them on each cell.
Then chip designers should have their own DNWELL and guard rings before taping out.

IHP SG13G2 suport on nsxilb2

Add an RDS file for the sg13g2 and slightly tuned layout of a4_x2 and sff1r_x4.
Since the ACTIVE rule the ACT.b is not cleared with the original layouts, I had to change them.

This implementation requires the latest Alliance version to designate the physical grid as 0.001.

i8080A compatible CPU for symbolic layout test

Only the core of Midway,I extracted i8080A compatible CPU core to test the skywater 130 symbolic layout.
It uses nsxlib2 for synthesizing the CPU with sff1r_x4 which is flip-flop with reset.

Adapt dks to sg13g2

I copied most files from sky130_nsx2.
Now I changed the parameters in sg13g2_nsx2 to adapt for the value in sg13g2.

ANanlog Pareto Front

I launched the layout generation in benchs/analog
Ota/350 or gmChamla
in both cases I ask to update possible dimensions,
in both cases I see the SlicingTree's Pareto front,
the different sizes are also displayed in the Slicing Tree's possible dimension window,
if I click on one instance, the new placement is displayed in cgt,
BUT if I click on one point of the Slicing Tree's Pareto window, nothing is done.
Could you please fix this issue?
Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.