Subversion Repositories Vertical

Rev

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

  1. /* $Id: print_quartus.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $ */
  2. /* Quartus pin fit file creator
  3.  *
  4.  * $Log: print_quartus.c,v $
  5.  * Revision 1.1.1.1  2003/11/04 23:34:57  mjames
  6.  * Imported into local repositrory
  7.  *
  8.  * Revision 1.12  2003/01/02 21:37:16  mjames
  9.  * Experiment on creating NOT_ROUTABLE_H and NOT_ROUTABLE_L
  10.  * properties on the nets so that pin jumpers can be made without a problem.
  11.  *
  12.  * Still need to sort out pin assignments made to these not_routable nets
  13.  * which will become legal in some cases so that pullups and pulldown
  14.  * pins can be used on the FPGA.
  15.  *
  16.  * Revision 1.11  2002/09/09 10:12:02  mjames
  17.  * Moved pin remapping function to pin ident editing function from
  18.  * sorting pin name routine.
  19.  *
  20.  * Revision 1.10  2002/08/14 12:06:41  mjames
  21.  * Removed debug level setting function that should not have been here
  22.  *
  23.  * Revision 1.9  2002/08/06 12:52:38  mjames
  24.  * Merge in from latest version
  25.  *
  26.  *
  27.  * Revision 1.9  2002/04/10 14:29:10  mjames
  28.  * Moved setting debug level to cmdutil.c
  29.  *
  30.  * Amended print external command to list all net names on socket pins
  31.  * whether routed or not.
  32.  *
  33.  * Revision 1.8  2002/01/16 10:08:13  mjames
  34.  * removed unused variable
  35.  *
  36.  * Revision 1.7  2001/10/31 22:20:12  mjames
  37.  * Tidying up problematical comments caused by CVS
  38.  * 'intelligent' comment guessing
  39.  *
  40.  * Revision 1.6  2001/10/22 10:58:18  mjames
  41.  * Added required header files
  42.  *
  43.  * Revision 1.5  2001/09/21 14:20:38  mjames
  44.  * Changed layout of printout to include device type if needed
  45.  *
  46.  * Revision 1.4  2001/07/09 15:38:02  mjames
  47.  * Corrected printout errors that made reference to deleted net objects.
  48.  *
  49.  * Revision 1.3  2001/07/09 09:34:23  mjames
  50.  * Printing only named nets that are routable, to create
  51.  * the correct Quatus configuration file
  52.  *
  53.  * Revision 1.2  2001/07/06 12:47:13  MJAMES
  54.  * Slight changes made for use with Quartus
  55.  *
  56.  * Revision 1.1  2001/06/06 12:10:19  mjames
  57.  * Move from HPUX
  58.  * */
  59. /* ********************************************************************** */
  60. #include <stdio.h>
  61. #include <string.h>
  62. #include <stdlib.h>
  63. #include <ctype.h>
  64. #include <time.h>
  65. #include <sys/types.h>
  66. #include <regex.h>
  67.  
  68. #include "vertcl_main.h"
  69. #include "expression.h"
  70. #include "generic.h"
  71. #include "database.h"
  72. #include "printout.h"
  73. #include "print_vhdl.h"
  74. #include "print_vlog.h"
  75. #include "sorting.h"
  76. #include "cmdparse.h"
  77. #include "cmdlog.h"
  78. #include "equivalent.h"
  79.  
  80. #if defined NEED_DECODE_PIN
  81. static char * decode_quartus_pin[]=
  82. {
  83.   "NONE",
  84.   "input",
  85.   "output",
  86.   "output", /* buffer is a sort of Output pin (lower case is for info only )*/
  87.   "inout",
  88.   "CONFIG_PIN",
  89.   "POWER_PIN"};
  90. #endif
  91.  
  92.  
  93. void print_quartus_pinfit(FILE * f,socket_t * dev, int options)
  94. {
  95.   node_t * n;
  96.  
  97.   /* sort all the nodes into alphabetical order */
  98.   sort_nodes(dev,NO_EXTRACT_XY);
  99.  
  100.  
  101.   if(dev->is_external)
  102.     fprintf(f,"#  External Connection\n\n");
  103.   else
  104.     fprintf(f,"#  Internal Socket\n\n");
  105.   /* if it hasnt got a name, use its identifier */
  106.  
  107.   if(!ISNULLSTR(dev->name))
  108.     fprintf(f,"CHIP (%s) {\n",check_null_str(dev->name));
  109.   else
  110.     fprintf(f,"CHIP (%s) {\n",dev->identifier);
  111.  
  112.   if (!ISNULLSTR(dev->type))
  113.     {
  114.     fprintf(f," ASSIGNED TO AN \"%s\";\n",check_null_str(dev->type));
  115.     }
  116.  
  117.   n=dev->nodes;
  118.  
  119.   while(n)  {
  120.     if(n->net && IS_ROUTABLE(n->net->how_routed) && (n->net->list_ref == &named_list)) {
  121.       fprintf(f,"\t%-20s : LOCATION = Pin_%-10s;\n",
  122.                 n->net->name,
  123.                 n->identifier);
  124.       }
  125.     n=n->sktnext; /* traverse to next pin on socket */
  126.     };
  127.  
  128.     fprintf(f,"  }\n");
  129.    
  130. }
  131.  
  132.  
  133.