Subversion Repositories Vertical

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * $Header: C:/cvsroot/Vert03/vertlib/routing.h,v 1.2 2004/06/22 21:44:15 mjames Exp $
  3.  *
  4.  * $Log: routing.h,v $
  5.  * Revision 1.2  2004/06/22 21:44:15  mjames
  6.  * Firrst build most files
  7.  *
  8.  * Revision 1.6  2002/09/09 09:53:39  mjames
  9.  * Moved pin remapping function to pin ident editing function from
  10.  * sorting pin name routine.
  11.  *
  12.  * Revision 1.5  2001/12/24 21:18:12  mjames
  13.  * Declare ensure_reservation externally
  14.  *
  15.  * Revision 1.4  2001/10/31 22:20:17  mjames
  16.  * Tidying up problematical comments caused by CVS
  17.  * 'intelligent' comment guessing
  18.  *
  19.  * Revision 1.3  2001/07/20 10:47:43  mjames
  20.  * Allowed setting of pin routing group properties on pins on nets
  21.  * by the
  22.  * "set pin" command
  23.  *
  24.  * Revision 1.2  2001/06/06 12:10:17  mjames
  25.  * Move from HPUX
  26.  *
  27.  * Revision 1.1.1.1  2000/10/19 21:58:40  mjames
  28.  * Mike put it here
  29.  *
  30.  *
  31.  * Revision 1.41  2000/10/04  10:37:11  10:37:11  mjames (Mike James)
  32.  * Modified for Vertical2 : support COMPONENTS and SIGNALS
  33.  *
  34.  * Revision 1.41  2000/10/04  10:37:11  10:37:11  mjames (Mike James)
  35.  * Part of Release PSAVAT01
  36.  *
  37.  * Revision 1.40  2000/10/02  11:04:20  11:04:20  mjames (Mike James)
  38.  * new_vhdl
  39.  *
  40.  
  41.  * Revision 1.39  2000/09/27  14:42:24  14:42:24  mjames (Mike James)
  42.  
  43.  * Part of Release Sep_27_ST_2000
  44.  
  45.  *
  46.  
  47.  * Revision 1.38  2000/09/21  10:15:54  10:15:54  mjames (Mike James)
  48.  
  49.  * Part of Release Sep21Alpha
  50.  
  51.  *
  52.  
  53.  * Revision 1.37  2000/08/25  09:57:19  09:57:19  mjames (Mike James)
  54.  
  55.  * Part of Release Aug25_alpha
  56.  
  57.  *
  58.  
  59.  * Revision 1.36  2000/08/16  08:57:36  08:57:36  mjames (Mike James)
  60.  
  61.  * Part of Release CD01_Aug2000
  62.  
  63.  *
  64.  
  65.  * Revision 1.35  2000/08/14  14:45:16  14:45:16  mjames (Mike James)
  66.  
  67.  * Part of Release Aug_14_2000
  68.  
  69.  *
  70.  
  71.  * Revision 1.34  2000/08/11  08:30:36  08:30:36  mjames (Mike James)
  72.  
  73.  * Part of Release Aug_11_2000
  74.  
  75.  *
  76.  
  77.  * Revision 1.33  2000/08/09  10:31:53  10:31:53  mjames (Mike James)
  78.  
  79.  * Part of Release Aug__9_2000
  80.  
  81.  *
  82.  
  83.  * Revision 1.32  2000/05/31  11:43:05  11:43:05  mjames (Mike James)
  84.  
  85.  * Part of Release May_31_2000
  86.  
  87.  *
  88.  
  89.  * Revision 1.31  2000/05/08  17:01:43  17:01:43  mjames (Mike James)
  90.  
  91.  * Part of Release May__8_2000
  92.  
  93.  *
  94.  
  95.  * Revision 1.30  2000/05/08  16:59:36  16:59:36  mjames (Mike James)
  96.  
  97.  * Part of Release May__8_2000
  98.  
  99.  *
  100.  
  101.  * Revision 1.29  2000/05/08  16:57:12  16:57:12  mjames (Mike James)
  102.  
  103.  * Part of Release May__8_2000
  104.  
  105.  *
  106.  
  107.  * Revision 1.28  2000/03/08  16:19:30  16:19:30  mjames (Mike James)
  108.  
  109.  * New version including PC
  110.  
  111.  *
  112.  
  113.  * Revision 1.25  2000/01/20  15:58:53  15:58:53  mjames (Mike James)
  114.  
  115.  * Part of Release R22
  116.  
  117.  *
  118.  
  119.  * Revision 1.24  99/12/22  11:15:34  11:15:34  mjames (Mike James)
  120.  
  121.  * Part of Release Dec_22_1999
  122.  
  123.  *
  124.  
  125.  * Revision 1.23  99/05/04  09:52:50  09:52:50  mjames (Mike James)
  126.  
  127.  * General checkin
  128.  
  129.  *
  130.  
  131.  * Revision 1.21  98/06/15  14:20:44  14:20:44  mjames (Mike James)
  132.  
  133.  * Removed and added Route Create from general routing algorithm.
  134.  
  135.  * Added routing routing groups
  136.  
  137.  *
  138.  
  139.  * Revision 1.20  98/02/11  11:27:17  11:27:17  mjames (Mike James)
  140.  
  141.  * Checked in for version 6.2a
  142.  
  143.  *
  144.  
  145.  * Revision 1.19  97/04/23  08:44:45  08:44:45  mjames (Mike James)
  146.  
  147.  * CHecked in for release rel23041997
  148.  
  149.  *
  150.  
  151.  * Revision 1.18  97/01/03  13:41:12  13:41:12  mjames (Mike James)
  152.  
  153.  * Added the force_route() function to set/clear the
  154.  
  155.  * how_routed field of the net to enable/disable
  156.  
  157.  * usability of a routed net.
  158.  
  159.  *
  160.  
  161.  * Revision 1.17  96/12/13  08:44:14  08:44:14  mjames (Mike James)
  162.  
  163.  * Update to v5.1, added Write ID , exact routing
  164.  
  165.  *
  166.  
  167.  * Revision 1.16  96/08/06  13:40:48  13:40:48  mjames (Mike James)
  168.  
  169.  * Added FIX_LOCATION attribute
  170.  
  171.  *
  172.  
  173.  * Revision 1.15  96/07/19  14:38:57  14:38:57  mjames (Mike James)
  174.  
  175.  * Update to give to PRL
  176.  
  177.  *
  178.  
  179.  * Revision 1.14  1996/07/12  15:52:12  mjames
  180.  
  181.  * Sorted out things like Alias and Jumpers
  182.  
  183.  * Work Correctly
  184.  
  185.  * Print COrrectly
  186.  
  187.  *
  188.  
  189.  * Revision 1.13  96/06/17  13:02:29  13:02:29  mjames (Mike James)
  190.  
  191.  * Added fix_pins function to try and sort out internal/external
  192.  
  193.  * connections being fixed to external pins by name
  194.  
  195.  *
  196.  
  197.  * Revision 1.12  96/06/11  14:11:58  14:11:58  mjames (Mike James)
  198.  
  199.  * Added hierarchical jumpering
  200.  
  201.  *
  202.  
  203.  * Revision 1.11  96/06/04  11:58:15  11:58:15  mjames (Mike James)
  204.  
  205.  * Added a lot of stuff to do with internal/external sockets,
  206.  
  207.  * Net renaming. Net jumpering by node ID as well as net name
  208.  
  209.  *
  210.  
  211.  * Revision 1.10  96/03/29  14:47:16  14:47:16  mjames (Mike James)
  212.  
  213.  * Added VHDL netlist writing to the capabilities of ACFREAD
  214.  
  215.  *
  216.  
  217.  * Revision 1.9  96/03/26  07:22:18  07:22:18  mjames (Mike James)
  218.  
  219.  *
  220.  
  221.  * Revision 1.8  96/03/18  13:51:26  13:51:26  mjames (Mike James)
  222.  
  223.  * Real Revision 2.1
  224.  
  225.  *
  226.  
  227.  * Revision 1.5  96/02/13  09:13:34  09:13:34  mjames (Mike James)
  228.  
  229.  * Updated to be version 2.0 with net joining
  230.  
  231.  *
  232.  
  233.  * Revision 1.4  96/02/08  15:28:36  15:28:36  mjames (Mike James)
  234.  
  235.  * First release
  236.  
  237.  *
  238.  
  239.  * Revision 1.3  96/02/07  16:01:37  16:01:37  mjames (Mike James)
  240.  
  241.  * Added correct RCS header
  242.  
  243.  *
  244.  
  245.  * Revision 1.2  96/02/07  15:50:51  15:50:51  mjames (Mike James)
  246.  
  247.  * Added RCS ident message
  248.  
  249.  *
  250.  
  251.  * Revision 1.1  96/01/10  13:15:09  13:15:09  mjames (Mike James)
  252.  * Initial revision
  253.  
  254.  *  */
  255.  
  256. /* the number of nodes that will be accepted on a net while trying to find
  257.    if a connection exists between two EPLDs */
  258. #define MAX_NODES_FOR_PATH_SEARCH 100
  259.  
  260. /* used in search for pre-existing path */
  261. extern int MaxNodesForSearch;
  262.  
  263. /* if this is =1 then all nets connected must be in the same groups on EPLDs */
  264. extern int global_group_flag;
  265.  
  266. /* these define the head and tail of a dummy net identifier rsvXXXXXz */
  267.  
  268. /* which is ignored on net input */
  269. #define RES_FMT "rsv%05dz"
  270.  
  271. /* 3 + 5 + 1 character */
  272. #define RES_NAMLEN 9
  273.  
  274. /* format of created jumpered nets */
  275. #define JUMP_FMT "jmp%s%05d"
  276.  
  277. #define JUMP_NAMLEN (MAXIDLEN)
  278.  
  279. extern noderef_t *
  280. search_net_for_socket (noderef_t *wanted_ref, noderef_t *net_nodes, int use_group_mask);
  281.  
  282. extern void clear_routing_flags (noderef_t *net_nodes);
  283.  
  284. extern void count_nets (char *message);
  285.  
  286. /* normal routing */
  287. extern void perform_routing (HowRouted_t how);
  288.  
  289. extern void perform_trial_naming (void);
  290.  
  291. /* routing utilities used in jumpering */
  292. extern net_t *remove_net (net_t **list, net_t *net);
  293.  
  294. extern void combine_routed_and_unrouted (net_t *routed_net, net_t *unrouted_net);
  295.  
  296. extern void transfer_net_to_named (net_t **from_list, net_t *net);
  297.  
  298. /* alter whether or not a net is routable */
  299. extern void force_route (char *netname, HowRouted_t flag);
  300.  
  301. /* set the group routing flags on a given socket */
  302. extern void set_group_route_flags (char *template, int flag);
  303.  
  304. /* set the group routing flags on pins on a given socket */
  305. extern void set_pin_group_flags (char *template, int flag);
  306.  
  307. extern void ensure_reservation (void);
  308.