Coverage for pyVHDLModel/IEEE.py: 86%

263 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-05 23:04 +0000

1# ==================================================================================================================== # 

2# __ ___ _ ____ _ __ __ _ _ # 

3# _ __ _ \ \ / / | | | _ \| | | \/ | ___ __| | ___| | # 

4# | '_ \| | | \ \ / /| |_| | | | | | | |\/| |/ _ \ / _` |/ _ \ | # 

5# | |_) | |_| |\ V / | _ | |_| | |___| | | | (_) | (_| | __/ | # 

6# | .__/ \__, | \_/ |_| |_|____/|_____|_| |_|\___/ \__,_|\___|_| # 

7# |_| |___/ # 

8# ==================================================================================================================== # 

9# Authors: # 

10# Patrick Lehmann # 

11# # 

12# License: # 

13# ==================================================================================================================== # 

14# Copyright 2017-2026 Patrick Lehmann - Boetzingen, Germany # 

15# Copyright 2016-2017 Patrick Lehmann - Dresden, Germany # 

16# # 

17# Licensed under the Apache License, Version 2.0 (the "License"); # 

18# you may not use this file except in compliance with the License. # 

19# You may obtain a copy of the License at # 

20# # 

21# http://www.apache.org/licenses/LICENSE-2.0 # 

22# # 

23# Unless required by applicable law or agreed to in writing, software # 

24# distributed under the License is distributed on an "AS IS" BASIS, # 

25# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 

26# See the License for the specific language governing permissions and # 

27# limitations under the License. # 

28# # 

29# SPDX-License-Identifier: Apache-2.0 # 

30# ==================================================================================================================== # 

31# 

32"""This module contains library and package declarations for VHDL library ``IEEE``.""" 

33 

34from typing import Optional as Nullable 

35 

36from pyTooling.Decorators import export, readonly 

37 

38from pyVHDLModel import IEEEFlavor 

39from pyVHDLModel.Exception import VHDLModelException 

40from pyVHDLModel.Expression import EnumerationLiteral 

41from pyVHDLModel.Name import SimpleName 

42from pyVHDLModel.Predefined import PredefinedLibrary, PredefinedPackage, PredefinedPackageBody 

43from pyVHDLModel.Symbol import SimpleSubtypeSymbol 

44from pyVHDLModel.Type import EnumeratedType, ArrayType, Subtype 

45 

46 

47@export 

48class Ieee(PredefinedLibrary): 

49 """ 

50 Predefined VHDL library ``ieee``. 

51 

52 The following predefined packages are in this library: 

53 

54 * Math 

55 

56 * :class:`~pyVHDLModel.IEEE.Math_Real` 

57 * :class:`~pyVHDLModel.IEEE.Math_Complex` 

58 

59 * Std_logic 

60 

61 * :class:`~pyVHDLModel.IEEE.Std_Logic_1164` 

62 * :class:`~pyVHDLModel.IEEE.Std_Logic_TextIO` 

63 

64 * Numeric 

65 

66 * :class:`~pyVHDLModel.IEEE.Numeric_Bit` 

67 * :class:`~pyVHDLModel.IEEE.Numeric_Bit_Unsigned` 

68 * :class:`~pyVHDLModel.IEEE.Numeric_Std` 

69 * :class:`~pyVHDLModel.IEEE.Numeric_Std_Unsigned` 

70 

71 * Fixed/floating point 

72 

73 * :class:`~pyVHDLModel.IEEE.Fixed_Float_Types` 

74 * :class:`~pyVHDLModel.IEEE.Fixed_Generic_Pkg` 

75 * :class:`~pyVHDLModel.IEEE.Fixed_Pkg` 

76 * :class:`~pyVHDLModel.IEEE.Float_Generic_Pkg` 

77 * :class:`~pyVHDLModel.IEEE.Float_Pkg` 

78 

79 * Synopsys packages 

80 

81 * :class:`~pyVHDLModel.IEEE.Std_logic_arith` 

82 * :class:`~pyVHDLModel.IEEE.Std_logic_misc` 

83 * :class:`~pyVHDLModel.IEEE.Std_logic_signed` 

84 * :class:`~pyVHDLModel.IEEE.Std_logic_textio` 

85 * :class:`~pyVHDLModel.IEEE.Std_logic_unsigned` 

86 

87 * Mentor Graphics packages 

88 

89 * :class:`~pyVHDLModel.IEEE.Std_logic_arith` 

90 

91 * VITAL packages 

92 

93 * :class:`~pyVHDLModel.IEEE.VITAL_Timing` 

94 * :class:`~pyVHDLModel.IEEE.VITAL_Primitives` 

95 * :class:`~pyVHDLModel.IEEE.VITAL_Memory` 

96 

97 .. seealso:: 

98 

99 Other predefined libraries: 

100 * Library :class:`~pyVHDLModel.STD.Std` 

101 """ 

102 

103 _flavor: IEEEFlavor 

104 

105 def __init__(self, flavor: Nullable[IEEEFlavor] = None) -> None: 

106 super().__init__(PACKAGES) 

107 

108 self._flavor = IEEEFlavor.IEEE 

109 if flavor is None: 

110 return 

111 elif IEEEFlavor.IEEE in flavor: 

112 pass 

113 elif IEEEFlavor.Synopsys in flavor: 

114 self.LoadSynopsysPackages() 

115 elif IEEEFlavor.MentorGraphics in flavor: 115 ↛ 118line 115 didn't jump to line 118 because the condition on line 115 was always true

116 self.LoadMentorGraphicsPackages() 

117 else: 

118 raise VHDLModelException(f"Unknown IEEE library flavor '{flavor}'.") 

119 

120 if IEEEFlavor.WithVITAL in flavor: 120 ↛ 121line 120 didn't jump to line 121 because the condition on line 120 was never true

121 self.LoadVITALPackages() 

122 

123 @readonly 

124 def Flavor(self) -> IEEEFlavor: 

125 return self._flavor 

126 

127 def LoadSynopsysPackages(self) -> None: 

128 if IEEEFlavor.IEEE not in self._flavor: 128 ↛ 129line 128 didn't jump to line 129 because the condition on line 128 was never true

129 raise VHDLModelException(f"IEEE library flavor is '{self._flavor}' and can't be changed to '{IEEEFlavor.Synopsys}'.") 

130 

131 self._flavor = (self._flavor & ~IEEEFlavor.IEEE) | IEEEFlavor.Synopsys 

132 self.AddPackages(SYNOPSYS_PACKAGES) 

133 

134 def LoadMentorGraphicsPackages(self) -> None: 

135 if IEEEFlavor.IEEE not in self._flavor: 135 ↛ 136line 135 didn't jump to line 136 because the condition on line 135 was never true

136 raise VHDLModelException(f"IEEE library flavor is '{self._flavor}' and can't be changed to '{IEEEFlavor.MentorGraphics}'.") 

137 

138 self._flavor = (self._flavor & ~IEEEFlavor.IEEE) | IEEEFlavor.MentorGraphics 

139 self.AddPackages(MENTOR_GRAPHICS_PACKAGES) 

140 

141 def LoadVITALPackages(self) -> None: 

142 self._flavor |= IEEEFlavor.WithVITAL 

143 self.AddPackages(VITAL_PACKAGES) 

144 

145 

146@export 

147class Math_Real(PredefinedPackage): 

148 """ 

149 Predefined package ``ieee.math_real``. 

150 """ 

151 

152 

153@export 

154class Math_Real_Body(PredefinedPackageBody): 

155 """ 

156 Predefined package body of package ``ieee.math_real``. 

157 """ 

158 

159 

160@export 

161class Math_Complex(PredefinedPackage): 

162 """ 

163 Predefined package ``ieee.math_complex``. 

164 """ 

165 

166 def __init__(self) -> None: 

167 super().__init__() 

168 

169 self._AddPackageClause(("work.math_real.all",)) 

170 

171 

172@export 

173class Math_Complex_Body(PredefinedPackageBody): 

174 """ 

175 Predefined package body of package ``ieee.math_complex``. 

176 """ 

177 

178 def __init__(self) -> None: 

179 super().__init__() 

180 

181 self._AddPackageClause(("work.math_real.all",)) 

182 

183 

184@export 

185class Std_Logic_1164(PredefinedPackage): 

186 """ 

187 Predefined package ``ieee.std_logic_1164``. 

188 

189 Predefined types: 

190 

191 * ``std_ulogic``, ``std_ulogic_vector`` 

192 * ``std_logic``, ``std_logic_vector`` 

193 """ 

194 

195 def __init__(self) -> None: 

196 super().__init__() 

197 

198 self._AddPackageClause(("STD.TEXTIO.all", )) 

199 

200 stdULogic = EnumeratedType("std_ulogic", ( 

201 EnumerationLiteral("U"), 

202 EnumerationLiteral("X"), 

203 EnumerationLiteral("0"), 

204 EnumerationLiteral("1"), 

205 EnumerationLiteral("Z"), 

206 EnumerationLiteral("W"), 

207 EnumerationLiteral("L"), 

208 EnumerationLiteral("H"), 

209 EnumerationLiteral("-"), 

210 ), None) 

211 self._types[stdULogic._normalizedIdentifier] = stdULogic 

212 self._declaredItems.append(stdULogic) 

213 

214 stdULogicVector = ArrayType("std_ulogic_vector", (SimpleSubtypeSymbol(SimpleName("natural")),), SimpleSubtypeSymbol(SimpleName("std_ulogic")), None) 

215 self._types[stdULogicVector._normalizedIdentifier] = stdULogicVector 

216 self._declaredItems.append(stdULogicVector) 

217 

218 stdLogic = Subtype("std_logic", SimpleSubtypeSymbol(SimpleName("std_ulogic")), None) 

219 stdLogic._baseType = stdULogic 

220 self._subtypes[stdLogic._normalizedIdentifier] = stdLogic 

221 self._declaredItems.append(stdLogic) 

222 

223 stdLogicVector = Subtype("std_logic_vector", SimpleSubtypeSymbol(SimpleName("std_ulogic_vector")), None) 

224 stdLogicVector._baseType = stdULogicVector 

225 self._subtypes[stdLogicVector._normalizedIdentifier] = stdLogicVector 

226 self._declaredItems.append(stdLogicVector) 

227 

228 

229@export 

230class Std_Logic_1164_Body(PredefinedPackageBody): 

231 """ 

232 Predefined package body of package ``ieee.std_logic_1164``. 

233 """ 

234 

235 

236@export 

237class Std_Logic_TextIO(PredefinedPackage): 

238 """ 

239 Predefined package ``ieee.std_logic_textio``. 

240 """ 

241 

242 def __init__(self) -> None: 

243 super().__init__() 

244 

245 self._AddPackageClause(("STD.TEXTIO.all", )) 

246 self._AddLibraryClause(("IEEE", )) 

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

248 

249 

250@export 

251class Numeric_Bit(PredefinedPackage): 

252 """ 

253 Predefined package ``ieee.numeric_bit``. 

254 """ 

255 

256 def __init__(self) -> None: 

257 super().__init__() 

258 

259 self._AddPackageClause(("STD.TEXTIO.all", )) 

260 

261 

262@export 

263class Numeric_Bit_Body(PredefinedPackageBody): 

264 """ 

265 Predefined package body of package ``ieee.numeric_bit``. 

266 """ 

267 

268 

269@export 

270class Numeric_Bit_Unsigned(PredefinedPackage): 

271 """ 

272 Predefined package ``ieee.numeric_bit_unsigned``. 

273 """ 

274 

275 

276@export 

277class Numeric_Bit_Unsigned_Body(PredefinedPackageBody): 

278 """ 

279 Predefined package body of package ``ieee.numeric_bit_unsigned``. 

280 """ 

281 

282 def __init__(self) -> None: 

283 super().__init__() 

284 

285 self._AddLibraryClause(("IEEE", )) 

286 self._AddPackageClause(("IEEE.numeric_bit.all", )) 

287 

288 

289@export 

290class Numeric_Std(PredefinedPackage): 

291 """ 

292 Predefined package ``ieee.numeric_std``. 

293 

294 Predefined types: 

295 

296 * ``unresolved_unsigned``, ``unsigned`` 

297 * ``unresolved_signed``, ``signed`` 

298 """ 

299 

300 def __init__(self) -> None: 

301 super().__init__() 

302 

303 self._AddPackageClause(("STD.TEXTIO.all", )) 

304 self._AddLibraryClause(("IEEE", )) 

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

306 

307 unresolvedUnsigned = ArrayType("unresolved_unsigned", (SimpleSubtypeSymbol(SimpleName("natural")),), SimpleSubtypeSymbol(SimpleName("std_ulogic")), None) 

308 self._types[unresolvedUnsigned._normalizedIdentifier] = unresolvedUnsigned 

309 self._declaredItems.append(unresolvedUnsigned) 

310 

311 unsigned = Subtype("unsigned", SimpleSubtypeSymbol(SimpleName("unresolved_unsigned")), None) 

312 unsigned._baseType = unresolvedUnsigned 

313 self._subtypes[unsigned._normalizedIdentifier] = unsigned 

314 self._declaredItems.append(unsigned) 

315 

316 unresolvedSigned = ArrayType("unresolved_signed", (SimpleSubtypeSymbol(SimpleName("natural")),), SimpleSubtypeSymbol(SimpleName("std_ulogic")), None) 

317 self._types[unresolvedSigned._normalizedIdentifier] = unresolvedSigned 

318 self._declaredItems.append(unresolvedSigned) 

319 

320 signed = Subtype("signed", SimpleSubtypeSymbol(SimpleName("unresolved_signed")), None) 

321 signed._baseType = unresolvedSigned 

322 self._subtypes[signed._normalizedIdentifier] = signed 

323 self._declaredItems.append(signed) 

324 

325 

326@export 

327class Numeric_Std_Body(PredefinedPackageBody): 

328 """ 

329 Predefined package body of package ``ieee.numeric_std``. 

330 """ 

331 

332 

333@export 

334class Numeric_Std_Unsigned(PredefinedPackage): 

335 """ 

336 Predefined package ``ieee.numeric_std_unsigned``. 

337 """ 

338 

339 def __init__(self) -> None: 

340 super().__init__() 

341 

342 self._AddLibraryClause(("IEEE", )) 

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

344 

345 

346@export 

347class Numeric_Std_Unsigned_Body(PredefinedPackageBody): 

348 """ 

349 Predefined package body of package ``ieee.numeric_std_unsigned``. 

350 """ 

351 

352 def __init__(self) -> None: 

353 super().__init__() 

354 

355 self._AddLibraryClause(("IEEE", )) 

356 self._AddPackageClause(("IEEE.numeric_std.all", )) 

357 

358 

359@export 

360class Fixed_Float_Types(PredefinedPackage): 

361 """ 

362 Predefined package ``ieee.fixed_float_types``. 

363 """ 

364 

365 

366@export 

367class Fixed_Generic_Pkg(PredefinedPackage): 

368 """ 

369 Predefined package ``ieee.fixed_generic_pkg``. 

370 """ 

371 

372 def __init__(self) -> None: 

373 super().__init__() 

374 

375 self._AddPackageClause(("STD.TEXTIO.all", )) 

376 self._AddLibraryClause(("IEEE", )) 

377 self._AddPackageClause(("IEEE.STD_LOGIC_1164.all", )) 

378 self._AddPackageClause(("IEEE.NUMERIC_STD.all", )) 

379 self._AddPackageClause(("IEEE.fixed_float_types.all", )) 

380 

381 

382@export 

383class Fixed_Generic_Pkg_Body(PredefinedPackageBody): 

384 """ 

385 Predefined package body of package ``ieee.fixed_generic_pkg``. 

386 """ 

387 

388 def __init__(self) -> None: 

389 super().__init__() 

390 

391 self._AddLibraryClause(("IEEE", )) 

392 self._AddPackageClause(("IEEE.MATH_REAL.all", )) 

393 

394 

395@export 

396class Fixed_Pkg(PredefinedPackage): 

397 """ 

398 Predefined package ``ieee.fixed_pkg``. 

399 """ 

400 def __init__(self) -> None: 

401 super().__init__() 

402 

403 self._AddLibraryClause(("IEEE", )) 

404 

405 

406@export 

407class Float_Generic_Pkg(PredefinedPackage): 

408 """ 

409 Predefined package ``ieee.float_generic_pkg``. 

410 """ 

411 

412 def __init__(self) -> None: 

413 super().__init__() 

414 

415 self._AddPackageClause(("STD.TEXTIO.all", )) 

416 self._AddLibraryClause(("IEEE", )) 

417 self._AddPackageClause(("IEEE.STD_LOGIC_1164.all", )) 

418 self._AddPackageClause(("IEEE.NUMERIC_STD.all", )) 

419 self._AddPackageClause(("IEEE.fixed_float_types.all", )) 

420 

421 

422@export 

423class Float_Generic_Pkg_Body(PredefinedPackageBody): 

424 """ 

425 Predefined package body of package ``ieee.float_generic_pkg``. 

426 """ 

427 

428 

429@export 

430class Float_Pkg(PredefinedPackage): 

431 """ 

432 Predefined package ``ieee.float_pkg``. 

433 """ 

434 

435 def __init__(self) -> None: 

436 super().__init__() 

437 

438 self._AddLibraryClause(("IEEE", )) 

439 

440 

441PACKAGES = ( 

442 (Math_Real, Math_Real_Body), 

443 (Math_Complex, Math_Complex_Body), 

444 (Std_Logic_1164, Std_Logic_1164_Body), 

445 (Std_Logic_TextIO, None), 

446 (Numeric_Bit, Numeric_Bit_Body), 

447 (Numeric_Bit_Unsigned, Numeric_Bit_Unsigned_Body), 

448 (Numeric_Std, Numeric_Std_Body), 

449 (Numeric_Std_Unsigned, Numeric_Std_Unsigned_Body), 

450 (Fixed_Float_Types, None), 

451 (Fixed_Generic_Pkg, Fixed_Generic_Pkg_Body), 

452 (Fixed_Pkg, None), 

453 (Float_Generic_Pkg, Float_Generic_Pkg_Body), 

454 (Float_Pkg, None), 

455) 

456 

457 

458@export 

459class Std_Logic_Arith(PredefinedPackage): 

460 """ 

461 Predefined Mentor Graphics package ``ieee.std_logic_arith``. 

462 """ 

463 

464 def __init__(self) -> None: 

465 super().__init__() 

466 

467 self._AddLibraryClause(("IEEE", )) 

468 

469 # used inside of package 

470 # self._AddPackageClause(("IEEE.std_logic_1164.all", )) 

471 

472 

473@export 

474class Std_Logic_Arith_Body(PredefinedPackageBody): 

475 """ 

476 Predefined package body of Mentor Graphics package ``ieee.std_logic_arith``. 

477 """ 

478 

479 

480MENTOR_GRAPHICS_PACKAGES = ( 

481 (Std_Logic_Arith, Std_Logic_Arith_Body), 

482) 

483 

484 

485@export 

486class VITAL_Timing(PredefinedPackage): 

487 """ 

488 Predefined package ``ieee.VITAL_Timing``. 

489 """ 

490 

491 def __init__(self) -> None: 

492 super().__init__() 

493 

494 self._AddLibraryClause(("IEEE", )) 

495 self._AddPackageClause(("IEEE.STD_LOGIC_1164.all", )) 

496 

497 

498@export 

499class VITAL_Timing_Body(PredefinedPackageBody): 

500 """ 

501 Predefined package body of package ``ieee.VITAL_Timing``. 

502 """ 

503 

504 def __init__(self) -> None: 

505 super().__init__() 

506 

507 self._AddLibraryClause(("STD", )) 

508 self._AddPackageClause(("STD.TEXTIO.all", )) 

509 

510 

511@export 

512class VITAL_Primitives(PredefinedPackage): 

513 """ 

514 Predefined package ``ieee.VITAL_Primitives``. 

515 """ 

516 

517 def __init__(self) -> None: 

518 super().__init__() 

519 

520 self._AddLibraryClause(("IEEE", )) 

521 self._AddPackageClause(("IEEE.STD_LOGIC_1164.all", )) 

522 self._AddPackageClause(("IEEE.VITAL_Timing.all", )) 

523 

524 

525@export 

526class VITAL_Primitives_Body(PredefinedPackageBody): 

527 """ 

528 Predefined package body of package ``ieee.VITAL_Primitives``. 

529 """ 

530 

531 def __init__(self) -> None: 

532 super().__init__() 

533 

534 self._AddLibraryClause(("STD", )) 

535 self._AddPackageClause(("STD.TEXTIO.all", )) 

536 

537 

538@export 

539class VITAL_Memory(PredefinedPackage): 

540 """ 

541 Predefined package ``ieee.VITAL_Memory``. 

542 """ 

543 

544 def __init__(self) -> None: 

545 super().__init__() 

546 

547 self._AddLibraryClause(("IEEE", )) 

548 self._AddPackageClause(("IEEE.STD_LOGIC_1164.all", )) 

549 self._AddPackageClause(("IEEE.VITAL_Timing.all", )) 

550 self._AddPackageClause(("IEEE.VITAL_Primitives.all", )) 

551 

552 self._AddLibraryClause(("STD", )) 

553 self._AddPackageClause(("STD.TEXTIO.all", )) 

554 

555 

556@export 

557class VITAL_Memory_Body(PredefinedPackageBody): 

558 """ 

559 Predefined package body of package ``ieee.VITAL_Memory``. 

560 """ 

561 

562 def __init__(self) -> None: 

563 super().__init__() 

564 

565 self._AddLibraryClause(("IEEE", )) 

566 self._AddPackageClause(("IEEE.STD_LOGIC_1164.all", )) 

567 self._AddPackageClause(("IEEE.VITAL_Timing.all", )) 

568 self._AddPackageClause(("IEEE.VITAL_Primitives.all", )) 

569 

570 self._AddLibraryClause(("STD", )) 

571 self._AddPackageClause(("STD.TEXTIO.all", )) 

572 

573 

574VITAL_PACKAGES = ( 

575 (VITAL_Timing, VITAL_Timing_Body), 

576 (VITAL_Primitives, VITAL_Primitives_Body), 

577 (VITAL_Memory, VITAL_Memory_Body) 

578) 

579 

580 

581@export 

582class Std_Logic_Arith(PredefinedPackage): 

583 """ 

584 Predefined Synopsys package ``ieee.std_logic_arith``. 

585 """ 

586 

587 def __init__(self) -> None: 

588 super().__init__() 

589 

590 self._AddLibraryClause(("IEEE", )) 

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

592 

593 

594@export 

595class Std_Logic_Misc(PredefinedPackage): 

596 """ 

597 Predefined Synopsys package ``ieee.std_logic_misc``. 

598 """ 

599 

600 def __init__(self) -> None: 

601 super().__init__() 

602 

603 self._AddLibraryClause(("IEEE", )) 

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

605 

606 

607@export 

608class Std_Logic_Misc_Body(PredefinedPackageBody): 

609 """ 

610 Predefined package body of Synopsys package ``ieee.std_logic_misc``. 

611 """ 

612 

613 

614@export 

615class Std_Logic_Signed(PredefinedPackage): 

616 """ 

617 Predefined Synopsys package ``ieee.std_logic_signed``. 

618 """ 

619 

620 def __init__(self) -> None: 

621 super().__init__() 

622 

623 self._AddLibraryClause(("IEEE", )) 

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

625 self._AddPackageClause(("IEEE.std_logic_arith.all", )) 

626 

627 

628@export 

629class Std_Logic_TextIO(PredefinedPackage): 

630 """ 

631 Predefined Synopsys package ``ieee.std_logic_textio``. 

632 """ 

633 

634 def __init__(self) -> None: 

635 super().__init__() 

636 

637 self._AddPackageClause(("STD.textio.all", )) 

638 

639 self._AddLibraryClause(("IEEE", )) 

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

641 

642 

643@export 

644class Std_Logic_Unsigned(PredefinedPackage): 

645 """ 

646 Predefined Synopsys package ``ieee.std_logic_unsigned``. 

647 """ 

648 

649 def __init__(self) -> None: 

650 super().__init__() 

651 

652 self._AddLibraryClause(("IEEE", )) 

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

654 self._AddPackageClause(("IEEE.std_logic_arith.all", )) 

655 

656 

657SYNOPSYS_PACKAGES = ( 

658 (Std_Logic_Arith, None), 

659 (Std_Logic_Misc, Std_Logic_Misc_Body), 

660 (Std_Logic_Signed, None), 

661 (Std_Logic_TextIO, None), 

662 (Std_Logic_Unsigned, None), 

663)