Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
BSD
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chengshuyao
BSD
Commits
e2d7bc01
Commit
e2d7bc01
authored
Dec 30, 2025
by
chengshuyao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Debug test_input_bit train_input_bit
parent
c433861a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
2 deletions
+17
-2
src/BSD.h
+6
-1
src/BSD_top.h
+11
-1
No files found.
src/BSD.h
View file @
e2d7bc01
...
@@ -66,6 +66,7 @@ public:
...
@@ -66,6 +66,7 @@ public:
int
*
most_influence
;
int
*
most_influence
;
int
*
BDD_width_each_layer
;
int
*
BDD_width_each_layer
;
bool
**
mask_input_data
;
bool
**
mask_input_data
;
bool
**
mask_input_data_order
;
bool
*
mask_output_data
;
bool
*
mask_output_data
;
double
total_finish_weight
=
0
;
double
total_finish_weight
=
0
;
...
@@ -200,6 +201,7 @@ public:
...
@@ -200,6 +201,7 @@ public:
start_node_index_string
=
new
char
[
parameter_output_bit_width
+
1
];
start_node_index_string
=
new
char
[
parameter_output_bit_width
+
1
];
arr2d_new
(
mask_input_data
,
parameter_max_samples
*
2
);
arr2d_new
(
mask_input_data
,
parameter_max_samples
*
2
);
arr2d_new
(
mask_input_data_order
,
parameter_max_samples
*
2
);
arr2d_new
(
simplify_list
,
parameter_max_BDD_width
);
arr2d_new
(
simplify_list
,
parameter_max_BDD_width
);
arr2d_new
(
BDD
,
1
+
parameter_input_bit_width
);
arr2d_new
(
BDD
,
1
+
parameter_input_bit_width
);
arr2d_new
(
amount_turn_output_data
,
1
+
parameter_input_bit_width
);
arr2d_new
(
amount_turn_output_data
,
1
+
parameter_input_bit_width
);
...
@@ -235,6 +237,7 @@ public:
...
@@ -235,6 +237,7 @@ public:
arr_delete
(
all_one_right_list
)
;
arr_delete
(
all_one_right_list
)
;
arr_delete
(
all_zero_right_list
)
;
arr_delete
(
all_zero_right_list
)
;
arr2d_delete
(
mask_input_data
,
parameter_max_samples
*
2
);
arr2d_delete
(
mask_input_data
,
parameter_max_samples
*
2
);
arr2d_delete
(
mask_input_data_order
,
parameter_max_samples
*
2
);
arr2d_delete
(
simplify_list
,
parameter_max_BDD_width
);
arr2d_delete
(
simplify_list
,
parameter_max_BDD_width
);
arr2d_delete
(
BDD
,
1
+
parameter_input_bit_width
);
arr2d_delete
(
BDD
,
1
+
parameter_input_bit_width
);
arr2d_delete
(
amount_turn_output_data
,
1
+
parameter_input_bit_width
);
arr2d_delete
(
amount_turn_output_data
,
1
+
parameter_input_bit_width
);
...
@@ -376,6 +379,7 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st
...
@@ -376,6 +379,7 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st
for
(
i
=
start_depth
;
i
<
/*parameter_early_stop_depth*/
parameter_input_bit_width
+
1
;
i
++
){
for
(
i
=
start_depth
;
i
<
/*parameter_early_stop_depth*/
parameter_input_bit_width
+
1
;
i
++
){
set_random_train
();
cout
<<
"BSD input bit sequence : "
;
cout
<<
"BSD input bit sequence : "
;
for
(
int
zi
=
0
;
zi
<
i
;
zi
++
){
for
(
int
zi
=
0
;
zi
<
i
;
zi
++
){
cout
<<
most_influence
[
zi
]
<<
" "
;
cout
<<
most_influence
[
zi
]
<<
" "
;
...
@@ -543,8 +547,8 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st
...
@@ -543,8 +547,8 @@ int BDD_class::train_BDD(int start_depth, int how_many_start_nodes, BDD_node* st
cout
<<
"The BSD is on layer: "
<<
i
<<
" "
;
cout
<<
"The BSD is on layer: "
<<
i
<<
" "
;
cout
<<
"The input bit is: x"
<<
most_influence
[
i
]
<<
endl
;
cout
<<
"The input bit is: x"
<<
most_influence
[
i
]
<<
endl
;
cout
<<
"BSD width at this layer: "
<<
BDD_width_each_layer
[
i
]
<<
endl
;
cout
<<
"BSD width at this layer: "
<<
BDD_width_each_layer
[
i
]
<<
endl
;
set_random_input_data
(
mask_input_data
);
cout
<<
"set random input data finish "
<<
endl
;
cout
<<
"set random input data finish "
<<
endl
;
set_random_input_data
(
mask_input_data
);
#ifdef INPUT_AIG
#ifdef INPUT_AIG
int
vec_length
=
63
;
int
vec_length
=
63
;
#pragma omp parallel for
#pragma omp parallel for
...
@@ -1249,6 +1253,7 @@ int BDD_class::BDD_FULL_PROCESS(){
...
@@ -1249,6 +1253,7 @@ int BDD_class::BDD_FULL_PROCESS(){
for
(
j
=
0
;
j
<
parameter_max_samples
;
j
++
){
for
(
j
=
0
;
j
<
parameter_max_samples
;
j
++
){
mask_input_data
[
j
]
=
new
bool
[
parameter_input_bit_width
+
2
];
mask_input_data
[
j
]
=
new
bool
[
parameter_input_bit_width
+
2
];
mask_input_data_order
[
j
]
=
new
bool
[
parameter_input_bit_width
+
2
];
}
}
int
start_node_ij
=
0
;
int
start_node_ij
=
0
;
for
(
int
i
=
0
;
i
<
parameter_output_bit_width
;
i
++
){
for
(
int
i
=
0
;
i
<
parameter_output_bit_width
;
i
++
){
...
...
src/BSD_top.h
View file @
e2d7bc01
...
@@ -98,6 +98,16 @@ int BSD_execute(int start_node_number, node_index* start_node_index,int variable
...
@@ -98,6 +98,16 @@ int BSD_execute(int start_node_number, node_index* start_node_index,int variable
bool
*
test_input_bits
;
bool
*
test_input_bits
;
bool
*
train_input_bits
=
new
bool
[
long
(
parameter_max_samples
)
*
long
(
parameter_input_bit_width
)];
bool
*
train_input_bits
=
new
bool
[
long
(
parameter_max_samples
)
*
long
(
parameter_input_bit_width
)];
void
set_random_train
(){
random_device
rd
;
mt19937
gen
(
rd
());
#pragma omp parallel for
for
(
long
j
=
0
;
j
<
long
(
parameter_max_samples
)
*
long
(
parameter_input_bit_width
)
/
30
;
j
++
){
long
randint
=
gen
();
for
(
int
zi
=
0
;
zi
<
30
;
zi
++
)
train_input_bits
[
j
*
30
+
zi
]
=
bool
((
int
(
randint
>>
(
zi
)))
%
2
);
}
};
class
BSD_features
{
class
BSD_features
{
public
:
public
:
...
@@ -186,7 +196,7 @@ void set_default(){
...
@@ -186,7 +196,7 @@ void set_default(){
for
(
long
j
=
0
;
j
<
long
(
parameter_test_ios
)
*
long
(
parameter_input_bit_width
)
/
31
;
j
++
){
for
(
long
j
=
0
;
j
<
long
(
parameter_test_ios
)
*
long
(
parameter_input_bit_width
)
/
31
;
j
++
){
long
randint
=
gen
();
long
randint
=
gen
();
for
(
int
zi
=
0
;
zi
<
31
;
zi
++
)
for
(
int
zi
=
0
;
zi
<
31
;
zi
++
)
test_input_bits
[
j
]
=
bool
((
int
(
randint
>>
(
zi
)))
%
2
);
test_input_bits
[
j
*
31
+
zi
]
=
bool
((
int
(
randint
>>
(
zi
)))
%
2
);
}
}
cout
<<
"Finish default setup"
;
cout
<<
"Finish default setup"
;
//io generator来自真值表,不来自写好的文件
//io generator来自真值表,不来自写好的文件
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment