Commit ca279528 by chengshuyao

add a plot output

parent 593bfc4a
......@@ -720,7 +720,7 @@ int BDD_class::BDD_infer(BDD_node** BDD,int* most_influence){
cout<<"test dataset size = "<<parameter_test_ios<<endl;
error_amount_all = 0;
bool error_all [how_many_start_nodes*parameter_test_ios];
#pragma omp parallel for
//#pragma omp parallel for
for(long zj=0;zj<how_many_start_nodes*parameter_test_ios;zj++){
int test_bit = int(zj/parameter_test_ios);
bool test_input_data [parameter_input_bit_width];
......
......@@ -5,12 +5,31 @@ int BDD_class::print_circuit(BDD_node** BDD,int* most_influence){
char output_file_name[100];
//sprintf(output_file_name,"rtl/module_output_bit_%d.v",which_bit_output);
sprintf(output_file_name,"rtl/function_%d_BDD_id_%d.v",circuit_index,BDD_id);
sprintf(output_file_name,"rtl/function_%d_BDD_id.v",circuit_index,BDD_id);
// string output_file_name << output_file_name_begin << which_bit_output << output_file_name_end;
cout<<output_file_name<<endl;
cout<<output_file_name<<endl;
ofstream output_module_file(output_file_name);
//copy this
char plot_file_name[100];
sprintf(plot_file_name,"BDD.plot");
ofstream plot_file(plot_file_name);
for (int i=0;i<total_BDD_depth+1;i++){
for (int j=0;j<BDD_width_each_layer[i];j++){
plot_file << BDD[i][j].left_node_index << "," << BDD[i][j].right_node_index;
if(j < (BDD_width_each_layer[i]-1)){
plot_file <<",";
}
else{
plot_file <<endl;
}
}
}
//finish copy
/////////////////////////////////// output_module_file << "//circuit accuracy = "<<circuit_accuracy<<endl;
/////////////////////////////////// output_module_file << "//test amounts = "<<parameter_test_ios<<endl;
/////////////////////////////////// output_module_file << "//total BDD nodes = "<<total_nodes_amount<<endl;
......
//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