Commit 8beb97fc by chengshuyao

Debug segmentation fault

parent 5cba0271
...@@ -358,6 +358,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -358,6 +358,7 @@ int BDD_class::next_bit_layer_0(int depth){
for (zz=0;zz<parameter_input_bit_width;zz++){ for (zz=0;zz<parameter_input_bit_width;zz++){
amount_turn[zz] = 0; amount_turn[zz] = 0;
should_not_be_unfold[zz] = 0;
} }
long parameter_sample_mul = 10; long parameter_sample_mul = 10;
for (j=0;j<20;j++){ for (j=0;j<20;j++){
...@@ -367,6 +368,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -367,6 +368,7 @@ int BDD_class::next_bit_layer_0(int depth){
} }
} }
int BSD_samples_influence = BSD_samples_influence_max; int BSD_samples_influence = BSD_samples_influence_max;
for (zz=0;zz<1;zz++){ for (zz=0;zz<1;zz++){
if(depth < parameter_multi_output_index){ if(depth < parameter_multi_output_index){
break; break;
...@@ -404,7 +406,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -404,7 +406,7 @@ int BDD_class::next_bit_layer_0(int depth){
if(has_been_unfold[i] || should_not_be_unfold[i]){ if(has_been_unfold[i] || should_not_be_unfold[i]){
}else{ }else{
#pragma omp parallel for //#pragma omp parallel for
for(int j=0;j<BSD_samples_influence;j++){ for(int j=0;j<BSD_samples_influence;j++){
bool amount_turn_input_data_ij[parameter_input_bit_width]; bool amount_turn_input_data_ij[parameter_input_bit_width];
for(int k=0;k<parameter_input_bit_width;k++){ for(int k=0;k<parameter_input_bit_width;k++){
...@@ -431,7 +433,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -431,7 +433,7 @@ int BDD_class::next_bit_layer_0(int depth){
} }
//USE_THIS:RANDOM //USE_THIS:RANDOM
//if(i<64) //if(i<64)
// amount_turn[i] = gen()%5; //amount_turn[i] = gen()%5;
//else //else
// amount_turn[i] = 0; // amount_turn[i] = 0;
...@@ -440,6 +442,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -440,6 +442,7 @@ int BDD_class::next_bit_layer_0(int depth){
} }
} }
//cout<<"bit "<<i<<" amount turn: "<<amount_turn[i]<<" has been unfold "<<has_been_unfold[i]<<"should not be unfold "<<should_not_be_unfold[i]<<endl;
} }
if(finish_influence_sample){ if(finish_influence_sample){
...@@ -447,6 +450,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -447,6 +450,7 @@ int BDD_class::next_bit_layer_0(int depth){
break; break;
} }
} }
cout<<"这一层排序的采样个数为:"<<zz*BSD_samples_influence<<endl;
double amount_turn_all = 0; double amount_turn_all = 0;
double amount_turn_valid_bits = 0; double amount_turn_valid_bits = 0;
int amount_turn_static[parameter_input_bit_width]; int amount_turn_static[parameter_input_bit_width];
...@@ -465,7 +469,7 @@ int BDD_class::next_bit_layer_0(int depth){ ...@@ -465,7 +469,7 @@ int BDD_class::next_bit_layer_0(int depth){
most_influence_next = max_element(amount_turn_static,amount_turn_static+parameter_input_bit_width) - amount_turn_static; most_influence_next = max_element(amount_turn_static,amount_turn_static+parameter_input_bit_width) - amount_turn_static;
for (i=0;i<parameter_input_bit_width;i++){ for (i=0;i<parameter_input_bit_width;i++){
if(has_been_unfold[most_influence_next]){ if(has_been_unfold[most_influence_next]){
amount_turn[most_influence_next] = -1; amount_turn_static[most_influence_next] = -10;
}else{ }else{
break; //has_been_unfold[most_influence_next] = 1; break; //has_been_unfold[most_influence_next] = 1;
} }
......
#define INPUT_AIG #define INPUT_AIG
#include "io_generator/xgate_barrel_shift.h" #include "io_generator/vl_arith_unit.h"
#include "xgate_barrel_shift_vec.h" #include "vl_arith_unit_vec.h"
extern const int parameter_input_bit_width = PI_WIDTH + 5 ; extern const int parameter_input_bit_width = PI_WIDTH + 5 ;
extern const int parameter_output_bit_width = PO_WIDTH ; extern const int parameter_output_bit_width = PO_WIDTH ;
...@@ -15,7 +15,7 @@ extern const int parameter_output_bit_width = PO_WIDTH ; ...@@ -15,7 +15,7 @@ extern const int parameter_output_bit_width = PO_WIDTH ;
//#include"io_generator_tmp.h" //#include"io_generator_tmp.h"
extern const int parameter_search_iterations = 1; //最大设计次数 extern const int parameter_search_iterations = 100; //最大设计次数
extern const int parameter_test_ios = 1000; //测试要求多少样本 extern const int parameter_test_ios = 1000; //测试要求多少样本
extern const int parameter_max_samples = int(parameter_test_ios*100/32)*32; //BSD每一个节点最多进行多少次采样 extern const int parameter_max_samples = int(parameter_test_ios*100/32)*32; //BSD每一个节点最多进行多少次采样
......
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