Skip to content

Commit

Permalink
Add missing std_logic_misc pkg to IEEE library.
Browse files Browse the repository at this point in the history
  • Loading branch information
Paebbels committed Apr 2, 2023
2 parents 37e5416 + e277c9c commit 93bf4b7
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
21 changes: 20 additions & 1 deletion pyVHDLModel/IEEE.py
Expand Up @@ -40,6 +40,10 @@ class Ieee(PredefinedLibrary):
def __init__(self):
super().__init__(PACKAGES)

def LoadSynopsysPackages(self):
self.AddPackages(PACKAGES_SYNOPSYS)



@export
class Math_Real(PredefinedPackage):
Expand Down Expand Up @@ -84,6 +88,18 @@ def __init__(self):
self._AddPackageClause(("IEEE.std_logic_1164.all", ))


class Std_logic_misc(PredefinedPackage):
def __init__(self):
super().__init__()

self._AddLibraryClause(("IEEE", ))
self._AddPackageClause(("IEEE.std_logic_1164.all", ))


class Std_logic_misc_Body(PredefinedPackageBody):
pass


class Numeric_Bit(PredefinedPackage):
def __init__(self):
super().__init__()
Expand Down Expand Up @@ -119,7 +135,6 @@ def __init__(self):
class Numeric_Std_Body(PredefinedPackageBody):
pass


class Numeric_Std_Unsigned(PredefinedPackage):
def __init__(self):
super().__init__()
Expand Down Expand Up @@ -203,3 +218,7 @@ def __init__(self):
(Float_Generic_Pkg, Float_Generic_Pkg_Body),
(Float_Pkg, None),
)

PACKAGES_SYNOPSYS = (
(Std_logic_misc, Std_logic_misc_Body),
)
3 changes: 3 additions & 0 deletions pyVHDLModel/STD.py
Expand Up @@ -44,6 +44,9 @@ class PredefinedLibrary(Library):
def __init__(self, packages):
super().__init__(self.__class__.__name__)

self.AddPackages(packages)

def AddPackages(self, packages):
for packageType, packageBodyType in packages:
package: Package = packageType()
package.Library = self
Expand Down
12 changes: 12 additions & 0 deletions tests/unit/Instantiate.py
Expand Up @@ -432,3 +432,15 @@ def test_IeeeLibrary(self):
self.assertEqual(9, len(ieeeLibrary.PackageBodies))

self.assertSetEqual(set(design.IterateDesignUnits()), set(ieeeLibrary.IterateDesignUnits()))

def test_IeeeSynopsysLibrary(self):
design = Design()
ieeeLibrary = design.LoadIEEELibrary()
ieeeLibrary.LoadSynopsysPackages()

self.assertEqual(1, len(design.Libraries))
self.assertEqual("ieee", ieeeLibrary.NormalizedIdentifier)
self.assertEqual(14, len(ieeeLibrary.Packages))
self.assertEqual(10, len(ieeeLibrary.PackageBodies))

self.assertSetEqual(set(design.IterateDesignUnits()), set(ieeeLibrary.IterateDesignUnits()))

0 comments on commit 93bf4b7

Please sign in to comment.