Subversion Repositories Vertical

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/* net_main*/
2
 
3
/* contains the database functions that store the pin configurations */
4
 
5
/*
6
 * $Header: c:\\cygwin\\cvsroot/Vert03/net_src/net_main.c,v 1.1.1.1 2003/11/04 23:34:59 mjames
7
 * Exp $
8
 *
9
 * $Log: net_main.c,v $
10
 * Revision 1.1.1.1  2003/11/04 23:34:59  mjames
11
 * Imported into local repositrory
12
 *
13
 * Revision 1.10  2002/09/09 10:36:20  mjames
14
 * Checkpoint checkin
15
 *
16
 * Revision 1.9  2002/08/14 12:08:43  mjames
17
 * Added an 'external' tag to the documentation
18
 *
19
 * Revision 1.9  2002/04/04 15:04:27  mjames
20
 * Fixed #ident problem
21
 *
22
 * Revision 1.8  2001/10/31 22:20:09  mjames
23
 * Tidying up problematical comments caused by CVS
24
 * 'intelligent' comment guessing
25
 *
26
 * Revision 1.7  2001/10/22 10:59:03  mjames
27
 * Modified list_devices to take an options flag
28
 *
29
 * Revision 1.6  2001/10/02 20:53:28  mjames
30
 * Moved documentation about code to main program module.
31
 *
32
 * Revision 1.5  2001/09/28 14:34:11  mjames
33
 * FIxed yydebug variable to exist when YYDEBUG macro
34
 * is not defined. Otherwise linker error will be reported.
35
 *
36
 * Revision 1.4  2001/07/09 15:47:36  mjames
37
 * Placed the version string in an independent file to save time on building
38
 * all of the variants of Vertical
39
 *
40
 * Revision 1.3  2001/06/06 12:10:20  mjames
41
 * Move from HPUX
42
 *
43
 * Revision 1.2  2000/12/04 13:14:03  mjames
44
 * Imported all of the PCB syntax readers.
45
 *
46
 * Converted "a/b" to mean "a" divided by "b" insted of a single string
47
 * "a/b" in Verilog
48
 *
49
 * Revision 1.1.1.1  2000/10/19 21:58:38  mjames
50
 * Mike put it here
51
 *
52
 *
53
 * Revision 1.26  2000/10/04  10:37:07  10:37:07  mjames (Mike James)
54
 * Modified for Vertical2 : support COMPONENTS and SIGNALS
55
 *
56
 * Revision 1.26  2000/10/04  10:37:07  10:37:07  mjames (Mike James)
57
 * Part of Release PSAVAT01
58
 *
59
 * Revision 1.25  2000/10/02  11:04:16  11:04:16  mjames (Mike James)
60
 * new_vhdl
61
 *
62
 * Revision 1.24  2000/09/27  14:42:17  14:42:17  mjames (Mike James)
63
 * Part of Release Sep_27_ST_2000
64
 *
65
 * Revision 1.23  2000/09/27  10:57:51  10:57:51  mjames (Mike James)
66
 * Using correct return code from yyparse()
67
 *
68
 * Revision 1.22  2000/09/21  10:15:47  10:15:47  mjames (Mike James)
69
 * Part of Release Sep21Alpha
70
 *
71
 * Revision 1.21  2000/08/25  09:57:13  09:57:13  mjames (Mike James)
72
 * Part of Release Aug25_alpha
73
 *
74
 * Revision 1.20  2000/08/16  08:57:29  08:57:29  mjames (Mike James)
75
 * Part of Release CD01_Aug2000
76
 *
77
 * Revision 1.19  2000/08/14  14:45:10  14:45:10  mjames (Mike James)
78
 * Part of Release Aug_14_2000
79
 *
80
 * Revision 1.18  2000/08/11  08:30:31  08:30:31  mjames (Mike James)
81
 * Part of Release Aug_11_2000
82
 *
83
 * Revision 1.17  2000/08/09  10:31:46  10:31:46  mjames (Mike James)
84
 * Part of Release Aug__9_2000
85
 *
86
 * Revision 1.16  2000/05/31  11:42:55  11:42:55  mjames (Mike James)
87
 * Part of Release May_31_2000
88
 *
89
 * Revision 1.15  2000/05/31  11:30:16  11:30:16  mjames (Mike James)
90
 * Added acfread.ini file reading
91
 *
92
 * Revision 1.14  2000/05/08  17:01:36  17:01:36  mjames (Mike James)
93
 * Part of Release May__8_2000
94
 *
95
 * Revision 1.13  2000/05/08  16:59:30  16:59:30  mjames (Mike James)
96
 * Part of Release May__8_2000
97
 *
98
 * Revision 1.12  2000/05/08  16:57:06  16:57:06  mjames (Mike James)
99
 * Part of Release May__8_2000
100
 *
101
 * Revision 1.11  2000/03/08  16:19:17  16:19:17  mjames (Mike James)
102
 * New version including PC
103
 *
104
 * Revision 1.8  2000/01/20  15:58:46  15:58:46  mjames (Mike James)
105
 * Part of Release R22
106
 *
107
 * Revision 1.7  99/12/22  11:15:27  11:15:27  mjames (Mike James)
108
 * Part of Release Dec_22_1999
109
 *
110
 * Revision 1.6  99/06/25  14:35:44  14:35:44  mjames (Mike James)
111
 * Added in reference to expression.h, but no changes made
112
 * to the function of acfread yet.
113
 *
114
 * Revision 1.5  99/05/04  09:52:29  09:52:29  mjames (Mike James)
115
 * General checkin
116
 *
117
 * Revision 1.3  98/02/11  11:26:44  11:26:44  mjames (Mike James)
118
 * Checked in for version 6.2a
119
 *
120
 * Revision 1.2  97/04/23  08:43:16  08:43:16  mjames (Mike James)
121
 * CHecked in for release rel23041997
122
 *
123
 * Revision 1.1  97/01/03  13:32:40  13:32:40  mjames (Mike James)
124
 * Initial revision
125
 *
126
 *
127
 */
128
#include <stdio.h>
129
#include <stdlib.h>
130
#include <string.h>
131
/*
132
@title
133
PROGRAM netread: Converter for .NET files
134
@application external
135
@text
136
PCB netlist to ACFP converter. Looks for netlists in ASCII containing tags like:
137
@listing
138
$PACKAGES
139
$NETS
140
$END
141
@text
142
Invocation
143
@listing
144
netread <net_file> [ d ]
145
@text
146
If a lower
147
case 'd' is present as the second argument, the Bison parser
148
(interpreter of keywords and syntax) prints extremely verbose diagnostics.
149
@break
150
Normally the acfp file produced on standard output is redirected to a file e.g.
151
@listing
152
netread file.net > file.acfp
153
@text
154
Will produce file.acfp from file.net.
155
@break
156
Following this it is necessary to run the output through Vertical again in order to
157
set up properties on nets (power and ground being made not routable for instance) using the
158
delete routable command. Alternatively the acfp file can be edited to set the net routing
159
flags for these nets.
160
@break
161
Netlist is commonly seen with a '.NET' file suffix. Lots of exclamation marks '!' in the
162
netlist file.I believe this format comes from Mentor Graphics.
163
@end
164
*/
165
 
166
#if defined HAS_TCL
167
#include "tcl_l.h"
168
#endif
169
#include "cmdlog.h"
170
#include "cmdparse.h"
171
#include "database.h"
172
#include "expression.h"
173
#include "generic.h"
174
#include "printout.h"
175
#include "routing.h"
176
#ident                                                                                        \
177
    "@(#)$Header: c:\\cygwin\\cvsroot/Vert03/net_src/net_main.c,v 1.1.1.1 2003/11/04 23:34:59 mjames Exp $"
178
#if defined YYDEBUG
179
extern int yydebug;
180
#else
181
int yydebug = 0;
182
#endif
183
extern FILE *yyin;
184
int main (int argc, char *argv[])
185
{
186
        InitialiseData ();
187
        ExecuteString (
188
            "echo running \\$(VERTICAL_INIT) file name = $(VERTICAL_INIT) ",
189
            argc - 1,
190
            (argv + 1));
191
        ExecuteString ("do $(VERTICAL_INIT) ", argc - 2, (argv + 2));
192
        Log (LOG_GENERAL, "# Finished initialisation script\n");
193
        print_header (stdout, "'netread': From .net file");
194
        yydebug = 0;
195
 
196
        if (argc > 2 && argv[2][0] == 'd')
197
                yydebug = 1;
198
 
199
        if (argc > 1)
200
                yyin = fopen (argv[1], "r");
201
        else
202
                yyin = stdin;
203
        if (!yyin)
204
                printf ("cannot open input file (%s)\n", argv[1]);
205
        else
206
                while (yyparse () == 0)
207
                        ;
208
 
209
        perform_routing (Free);
210
        list_database (stdout, 0); /*no jumpers so flatten jumpers arg=0 */
211
        list_devices (
212
            stdout,
213
            PRINT_TYPE | PRINT_EXPAND_BUS | PRINT_GENERIC | PRINT_GROUP | PRINT_ROUTE_FLAGS |
214
                PRINT_EQUIVALENT_PINS);
215
}