Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Net propagation detected two nets are shorted #3

Open
nbingham1 opened this issue Apr 16, 2024 · 1 comment
Open

Net propagation detected two nets are shorted #3

nbingham1 opened this issue Apr 16, 2024 · 1 comment

Comments

@nbingham1
Copy link
Member

nbingham1 commented Apr 16, 2024

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

@nbingham1
Copy link
Member Author

nbingham1 commented Apr 17, 2024

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

After improving the rect export functionality, it looks like I've identified a simpler bug

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 upper metal 1 layer at (100,25)?
WARNING: [g0n_0x0<>] Missing upper metal 1 layer at (100,238)?
WARNING: [g0n_0x0<>] Missing upper metal 1 layer at (100,25)?
WARNING: [g0n_0x0<>] Missing upper metal 1 layer at (100,238)?
WARNING: [g0n_0x0<>] Missing upper metal 1 layer at (100,25)?
WARNING: [g0n_0x0<>] Missing upper metal 1 layer at (100,238)?
WARNING: g0n_0x0<>: center diffusion spacing asjusted (orig: 54; .rect: -297); using .rect file value
interact> quit

There may be a < or > where there should be a <= or >=

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant