Subversion Repositories Vertical

Rev

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