Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B-ASIC - Better ASIC Toolbox
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Computer Engineering
B-ASIC - Better ASIC Toolbox
Compare revisions
4b6bf3b2a3286670400b72805265b215b3c77307 to 3e1b411ddf23515636d4bb39785af02082f01a75
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
da/B-ASIC
Select target project
No results found
3e1b411ddf23515636d4bb39785af02082f01a75
Select Git revision
Swap
Target
da/B-ASIC
Select target project
da/B-ASIC
lukja239/B-ASIC
robal695/B-ASIC
3 results
4b6bf3b2a3286670400b72805265b215b3c77307
Select Git revision
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
Resolve "Verify SFG 1000 Operations"
· 6f892a44
Arvid Westerlund
authored
4 years ago
and
Adam Jakobsson
committed
4 years ago
6f892a44
Merge branch '69-verify-sfg-1000-operations' into 'develop'
· 3e1b411d
Adam Jakobsson
authored
4 years ago
Resolve "Verify SFG 1000 Operations" See merge request PUM_TDDD96/B-ASIC!60
3e1b411d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
test/test_sfg.py
+111
-3
111 additions, 3 deletions
test/test_sfg.py
with
111 additions
and
3 deletions
test/test_sfg.py
View file @
3e1b411d
...
...
@@ -5,9 +5,10 @@ import string
import
io
import
sys
from
b_asic
import
SFG
,
Signal
,
Input
,
Output
,
Constant
,
ConstantMultiplication
,
Addition
,
Multiplication
,
Delay
,
\
Butterfly
,
Subtraction
,
SquareRoot
from
b_asic
import
SFG
,
Signal
,
Input
,
Output
,
Delay
,
FastSimulation
from
b_asic.core_operations
import
Constant
,
Addition
,
Subtraction
,
Multiplication
,
\
Division
,
Min
,
Max
,
SquareRoot
,
ComplexConjugate
,
Absolute
,
ConstantMultiplication
,
\
Butterfly
from
b_asic.save_load_structure
import
sfg_to_python
,
python_to_sfg
...
...
@@ -283,6 +284,113 @@ class TestReplaceComponents:
assert
False
class
TestConstructSFG
:
def
test_1k_additions
(
self
):
prev_op
=
Addition
(
Constant
(
1
),
Constant
(
1
))
for
_
in
range
(
999
):
prev_op
=
Addition
(
prev_op
,
Constant
(
2
))
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
2000
def
test_1k_subtractions
(
self
):
prev_op
=
Subtraction
(
Constant
(
0
),
Constant
(
2
))
for
_
in
range
(
999
):
prev_op
=
Subtraction
(
prev_op
,
Constant
(
2
))
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
-
2000
def
test_1k_butterfly
(
self
):
prev_op_add
=
Addition
(
Constant
(
1
),
Constant
(
1
))
prev_op_sub
=
Subtraction
(
Constant
(
-
1
),
Constant
(
1
))
for
_
in
range
(
499
):
prev_op_add
=
Addition
(
prev_op_add
,
Constant
(
2
))
for
_
in
range
(
499
):
prev_op_sub
=
Subtraction
(
prev_op_sub
,
Constant
(
2
))
butterfly
=
Butterfly
(
prev_op_add
,
prev_op_sub
)
sfg
=
SFG
(
outputs
=
[
Output
(
butterfly
.
output
(
0
)),
Output
(
butterfly
.
output
(
1
))])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
0
assert
sim
.
results
[
"
1
"
][
0
].
real
==
2000
def
test_1k_multiplications
(
self
):
prev_op
=
Multiplication
(
Constant
(
3
),
Constant
(
0.5
))
for
_
in
range
(
999
):
prev_op
=
Multiplication
(
prev_op
,
Constant
(
1.01
))
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
31127.458868040336
def
test_1k_divisions
(
self
):
prev_op
=
Division
(
Constant
(
3
),
Constant
(
0.5
))
for
_
in
range
(
999
):
prev_op
=
Division
(
prev_op
,
Constant
(
1.01
))
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
0.00028913378500165966
def
test_1k_mins
(
self
):
prev_op
=
Min
(
Constant
(
3.14159
),
Constant
(
43.14123843
))
for
_
in
range
(
999
):
prev_op
=
Min
(
prev_op
,
Constant
(
43.14123843
))
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
3.14159
def
test_1k_maxs
(
self
):
prev_op
=
Max
(
Constant
(
3.14159
),
Constant
(
43.14123843
))
for
_
in
range
(
999
):
prev_op
=
Max
(
prev_op
,
Constant
(
3.14159
))
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
43.14123843
def
test_1k_square_roots
(
self
):
prev_op
=
SquareRoot
(
Constant
(
1000000
))
for
_
in
range
(
4
):
prev_op
=
SquareRoot
(
prev_op
)
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
1.539926526059492
def
test_1k_complex_conjugates
(
self
):
prev_op
=
ComplexConjugate
(
Constant
(
10
+
5j
))
for
_
in
range
(
999
):
prev_op
=
ComplexConjugate
(
prev_op
)
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
]
==
[
10
+
5j
]
def
test_1k_absolutes
(
self
):
prev_op
=
Absolute
(
Constant
(
-
3.14159
))
for
_
in
range
(
999
):
prev_op
=
Absolute
(
prev_op
)
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
3.14159
def
test_1k_constant_multiplications
(
self
):
prev_op
=
ConstantMultiplication
(
1.02
,
Constant
(
3.14159
))
for
_
in
range
(
999
):
prev_op
=
ConstantMultiplication
(
1.02
,
prev_op
)
sfg
=
SFG
(
outputs
=
[
Output
(
prev_op
)])
sim
=
FastSimulation
(
sfg
)
sim
.
step
()
assert
sim
.
results
[
"
0
"
][
0
].
real
==
1251184247.0026844
class
TestInsertComponent
:
def
test_insert_component_in_sfg
(
self
,
large_operation_tree_names
):
...
...
This diff is collapsed.
Click to expand it.