Subversion Repositories Vertical

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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