Commit 593bfc4a by chengshuyao

add print function

parent 4421c624
...@@ -176,7 +176,7 @@ int BDD_class::BSD_samples_sort_each_layer(){ ...@@ -176,7 +176,7 @@ int BDD_class::BSD_samples_sort_each_layer(){
bool* BDD_class::io_generator(bool input_data[parameter_input_bit_width],bool* output_bits){ bool* BDD_class::io_generator(bool input_data[parameter_input_bit_width],bool* output_bits){
//bool* output_bits = new bool [parameter_output_bit_width]; //bool* output_bits = new bool [parameter_output_bit_width];
output_bits = io_generator_function(input_data,22,output_bits); output_bits = io_generator_function(input_data,1,output_bits);
//io_read_times += 1; //io_read_times += 1;
return output_bits; return output_bits;
}; };
...@@ -859,6 +859,7 @@ int BDD_class::BDD_FULL_PROCESS(){ ...@@ -859,6 +859,7 @@ int BDD_class::BDD_FULL_PROCESS(){
} }
train_BDD(BDD,most_influence,start_depth,how_many_start_nodes,start_nodes); train_BDD(BDD,most_influence,start_depth,how_many_start_nodes,start_nodes);
BDD_infer(BDD,most_influence); BDD_infer(BDD,most_influence);
print_circuit(BDD,most_influence);
delete [] test_input_data; delete [] test_input_data;
//GLOBAL_BDD_nodes += total_nodes_amount; //GLOBAL_BDD_nodes += total_nodes_amount;
......
...@@ -116,12 +116,12 @@ int BDD_class::next_bit_layer_single(int depth,BDD_node** BDD,int* most_influenc ...@@ -116,12 +116,12 @@ int BDD_class::next_bit_layer_single(int depth,BDD_node** BDD,int* most_influenc
int BDD_class::next_bit_layer(int depth,BDD_node** BDD,int* most_influence){ int BDD_class::next_bit_layer(int depth,BDD_node** BDD,int* most_influence){
random_device rd; random_device rd;
mt19937 gen(rd()); mt19937 gen(rd());
int most_influence_all[64] ={0,32,1,33,2,34,3,35,4,36,5,37,6,38,7,39,8,40,9,41,10,42,11,43,12,44,13,45,14,46,15,47,16,48,17,49,18,50,19,51,20,52,21,53,22,54,23,55,24,56,25,57,26,58,27,59,28,60,29,61,30,62,31,63}; //int most_influence_all[64] ={0,32,1,33,2,34,3,35,4,36,5,37,6,38,7,39,8,40,9,41,10,42,11,43,12,44,13,45,14,46,15,47,16,48,17,49,18,50,19,51,20,52,21,53,22,54,23,55,24,56,25,57,26,58,27,59,28,60,29,61,30,62,31,63};
int most_influence_next = most_influence_all[depth]; //int most_influence_next = most_influence_all[depth];
//int most_influence_next = ; //int most_influence_next = ;
//int most_influence_next=999999; //cin>>most_influence_next;
cin>>most_influence_next; //return most_influence_next;
return most_influence_next; int most_influence_next=999999;
int most_influence_single=0; int most_influence_single=0;
if(depth < 2000){ if(depth < 2000){
most_influence_next = next_bit_layer_old(depth,BDD,most_influence); most_influence_next = next_bit_layer_old(depth,BDD,most_influence);
......
//circuit accuracy = 1
//test amounts = 10000
//total BDD depth =62
//total BDD nodes = 92
//total split modes = 88
//total BDD nodes recursive = 92
//total split modes recursive = 88
//train time = 3.4272
module function_9999_BDD_id_1 (i,o);
input [63:0] i;
output [0:0] o;
wire [ 0:0] l_0;
wire [ 0:0] l_1;
wire [ 0:0] l_2;
wire [ 1:0] l_3;
wire [ 0:0] l_4;
wire [ 1:0] l_5;
wire [ 0:0] l_6;
wire [ 1:0] l_7;
wire [ 0:0] l_8;
wire [ 1:0] l_9;
wire [ 0:0] l_10;
wire [ 1:0] l_11;
wire [ 0:0] l_12;
wire [ 1:0] l_13;
wire [ 0:0] l_14;
wire [ 1:0] l_15;
wire [ 0:0] l_16;
wire [ 1:0] l_17;
wire [ 0:0] l_18;
wire [ 1:0] l_19;
wire [ 0:0] l_20;
wire [ 1:0] l_21;
wire [ 0:0] l_22;
wire [ 1:0] l_23;
wire [ 0:0] l_24;
wire [ 1:0] l_25;
wire [ 0:0] l_26;
wire [ 1:0] l_27;
wire [ 0:0] l_28;
wire [ 1:0] l_29;
wire [ 0:0] l_30;
wire [ 1:0] l_31;
wire [ 0:0] l_32;
wire [ 1:0] l_33;
wire [ 0:0] l_34;
wire [ 1:0] l_35;
wire [ 0:0] l_36;
wire [ 1:0] l_37;
wire [ 0:0] l_38;
wire [ 1:0] l_39;
wire [ 0:0] l_40;
wire [ 1:0] l_41;
wire [ 0:0] l_42;
wire [ 1:0] l_43;
wire [ 0:0] l_44;
wire [ 1:0] l_45;
wire [ 0:0] l_46;
wire [ 1:0] l_47;
wire [ 0:0] l_48;
wire [ 1:0] l_49;
wire [ 0:0] l_50;
wire [ 1:0] l_51;
wire [ 0:0] l_52;
wire [ 1:0] l_53;
wire [ 0:0] l_54;
wire [ 1:0] l_55;
wire [ 0:0] l_56;
wire [ 1:0] l_57;
wire [ 0:0] l_58;
wire [ 1:0] l_59;
wire [ 1:0] l_60;
wire [ 0:0] l_61;
wire [ -1:0] l_62;
assign o [ 0:0] = l_0[ 0:0];
assign l_0[ 0] = ( l_1 [ 0] ^ i[ 0]);
assign l_1[ 0] = ( l_2 [ 0] ^ i[ 32]);
assign l_2[ 0] = ( l_3 [ 0] & !i[ 1]) | ( l_3 [ 1] & i[ 1]);
assign l_3[ 0] = ( l_4 [ 0] & i[ 33]);
assign l_3[ 1] = ( l_4 [ 0] & !i[ 33]) | ( i[ 33]);
assign l_4[ 0] = ( l_5 [ 0] & !i[ 34]) | ( l_5 [ 1] & i[ 34]);
assign l_5[ 0] = ( l_6 [ 0] & i[ 2]);
assign l_5[ 1] = ( l_6 [ 0] & !i[ 2]) | ( i[ 2]);
assign l_6[ 0] = ( l_7 [ 0] & !i[ 3]) | ( l_7 [ 1] & i[ 3]);
assign l_7[ 0] = ( l_8 [ 0] & i[ 35]);
assign l_7[ 1] = ( l_8 [ 0] & !i[ 35]) | ( i[ 35]);
assign l_8[ 0] = ( l_9 [ 0] & !i[ 4]) | ( l_9 [ 1] & i[ 4]);
assign l_9[ 0] = ( l_10 [ 0] & i[ 36]);
assign l_9[ 1] = ( l_10 [ 0] & !i[ 36]) | ( i[ 36]);
assign l_10[ 0] = ( l_11 [ 0] & !i[ 37]) | ( l_11 [ 1] & i[ 37]);
assign l_11[ 0] = ( l_12 [ 0] & i[ 5]);
assign l_11[ 1] = ( l_12 [ 0] & !i[ 5]) | ( i[ 5]);
assign l_12[ 0] = ( l_13 [ 0] & !i[ 38]) | ( l_13 [ 1] & i[ 38]);
assign l_13[ 0] = ( l_14 [ 0] & i[ 6]);
assign l_13[ 1] = ( l_14 [ 0] & !i[ 6]) | ( i[ 6]);
assign l_14[ 0] = ( l_15 [ 0] & !i[ 7]) | ( l_15 [ 1] & i[ 7]);
assign l_15[ 0] = ( l_16 [ 0] & i[ 39]);
assign l_15[ 1] = ( l_16 [ 0] & !i[ 39]) | ( i[ 39]);
assign l_16[ 0] = ( l_17 [ 0] & !i[ 40]) | ( l_17 [ 1] & i[ 40]);
assign l_17[ 0] = ( l_18 [ 0] & i[ 8]);
assign l_17[ 1] = ( l_18 [ 0] & !i[ 8]) | ( i[ 8]);
assign l_18[ 0] = ( l_19 [ 0] & !i[ 9]) | ( l_19 [ 1] & i[ 9]);
assign l_19[ 0] = ( l_20 [ 0] & i[ 41]);
assign l_19[ 1] = ( l_20 [ 0] & !i[ 41]) | ( i[ 41]);
assign l_20[ 0] = ( l_21 [ 0] & !i[ 42]) | ( l_21 [ 1] & i[ 42]);
assign l_21[ 0] = ( l_22 [ 0] & i[ 10]);
assign l_21[ 1] = ( l_22 [ 0] & !i[ 10]) | ( i[ 10]);
assign l_22[ 0] = ( l_23 [ 0] & !i[ 43]) | ( l_23 [ 1] & i[ 43]);
assign l_23[ 0] = ( l_24 [ 0] & i[ 11]);
assign l_23[ 1] = ( l_24 [ 0] & !i[ 11]) | ( i[ 11]);
assign l_24[ 0] = ( l_25 [ 0] & !i[ 44]) | ( l_25 [ 1] & i[ 44]);
assign l_25[ 0] = ( l_26 [ 0] & i[ 12]);
assign l_25[ 1] = ( l_26 [ 0] & !i[ 12]) | ( i[ 12]);
assign l_26[ 0] = ( l_27 [ 0] & !i[ 13]) | ( l_27 [ 1] & i[ 13]);
assign l_27[ 0] = ( l_28 [ 0] & i[ 45]);
assign l_27[ 1] = ( l_28 [ 0] & !i[ 45]) | ( i[ 45]);
assign l_28[ 0] = ( l_29 [ 0] & !i[ 14]) | ( l_29 [ 1] & i[ 14]);
assign l_29[ 0] = ( l_30 [ 0] & i[ 46]);
assign l_29[ 1] = ( l_30 [ 0] & !i[ 46]) | ( i[ 46]);
assign l_30[ 0] = ( l_31 [ 0] & !i[ 15]) | ( l_31 [ 1] & i[ 15]);
assign l_31[ 0] = ( l_32 [ 0] & i[ 47]);
assign l_31[ 1] = ( l_32 [ 0] & !i[ 47]) | ( i[ 47]);
assign l_32[ 0] = ( l_33 [ 0] & !i[ 48]) | ( l_33 [ 1] & i[ 48]);
assign l_33[ 0] = ( l_34 [ 0] & i[ 16]);
assign l_33[ 1] = ( l_34 [ 0] & !i[ 16]) | ( i[ 16]);
assign l_34[ 0] = ( l_35 [ 0] & !i[ 17]) | ( l_35 [ 1] & i[ 17]);
assign l_35[ 0] = ( l_36 [ 0] & i[ 49]);
assign l_35[ 1] = ( l_36 [ 0] & !i[ 49]) | ( i[ 49]);
assign l_36[ 0] = ( l_37 [ 0] & !i[ 18]) | ( l_37 [ 1] & i[ 18]);
assign l_37[ 0] = ( l_38 [ 0] & i[ 50]);
assign l_37[ 1] = ( l_38 [ 0] & !i[ 50]) | ( i[ 50]);
assign l_38[ 0] = ( l_39 [ 0] & !i[ 19]) | ( l_39 [ 1] & i[ 19]);
assign l_39[ 0] = ( l_40 [ 0] & i[ 51]);
assign l_39[ 1] = ( l_40 [ 0] & !i[ 51]) | ( i[ 51]);
assign l_40[ 0] = ( l_41 [ 0] & !i[ 20]) | ( l_41 [ 1] & i[ 20]);
assign l_41[ 0] = ( l_42 [ 0] & i[ 52]);
assign l_41[ 1] = ( l_42 [ 0] & !i[ 52]) | ( i[ 52]);
assign l_42[ 0] = ( l_43 [ 0] & !i[ 53]) | ( l_43 [ 1] & i[ 53]);
assign l_43[ 0] = ( l_44 [ 0] & i[ 21]);
assign l_43[ 1] = ( l_44 [ 0] & !i[ 21]) | ( i[ 21]);
assign l_44[ 0] = ( l_45 [ 0] & !i[ 54]) | ( l_45 [ 1] & i[ 54]);
assign l_45[ 0] = ( l_46 [ 0] & i[ 22]);
assign l_45[ 1] = ( l_46 [ 0] & !i[ 22]) | ( i[ 22]);
assign l_46[ 0] = ( l_47 [ 0] & !i[ 23]) | ( l_47 [ 1] & i[ 23]);
assign l_47[ 0] = ( l_48 [ 0] & i[ 55]);
assign l_47[ 1] = ( l_48 [ 0] & !i[ 55]) | ( i[ 55]);
assign l_48[ 0] = ( l_49 [ 0] & !i[ 24]) | ( l_49 [ 1] & i[ 24]);
assign l_49[ 0] = ( l_50 [ 0] & i[ 56]);
assign l_49[ 1] = ( l_50 [ 0] & !i[ 56]) | ( i[ 56]);
assign l_50[ 0] = ( l_51 [ 0] & !i[ 25]) | ( l_51 [ 1] & i[ 25]);
assign l_51[ 0] = ( l_52 [ 0] & i[ 57]);
assign l_51[ 1] = ( l_52 [ 0] & !i[ 57]) | ( i[ 57]);
assign l_52[ 0] = ( l_53 [ 0] & !i[ 26]) | ( l_53 [ 1] & i[ 26]);
assign l_53[ 0] = ( l_54 [ 0] & i[ 58]);
assign l_53[ 1] = ( l_54 [ 0] & !i[ 58]) | ( i[ 58]);
assign l_54[ 0] = ( l_55 [ 0] & !i[ 27]) | ( l_55 [ 1] & i[ 27]);
assign l_55[ 0] = ( l_56 [ 0] & i[ 59]);
assign l_55[ 1] = ( l_56 [ 0] & !i[ 59]) | ( i[ 59]);
assign l_56[ 0] = ( l_57 [ 0] & !i[ 60]) | ( l_57 [ 1] & i[ 60]);
assign l_57[ 0] = ( l_58 [ 0] & i[ 28]);
assign l_57[ 1] = ( l_58 [ 0] & !i[ 28]) | ( i[ 28]);
assign l_58[ 0] = ( l_59 [ 0] & !i[ 30]) | ( l_59 [ 1] & i[ 30]);
assign l_59[ 0] = ( l_60 [ 0]);
assign l_59[ 1] = ( l_60 [ 0] & !i[ 29]) | ( l_60 [ 1] & i[ 29]);
assign l_60[ 0] = 0;
assign l_60[ 1] = ( l_61 [ 0] & !i[ 61]) | ( i[ 61]);
assign l_61[ 0] = i[ 62];
endmodule
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