Coder Social home page Coder Social logo

asyncvlsi / actflow Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 4.0 122 KB

Top-level repository for the ACT EDA flow

Home Page: https://avlsi.csl.yale.edu/act/

License: GNU General Public License v2.0

Shell 100.00%
act asynchronous asynchronous-circuits asynchronous-vlsi cad eda self-timed vlsi

actflow's People

Contributors

rmanohar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

actflow's Issues

Net propagation detected two nets are shorted

Observed behavior
Act believes that there are shorted signals when there arent when observed in layout

Expected behavior
Act should accept the rect file and be prepared for placement.

Potential complications
I'm not sure if this is the correct format for the .rect files. The documentation regarding the layer names isn't very clear. It may also be that ACT expects the pull-up stack to be on top while floret puts the pull-down stack on top. This could be fixed fairly easily, but it also shouldn't matter from ACT's perspective.

Files

prs2net.conf.txt
layout.conf.txt

/opt/cad/conf/sky130/cells/rect/_0_0cell_0_0g0n_0x0.rect

bbox -73 -61 207 323
inrect GND m1 0 213 34 297
inrect Vdd m1 0 0 34 84
inrect in[0] m1 0 128 66 162
outrect out m2 88 190 146 236
rect # ndiff -12 213 146 297
rect # nwell -73 -61 207 145
rect # pdiff -12 0 146 84
rect GND ndc 0 238 34 272
rect GND pc 0 238 34 272
rect Vdd pc 0 25 34 59
rect Vdd pdc 0 25 34 59
rect in[0] ndc 16 128 50 162
rect in[0] pc 16 128 50 162
rect in[0] polysilicon 0 118 66 172
rect in[0] polysilicon 52 -26 82 323
rect # svtnfet 52 213 82 297
rect # svtpfet 52 0 82 84
rect out m1 100 0 134 297
rect out m1 88 196 146 230
rect out mcon 100 196 134 230
rect out ndc 100 196 134 230
rect out ndc 100 238 134 272
rect out pc 100 238 134 272
rect out pc 100 25 134 59
rect out pdc 100 25 134 59

test.act

defproc testbench(bool a, b)
{
	preal n1 = 6.0;

	prs
	{
		a<n1> -> b-
		~a<n1> -> b+
	}
}

bool a, b;
testbench dut(a, b);

interact.conf

act:read "test.act"
act:merge "cells.act"
act:expand
act:top testbench
ckt:cell-map
ckt:map
ckt:cell-save "cells.act"
ckt:save-sp "cells.spi"
load-scm "phydb.scm"
phydb:create 1.8 1  "output.lef"
$ touch cells.act
$ interact -ref=1 -Tsky130
interact> source interact.conf
WARNING: Tile::addRect() failed; inconsistent tile types being merged
WARNING: Tile::addRect() failed; inconsistent tile types being merged
WARNING: [g0n_0x0<>] Missing lower base layer at (100,196)?
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: GND; net2: out
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: Vdd; net2: out
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: out; net2: GND
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: out; net2: Vdd
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: GND; net2: out
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: Vdd; net2: out
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: out; net2: GND
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: out; net2: Vdd
WARNING: [g0n_0x0<>] Missing lower base layer at (100,196)?
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: GND; net2: out
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: Vdd; net2: out
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: out; net2: GND
WARNING: [g0n_0x0<>] Net propagation detected two nets are shorted.
	net1: out; net2: Vdd
WARNING: [g0n_0x0<>] Missing lower base layer at (100,196)?
WARNING: g0n_0x0<>: center diffusion spacing asjusted (orig: 54; .rect: -297); using .rect file value

rect script

rect -gds /opt/cad/conf/sky130/cells/rect/_0_0cell_0_0g0n_0x0.rect

Screenshot from 2024-04-16 15-27-17

preal rule sizing breaks ACT's ability to map cells

Steps to Reproduce

$ touch cells.act
$ interact -ref=1 -Tsky130
interact> source interact.conf
WARNING: new cells generated; please update your cell library.
(Use ckt:cell-save to see the new cells.) New cell names are:
   g0n_0x0
interact> quit
$ interact -ref=1 -Tsky130
interact> source interact.conf
WARNING: new cells generated; please update your cell library.
(Use ckt:cell-save to see the new cells.) New cell names are:
   g0n_0x1
interact> quit

test.act

defproc testbench(bool a, b)
{
	preal n1 = 6.0;

	prs
	{
		a<n1> -> b-
		~a<n1> -> b+
	}
}

bool a, b;
testbench dut(a, b);

interact.conf

act:read "test.act"
act:merge "cells.act"
act:expand
act:top testbench
ckt:cell-map
ckt:map
ckt:cell-save "cells.act"
ckt:save-sp "cells.spi"
phydb:init

Expected behavior
interact is able to recognize same cells

Suspected Reason
The cell looks to be saved with integer sizing parameters whereas it was originally generated with real sizing parameters.

export defcell g0n_0x0 (bool? in[1]; bool! out)
{
   prs {
   in[0]<6> -> out-
   ~in[0]<6> -> out+
   }
}

Versions
Most recent commit actflow (6ba25cf)
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 22.04.4 LTS
Release: 22.04
Codename: jammy

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.