Skip to content

Commit

Permalink
group common functions
Browse files Browse the repository at this point in the history
  • Loading branch information
marph91 committed Mar 23, 2021
1 parent 31d1133 commit 601f5b5
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 50 deletions.
33 changes: 6 additions & 27 deletions sim/test_adder_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,33 +12,12 @@
import pytest

from test_utils.cocotb_helpers import ImageMonitor, Tick
from test_utils.general import get_files


def to_fixedint(number: int, bitwidth: int, is_unsigned: bool = True):
"""Convert signed int to fixed int."""
if is_unsigned:
number_dict = {"uint": number, "length": bitwidth}
else:
number_dict = {"int": number, "length": bitwidth}
return int(Bits(**number_dict).bin, 2)


def from_fixedint(number: int, bitwidth: int, is_unsigned: bool = True):
"""Convert fixed int to signed int."""
number_bin = bin(number)[2:].zfill(bitwidth)
if is_unsigned:
return Bits(bin=number_bin).uint
return Bits(bin=number_bin).int


def concatenate_integers(integer_list: List[int], bitwidth=1) -> int:
concatenated_integer = 0
for value in integer_list:
if value > 2 ** bitwidth:
raise ValueError(f"Value {value} exeeds range.")
concatenated_integer = (concatenated_integer << bitwidth) + value
return concatenated_integer
from test_utils.general import (
concatenate_integers,
from_fixedint,
to_fixedint,
get_files,
)


@cocotb.test()
Expand Down
16 changes: 6 additions & 10 deletions sim/test_convolution.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,12 @@
import pytest

from test_utils.cocotb_helpers import Tick
from test_utils.general import get_files


def concatenate_integers(integer_list: List[int], bitwidth=1) -> int:
concatenated_integer = 0
for value in integer_list:
if value > 2 ** bitwidth:
raise ValueError(f"Value {value} exeeds range.")
concatenated_integer = (concatenated_integer << bitwidth) + value
return concatenated_integer
from test_utils.general import (
concatenate_integers,
from_fixedint,
to_fixedint,
get_files,
)


@cocotb.test()
Expand Down
11 changes: 1 addition & 10 deletions sim/test_maximum_pooling.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,7 @@
import pytest

from test_utils.cocotb_helpers import Tick
from test_utils.general import get_files


def concatenate_integers(integer_list: List[int], bitwidth=1) -> int:
concatenated_integer = 0
for value in integer_list:
if value > 2 ** bitwidth:
raise ValueError(f"Value {value} exeeds range.")
concatenated_integer = (concatenated_integer << bitwidth) + value
return concatenated_integer
from test_utils.general import concatenate_integers, get_files


@cocotb.test()
Expand Down
18 changes: 18 additions & 0 deletions sim/test_utils/general.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from random import randint
from typing import List, Optional, Sequence

from bitstring import Bits
import pytest


Expand Down Expand Up @@ -63,3 +64,20 @@ def concatenate_channel(image, channel, bitwidth=1):
)
for pixel_index in range(0, len(image), channel)
]


def to_fixedint(number: int, bitwidth: int, is_unsigned: bool = True):
"""Convert signed int to fixed int."""
if is_unsigned:
number_dict = {"uint": number, "length": bitwidth}
else:
number_dict = {"int": number, "length": bitwidth}
return int(Bits(**number_dict).bin, 2)


def from_fixedint(number: int, bitwidth: int, is_unsigned: bool = True):
"""Convert fixed int to signed int."""
number_bin = bin(number)[2:].zfill(bitwidth)
if is_unsigned:
return Bits(bin=number_bin).uint
return Bits(bin=number_bin).int
3 changes: 0 additions & 3 deletions vhdl_ls.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
[libraries]
json.files = [
"submodules/JSON-for-VHDL/src/*.vhdl"
]
util.files = [
"src/util/*.vhd",
]
Expand Down

0 comments on commit 601f5b5

Please sign in to comment.