/*
* $Header: c:\\cygwin\\cvsroot/Vert03/vertlib/printout.h,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $
*
* $Log: printout.h,v $
* Revision 1.1.1.1 2003/11/04 23:34:57 mjames
* Imported into local repositrory
*
* Revision 1.10 2002/09/09 10:10:49 mjames
* Moved pin remapping function to pin ident editing function from
* sorting pin name routine.
*
* Revision 1.9 2002/08/06 12:52:27 mjames
* Merge in from latest version
*
* Revision 1.9 2002/04/10 14:29:10 mjames
* Moved setting debug level to cmdutil.c
*
* Amended print external command to list all net names on socket pins
* whether routed or not.
*
* Revision 1.8 2001/12/24 21:18:28 mjames
* Declare ensure_reservation externally
*
* Revision 1.7 2001/10/31 22:20:14 mjames
* Tidying up problematical comments caused by CVS
* 'intelligent' comment guessing
*
* Revision 1.6 2001/10/11 16:10:16 mjames
* Corrections to the SWAP command, and printout so that
* WRITE net now outputs all chips in the design so that their generics
* can be passed forward to the next phase.
*
* Revision 1.5 2001/07/09 15:38:55 mjames
* Placed the version string in an independent file to save time on building
* all of the variants of Vertical
*
* Revision 1.4 2001/06/06 12:10:18 mjames
* Move from HPUX
*
* Revision 1.3 2001/02/01 21:41:45 mjames
* Made the code begin to compile without TCL/TK
*
* Revision 1.2 2000/10/21 20:41:30 mjames
* Added the 'write flatten' command that only lists the wires
* created by making jumpered connections rather than listing
* the jumpers themselves
*
* Revision 1.1.1.1 2000/10/19 21:58:39 mjames
* Mike put it here
*
*
* Revision 1.42 2000/10/04 10:37:12 10:37:12 mjames (Mike James)
* Modified for Vertical2 : support COMPONENTS and SIGNALS
*
* Revision 1.42 2000/10/04 10:37:12 10:37:12 mjames (Mike James)
* Part of Release PSAVAT01
*
* Revision 1.41 2000/10/02 11:04:18 11:04:18 mjames (Mike James)
* new_vhdl
*
* Revision 1.40 2000/09/27 14:42:24 14:42:24 mjames (Mike James)
* Part of Release Sep_27_ST_2000
*
* Revision 1.39 2000/09/21 10:15:55 10:15:55 mjames (Mike James)
* Part of Release Sep21Alpha
*
* Revision 1.38 2000/09/21 09:47:29 09:47:29 mjames (Mike James)
* Added code to deal with pin equivalents
*
* Revision 1.37 2000/08/25 09:57:20 09:57:20 mjames (Mike James)
* Part of Release Aug25_alpha
*
* Revision 1.36 2000/08/16 08:57:36 08:57:36 mjames (Mike James)
* Part of Release CD01_Aug2000
*
* Revision 1.35 2000/08/14 14:45:16 14:45:16 mjames (Mike James)
* Part of Release Aug_14_2000
*
* Revision 1.34 2000/08/11 08:30:37 08:30:37 mjames (Mike James)
* Part of Release Aug_11_2000
*
* Revision 1.33 2000/08/09 10:31:53 10:31:53 mjames (Mike James)
* Part of Release Aug__9_2000
*
* Revision 1.32 2000/05/31 11:43:05 11:43:05 mjames (Mike James)
* Part of Release May_31_2000
*
* Revision 1.31 2000/05/08 17:01:43 17:01:43 mjames (Mike James)
* Part of Release May__8_2000
*
* Revision 1.30 2000/05/08 16:59:36 16:59:36 mjames (Mike James)
* Part of Release May__8_2000
*
* Revision 1.29 2000/05/08 16:57:13 16:57:13 mjames (Mike James)
* Part of Release May__8_2000
*
* Revision 1.28 2000/03/08 16:19:25 16:19:25 mjames (Mike James)
* New version including PC
*
* Revision 1.25 2000/01/20 15:58:53 15:58:53 mjames (Mike James)
* Part of Release R22
*
* Revision 1.24 99/12/22 11:15:34 11:15:34 mjames (Mike James)
* Part of Release Dec_22_1999
*
* Revision 1.23 99/11/23 13:53:46 13:53:46 mjames (Mike James)
* Added Verliog support and removed VHDL functions to a separate file
*
* Revision 1.21 98/07/14 13:25:55 13:25:55 mjames (Mike James)
* Altered device printout to meet new requirements
*
* Revision 1.20 98/06/15 14:19:17 14:19:17 mjames (Mike James)
* Added template printout functionality
*
* Revision 1.19 98/03/16 11:38:21 11:38:21 mjames (Mike James)
* Added generics to printout listings
*
* Revision 1.18 98/02/11 11:27:04 11:27:04 mjames (Mike James)
* Checked in for version 6.2a
*
* Revision 1.17 98/01/13 11:33:52 11:33:52 mjames (Mike James)
* Added the bility to use a VHDL template file
* containing $ENT$ and $ARCH$ in the position where one
* wants the entity and architecture to be given.
*
* Revision 1.16 97/04/23 08:44:43 08:44:43 mjames (Mike James)
* CHecked in for release rel23041997
*
* Revision 1.15 96/12/13 08:44:16 08:44:16 mjames (Mike James)
* Update to v5.1, added Write ID , exact routing
*
* Revision 1.14 96/07/19 14:38:58 14:38:58 mjames (Mike James)
* Update to give to PRL
*
* Revision 1.13 1996/07/12 15:52:12 mjames
* Sorted out things like Alias and Jumpers
* Work Correctly
* Print COrrectly
*
* Revision 1.12 96/06/04 11:58:20 11:58:20 mjames (Mike James)
* Added a lot of stuff to do with internal/external sockets,
* Net renaming. Net jumpering by node ID as well as net name
*
* Revision 1.11 96/05/29 11:01:38 11:01:38 mjames (Mike James)
* ,
*
* Revision 1.10 96/03/29 14:47:14 14:47:14 mjames (Mike James)
* Added VHDL netlist writing to the capabilities of ACFREAD
*
* Revision 1.9 96/03/18 13:51:24 13:51:24 mjames (Mike James)
* Real Revision 2.1
*
* Revision 1.6 96/02/13 09:13:37 09:13:37 mjames (Mike James)
* Updated to be version 2.0 with net joining
*
* Revision 1.5 96/02/09 10:51:04 10:51:04 mjames (Mike James)
* Added different behaviour for 'write id' and 'write name'
* 'write id' now writes all pins including unused ones
* 'write name' only writes used pins in the ACF file
*
* .
*
*
* Revision 1.4 96/02/08 15:28:38 15:28:38 mjames (Mike James)
* First release
*
* Revision 1.3 96/02/07 16:01:39 16:01:39 mjames (Mike James)
* Added correct RCS header
*
* Revision 1.2 96/02/07 15:50:54 15:50:54 mjames (Mike James)
* Added RCS ident message
*
* Revision 1.1 96/01/10 13:15:16 13:15:16 mjames (Mike James)
* Initial revision
* */
/* control flags controlling printout options */
#define PRINT_ALL 1
#define PRINT_TYPE 2
#define PRINT_USABLE 4 /* if net is routable print its identifier */
#define PRINT_EXPAND_BUS 8 /* explode VHDL buses */
#define PRINT_GENERIC 16 /* list generic values */
#define PRINT_GROUP 32 /* print pin groups */
#define PRINT_ROUTE_FLAGS 64 /* printout routing group flags */
#define PRINT_AS_UNROUTED 128 /* printout pins as unrouted (Write fit) */
#define PRINT_EQUIVALENT_PINS 256 /* Print pins that are equivalent : used in
jumpering and pass through */
#define NO_PRINT_PINS 512 /* print no pin information whatsoever */
#define PRINT_NET_NAMES 1024 /* print net name assignment on pins even if not routed here */
#define FLATTEN_JUMPERS 0
#define PRESERVE_JUMPERS 1
extern char * check_null_str(char * s );
extern void print_header(FILE * f,char * tool);
extern void print_VLOG_header(FILE * f,char * tool);
extern void list_database(FILE * f,int flatten_jumpers);
extern void list_components(FILE * f);
extern void list_devices(FILE * f,int listflags);
extern void list_extern_devices(FILE * f);
extern void list_extern_sockets(FILE * f);
extern void list_joined(FILE * f);
extern void print_device(FILE * f,socket_t * dev,int options);
extern void print_ACF_entity(FILE * f,char * entityname);
extern void print_pin_renames(FILE * f);
extern void produce_frb(FILE * f);
extern void list_jumper(FILE * f);
extern void list_alias(FILE * f);
extern void list_nets(FILE *f,net_t * cnet , int flatten_jumpers);
extern void list_net_structure(FILE * f, net_t * cnet,net_t * root_net,int alias_depth,int flatten_jumpers);