Go to the source code of this file.
Functions | |
void | check_netlist (netlist_t *netlist) |
void | levelize_and_check_for_combinational_loop_and_liveness (short ast_based, netlist_t *netlist) |
void check_netlist | ( | netlist_t * | netlist | ) |
Definition at line 53 of file netlist_check.c.
00054 { 00055 /* create a graph output of this netlist */ 00056 if (configuration.output_netlist_graphs == 1) 00057 { 00058 /* Path is where we are */ 00059 graphVizOutputNetlist(configuration.debug_output_path, "net", 1, netlist); 00060 } 00061 }
void levelize_and_check_for_combinational_loop_and_liveness | ( | short | ast_based, | |
netlist_t * | netlist | |||
) |
Definition at line 67 of file netlist_check.c.
00068 { 00069 /* go from the POs backwards and mark level */ 00070 levelize_backwards(netlist); 00071 /* Since the net_data (void pointer) is used to record information, we need to clean this up so that it can be used again 00072 also, during this cleaning we check if nodes are live based on all the fanout pins have been visited */ 00073 levelize_backwards_clean_checking_for_liveness(ast_based, netlist); 00074 00075 /* do a forward analysis */ 00076 levelize_forwards(netlist); 00077 00078 /* checks if there are any non-forward marked nodes */ 00079 depth_first_traversal_check_if_forward_leveled(COMBO_LOOP, netlist); 00080 /* finds combo loops, but usually killed by previous. Also cleans out net_data (void pointer) for next algorithm. */ 00081 levelize_forwards_clean_checking_for_combo_loop_and_liveness(ast_based, netlist); 00082 00083 /* assign each node which sequential level it is in, and keep the primary inputs to that level */ 00084 sequential_levelized_dfs(SEQUENTIAL_LEVELIZE, netlist); 00085 }