File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,10 @@ class Ieee(PredefinedLibrary):
40
40
def __init__ (self ):
41
41
super ().__init__ (PACKAGES )
42
42
43
+ def LoadSynopsysPackages (self ):
44
+ self .AddPackages (PACKAGES_SYNOPSYS )
45
+
46
+
43
47
44
48
@export
45
49
class Math_Real (PredefinedPackage ):
@@ -84,6 +88,18 @@ def __init__(self):
84
88
self ._AddPackageClause (("IEEE.std_logic_1164.all" , ))
85
89
86
90
91
+ class Std_logic_misc (PredefinedPackage ):
92
+ def __init__ (self ):
93
+ super ().__init__ ()
94
+
95
+ self ._AddLibraryClause (("IEEE" , ))
96
+ self ._AddPackageClause (("IEEE.std_logic_1164.all" , ))
97
+
98
+
99
+ class Std_logic_misc_Body (PredefinedPackageBody ):
100
+ pass
101
+
102
+
87
103
class Numeric_Bit (PredefinedPackage ):
88
104
def __init__ (self ):
89
105
super ().__init__ ()
@@ -119,7 +135,6 @@ def __init__(self):
119
135
class Numeric_Std_Body (PredefinedPackageBody ):
120
136
pass
121
137
122
-
123
138
class Numeric_Std_Unsigned (PredefinedPackage ):
124
139
def __init__ (self ):
125
140
super ().__init__ ()
@@ -203,3 +218,7 @@ def __init__(self):
203
218
(Float_Generic_Pkg , Float_Generic_Pkg_Body ),
204
219
(Float_Pkg , None ),
205
220
)
221
+
222
+ PACKAGES_SYNOPSYS = (
223
+ (Std_logic_misc , Std_logic_misc_Body ),
224
+ )
Original file line number Diff line number Diff line change @@ -44,6 +44,9 @@ class PredefinedLibrary(Library):
44
44
def __init__ (self , packages ):
45
45
super ().__init__ (self .__class__ .__name__ )
46
46
47
+ self .AddPackages (packages )
48
+
49
+ def AddPackages (self , packages ):
47
50
for packageType , packageBodyType in packages :
48
51
package : Package = packageType ()
49
52
package .Library = self
Original file line number Diff line number Diff line change @@ -432,3 +432,15 @@ def test_IeeeLibrary(self):
432
432
self .assertEqual (9 , len (ieeeLibrary .PackageBodies ))
433
433
434
434
self .assertSetEqual (set (design .IterateDesignUnits ()), set (ieeeLibrary .IterateDesignUnits ()))
435
+
436
+ def test_IeeeSynopsysLibrary (self ):
437
+ design = Design ()
438
+ ieeeLibrary = design .LoadIEEELibrary ()
439
+ ieeeLibrary .LoadSynopsysPackages ()
440
+
441
+ self .assertEqual (1 , len (design .Libraries ))
442
+ self .assertEqual ("ieee" , ieeeLibrary .NormalizedIdentifier )
443
+ self .assertEqual (14 , len (ieeeLibrary .Packages ))
444
+ self .assertEqual (10 , len (ieeeLibrary .PackageBodies ))
445
+
446
+ self .assertSetEqual (set (design .IterateDesignUnits ()), set (ieeeLibrary .IterateDesignUnits ()))
You can’t perform that action at this time.
0 commit comments