Subversion Repositories Vertical

Rev

Blame | Last modification | View Log | Download | RSS feed

  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. }
  216.