add command xschem tab_list, returns window pathname and associated filename loaded
This commit is contained in:
parent
1ea1e835ae
commit
0244dc5e69
|
|
@ -484,6 +484,8 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li><kbd> abort_operation</kbd></li><pre>
|
||||
Resets UI state, unselect all and abort any pending operation </pre>
|
||||
<li><kbd> add_symbol_pin</kbd></li><pre>
|
||||
|
|
@ -972,7 +974,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
|||
<li><kbd> resolved_net [net]</kbd></li><pre>
|
||||
if 'net' is given return its topmost full hierarchy name
|
||||
else returns the topmost full hierarchy name of selected net/pin/label.
|
||||
Nets connected to I/O ports are mapped to upper level recursively</pre>
|
||||
Nets connected to I/O ports are mapped to upper level recursively </pre>
|
||||
<li><kbd> rotate</kbd></li><pre>
|
||||
Rotate selected objects around their centers </pre>
|
||||
<li><kbd> save</kbd></li><pre>
|
||||
|
|
@ -1103,6 +1105,8 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
|||
<li><kbd> symbols [n]</kbd></li><pre>
|
||||
if 'n' given list symbol with name or number 'n', else
|
||||
list all used symbols </pre>
|
||||
<li><kbd> tab_list</kbd></li><pre>
|
||||
list all windows / tabs with window pathname and associated filename </pre>
|
||||
<li><kbd> table_read [table_file]</kbd></li><pre>
|
||||
If a simulation raw file is lodaded unload from memory.
|
||||
else read a tabular file 'table_file'
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
#define CAD_SPICE_NETLIST 1
|
||||
|
||||
|
||||
static int dbg_var = 0;
|
||||
static int parselabel_debug = 0;
|
||||
#include "xschem.h"
|
||||
|
||||
/*
|
||||
|
|
@ -97,7 +97,7 @@ const char *expandlabel(const char *s, int *m)
|
|||
YY_BUFFER_STATE buf;
|
||||
my_free(_ALLOC_ID_, &dest_string.str); /* 30102004 delete 'memory' of previous execution */
|
||||
|
||||
if(dbg_var >= 3) fprintf(errfp, "expandlabel(): entering\n");
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "expandlabel(): entering\n");
|
||||
buf=yy_scan_string(s);
|
||||
yyparse();
|
||||
yy_delete_buffer(buf);
|
||||
|
|
@ -115,7 +115,7 @@ const char *expandlabel(const char *s, int *m)
|
|||
my_free(_ALLOC_ID_, &cmd);
|
||||
|
||||
}
|
||||
if(dbg_var >= 3)
|
||||
if(parselabel_debug >= 3)
|
||||
fprintf(errfp, "expandlabel(): returning %s from %s mult=%d\n",dest_string.str, s, dest_string.m);
|
||||
if(dest_string.str)
|
||||
*m = dest_string.m;
|
||||
|
|
@ -170,7 +170,7 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
/* this action resets initial condition at start of line. This is extremely useful if previously lexer
|
||||
* bailed out in the middle of some non INITIAL start condition due to yyparse() syntax errors */
|
||||
<mult,index>^. {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): matched: ^[^*] |%s|, push back\n",yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): matched: ^[^*] |%s|, push back\n",yytext);
|
||||
yyless(0); /* push entire token back to input */
|
||||
BEGIN(INITIAL); /* reset parser */
|
||||
}
|
||||
|
|
@ -179,7 +179,7 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
/* postfix multiplier */
|
||||
{INT} {
|
||||
sscanf(yytext, "%d",&yylval.val);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): postmult B_NUM: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): postmult B_NUM: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return B_NUM;
|
||||
}
|
||||
|
|
@ -189,35 +189,35 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
<index>{
|
||||
{INT} {
|
||||
sscanf(yytext, "%d",&yylval.val);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_IDXNUM: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_IDXNUM: |%s|\n", yytext);
|
||||
return B_IDXNUM;
|
||||
}
|
||||
{DDOT} {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_DOUBLEDOT: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_DOUBLEDOT: |%s|\n", yytext);
|
||||
return B_DOUBLEDOT;
|
||||
}
|
||||
/* end vector node index "...]" */
|
||||
\] {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): close bracket: %s\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): close bracket: %s\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return yytext[0];
|
||||
}
|
||||
{NOTSP} {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): idx character: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): idx character: |%s|\n", yytext);
|
||||
return yytext[0];
|
||||
}
|
||||
/* recognize AA[aa:bb:33] or AA[33:cc:dd] or AA[aa..bb..11] .... */
|
||||
({IDX_ID}{DDOT}{IDX_ID_N}{DDOT}{IDX_ID_N})|({IDX_ID_N}{DDOT}{IDX_ID}{DDOT}{IDX_ID_N})|({IDX_ID_N}{DDOT}{IDX_ID_N}{DDOT}{IDX_ID}) {
|
||||
yylval.ptr.str=NULL;
|
||||
my_strdup(_ALLOC_ID_, &yylval.ptr.str, yytext);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_NAME3: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_NAME3: |%s|\n", yytext);
|
||||
return B_NAME;
|
||||
}
|
||||
|
||||
({IDX_ID}{CLN}{IDX_ID_N}{CLN}{IDX_ID_N})|({IDX_ID_N}{CLN}{IDX_ID}{CLN}{IDX_ID_N})|({IDX_ID_N}{CLN}{IDX_ID_N}{CLN}{IDX_ID}) {
|
||||
yylval.ptr.str=NULL;
|
||||
my_strdup(_ALLOC_ID_, &yylval.ptr.str, yytext);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_NAME2: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_NAME2: |%s|\n", yytext);
|
||||
return B_NAME;
|
||||
}
|
||||
|
||||
|
|
@ -225,7 +225,7 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
({IDX_ID}{CLN}{IDX_ID_N})|({IDX_ID_N}{CLN}{IDX_ID})|({IDX_ID}{DDOT}{IDX_ID_N})|({IDX_ID_N}{DDOT}{IDX_ID}) {
|
||||
yylval.ptr.str=NULL;
|
||||
my_strdup(_ALLOC_ID_, &yylval.ptr.str, yytext);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_NAME1: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_NAME1: |%s|\n", yytext);
|
||||
return B_NAME;
|
||||
}
|
||||
} /* end <index> */
|
||||
|
|
@ -233,7 +233,7 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
/* a comment, return as LINE token */
|
||||
^\*.* {
|
||||
yylval.ptr.str=NULL; /*19102004 */
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_LINE: |%s|\n",yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_LINE: |%s|\n",yytext);
|
||||
my_strdup(_ALLOC_ID_, &yylval.ptr.str, yytext); /* freed after use in expandlabel.y */
|
||||
BEGIN(INITIAL);
|
||||
return B_LINE;
|
||||
|
|
@ -241,7 +241,7 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
/* prefix multiplier */
|
||||
{INT}/{MULTIP} {
|
||||
sscanf(yytext, "%d",&yylval.val);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): premult B_NUM: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): premult B_NUM: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return B_NUM;
|
||||
}
|
||||
|
|
@ -249,17 +249,17 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
{INT} {
|
||||
yylval.ptr.str=NULL;
|
||||
my_strdup(_ALLOC_ID_, &yylval.ptr.str, yytext);
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_NAME4: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_NAME4: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return B_NAME;
|
||||
}
|
||||
{SP} {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): skipping: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): skipping: |%s|\n", yytext);
|
||||
}
|
||||
/* comma separator between nodes: chop spaces "a,b , c" */
|
||||
{SP},{SP} {
|
||||
yylval.val=',';
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): comma: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): comma: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return ',';
|
||||
}
|
||||
|
|
@ -268,30 +268,30 @@ ID_EXT_PARENTHESIS ([-~"#+/=_a-zA-Z][-#!@\\/:.=_+a-zA-Z0-9]*\([-~"#!@\\/:.=_+a-z
|
|||
{ID_NUM}|{ID_EXT_PARENTHESIS} {
|
||||
yylval.ptr.str=NULL;/*19102004 */
|
||||
my_strdup(_ALLOC_ID_, &yylval.ptr.str, yytext); /* freed after use in expandlabel.y */
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): B_NAME0: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): B_NAME0: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return B_NAME;
|
||||
}
|
||||
/* start vector node index: "aa[" */
|
||||
\[ {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): open bracket: %s\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): open bracket: %s\n", yytext);
|
||||
BEGIN(index);
|
||||
return yytext[0];
|
||||
}
|
||||
/* "*(aa,bb,cc)" or "*aaa" prefix multiplication*/
|
||||
{SP}\*{SP}/({ID}|[(]) {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): pre *: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): pre *: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return '*';
|
||||
}
|
||||
/* "*16" postfix multiplication */
|
||||
{MULTIP}/{INT} {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): post *: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): post *: |%s|\n", yytext);
|
||||
BEGIN(mult);
|
||||
return '*';
|
||||
}
|
||||
{NOTSP} {
|
||||
if(dbg_var >= 3) fprintf(errfp, "yylex(): character: |%s|\n", yytext);
|
||||
if(parselabel_debug >= 3) fprintf(errfp, "yylex(): character: |%s|\n", yytext);
|
||||
BEGIN(INITIAL);
|
||||
return yytext[0];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3678,6 +3678,30 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
else { cmd_found = 0;}
|
||||
break;
|
||||
case 't': /*----------------------------------------------*/
|
||||
/* tab_list
|
||||
* list all windows / tabs with window pathname and associated filename */
|
||||
if(!strcmp(argv[1], "tab_list"))
|
||||
{
|
||||
int i;
|
||||
Xschem_ctx *ctx, **save_xctx = get_save_xctx();
|
||||
int found = 0;
|
||||
for(i = 0; i < MAX_NEW_WINDOWS; ++i) {
|
||||
ctx = save_xctx[i];
|
||||
/* if only one schematic it is not yet saved in save_xctx */
|
||||
if(get_window_count() == 0 && i == 0) {
|
||||
ctx = xctx;
|
||||
}
|
||||
if(i == 0 ) {
|
||||
if(ctx) Tcl_AppendResult(interp, ".drw", " {", ctx->sch[ctx->currsch], "}\n", NULL);
|
||||
}
|
||||
else if(ctx) {
|
||||
Tcl_AppendResult(interp, get_window_path(i), " {", ctx->sch[ctx->currsch], "}\n", NULL);
|
||||
}
|
||||
}
|
||||
dbg(1, "check_loaded: return %d\n", found);
|
||||
return found;
|
||||
}
|
||||
|
||||
/* table_read [table_file]
|
||||
* If a simulation raw file is lodaded unload from memory.
|
||||
* else read a tabular file 'table_file'
|
||||
|
|
@ -3702,7 +3726,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
* 0.1 0.0 1.5 0.6
|
||||
* ... ... ... ...
|
||||
*/
|
||||
if(!strcmp(argv[1], "table_read"))
|
||||
else if(!strcmp(argv[1], "table_read"))
|
||||
{
|
||||
char f[PATH_MAX + 100];
|
||||
if(sch_waves_loaded() >= 0) {
|
||||
|
|
@ -3722,6 +3746,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
}
|
||||
Tcl_ResetResult(interp);
|
||||
}
|
||||
|
||||
/* test
|
||||
* testmode */
|
||||
else if(!strcmp(argv[1], "test"))
|
||||
|
|
|
|||
19
src/xinit.c
19
src/xinit.c
|
|
@ -77,6 +77,20 @@ static int client_msg(Display *disp, Window win, char *msg, /* {{{ */
|
|||
}
|
||||
}/*}}}*/
|
||||
|
||||
Xschem_ctx **get_save_xctx(void)
|
||||
{
|
||||
return save_xctx;
|
||||
}
|
||||
|
||||
char *get_window_path(int i)
|
||||
{
|
||||
return window_path[i];
|
||||
}
|
||||
|
||||
int get_window_count(void)
|
||||
{
|
||||
return window_count;
|
||||
}
|
||||
|
||||
static int window_state (Display *disp, Window win, char *arg) {/*{{{*/
|
||||
char arg_copy[256]; /* overflow safe */
|
||||
|
|
@ -1176,7 +1190,10 @@ int check_loaded(const char *f, char *win_path)
|
|||
ctx = save_xctx[i];
|
||||
dbg(1, "window_count=%d i=%d\n", window_count, i);
|
||||
/* if only one schematic it is not yet saved in save_xctx */
|
||||
if(window_count == 0 && i == 0) ctx = xctx;
|
||||
if(window_count == 0 && i == 0) {
|
||||
ctx = xctx;
|
||||
my_snprintf(window_path[0], S(window_path[0]), ".drw" );
|
||||
}
|
||||
if(ctx) {
|
||||
dbg(1, "%s <--> %s\n", ctx->sch[ctx->currsch], f);
|
||||
if(!strcmp(ctx->sch[ctx->currsch], f)) {
|
||||
|
|
|
|||
|
|
@ -1333,6 +1333,9 @@ extern void mem_clear_undo(void);
|
|||
extern void load_schematic(int load_symbol, const char *fname, int reset_undo, int alert);
|
||||
/* check if filename already in an open window/tab */
|
||||
extern int check_loaded(const char *f, char *win_path);
|
||||
extern char *get_window_path(int i);
|
||||
extern int get_window_count(void);
|
||||
extern Xschem_ctx **get_save_xctx(void);
|
||||
extern void link_symbols_to_instances(int from);
|
||||
extern void load_ascii_string(char **ptr, FILE *fd);
|
||||
extern char *read_line(FILE *fp, int dbg_level);
|
||||
|
|
|
|||
|
|
@ -1,33 +1,55 @@
|
|||
v {xschem version=3.0.0 file_version=1.2 }
|
||||
v {xschem version=3.4.0 file_version=1.2
|
||||
}
|
||||
G {}
|
||||
K {}
|
||||
V {}
|
||||
S {}
|
||||
E {}
|
||||
N 600 -450 650 -450 {lab=B}
|
||||
N 690 -690 690 -670 {lab=D}
|
||||
N 510 -690 690 -690 {lab=D}
|
||||
N 190 -690 310 -690 {lab=VCC}
|
||||
N 190 -690 190 -670 {lab=VCC}
|
||||
N 690 -500 690 -480 {lab=C}
|
||||
N 690 -500 750 -500 {lab=C}
|
||||
N 810 -500 840 -500 {lab=OUT}
|
||||
N 840 -500 840 -440 {lab=OUT}
|
||||
N 690 -410 690 -400 {lab=E}
|
||||
N 780 -410 780 -400 {lab=E}
|
||||
N 690 -410 780 -410 {lab=E}
|
||||
N 510 -450 510 -400 {lab=#net1}
|
||||
N 510 -570 510 -530 {lab=#net2}
|
||||
N 420 -450 510 -450 {lab=#net1}
|
||||
N 370 -690 510 -690 {lab=D}
|
||||
N 690 -420 690 -410 {lab=E}
|
||||
N 510 -470 510 -450 {lab=#net1}
|
||||
N 190 -450 360 -450 {lab=IN}
|
||||
N 190 -450 190 -420 {lab=IN}
|
||||
N 840 -500 930 -500 {lab=OUT}
|
||||
N 510 -450 540 -450 {lab=#net1}
|
||||
N 510 -690 510 -630 {lab=D}
|
||||
N 690 -550 690 -500 {lab=C}
|
||||
B 2 770 -500 1570 -100 {flags=graph
|
||||
y1=-50
|
||||
y2=40
|
||||
ypos1=0
|
||||
ypos2=2
|
||||
divy=5
|
||||
subdivy=1
|
||||
unity=1
|
||||
x1=2
|
||||
x2=10.0002
|
||||
divx=5
|
||||
subdivx=8
|
||||
xlabmag=1.0
|
||||
ylabmag=1.0
|
||||
node="\\"out db20()\\""
|
||||
color=4
|
||||
dataset=-1
|
||||
unitx=1
|
||||
logx=1
|
||||
logy=0
|
||||
}
|
||||
N 450 -510 500 -510 {lab=B}
|
||||
N 540 -750 540 -730 {lab=D}
|
||||
N 360 -750 540 -750 {lab=D}
|
||||
N 40 -750 160 -750 {lab=VCC}
|
||||
N 40 -750 40 -730 {lab=VCC}
|
||||
N 540 -560 540 -540 {lab=C}
|
||||
N 540 -560 600 -560 {lab=C}
|
||||
N 660 -560 690 -560 {lab=OUT}
|
||||
N 690 -560 690 -500 {lab=OUT}
|
||||
N 540 -470 540 -460 {lab=E}
|
||||
N 630 -470 630 -460 {lab=E}
|
||||
N 540 -470 630 -470 {lab=E}
|
||||
N 360 -510 360 -460 {lab=#net1}
|
||||
N 360 -630 360 -590 {lab=#net2}
|
||||
N 270 -510 360 -510 {lab=#net1}
|
||||
N 220 -750 360 -750 {lab=D}
|
||||
N 540 -480 540 -470 {lab=E}
|
||||
N 360 -530 360 -510 {lab=#net1}
|
||||
N 40 -510 210 -510 {lab=IN}
|
||||
N 40 -510 40 -480 {lab=IN}
|
||||
N 690 -560 740 -560 {lab=OUT}
|
||||
N 360 -510 390 -510 {lab=#net1}
|
||||
N 360 -750 360 -690 {lab=D}
|
||||
N 540 -610 540 -560 {lab=C}
|
||||
C {title.sym} 160 -30 0 0 {name=l7 author="Stefan Schippers"}
|
||||
C {code_shown.sym} 30 -310 0 0 {name=CONTROL place=end value=".ac oct 1000 100 10G
|
||||
.control
|
||||
|
|
@ -43,43 +65,47 @@ C {code_shown.sym} 30 -310 0 0 {name=CONTROL place=end value=".ac oct 1000 100 1
|
|||
.endc
|
||||
|
||||
"}
|
||||
C {code.sym} 840 -250 0 0 {name=MODELS value=".model Q2N2219A NPN(Is=14.34f Xti=3 Eg=1.11 Vaf=74.03 Bf=255.9 Ne=1.307 Ise=14.34f Ikf=.2847 Xtb=1.5 Br=6.092 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=7.306p
|
||||
+ Mjc=.3416 Vjc=.75 Fc=.5 Cje=22.01p Mje=.377 Vje=.75 Tr=46.91n Tf=411.1p Itf=.6 Vtf=1.7 Xtf=3 Rb=10 Vceo=40 Icrating=800m mfg=Philips)
|
||||
C {code.sym} 590 -240 0 0 {name=MODELS value=".model Q2N2219A NPN(Is=14.34f Xti=3 Eg=1.11 Vaf=74.03 Bf=255.9 Ne=1.307 Ise=14.34f Ikf=.2847 Xtb=1.5 Br=6.092 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=7.306p
|
||||
+ Mjc=.3416 Vjc=.75 Fc=.5 Cje=22.01p Mje=.377 Vje=.75 Tr=46.91n Tf=411.1p Itf=.6 Vtf=1.7 Xtf=3 Rb=10 Vceo=40 Icrating=800m )
|
||||
"}
|
||||
C {ind.sym} 340 -690 1 0 {name=l1 value=10uH}
|
||||
C {vsource.sym} 190 -640 0 0 {name=v1 value=12}
|
||||
C {gnd.sym} 190 -610 0 0 {name=l11 lab=0}
|
||||
C {capa.sym} 430 -660 0 1 {name=C4 m=1 value=100nF footprint=1206 device="ceramic capacitor"}
|
||||
C {res.sym} 510 -500 0 0 {name=R1 value=6.8k footprint=1206 device=resistor m=1}
|
||||
C {npn.sym} 670 -450 0 0 {name=Q2 model=Q2N2219A device=Q2N5179 footprint=SOT23 area=1}
|
||||
C {res.sym} 510 -370 0 0 {name=R2 value=1.8k footprint=1206 device=resistor m=1}
|
||||
C {capa.sym} 780 -500 1 1 {name=C5 m=1 value=1nF footprint=1206 device="ceramic capacitor"}
|
||||
C {res.sym} 840 -410 0 0 {name=R3 value=120k footprint=1206 device=resistor m=1}
|
||||
C {gnd.sym} 840 -380 0 0 {name=l12 lab=0}
|
||||
C {res.sym} 690 -370 0 0 {name=R4 value=100 footprint=1206 device=resistor m=1}
|
||||
C {gnd.sym} 690 -340 0 0 {name=l13 lab=0}
|
||||
C {capa.sym} 390 -450 1 1 {name=C6 m=1 value=1nF footprint=1206 device="ceramic capacitor"}
|
||||
C {vsource.sym} 190 -390 0 0 {name=v2 value="dc 0 ac 1"}
|
||||
C {gnd.sym} 190 -360 0 0 {name=l14 lab=0}
|
||||
C {res.sym} 690 -640 0 0 {name=R5 value=330 footprint=1206 device=resistor m=1}
|
||||
C {capa.sym} 780 -370 0 1 {name=C7 m=1 value=100nF footprint=1206 device="ceramic capacitor"}
|
||||
C {gnd.sym} 780 -340 0 0 {name=l15 lab=0}
|
||||
C {gnd.sym} 510 -340 0 0 {name=l16 lab=0}
|
||||
C {gnd.sym} 430 -630 0 0 {name=l17 lab=0}
|
||||
C {lab_wire.sym} 270 -690 0 0 {name=l18 sig_type=std_logic lab=VCC}
|
||||
C {lab_wire.sym} 590 -690 0 0 {name=l19 sig_type=std_logic lab=D}
|
||||
C {lab_wire.sym} 630 -450 0 0 {name=l20 sig_type=std_logic lab=B}
|
||||
C {lab_wire.sym} 730 -410 0 0 {name=l21 sig_type=std_logic lab=E}
|
||||
C {opin.sym} 930 -500 0 0 {name=p2 lab=OUT}
|
||||
C {lab_wire.sym} 690 -510 0 0 {name=l22 sig_type=std_logic lab=C}
|
||||
C {lab_pin.sym} 190 -450 0 0 {name=l23 sig_type=std_logic lab=IN}
|
||||
C {ammeter.sym} 570 -450 3 0 {name=v3 current=8.9002e-05}
|
||||
C {ammeter.sym} 510 -600 0 0 {name=v4 current=0.001414}
|
||||
C {ammeter.sym} 690 -580 0 0 {name=v5 current=0.01657}
|
||||
C {spice_probe.sym} 860 -500 0 0 {name=p1 analysis=tran voltage=0.0000e+00}
|
||||
C {spice_probe.sym} 710 -500 0 0 {name=p3 analysis=tran voltage=6.533}
|
||||
C {spice_probe.sym} 190 -690 0 0 {name=p4 analysis=tran voltage=12}
|
||||
C {spice_probe.sym} 210 -450 0 0 {name=p5 analysis=tran voltage=0.0000e+00}
|
||||
C {spice_probe.sym} 630 -450 0 0 {name=p6 analysis=tran voltage=2.385}
|
||||
C {spice_probe.sym} 750 -410 0 0 {name=p7 analysis=tran voltage=1.666}
|
||||
C {spice_probe.sym} 470 -690 0 0 {name=p8 analysis=tran voltage=12}
|
||||
C {ind.sym} 190 -750 1 0 {name=l1 value=10uH}
|
||||
C {vsource.sym} 40 -700 0 0 {name=v1 value=12}
|
||||
C {gnd.sym} 40 -670 0 0 {name=l11 lab=0}
|
||||
C {capa.sym} 280 -720 0 1 {name=C4 m=1 value=100nF footprint=1206 device="ceramic capacitor"}
|
||||
C {res.sym} 360 -560 0 0 {name=R1 value=6.8k footprint=1206 device=resistor m=1}
|
||||
C {npn.sym} 520 -510 0 0 {name=Q2 model=Q2N2219A device=Q2N5179 footprint=SOT23 area=1}
|
||||
C {res.sym} 360 -430 0 0 {name=R2 value=1.8k footprint=1206 device=resistor m=1}
|
||||
C {capa.sym} 630 -560 1 1 {name=C5 m=1 value=1nF footprint=1206 device="ceramic capacitor"}
|
||||
C {res.sym} 690 -470 0 0 {name=R3 value=120k footprint=1206 device=resistor m=1}
|
||||
C {gnd.sym} 690 -440 0 0 {name=l12 lab=0}
|
||||
C {res.sym} 540 -430 0 0 {name=R4 value=100 footprint=1206 device=resistor m=1}
|
||||
C {gnd.sym} 540 -400 0 0 {name=l13 lab=0}
|
||||
C {capa.sym} 240 -510 1 1 {name=C6 m=1 value=1nF footprint=1206 device="ceramic capacitor"}
|
||||
C {vsource.sym} 40 -450 0 0 {name=v2 value="dc 0 ac 1"}
|
||||
C {gnd.sym} 40 -420 0 0 {name=l14 lab=0}
|
||||
C {res.sym} 540 -700 0 0 {name=R5 value=330 footprint=1206 device=resistor m=1}
|
||||
C {capa.sym} 630 -430 0 1 {name=C7 m=1 value=100nF footprint=1206 device="ceramic capacitor"}
|
||||
C {gnd.sym} 630 -400 0 0 {name=l15 lab=0}
|
||||
C {gnd.sym} 360 -400 0 0 {name=l16 lab=0}
|
||||
C {gnd.sym} 280 -690 0 0 {name=l17 lab=0}
|
||||
C {lab_wire.sym} 120 -750 0 0 {name=l18 sig_type=std_logic lab=VCC}
|
||||
C {lab_wire.sym} 440 -750 0 0 {name=l19 sig_type=std_logic lab=D}
|
||||
C {lab_wire.sym} 480 -510 0 0 {name=l20 sig_type=std_logic lab=B}
|
||||
C {lab_wire.sym} 580 -470 0 0 {name=l21 sig_type=std_logic lab=E}
|
||||
C {opin.sym} 740 -560 0 0 {name=p2 lab=OUT}
|
||||
C {lab_wire.sym} 540 -570 0 0 {name=l22 sig_type=std_logic lab=C}
|
||||
C {lab_pin.sym} 40 -510 0 0 {name=l23 sig_type=std_logic lab=IN}
|
||||
C {ammeter.sym} 420 -510 3 0 {name=v3 current=8.9002e-05}
|
||||
C {ammeter.sym} 360 -660 0 0 {name=v4 current=0.001414}
|
||||
C {ammeter.sym} 540 -640 0 0 {name=v5 current=0.01657}
|
||||
C {spice_probe.sym} 710 -560 0 0 {name=p1 analysis=tran voltage=0.0000e+00}
|
||||
C {spice_probe.sym} 560 -560 0 0 {name=p3 analysis=tran voltage=6.533}
|
||||
C {spice_probe.sym} 40 -750 0 0 {name=p4 analysis=tran voltage=12}
|
||||
C {spice_probe.sym} 60 -510 0 0 {name=p5 analysis=tran voltage=0.0000e+00}
|
||||
C {spice_probe.sym} 480 -510 0 0 {name=p6 analysis=tran voltage=2.385}
|
||||
C {spice_probe.sym} 600 -470 0 0 {name=p7 analysis=tran voltage=1.666}
|
||||
C {spice_probe.sym} 320 -750 0 0 {name=p8 analysis=tran voltage=12}
|
||||
C {launcher.sym} 1010 -80 0 0 {name=h5
|
||||
descr="load waves"
|
||||
tclcommand="xschem raw_read $netlist_dir/amp_xschem.raw ac"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue