asyncvlsi / actflow Goto Github PK
View Code? Open in Web Editor NEWTop-level repository for the ACT EDA flow
Home Page: https://avlsi.csl.yale.edu/act/
License: GNU General Public License v2.0
Top-level repository for the ACT EDA flow
Home Page: https://avlsi.csl.yale.edu/act/
License: GNU General Public License v2.0
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 -gds /opt/cad/conf/sky130/cells/rect/_0_0cell_0_0g0n_0x0.rect
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.