00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <stdlib.h>
00025 #include <stdio.h>
00026 #include <string.h>
00027 #include "globals.h"
00028 #include "types.h"
00029 #include "util.h"
00030 #include "netlist_utils.h"
00031 #include "print_netlist.h"
00032
00033
00034
00035
00036
00037 void function_to_print_node_and_its_pin(npin_t *);
00038 void print_netlist_for_checking (netlist_t *netlist, char *name)
00039 {
00040 int i,j,k;
00041 npin_t * pin;
00042 nnet_t * net;
00043 nnode_t * node;
00044
00045
00046 printf("printing the netlist : %s\n",name);
00047
00048 node=netlist->gnd_node;
00049 net=netlist->zero_net;
00050 printf("--------gnd_node-------\n");
00051 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00052 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00053 for(i=0;i<node->num_input_port_sizes;i++)
00054 {
00055 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00056 }
00057 for(i=0;i<node->num_input_pins;i++)
00058 {
00059 pin=node->input_pins[i];
00060 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00061 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00062
00063 }
00064 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00065 for(i=0;i<node->num_output_port_sizes;i++)
00066 {
00067 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00068 }
00069 for(i=0;i<node->num_output_pins;i++)
00070 {
00071 pin=node->output_pins[i];
00072 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00073 printf("\t related net : %s related node : %s",pin->net->name,pin->node->name);
00074 }
00075
00076 printf("\n----------zero net----------\n");
00077 printf("unique_id : %ld name: %s combined: %d \n",net->unique_id,net->name,net->combined);
00078 printf("driver_pin name : %s num_fanout_pins: %d\n",net->driver_pin->name,net->num_fanout_pins);
00079 for(i=0;i<net->num_fanout_pins;i++)
00080 {
00081 printf("fanout_pins %d : %s",i,net->fanout_pins[i]->name);
00082 }
00083
00084
00085
00086 node=netlist->vcc_node;
00087 net=netlist->one_net;
00088 printf("\n--------vcc_node-------\n");
00089 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00090 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00091 for(i=0;i<node->num_input_port_sizes;i++)
00092 {
00093 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00094 }
00095 for(i=0;i<node->num_input_pins;i++)
00096 {
00097 pin=node->input_pins[i];
00098 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00099 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00100 }
00101 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00102 for(i=0;i<node->num_output_port_sizes;i++)
00103 {
00104 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00105 }
00106 for(i=0;i<node->num_output_pins;i++)
00107 {
00108 pin=node->output_pins[i];
00109 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00110 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00111 }
00112
00113 printf("\n----------one net----------\n");
00114 printf("unique_id : %ld name: %s combined: %d \n",net->unique_id,net->name,net->combined);
00115 printf("driver_pin name : %s num_fanout_pins: %d\n",net->driver_pin->name,net->num_fanout_pins);
00116 for(i=0;i<net->num_fanout_pins;i++)
00117 {
00118 printf("fanout_pins %d : %s",i,net->fanout_pins[i]->name);
00119 }
00120
00121
00122 node=netlist->pad_node;
00123 net=netlist->pad_net;
00124 printf("\n--------pad_node-------\n");
00125 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00126 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00127 for(i=0;i<node->num_input_port_sizes;i++)
00128 {
00129 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00130 }
00131 for(i=0;i<node->num_input_pins;i++)
00132 {
00133 pin=node->input_pins[i];
00134 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00135 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00136 }
00137 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00138 for(i=0;i<node->num_output_port_sizes;i++)
00139 {
00140 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00141 }
00142 for(i=0;i<node->num_output_pins;i++)
00143 {
00144 pin=node->output_pins[i];
00145 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00146 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00147 }
00148
00149 printf("\n----------pad net----------\n");
00150 printf("unique_id : %ld name: %s combined: %d \n",net->unique_id,net->name,net->combined);
00151 printf("driver_pin name : %s num_fanout_pins: %d\n",net->driver_pin->name,net->num_fanout_pins);
00152 for(i=0;i<net->num_fanout_pins;i++)
00153 {
00154 printf("fanout_pins %d : %s",i,net->fanout_pins[i]->name);
00155 }
00156
00157
00158 printf("\n--------------Printing the top input nodes--------------------------- \n");
00159 printf("num_top_input_nodes: %d",netlist->num_top_input_nodes);
00160 for(j=0;j<netlist->num_top_input_nodes;j++)
00161 {
00162 node=netlist->top_input_nodes[j];
00163 printf("\ttop input nodes : %d\n",j);
00164 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00165 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00166 for(i=0;i<node->num_input_port_sizes;i++)
00167 {
00168 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00169 }
00170 for(i=0;i<node->num_input_pins;i++)
00171 {
00172 pin=node->input_pins[i];
00173 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00174 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00175 }
00176 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00177 for(i=0;i<node->num_output_port_sizes;i++)
00178 {
00179 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00180 }
00181 for(i=0;i<node->num_output_pins;i++)
00182 {
00183 pin=node->output_pins[i];
00184 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00185 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00186 }
00187 }
00188
00189
00190
00191 printf("\n--------------Printing the top output nodes--------------------------- \n");
00192 printf("num_top_output_nodes: %d",netlist->num_top_output_nodes);
00193 for(j=0;j<netlist->num_top_output_nodes;j++)
00194 {
00195 node=netlist->top_output_nodes[j];
00196 printf("\ttop output nodes : %d\n",j);
00197 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00198 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00199 for(i=0;i<node->num_input_port_sizes;i++)
00200 {
00201 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00202 }
00203 for(i=0;i<node->num_input_pins;i++)
00204 {
00205 pin=node->input_pins[i];
00206 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00207 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00208 net=pin->net;
00209 printf("\n\t-------printing the related net info-----\n");
00210 printf("unique_id : %ld name: %s combined: %d \n",net->unique_id,net->name,net->combined);
00211 printf("driver_pin name : %s num_fanout_pins: %d\n",net->driver_pin->name,net->num_fanout_pins);
00212 for(k=0;k<net->num_fanout_pins;k++)
00213 {
00214 printf("fanout_pins %d : %s",k,net->fanout_pins[k]->name);
00215 }
00216 function_to_print_node_and_its_pin(net->driver_pin);
00217 }
00218 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00219 for(i=0;i<node->num_output_port_sizes;i++)
00220 {
00221 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00222 }
00223 for(i=0;i<node->num_output_pins;i++)
00224 {
00225 pin=node->output_pins[i];
00226 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00227 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00228 }
00229
00230 }
00231
00232
00233
00234 printf("\n--------------Printing the internal nodes--------------------------- \n");
00235 printf("num_internal_nodes: %d",netlist->num_internal_nodes);
00236 for(j=0;j<netlist->num_internal_nodes;j++)
00237 {
00238 node=netlist->internal_nodes[j];
00239 printf("\tinternal nodes : %d\n",j);
00240 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00241 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00242 for(i=0;i<node->num_input_port_sizes;i++)
00243 {
00244 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00245 }
00246 for(i=0;i<node->num_input_pins;i++)
00247 {
00248 pin=node->input_pins[i];
00249 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00250 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00251 }
00252 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00253 for(i=0;i<node->num_output_port_sizes;i++)
00254 {
00255 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00256 }
00257 for(i=0;i<node->num_output_pins;i++)
00258 {
00259 pin=node->output_pins[i];
00260 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00261 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00262 }
00263 }
00264
00265
00266 printf("\n--------------Printing the ff nodes--------------------------- \n");
00267 printf("num_ff_nodes: %d",netlist->num_ff_nodes);
00268 for(j=0;j<netlist->num_ff_nodes;j++)
00269 {
00270 node=netlist->ff_nodes[j];
00271 printf("\tff nodes : %d\n",j);
00272 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00273 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00274 for(i=0;i<node->num_input_port_sizes;i++)
00275 {
00276 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00277 }
00278 for(i=0;i<node->num_input_pins;i++)
00279 {
00280 pin=node->input_pins[i];
00281 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00282 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00283 }
00284 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00285 for(i=0;i<node->num_output_port_sizes;i++)
00286 {
00287 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00288 }
00289 for(i=0;i<node->num_output_pins;i++)
00290 {
00291 pin=node->output_pins[i];
00292 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00293 printf("\t related net : %s related node: %s\n",pin->net->name,pin->node->name);
00294 }
00295 }
00296 }
00297
00298
00299 void function_to_print_node_and_its_pin(npin_t * temp_pin)
00300 {
00301 int i;
00302 nnode_t *node;
00303 npin_t *pin;
00304
00305 printf("\n-------Printing the related net driver pin info---------\n");
00306 node=temp_pin->node;
00307
00308 printf(" unique_id: %ld name: %s type: %d\n",node->unique_id,node->name,node->type);
00309 printf(" num_input_pins: %d num_input_port_sizes: %d",node->num_input_pins,node->num_input_port_sizes);
00310 for(i=0;i<node->num_input_port_sizes;i++)
00311 {
00312 printf("input_port_sizes %d : %d\n",i,node->input_port_sizes[i]);
00313 }
00314 for(i=0;i<node->num_input_pins;i++)
00315 {
00316 pin=node->input_pins[i];
00317 printf("input_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00318 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00319 }
00320 printf(" num_output_pins: %d num_output_port_sizes: %d",node->num_output_pins,node->num_output_port_sizes);
00321 for(i=0;i<node->num_output_port_sizes;i++)
00322 {
00323 printf("output_port_sizes %d : %d\n",i,node->output_port_sizes[i]);
00324 }
00325 for(i=0;i<node->num_output_pins;i++)
00326 {
00327 pin=node->output_pins[i];
00328 printf("output_pins %d : unique_id : %ld type :%d \n \tname :%s pin_net_idx :%d \n\tpin_node_idx:%d mapping:%s\n",i,pin->unique_id,pin->type,pin->name,pin->pin_net_idx,pin->pin_node_idx,pin->mapping);
00329 printf("\t related net : %s related node: %s",pin->net->name,pin->node->name);
00330 }
00331
00332 }
00333
00334
00335
00336