Commit 3c636707 by chengshuyao

default setting, and debug some delete problems

parent e307a20b
...@@ -45,7 +45,7 @@ bool* io_generator_function(bool* input_data, bool* output_data) { ...@@ -45,7 +45,7 @@ bool* io_generator_function(bool* input_data, bool* output_data) {
else else
output_data[i] = output_data_temp[output_bit_index[i]]; output_data[i] = output_data_temp[output_bit_index[i]];
} }
delete [] output_data_temp; arr_delete (output_data_temp);
return output_data; return output_data;
} }
...@@ -64,7 +64,7 @@ uint64_t* io_generator_function_vec(uint64_t* input_data, uint64_t* output_data) ...@@ -64,7 +64,7 @@ uint64_t* io_generator_function_vec(uint64_t* input_data, uint64_t* output_data)
else else
output_data[i] = output_data_temp[output_bit_index[i]]; output_data[i] = output_data_temp[output_bit_index[i]];
} }
delete [] output_data_temp; arr_delete (output_data_temp);
return output_data; return output_data;
} }
...@@ -81,8 +81,8 @@ public: ...@@ -81,8 +81,8 @@ public:
expand_input_bit_data = new bool [parameter_input_bit_width]; expand_input_bit_data = new bool [parameter_input_bit_width];
} }
~node_index(){ ~node_index(){
//delete [] expand_input_bit_index; arr_delete (expand_input_bit_index);
//delete [] expand_input_bit_data; arr_delete (expand_input_bit_data);
} }
}; };
...@@ -265,7 +265,7 @@ int search_partition(int start_node_number=default_start_node_number,int start_n ...@@ -265,7 +265,7 @@ int search_partition(int start_node_number=default_start_node_number,int start_n
} }
area_parts[i] = search_order(start_node_partition , start_node_depth, start_node_index_partition, search_order_times, start_order); area_parts[i] = search_order(start_node_partition , start_node_depth, start_node_index_partition, search_order_times, start_order);
area += area_parts[i]; area += area_parts[i];
//delete [] start_node_index_partition; arr_delete (start_node_index_partition);
} }
if(area<best_area){ if(area<best_area){
best_area = area; best_area = area;
...@@ -340,11 +340,11 @@ int search_partition(int start_node_number=default_start_node_number,int start_n ...@@ -340,11 +340,11 @@ int search_partition(int start_node_number=default_start_node_number,int start_n
int use_part; int use_part;
for (use_part=0;use_part<partition_parts;use_part++){ for (use_part=0;use_part<partition_parts;use_part++){
bool merge_success = 0; bool merge_success = 0;
for(int merge_part=use_part+1;merge_part<partition_parts;merge_part++){ for(int merge_part=use_part+1;merge_part<partition_parts+1;merge_part++){
//改变Partition Set //改变Partition Set
for (int i=0;i<max_partition_parts;i++){ for (int i=0;i<partition_parts;i++){
if(i<merge_part){ if(i<merge_part){
for(int j=0;j<max_partition_parts;j++){ for(int j=0;j<max_partition_parts;j++){
partition_sets[i][j] = best_partition_sets[i][j]; partition_sets[i][j] = best_partition_sets[i][j];
...@@ -377,7 +377,7 @@ int search_partition(int start_node_number=default_start_node_number,int start_n ...@@ -377,7 +377,7 @@ int search_partition(int start_node_number=default_start_node_number,int start_n
cout<<"Partition_set ["<<i<<"] "; cout<<"Partition_set ["<<i<<"] ";
int start_node_partition = 0; int start_node_partition = 0;
for(int j=0;j<partition_parts;j++){ for(int j=0;j<max_partition_parts;j++){
cout<<partition_sets[i][j]; cout<<partition_sets[i][j];
if(partition_sets[i][j]){ if(partition_sets[i][j]){
start_node_partition ++; start_node_partition ++;
...@@ -394,7 +394,7 @@ int search_partition(int start_node_number=default_start_node_number,int start_n ...@@ -394,7 +394,7 @@ int search_partition(int start_node_number=default_start_node_number,int start_n
} }
area_parts[i] = search_order(start_node_partition , start_node_depth, start_node_index_partition, search_order_times, start_order); area_parts[i] = search_order(start_node_partition , start_node_depth, start_node_index_partition, search_order_times, start_order);
area += area_parts[i]; area += area_parts[i];
//delete [] start_node_index_partition; arr_delete ( start_node_index_partition);
} }
} }
...@@ -488,15 +488,11 @@ int search_partition(int start_node_number=default_start_node_number,int start_n ...@@ -488,15 +488,11 @@ int search_partition(int start_node_number=default_start_node_number,int start_n
} }
cout<<"###########################################################################"<<endl; cout<<"###########################################################################"<<endl;
//for (int i=0;i<max_partition_parts;i++){ arr2d_delete(partition_sets,max_partition_parts);
// delete [] partition_sets[i] ; arr2d_delete(best_partition_sets,max_partition_parts);
// delete [] best_partition_sets[i] ;
//}
//delete [] partition_sets ;
//delete [] best_partition_sets ;
//delete [] area_parts ; arr_delete( area_parts );
//delete [] best_area_parts ; arr_delete( best_area_parts );
}; };
int BSD_execute(int start_node_number, node_index* start_node_index,int variable_order_number, int* variable_order){ int BSD_execute(int start_node_number, node_index* start_node_index,int variable_order_number, int* variable_order){
...@@ -544,7 +540,6 @@ int BSD_execute(int start_node_number, node_index* start_node_index,int variable ...@@ -544,7 +540,6 @@ int BSD_execute(int start_node_number, node_index* start_node_index,int variable
BDD_class_main.BDD_FULL_PROCESS(); BDD_class_main.BDD_FULL_PROCESS();
for(int zi=0;zi<parameter_input_bit_width;zi++){ for(int zi=0;zi<parameter_input_bit_width;zi++){
variable_order[zi] = BSD_features_0.variable_order [zi] ; variable_order[zi] = BSD_features_0.variable_order [zi] ;
} }
...@@ -950,16 +945,12 @@ int search_order(int start_node_number = default_start_node_number, int start_no ...@@ -950,16 +945,12 @@ int search_order(int start_node_number = default_start_node_number, int start_no
//area = BSD_execute(parameter_input_bit_width,best_variable_order,10000,best_partition_parts,best_order_num,output_partition_set); //area = BSD_execute(parameter_input_bit_width,best_variable_order,10000,best_partition_parts,best_order_num,output_partition_set);
//delete [] best_BDD_split_nodes ; arr_delete( best_BDD_split_nodes );
//delete [] best_areas ; arr_delete( best_areas );
//delete [] best_rewards ; arr_delete( best_rewards) ;
//delete [] best_area_depths; arr_delete( best_area_depths);
//for (int vi=0;vi<parameter_max_orders;vi++){ arr2d_delete (multi_variable_order,parameter_max_orders);
// delete [] multi_variable_order[vi]; arr2d_delete (best_variable_order,parameter_max_orders);
// delete [] best_variable_order[vi];
//}
//delete [] multi_variable_order;
//delete [] best_variable_order;
return reward; return reward;
}; };
......
...@@ -111,8 +111,8 @@ int BDD_class::next_bit_layer_single(int depth,int which_node_this_layer){ ...@@ -111,8 +111,8 @@ int BDD_class::next_bit_layer_single(int depth,int which_node_this_layer){
} }
delete [] should_not_be_unfold; arr_delete (should_not_be_unfold);
delete [] which_node_this_layer_array; arr_delete (which_node_this_layer_array);
return most_influence_next; return most_influence_next;
}; };
...@@ -340,9 +340,9 @@ int BDD_class::next_bit_layer_1(int depth){ ...@@ -340,9 +340,9 @@ int BDD_class::next_bit_layer_1(int depth){
cout<<"模拟展开修改 "<<change_nodes [best_expansion_node]<<endl; cout<<"模拟展开修改 "<<change_nodes [best_expansion_node]<<endl;
most_influence_next = best_expansion_node; most_influence_next = best_expansion_node;
has_been_unfold[most_influence_next] = 1; has_been_unfold[most_influence_next] = 1;
delete [] how_many_nodes_if_expansion ; arr_delete (how_many_nodes_if_expansion );
delete [] left_son_mask ; arr_delete (left_son_mask );
delete [] right_son_mask ; arr_delete (right_son_mask) ;
} }
return most_influence_next; return most_influence_next;
}; };
......
int BDD_class::print_circuit(BDD_node** BDD,int* most_influence,int node_depth, char* start_node_index_string){ int BDD_class::print_circuit(int node_depth, char* start_node_index_string){
int i,j; int i,j;
int zi; int zi;
......
...@@ -28,7 +28,7 @@ int BDD_class::set_random_input_data(bool** mask_input_data){ ...@@ -28,7 +28,7 @@ int BDD_class::set_random_input_data(bool** mask_input_data){
return 0; return 0;
}; };
int BDD_class::mask_random_input_data(int depth,bool* mask,int amount,int* most_influence,bool** mask_input_data){ int BDD_class::mask_random_input_data(int depth,bool* mask,int amount,bool** mask_input_data){
int i,j; int i,j;
//#pragma omp parallel for //#pragma omp parallel for
for (i=0;i<amount;i++){ for (i=0;i<amount;i++){
......
#include "head.h" #include "head.h"
//#include "io_generator/c1355.h" //io_generator中需要包含对PI_WIDTH,PO_WIDTH的全局定义,如: extern const int PI_WIDTH = 36; #include "io_generator/c432.h" //io_generator中需要包含对PI_WIDTH,PO_WIDTH的全局定义,如: extern const int PI_WIDTH = 36;
//#include "io_generator_vec/c1355_vec.h" //如果有对应Verilog, 可以在aag_to_rtl里面直接生成2个文件 #include "io_generator_vec/c432_vec.h" //如果有对应Verilog, 可以在aag_to_rtl里面直接生成2个文件
#include "io_generator/ip-cores/combinational_circuits/c_lod.h" //#include "io_generator/ip-cores/combinational_circuits/c_lod.h"
#include "io_generator/ip-cores/combinational_circuits_vec/c_lod_vec.h" //#include "io_generator/ip-cores/combinational_circuits_vec/c_lod_vec.h"
#define INPUT_AIG //io_generator是否可以用uint按位操作进行加速,也即是否包含_vec后缀的另一个io_generator #define INPUT_AIG //io_generator是否可以用uint按位操作进行加速,也即是否包含_vec后缀的另一个io_generator
//#define SINGLE_BITS //io_generator是否包含每一个bit单独的io_generator_o{x} #define SINGLE_BITS //io_generator是否包含每一个bit单独的io_generator_o{x}
#define SEARCH_PARTITION //BSD算法搜索partition策略 //#define SEARCH_PARTITION //BSD算法搜索partition策略
#define ACCURACY_FIRST //精度优先算法 //#define ACCURACY_FIRST //精度优先算法: 慢且面积冗余大,在精度是瓶颈时使用,不作为默认选项。
extern const int parameter_input_bit_width = PI_WIDTH +5 ; extern const int parameter_input_bit_width = PI_WIDTH +5 ;
int parameter_output_bit_width = PO_WIDTH; int parameter_output_bit_width = PO_WIDTH;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment