perf optimization in graph drawing
This commit is contained in:
parent
5dd3f5c15d
commit
2ec66255e3
|
|
@ -1499,7 +1499,7 @@ void read_binary_block(FILE *fd)
|
||||||
/* read buffer */
|
/* read buffer */
|
||||||
tmp = my_calloc(1405, xctx->nvars, sizeof(double *));
|
tmp = my_calloc(1405, xctx->nvars, sizeof(double *));
|
||||||
/* allocate storage for binary block */
|
/* allocate storage for binary block */
|
||||||
if(!xctx->values) xctx->values = my_calloc(118, xctx->nvars, sizeof(RAW_FLOAT *));
|
if(!xctx->values) xctx->values = my_calloc(118, xctx->nvars, sizeof(SPICE_DATA *));
|
||||||
for(p = 0 ; p < xctx->nvars; p++) {
|
for(p = 0 ; p < xctx->nvars; p++) {
|
||||||
my_realloc(372, &xctx->values[p], (size + xctx->npoints[xctx->datasets]) * sizeof(double));
|
my_realloc(372, &xctx->values[p], (size + xctx->npoints[xctx->datasets]) * sizeof(double));
|
||||||
}
|
}
|
||||||
|
|
@ -1793,10 +1793,12 @@ static void get_y_points(int v, int first, int last, double cy, double dy, doubl
|
||||||
int p;
|
int p;
|
||||||
double yy;
|
double yy;
|
||||||
int poly_npoints = 0;
|
int poly_npoints = 0;
|
||||||
|
double s1 = 1.0 / n_nodes;
|
||||||
|
double s2 = s1 * .66;
|
||||||
for(p = first ; p < last; p++) {
|
for(p = first ; p < last; p++) {
|
||||||
yy = xctx->values[v][p];
|
yy = xctx->values[v][p];
|
||||||
if(digital) {
|
if(digital) {
|
||||||
yy = ydelta * wcnt / n_nodes + yy / n_nodes/1.5;
|
yy = ydelta * wcnt * s1 + yy *s2;
|
||||||
}
|
}
|
||||||
/* Build poly y array. Translate from graph coordinates to {x1,y1} - {x2, y2} world. */
|
/* Build poly y array. Translate from graph coordinates to {x1,y1} - {x2, y2} world. */
|
||||||
yarr[poly_npoints] = W_Y(yy);
|
yarr[poly_npoints] = W_Y(yy);
|
||||||
|
|
|
||||||
|
|
@ -332,7 +332,7 @@ do { \
|
||||||
#define INT_BUS_WIDTH(x) ( (int)( (BUS_WIDTH) * (x) ) == 0 ? 1 : (int)( (BUS_WIDTH) * (x) ) )
|
#define INT_BUS_WIDTH(x) ( (int)( (BUS_WIDTH) * (x) ) == 0 ? 1 : (int)( (BUS_WIDTH) * (x) ) )
|
||||||
|
|
||||||
/* set do double if you need more precision at the expense of memory */
|
/* set do double if you need more precision at the expense of memory */
|
||||||
#define RAW_FLOAT float
|
#define SPICE_DATA float
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
@ -693,7 +693,7 @@ typedef struct {
|
||||||
int undo_initialized;
|
int undo_initialized;
|
||||||
/* read raw files (draw.c) */
|
/* read raw files (draw.c) */
|
||||||
char **names;
|
char **names;
|
||||||
RAW_FLOAT **values;
|
SPICE_DATA **values;
|
||||||
int nvars;
|
int nvars;
|
||||||
int *npoints;
|
int *npoints;
|
||||||
int datasets;
|
int datasets;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
v {xschem version=2.9.9 file_version=1.2 }
|
v {xschem version=3.0.0 file_version=1.2 }
|
||||||
G {}
|
G {}
|
||||||
K {}
|
K {}
|
||||||
V {}
|
V {}
|
||||||
|
|
@ -6,6 +6,20 @@ S {}
|
||||||
E {}
|
E {}
|
||||||
L 15 270 -460 340 -390 {}
|
L 15 270 -460 340 -390 {}
|
||||||
L 15 270 -330 340 -390 {}
|
L 15 270 -330 340 -390 {}
|
||||||
|
B 2 1520 -750 2440 -70 {flags=1
|
||||||
|
y1=-51.8382
|
||||||
|
y2=48.1618
|
||||||
|
divy=4
|
||||||
|
subdivy=4
|
||||||
|
x1=0.0157884
|
||||||
|
x2=0.0164453
|
||||||
|
divx=8
|
||||||
|
subdivx=1
|
||||||
|
node="tcleval(v($\{path\}ga) v($\{path\}gb) v($\{path\}outi)) v(vnn))"
|
||||||
|
color="7 8 10 11 12 13 14 15 16 17"
|
||||||
|
dataset=0
|
||||||
|
unitx=m
|
||||||
|
}
|
||||||
T {ANALOG AUDIO AMPLIFIER
|
T {ANALOG AUDIO AMPLIFIER
|
||||||
N-Channel only power stage} 430 -270 0 0 0.5 0.5 {layer=8}
|
N-Channel only power stage} 430 -270 0 0 0.5 0.5 {layer=8}
|
||||||
N 180 -500 180 -470 {lab=E9}
|
N 180 -500 180 -470 {lab=E9}
|
||||||
|
|
@ -421,3 +435,4 @@ C {launcher.sym} 770 -150 0 0 {name=h4
|
||||||
descr="View Raw file"
|
descr="View Raw file"
|
||||||
tclcommand="textwindow $netlist_dir/[file tail [file rootname [ xschem get schname 0 ] ] ].raw"
|
tclcommand="textwindow $netlist_dir/[file tail [file rootname [ xschem get schname 0 ] ] ].raw"
|
||||||
}
|
}
|
||||||
|
C {spice_probe.sym} 790 -600 0 0 {name=p60 analysis=tran voltage=-0.1364}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,8 @@ L 8 810 -610 830 -610 {}
|
||||||
B 2 1110 -950 1530 -800 {flags=1
|
B 2 1110 -950 1530 -800 {flags=1
|
||||||
y1 = 0
|
y1 = 0
|
||||||
y2 = 20
|
y2 = 20
|
||||||
divy = 10
|
divy = 5
|
||||||
|
subdivy=1
|
||||||
x1=0
|
x1=0
|
||||||
x2=0.0002
|
x2=0.0002
|
||||||
divx=9
|
divx=9
|
||||||
|
|
@ -50,7 +51,8 @@ color="11 18" unitx=m subdivx=4}
|
||||||
B 2 1110 -790 1530 -660 {flags=1
|
B 2 1110 -790 1530 -660 {flags=1
|
||||||
y1 = 0
|
y1 = 0
|
||||||
y2 = 20
|
y2 = 20
|
||||||
divy = 10
|
divy = 6
|
||||||
|
subdivy=1
|
||||||
x1=0
|
x1=0
|
||||||
x2=0.0002
|
x2=0.0002
|
||||||
divx=8
|
divx=8
|
||||||
|
|
@ -58,7 +60,8 @@ node="v(panel)" unitx=m}
|
||||||
B 2 1110 -650 1530 -520 {flags=1
|
B 2 1110 -650 1530 -520 {flags=1
|
||||||
y1 = 0
|
y1 = 0
|
||||||
y2 = 4
|
y2 = 4
|
||||||
divy = 8
|
divy = 4
|
||||||
|
subdivy=1
|
||||||
x1=0
|
x1=0
|
||||||
x2=0.0002
|
x2=0.0002
|
||||||
divx=8
|
divx=8
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,8 @@ B 2 1840 -360 2890 -280 {flags=1
|
||||||
y1 = -0.0039
|
y1 = -0.0039
|
||||||
y2 = 0.87
|
y2 = 0.87
|
||||||
divy = 1
|
divy = 1
|
||||||
x1=1.28096e-07
|
x1=1.26223e-07
|
||||||
x2=1.98813e-07 divx=10
|
x2=2.06222e-07 divx=10
|
||||||
node="
|
node="
|
||||||
v(ldbl[0]) v(ldbl[16]) v(ldbl[32])
|
v(ldbl[0]) v(ldbl[16]) v(ldbl[32])
|
||||||
v(ldbl[1]) v(ldbl[17]) v(ldbl[33])
|
v(ldbl[1]) v(ldbl[17]) v(ldbl[33])
|
||||||
|
|
@ -43,9 +43,10 @@ B 2 1840 -920 2890 -710 {flags=1
|
||||||
digital=0
|
digital=0
|
||||||
y1 = -0.00091
|
y1 = -0.00091
|
||||||
y2 = 1.5
|
y2 = 1.5
|
||||||
|
subdivy=4
|
||||||
divy = 4
|
divy = 4
|
||||||
x1=1.28096e-07
|
x1=1.26223e-07
|
||||||
x2=1.98813e-07
|
x2=2.06222e-07
|
||||||
divx=10
|
divx=10
|
||||||
subdivx=4
|
subdivx=4
|
||||||
node="v(ldcp) v(ldyms[4]) v(ldyms[5]) v(ldyms[6]) v(ldyms[7])"
|
node="v(ldcp) v(ldyms[4]) v(ldyms[5]) v(ldyms[6]) v(ldyms[7])"
|
||||||
|
|
@ -57,8 +58,8 @@ y2 = 1.6
|
||||||
divy = 3
|
divy = 3
|
||||||
subdivy=1
|
subdivy=1
|
||||||
subdivx = 4
|
subdivx = 4
|
||||||
x1=1.28096e-07
|
x1=1.26223e-07
|
||||||
x2=1.98813e-07 divx=10
|
x2=2.06222e-07 divx=10
|
||||||
node="
|
node="
|
||||||
v(ldcp)
|
v(ldcp)
|
||||||
v(ldwl[0]) v(ldwl[1]) v(ldwl[2]) v(ldwl[3])
|
v(ldwl[0]) v(ldwl[1]) v(ldwl[2]) v(ldwl[3])
|
||||||
|
|
@ -72,8 +73,8 @@ B 2 1840 -120 2890 -40 {flags=1
|
||||||
y1 = -0.021
|
y1 = -0.021
|
||||||
y2 = 0.9
|
y2 = 0.9
|
||||||
divy = 1
|
divy = 1
|
||||||
x1=1.28096e-07
|
x1=1.26223e-07
|
||||||
x2=1.98813e-07 divx=10
|
x2=2.06222e-07 divx=10
|
||||||
node="v(ldymsref)"
|
node="v(ldymsref)"
|
||||||
color=3 unitx=n subdivy=4}
|
color=3 unitx=n subdivy=4}
|
||||||
B 2 1840 -710 2890 -360 {flags=1
|
B 2 1840 -710 2890 -360 {flags=1
|
||||||
|
|
@ -81,8 +82,8 @@ digital=1
|
||||||
y1 = 0
|
y1 = 0
|
||||||
y2 = 1.5
|
y2 = 1.5
|
||||||
divy = 1
|
divy = 1
|
||||||
x1=1.28096e-07
|
x1=1.26223e-07
|
||||||
x2=1.98813e-07 divx=10
|
x2=2.06222e-07 divx=10
|
||||||
node="v(ldcp) v(lden) v(ldprech)
|
node="v(ldcp) v(lden) v(ldprech)
|
||||||
---
|
---
|
||||||
v(ldl1x[0]) v(ldl1x[1]) v(ldl1x[2]) v(ldl1x[3])
|
v(ldl1x[0]) v(ldl1x[1]) v(ldl1x[2]) v(ldl1x[3])
|
||||||
|
|
@ -94,6 +95,60 @@ color=4
|
||||||
xcolor="5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3 4 5 6"
|
xcolor="5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3 4 5 6"
|
||||||
unitx=n
|
unitx=n
|
||||||
}
|
}
|
||||||
|
B 2 1840 -1030 2890 -920 {flags=1
|
||||||
|
y1 = 0
|
||||||
|
y2 = 2
|
||||||
|
divy = 2
|
||||||
|
x1=1.26223e-07
|
||||||
|
x2=2.06222e-07
|
||||||
|
divx=8
|
||||||
|
comm="example of using tcl to replace the path
|
||||||
|
with $path variable automatically"
|
||||||
|
node="tcleval(v(xctrl.ldcp_ref) v(xctrl.ldprechref))"
|
||||||
|
color="16 11 15"
|
||||||
|
}
|
||||||
|
B 2 1840 -1120 2890 -1030 {flags=1
|
||||||
|
y1 = 0
|
||||||
|
y2 = 2
|
||||||
|
divy = 2
|
||||||
|
x1=1.26223e-07
|
||||||
|
x2=2.06222e-07
|
||||||
|
divx=8
|
||||||
|
comm="example of using tcl to replace the path
|
||||||
|
with $path variable automatically"
|
||||||
|
node="tcleval(v(xctrl.ldcp_ref) v(xctrl.ldcpb))"
|
||||||
|
color="16 11 15"
|
||||||
|
}
|
||||||
|
B 2 1840 -1210 2890 -1120 {flags=1
|
||||||
|
y1 = 0
|
||||||
|
y2 = 2
|
||||||
|
divy = 2
|
||||||
|
x1=1.26223e-07
|
||||||
|
x2=2.06222e-07
|
||||||
|
divx=8
|
||||||
|
comm="example of using tcl to replace the path
|
||||||
|
with $path variable automatically"
|
||||||
|
node="tcleval(v(xctrl.ldcp_ref) v(xctrl.ldouti) v(xctrl.ldoutib))"
|
||||||
|
color="16 11 15"
|
||||||
|
}
|
||||||
|
B 2 1840 -1500 2890 -1320 {flags=1
|
||||||
|
y1 = 0
|
||||||
|
y2 = 2
|
||||||
|
divy = 4
|
||||||
|
x1=1.26223e-07
|
||||||
|
x2=2.06222e-07
|
||||||
|
divx=8
|
||||||
|
node="v(xsa[0].ldqi) v(xsa[0].ldqib) v(xsa[0].ldsali)"
|
||||||
|
color="16 11 15"}
|
||||||
|
B 2 1840 -1320 2890 -1210 {flags=1
|
||||||
|
y1 = 0
|
||||||
|
y2 = 2
|
||||||
|
divy = 2
|
||||||
|
x1=1.26223e-07
|
||||||
|
x2=2.06222e-07
|
||||||
|
divx=8
|
||||||
|
node="v(xsa[0].ldqiii) v(xsa[0].ldqii) v(xsa[0].ldsali)"
|
||||||
|
color="16 11 15"}
|
||||||
B 7 950 -250 980 -80 {}
|
B 7 950 -250 980 -80 {}
|
||||||
B 7 1150 -250 1180 -80 {}
|
B 7 1150 -250 1180 -80 {}
|
||||||
B 21 10 -970 240 -750 {}
|
B 21 10 -970 240 -750 {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue