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
593bfc4a
Commit
593bfc4a
authored
Mar 12, 2025
by
chengshuyao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add print function
parent
4421c624
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
180 additions
and
6 deletions
+180
-6
src/BSD.h
+2
-1
src/next_layer_bit.h
+5
-5
src/rtl/function_9999_BDD_id_1.v
+173
-0
No files found.
src/BSD.h
View file @
593bfc4a
...
@@ -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;
...
...
src/next_layer_bit.h
View file @
593bfc4a
...
@@ -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
);
...
...
src/rtl/function_9999_BDD_id_1.v
0 → 100644
View file @
593bfc4a
//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
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