diff options
| -rw-r--r-- | pyGHDL/libghdl/vhdl/nodes.py | 460 | ||||
| -rw-r--r-- | src/vhdl/vhdl-ieee-numeric.adb | 46 | ||||
| -rw-r--r-- | src/vhdl/vhdl-nodes.ads | 12 | 
3 files changed, 284 insertions, 234 deletions
diff --git a/pyGHDL/libghdl/vhdl/nodes.py b/pyGHDL/libghdl/vhdl/nodes.py index 6b818713d..22e2f8d08 100644 --- a/pyGHDL/libghdl/vhdl/nodes.py +++ b/pyGHDL/libghdl/vhdl/nodes.py @@ -1644,232 +1644,240 @@ class Iir_Predefined(IntEnum):      Ieee_Numeric_Std_Match_Suv = 447      Ieee_Numeric_Std_To_01_Uns = 448      Ieee_Numeric_Std_To_01_Sgn = 449 -    Ieee_Numeric_Bit_Toint_Uns_Nat = 450 -    Ieee_Numeric_Bit_Toint_Sgn_Int = 451 -    Ieee_Numeric_Bit_Touns_Nat_Nat_Uns = 452 -    Ieee_Numeric_Bit_Touns_Nat_Uns_Uns = 453 -    Ieee_Numeric_Bit_Tosgn_Int_Nat_Sgn = 454 -    Ieee_Numeric_Bit_Tosgn_Int_Sgn_Sgn = 455 -    Ieee_Numeric_Std_Unsigned_To_Integer_Slv_Nat = 456 -    Ieee_Numeric_Std_Unsigned_To_Slv_Nat_Nat_Slv = 457 -    Ieee_Math_Real_Ceil = 458 -    Ieee_Math_Real_Floor = 459 -    Ieee_Math_Real_Round = 460 -    Ieee_Math_Real_Log2 = 461 -    Ieee_Math_Real_Sin = 462 -    Ieee_Math_Real_Cos = 463 -    Ieee_Math_Real_Arctan = 464 -    Ieee_Math_Real_Pow = 465 -    Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 466 -    Ieee_Std_Logic_Unsigned_Add_Slv_Int = 467 -    Ieee_Std_Logic_Unsigned_Add_Int_Slv = 468 -    Ieee_Std_Logic_Unsigned_Add_Slv_Log = 469 -    Ieee_Std_Logic_Unsigned_Add_Log_Slv = 470 -    Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 471 -    Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 472 -    Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 473 -    Ieee_Std_Logic_Unsigned_Sub_Slv_Log = 474 -    Ieee_Std_Logic_Unsigned_Sub_Log_Slv = 475 -    Ieee_Std_Logic_Unsigned_Id_Slv = 476 -    Ieee_Std_Logic_Unsigned_Mul_Slv_Slv = 477 -    Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 478 -    Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 479 -    Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 480 -    Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 481 -    Ieee_Std_Logic_Unsigned_Le_Slv_Int = 482 -    Ieee_Std_Logic_Unsigned_Le_Int_Slv = 483 -    Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 484 -    Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 485 -    Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 486 -    Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 487 -    Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 488 -    Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 489 -    Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 490 -    Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 491 -    Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 492 -    Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 493 -    Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 494 -    Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 495 -    Ieee_Std_Logic_Unsigned_Conv_Integer = 496 -    Ieee_Std_Logic_Unsigned_Shl = 497 -    Ieee_Std_Logic_Unsigned_Shr = 498 -    Ieee_Std_Logic_Signed_Add_Slv_Slv = 499 -    Ieee_Std_Logic_Signed_Add_Slv_Int = 500 -    Ieee_Std_Logic_Signed_Add_Int_Slv = 501 -    Ieee_Std_Logic_Signed_Add_Slv_Log = 502 -    Ieee_Std_Logic_Signed_Add_Log_Slv = 503 -    Ieee_Std_Logic_Signed_Sub_Slv_Slv = 504 -    Ieee_Std_Logic_Signed_Sub_Slv_Int = 505 -    Ieee_Std_Logic_Signed_Sub_Int_Slv = 506 -    Ieee_Std_Logic_Signed_Sub_Slv_Log = 507 -    Ieee_Std_Logic_Signed_Sub_Log_Slv = 508 -    Ieee_Std_Logic_Signed_Id_Slv = 509 -    Ieee_Std_Logic_Signed_Neg_Slv = 510 -    Ieee_Std_Logic_Signed_Abs_Slv = 511 -    Ieee_Std_Logic_Signed_Mul_Slv_Slv = 512 -    Ieee_Std_Logic_Signed_Lt_Slv_Slv = 513 -    Ieee_Std_Logic_Signed_Lt_Slv_Int = 514 -    Ieee_Std_Logic_Signed_Lt_Int_Slv = 515 -    Ieee_Std_Logic_Signed_Le_Slv_Slv = 516 -    Ieee_Std_Logic_Signed_Le_Slv_Int = 517 -    Ieee_Std_Logic_Signed_Le_Int_Slv = 518 -    Ieee_Std_Logic_Signed_Gt_Slv_Slv = 519 -    Ieee_Std_Logic_Signed_Gt_Slv_Int = 520 -    Ieee_Std_Logic_Signed_Gt_Int_Slv = 521 -    Ieee_Std_Logic_Signed_Ge_Slv_Slv = 522 -    Ieee_Std_Logic_Signed_Ge_Slv_Int = 523 -    Ieee_Std_Logic_Signed_Ge_Int_Slv = 524 -    Ieee_Std_Logic_Signed_Eq_Slv_Slv = 525 -    Ieee_Std_Logic_Signed_Eq_Slv_Int = 526 -    Ieee_Std_Logic_Signed_Eq_Int_Slv = 527 -    Ieee_Std_Logic_Signed_Ne_Slv_Slv = 528 -    Ieee_Std_Logic_Signed_Ne_Slv_Int = 529 -    Ieee_Std_Logic_Signed_Ne_Int_Slv = 530 -    Ieee_Std_Logic_Signed_Conv_Integer = 531 -    Ieee_Std_Logic_Signed_Shl = 532 -    Ieee_Std_Logic_Signed_Shr = 533 -    Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 534 -    Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 535 -    Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 536 -    Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 537 -    Ieee_Std_Logic_Arith_Conv_Integer_Int = 538 -    Ieee_Std_Logic_Arith_Conv_Integer_Uns = 539 -    Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 540 -    Ieee_Std_Logic_Arith_Conv_Integer_Log = 541 -    Ieee_Std_Logic_Arith_Conv_Vector_Int = 542 -    Ieee_Std_Logic_Arith_Conv_Vector_Uns = 543 -    Ieee_Std_Logic_Arith_Conv_Vector_Sgn = 544 -    Ieee_Std_Logic_Arith_Conv_Vector_Log = 545 -    Ieee_Std_Logic_Arith_Ext = 546 -    Ieee_Std_Logic_Arith_Sxt = 547 -    Ieee_Std_Logic_Arith_Id_Uns_Uns = 548 -    Ieee_Std_Logic_Arith_Id_Sgn_Sgn = 549 -    Ieee_Std_Logic_Arith_Neg_Sgn_Sgn = 550 -    Ieee_Std_Logic_Arith_Abs_Sgn_Sgn = 551 -    Ieee_Std_Logic_Arith_Shl_Uns = 552 -    Ieee_Std_Logic_Arith_Shl_Sgn = 553 -    Ieee_Std_Logic_Arith_Shr_Uns = 554 -    Ieee_Std_Logic_Arith_Shr_Sgn = 555 -    Ieee_Std_Logic_Arith_Id_Uns_Slv = 556 -    Ieee_Std_Logic_Arith_Id_Sgn_Slv = 557 -    Ieee_Std_Logic_Arith_Neg_Sgn_Slv = 558 -    Ieee_Std_Logic_Arith_Abs_Sgn_Slv = 559 -    Ieee_Std_Logic_Arith_Mul_Uns_Uns_Uns = 560 -    Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Sgn = 561 -    Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Sgn = 562 -    Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Sgn = 563 -    Ieee_Std_Logic_Arith_Mul_Uns_Uns_Slv = 564 -    Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Slv = 565 -    Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Slv = 566 -    Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Slv = 567 -    Ieee_Std_Logic_Arith_Add_Uns_Uns_Uns = 568 -    Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Sgn = 569 -    Ieee_Std_Logic_Arith_Add_Uns_Sgn_Sgn = 570 -    Ieee_Std_Logic_Arith_Add_Sgn_Uns_Sgn = 571 -    Ieee_Std_Logic_Arith_Add_Uns_Int_Uns = 572 -    Ieee_Std_Logic_Arith_Add_Int_Uns_Uns = 573 -    Ieee_Std_Logic_Arith_Add_Sgn_Int_Sgn = 574 -    Ieee_Std_Logic_Arith_Add_Int_Sgn_Sgn = 575 -    Ieee_Std_Logic_Arith_Add_Uns_Log_Uns = 576 -    Ieee_Std_Logic_Arith_Add_Log_Uns_Uns = 577 -    Ieee_Std_Logic_Arith_Add_Sgn_Log_Sgn = 578 -    Ieee_Std_Logic_Arith_Add_Log_Sgn_Sgn = 579 -    Ieee_Std_Logic_Arith_Add_Uns_Uns_Slv = 580 -    Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Slv = 581 -    Ieee_Std_Logic_Arith_Add_Uns_Sgn_Slv = 582 -    Ieee_Std_Logic_Arith_Add_Sgn_Uns_Slv = 583 -    Ieee_Std_Logic_Arith_Add_Uns_Int_Slv = 584 -    Ieee_Std_Logic_Arith_Add_Int_Uns_Slv = 585 -    Ieee_Std_Logic_Arith_Add_Sgn_Int_Slv = 586 -    Ieee_Std_Logic_Arith_Add_Int_Sgn_Slv = 587 -    Ieee_Std_Logic_Arith_Add_Uns_Log_Slv = 588 -    Ieee_Std_Logic_Arith_Add_Log_Uns_Slv = 589 -    Ieee_Std_Logic_Arith_Add_Sgn_Log_Slv = 590 -    Ieee_Std_Logic_Arith_Add_Log_Sgn_Slv = 591 -    Ieee_Std_Logic_Arith_Sub_Uns_Uns_Uns = 592 -    Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Sgn = 593 -    Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Sgn = 594 -    Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Sgn = 595 -    Ieee_Std_Logic_Arith_Sub_Uns_Int_Uns = 596 -    Ieee_Std_Logic_Arith_Sub_Int_Uns_Uns = 597 -    Ieee_Std_Logic_Arith_Sub_Sgn_Int_Sgn = 598 -    Ieee_Std_Logic_Arith_Sub_Int_Sgn_Sgn = 599 -    Ieee_Std_Logic_Arith_Sub_Uns_Log_Uns = 600 -    Ieee_Std_Logic_Arith_Sub_Log_Uns_Uns = 601 -    Ieee_Std_Logic_Arith_Sub_Sgn_Log_Sgn = 602 -    Ieee_Std_Logic_Arith_Sub_Log_Sgn_Sgn = 603 -    Ieee_Std_Logic_Arith_Sub_Uns_Uns_Slv = 604 -    Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Slv = 605 -    Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Slv = 606 -    Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Slv = 607 -    Ieee_Std_Logic_Arith_Sub_Uns_Int_Slv = 608 -    Ieee_Std_Logic_Arith_Sub_Int_Uns_Slv = 609 -    Ieee_Std_Logic_Arith_Sub_Sgn_Int_Slv = 610 -    Ieee_Std_Logic_Arith_Sub_Int_Sgn_Slv = 611 -    Ieee_Std_Logic_Arith_Sub_Uns_Log_Slv = 612 -    Ieee_Std_Logic_Arith_Sub_Log_Uns_Slv = 613 -    Ieee_Std_Logic_Arith_Sub_Sgn_Log_Slv = 614 -    Ieee_Std_Logic_Arith_Sub_Log_Sgn_Slv = 615 -    Ieee_Std_Logic_Arith_Lt_Uns_Uns = 616 -    Ieee_Std_Logic_Arith_Lt_Sgn_Sgn = 617 -    Ieee_Std_Logic_Arith_Lt_Uns_Sgn = 618 -    Ieee_Std_Logic_Arith_Lt_Sgn_Uns = 619 -    Ieee_Std_Logic_Arith_Lt_Uns_Int = 620 -    Ieee_Std_Logic_Arith_Lt_Int_Uns = 621 -    Ieee_Std_Logic_Arith_Lt_Sgn_Int = 622 -    Ieee_Std_Logic_Arith_Lt_Int_Sgn = 623 -    Ieee_Std_Logic_Arith_Le_Uns_Uns = 624 -    Ieee_Std_Logic_Arith_Le_Sgn_Sgn = 625 -    Ieee_Std_Logic_Arith_Le_Uns_Sgn = 626 -    Ieee_Std_Logic_Arith_Le_Sgn_Uns = 627 -    Ieee_Std_Logic_Arith_Le_Uns_Int = 628 -    Ieee_Std_Logic_Arith_Le_Int_Uns = 629 -    Ieee_Std_Logic_Arith_Le_Sgn_Int = 630 -    Ieee_Std_Logic_Arith_Le_Int_Sgn = 631 -    Ieee_Std_Logic_Arith_Gt_Uns_Uns = 632 -    Ieee_Std_Logic_Arith_Gt_Sgn_Sgn = 633 -    Ieee_Std_Logic_Arith_Gt_Uns_Sgn = 634 -    Ieee_Std_Logic_Arith_Gt_Sgn_Uns = 635 -    Ieee_Std_Logic_Arith_Gt_Uns_Int = 636 -    Ieee_Std_Logic_Arith_Gt_Int_Uns = 637 -    Ieee_Std_Logic_Arith_Gt_Sgn_Int = 638 -    Ieee_Std_Logic_Arith_Gt_Int_Sgn = 639 -    Ieee_Std_Logic_Arith_Ge_Uns_Uns = 640 -    Ieee_Std_Logic_Arith_Ge_Sgn_Sgn = 641 -    Ieee_Std_Logic_Arith_Ge_Uns_Sgn = 642 -    Ieee_Std_Logic_Arith_Ge_Sgn_Uns = 643 -    Ieee_Std_Logic_Arith_Ge_Uns_Int = 644 -    Ieee_Std_Logic_Arith_Ge_Int_Uns = 645 -    Ieee_Std_Logic_Arith_Ge_Sgn_Int = 646 -    Ieee_Std_Logic_Arith_Ge_Int_Sgn = 647 -    Ieee_Std_Logic_Arith_Eq_Uns_Uns = 648 -    Ieee_Std_Logic_Arith_Eq_Sgn_Sgn = 649 -    Ieee_Std_Logic_Arith_Eq_Uns_Sgn = 650 -    Ieee_Std_Logic_Arith_Eq_Sgn_Uns = 651 -    Ieee_Std_Logic_Arith_Eq_Uns_Int = 652 -    Ieee_Std_Logic_Arith_Eq_Int_Uns = 653 -    Ieee_Std_Logic_Arith_Eq_Sgn_Int = 654 -    Ieee_Std_Logic_Arith_Eq_Int_Sgn = 655 -    Ieee_Std_Logic_Arith_Ne_Uns_Uns = 656 -    Ieee_Std_Logic_Arith_Ne_Sgn_Sgn = 657 -    Ieee_Std_Logic_Arith_Ne_Uns_Sgn = 658 -    Ieee_Std_Logic_Arith_Ne_Sgn_Uns = 659 -    Ieee_Std_Logic_Arith_Ne_Uns_Int = 660 -    Ieee_Std_Logic_Arith_Ne_Int_Uns = 661 -    Ieee_Std_Logic_Arith_Ne_Sgn_Int = 662 -    Ieee_Std_Logic_Arith_Ne_Int_Sgn = 663 -    Ieee_Std_Logic_Misc_And_Reduce_Slv = 664 -    Ieee_Std_Logic_Misc_And_Reduce_Suv = 665 -    Ieee_Std_Logic_Misc_Nand_Reduce_Slv = 666 -    Ieee_Std_Logic_Misc_Nand_Reduce_Suv = 667 -    Ieee_Std_Logic_Misc_Or_Reduce_Slv = 668 -    Ieee_Std_Logic_Misc_Or_Reduce_Suv = 669 -    Ieee_Std_Logic_Misc_Nor_Reduce_Slv = 670 -    Ieee_Std_Logic_Misc_Nor_Reduce_Suv = 671 -    Ieee_Std_Logic_Misc_Xor_Reduce_Slv = 672 -    Ieee_Std_Logic_Misc_Xor_Reduce_Suv = 673 -    Ieee_Std_Logic_Misc_Xnor_Reduce_Slv = 674 -    Ieee_Std_Logic_Misc_Xnor_Reduce_Suv = 675 +    Ieee_Numeric_Std_To_X01_Uns = 450 +    Ieee_Numeric_Std_To_X01_Sgn = 451 +    Ieee_Numeric_Std_To_X01Z_Uns = 452 +    Ieee_Numeric_Std_To_X01Z_Sgn = 453 +    Ieee_Numeric_Std_To_UX01_Uns = 454 +    Ieee_Numeric_Std_To_UX01_Sgn = 455 +    Ieee_Numeric_Std_Is_X_Uns = 456 +    Ieee_Numeric_Std_Is_X_Sgn = 457 +    Ieee_Numeric_Bit_Toint_Uns_Nat = 458 +    Ieee_Numeric_Bit_Toint_Sgn_Int = 459 +    Ieee_Numeric_Bit_Touns_Nat_Nat_Uns = 460 +    Ieee_Numeric_Bit_Touns_Nat_Uns_Uns = 461 +    Ieee_Numeric_Bit_Tosgn_Int_Nat_Sgn = 462 +    Ieee_Numeric_Bit_Tosgn_Int_Sgn_Sgn = 463 +    Ieee_Numeric_Std_Unsigned_To_Integer_Slv_Nat = 464 +    Ieee_Numeric_Std_Unsigned_To_Slv_Nat_Nat_Slv = 465 +    Ieee_Math_Real_Ceil = 466 +    Ieee_Math_Real_Floor = 467 +    Ieee_Math_Real_Round = 468 +    Ieee_Math_Real_Log2 = 469 +    Ieee_Math_Real_Sin = 470 +    Ieee_Math_Real_Cos = 471 +    Ieee_Math_Real_Arctan = 472 +    Ieee_Math_Real_Pow = 473 +    Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 474 +    Ieee_Std_Logic_Unsigned_Add_Slv_Int = 475 +    Ieee_Std_Logic_Unsigned_Add_Int_Slv = 476 +    Ieee_Std_Logic_Unsigned_Add_Slv_Log = 477 +    Ieee_Std_Logic_Unsigned_Add_Log_Slv = 478 +    Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 479 +    Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 480 +    Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 481 +    Ieee_Std_Logic_Unsigned_Sub_Slv_Log = 482 +    Ieee_Std_Logic_Unsigned_Sub_Log_Slv = 483 +    Ieee_Std_Logic_Unsigned_Id_Slv = 484 +    Ieee_Std_Logic_Unsigned_Mul_Slv_Slv = 485 +    Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 486 +    Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 487 +    Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 488 +    Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 489 +    Ieee_Std_Logic_Unsigned_Le_Slv_Int = 490 +    Ieee_Std_Logic_Unsigned_Le_Int_Slv = 491 +    Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 492 +    Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 493 +    Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 494 +    Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 495 +    Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 496 +    Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 497 +    Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 498 +    Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 499 +    Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 500 +    Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 501 +    Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 502 +    Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 503 +    Ieee_Std_Logic_Unsigned_Conv_Integer = 504 +    Ieee_Std_Logic_Unsigned_Shl = 505 +    Ieee_Std_Logic_Unsigned_Shr = 506 +    Ieee_Std_Logic_Signed_Add_Slv_Slv = 507 +    Ieee_Std_Logic_Signed_Add_Slv_Int = 508 +    Ieee_Std_Logic_Signed_Add_Int_Slv = 509 +    Ieee_Std_Logic_Signed_Add_Slv_Log = 510 +    Ieee_Std_Logic_Signed_Add_Log_Slv = 511 +    Ieee_Std_Logic_Signed_Sub_Slv_Slv = 512 +    Ieee_Std_Logic_Signed_Sub_Slv_Int = 513 +    Ieee_Std_Logic_Signed_Sub_Int_Slv = 514 +    Ieee_Std_Logic_Signed_Sub_Slv_Log = 515 +    Ieee_Std_Logic_Signed_Sub_Log_Slv = 516 +    Ieee_Std_Logic_Signed_Id_Slv = 517 +    Ieee_Std_Logic_Signed_Neg_Slv = 518 +    Ieee_Std_Logic_Signed_Abs_Slv = 519 +    Ieee_Std_Logic_Signed_Mul_Slv_Slv = 520 +    Ieee_Std_Logic_Signed_Lt_Slv_Slv = 521 +    Ieee_Std_Logic_Signed_Lt_Slv_Int = 522 +    Ieee_Std_Logic_Signed_Lt_Int_Slv = 523 +    Ieee_Std_Logic_Signed_Le_Slv_Slv = 524 +    Ieee_Std_Logic_Signed_Le_Slv_Int = 525 +    Ieee_Std_Logic_Signed_Le_Int_Slv = 526 +    Ieee_Std_Logic_Signed_Gt_Slv_Slv = 527 +    Ieee_Std_Logic_Signed_Gt_Slv_Int = 528 +    Ieee_Std_Logic_Signed_Gt_Int_Slv = 529 +    Ieee_Std_Logic_Signed_Ge_Slv_Slv = 530 +    Ieee_Std_Logic_Signed_Ge_Slv_Int = 531 +    Ieee_Std_Logic_Signed_Ge_Int_Slv = 532 +    Ieee_Std_Logic_Signed_Eq_Slv_Slv = 533 +    Ieee_Std_Logic_Signed_Eq_Slv_Int = 534 +    Ieee_Std_Logic_Signed_Eq_Int_Slv = 535 +    Ieee_Std_Logic_Signed_Ne_Slv_Slv = 536 +    Ieee_Std_Logic_Signed_Ne_Slv_Int = 537 +    Ieee_Std_Logic_Signed_Ne_Int_Slv = 538 +    Ieee_Std_Logic_Signed_Conv_Integer = 539 +    Ieee_Std_Logic_Signed_Shl = 540 +    Ieee_Std_Logic_Signed_Shr = 541 +    Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 542 +    Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 543 +    Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 544 +    Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 545 +    Ieee_Std_Logic_Arith_Conv_Integer_Int = 546 +    Ieee_Std_Logic_Arith_Conv_Integer_Uns = 547 +    Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 548 +    Ieee_Std_Logic_Arith_Conv_Integer_Log = 549 +    Ieee_Std_Logic_Arith_Conv_Vector_Int = 550 +    Ieee_Std_Logic_Arith_Conv_Vector_Uns = 551 +    Ieee_Std_Logic_Arith_Conv_Vector_Sgn = 552 +    Ieee_Std_Logic_Arith_Conv_Vector_Log = 553 +    Ieee_Std_Logic_Arith_Ext = 554 +    Ieee_Std_Logic_Arith_Sxt = 555 +    Ieee_Std_Logic_Arith_Id_Uns_Uns = 556 +    Ieee_Std_Logic_Arith_Id_Sgn_Sgn = 557 +    Ieee_Std_Logic_Arith_Neg_Sgn_Sgn = 558 +    Ieee_Std_Logic_Arith_Abs_Sgn_Sgn = 559 +    Ieee_Std_Logic_Arith_Shl_Uns = 560 +    Ieee_Std_Logic_Arith_Shl_Sgn = 561 +    Ieee_Std_Logic_Arith_Shr_Uns = 562 +    Ieee_Std_Logic_Arith_Shr_Sgn = 563 +    Ieee_Std_Logic_Arith_Id_Uns_Slv = 564 +    Ieee_Std_Logic_Arith_Id_Sgn_Slv = 565 +    Ieee_Std_Logic_Arith_Neg_Sgn_Slv = 566 +    Ieee_Std_Logic_Arith_Abs_Sgn_Slv = 567 +    Ieee_Std_Logic_Arith_Mul_Uns_Uns_Uns = 568 +    Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Sgn = 569 +    Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Sgn = 570 +    Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Sgn = 571 +    Ieee_Std_Logic_Arith_Mul_Uns_Uns_Slv = 572 +    Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Slv = 573 +    Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Slv = 574 +    Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Slv = 575 +    Ieee_Std_Logic_Arith_Add_Uns_Uns_Uns = 576 +    Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Sgn = 577 +    Ieee_Std_Logic_Arith_Add_Uns_Sgn_Sgn = 578 +    Ieee_Std_Logic_Arith_Add_Sgn_Uns_Sgn = 579 +    Ieee_Std_Logic_Arith_Add_Uns_Int_Uns = 580 +    Ieee_Std_Logic_Arith_Add_Int_Uns_Uns = 581 +    Ieee_Std_Logic_Arith_Add_Sgn_Int_Sgn = 582 +    Ieee_Std_Logic_Arith_Add_Int_Sgn_Sgn = 583 +    Ieee_Std_Logic_Arith_Add_Uns_Log_Uns = 584 +    Ieee_Std_Logic_Arith_Add_Log_Uns_Uns = 585 +    Ieee_Std_Logic_Arith_Add_Sgn_Log_Sgn = 586 +    Ieee_Std_Logic_Arith_Add_Log_Sgn_Sgn = 587 +    Ieee_Std_Logic_Arith_Add_Uns_Uns_Slv = 588 +    Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Slv = 589 +    Ieee_Std_Logic_Arith_Add_Uns_Sgn_Slv = 590 +    Ieee_Std_Logic_Arith_Add_Sgn_Uns_Slv = 591 +    Ieee_Std_Logic_Arith_Add_Uns_Int_Slv = 592 +    Ieee_Std_Logic_Arith_Add_Int_Uns_Slv = 593 +    Ieee_Std_Logic_Arith_Add_Sgn_Int_Slv = 594 +    Ieee_Std_Logic_Arith_Add_Int_Sgn_Slv = 595 +    Ieee_Std_Logic_Arith_Add_Uns_Log_Slv = 596 +    Ieee_Std_Logic_Arith_Add_Log_Uns_Slv = 597 +    Ieee_Std_Logic_Arith_Add_Sgn_Log_Slv = 598 +    Ieee_Std_Logic_Arith_Add_Log_Sgn_Slv = 599 +    Ieee_Std_Logic_Arith_Sub_Uns_Uns_Uns = 600 +    Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Sgn = 601 +    Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Sgn = 602 +    Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Sgn = 603 +    Ieee_Std_Logic_Arith_Sub_Uns_Int_Uns = 604 +    Ieee_Std_Logic_Arith_Sub_Int_Uns_Uns = 605 +    Ieee_Std_Logic_Arith_Sub_Sgn_Int_Sgn = 606 +    Ieee_Std_Logic_Arith_Sub_Int_Sgn_Sgn = 607 +    Ieee_Std_Logic_Arith_Sub_Uns_Log_Uns = 608 +    Ieee_Std_Logic_Arith_Sub_Log_Uns_Uns = 609 +    Ieee_Std_Logic_Arith_Sub_Sgn_Log_Sgn = 610 +    Ieee_Std_Logic_Arith_Sub_Log_Sgn_Sgn = 611 +    Ieee_Std_Logic_Arith_Sub_Uns_Uns_Slv = 612 +    Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Slv = 613 +    Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Slv = 614 +    Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Slv = 615 +    Ieee_Std_Logic_Arith_Sub_Uns_Int_Slv = 616 +    Ieee_Std_Logic_Arith_Sub_Int_Uns_Slv = 617 +    Ieee_Std_Logic_Arith_Sub_Sgn_Int_Slv = 618 +    Ieee_Std_Logic_Arith_Sub_Int_Sgn_Slv = 619 +    Ieee_Std_Logic_Arith_Sub_Uns_Log_Slv = 620 +    Ieee_Std_Logic_Arith_Sub_Log_Uns_Slv = 621 +    Ieee_Std_Logic_Arith_Sub_Sgn_Log_Slv = 622 +    Ieee_Std_Logic_Arith_Sub_Log_Sgn_Slv = 623 +    Ieee_Std_Logic_Arith_Lt_Uns_Uns = 624 +    Ieee_Std_Logic_Arith_Lt_Sgn_Sgn = 625 +    Ieee_Std_Logic_Arith_Lt_Uns_Sgn = 626 +    Ieee_Std_Logic_Arith_Lt_Sgn_Uns = 627 +    Ieee_Std_Logic_Arith_Lt_Uns_Int = 628 +    Ieee_Std_Logic_Arith_Lt_Int_Uns = 629 +    Ieee_Std_Logic_Arith_Lt_Sgn_Int = 630 +    Ieee_Std_Logic_Arith_Lt_Int_Sgn = 631 +    Ieee_Std_Logic_Arith_Le_Uns_Uns = 632 +    Ieee_Std_Logic_Arith_Le_Sgn_Sgn = 633 +    Ieee_Std_Logic_Arith_Le_Uns_Sgn = 634 +    Ieee_Std_Logic_Arith_Le_Sgn_Uns = 635 +    Ieee_Std_Logic_Arith_Le_Uns_Int = 636 +    Ieee_Std_Logic_Arith_Le_Int_Uns = 637 +    Ieee_Std_Logic_Arith_Le_Sgn_Int = 638 +    Ieee_Std_Logic_Arith_Le_Int_Sgn = 639 +    Ieee_Std_Logic_Arith_Gt_Uns_Uns = 640 +    Ieee_Std_Logic_Arith_Gt_Sgn_Sgn = 641 +    Ieee_Std_Logic_Arith_Gt_Uns_Sgn = 642 +    Ieee_Std_Logic_Arith_Gt_Sgn_Uns = 643 +    Ieee_Std_Logic_Arith_Gt_Uns_Int = 644 +    Ieee_Std_Logic_Arith_Gt_Int_Uns = 645 +    Ieee_Std_Logic_Arith_Gt_Sgn_Int = 646 +    Ieee_Std_Logic_Arith_Gt_Int_Sgn = 647 +    Ieee_Std_Logic_Arith_Ge_Uns_Uns = 648 +    Ieee_Std_Logic_Arith_Ge_Sgn_Sgn = 649 +    Ieee_Std_Logic_Arith_Ge_Uns_Sgn = 650 +    Ieee_Std_Logic_Arith_Ge_Sgn_Uns = 651 +    Ieee_Std_Logic_Arith_Ge_Uns_Int = 652 +    Ieee_Std_Logic_Arith_Ge_Int_Uns = 653 +    Ieee_Std_Logic_Arith_Ge_Sgn_Int = 654 +    Ieee_Std_Logic_Arith_Ge_Int_Sgn = 655 +    Ieee_Std_Logic_Arith_Eq_Uns_Uns = 656 +    Ieee_Std_Logic_Arith_Eq_Sgn_Sgn = 657 +    Ieee_Std_Logic_Arith_Eq_Uns_Sgn = 658 +    Ieee_Std_Logic_Arith_Eq_Sgn_Uns = 659 +    Ieee_Std_Logic_Arith_Eq_Uns_Int = 660 +    Ieee_Std_Logic_Arith_Eq_Int_Uns = 661 +    Ieee_Std_Logic_Arith_Eq_Sgn_Int = 662 +    Ieee_Std_Logic_Arith_Eq_Int_Sgn = 663 +    Ieee_Std_Logic_Arith_Ne_Uns_Uns = 664 +    Ieee_Std_Logic_Arith_Ne_Sgn_Sgn = 665 +    Ieee_Std_Logic_Arith_Ne_Uns_Sgn = 666 +    Ieee_Std_Logic_Arith_Ne_Sgn_Uns = 667 +    Ieee_Std_Logic_Arith_Ne_Uns_Int = 668 +    Ieee_Std_Logic_Arith_Ne_Int_Uns = 669 +    Ieee_Std_Logic_Arith_Ne_Sgn_Int = 670 +    Ieee_Std_Logic_Arith_Ne_Int_Sgn = 671 +    Ieee_Std_Logic_Misc_And_Reduce_Slv = 672 +    Ieee_Std_Logic_Misc_And_Reduce_Suv = 673 +    Ieee_Std_Logic_Misc_Nand_Reduce_Slv = 674 +    Ieee_Std_Logic_Misc_Nand_Reduce_Suv = 675 +    Ieee_Std_Logic_Misc_Or_Reduce_Slv = 676 +    Ieee_Std_Logic_Misc_Or_Reduce_Suv = 677 +    Ieee_Std_Logic_Misc_Nor_Reduce_Slv = 678 +    Ieee_Std_Logic_Misc_Nor_Reduce_Suv = 679 +    Ieee_Std_Logic_Misc_Xor_Reduce_Slv = 680 +    Ieee_Std_Logic_Misc_Xor_Reduce_Suv = 681 +    Ieee_Std_Logic_Misc_Xnor_Reduce_Slv = 682 +    Ieee_Std_Logic_Misc_Xnor_Reduce_Suv = 683  @export diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb index 96432df56..73f3010ac 100644 --- a/src/vhdl/vhdl-ieee-numeric.adb +++ b/src/vhdl/vhdl-ieee-numeric.adb @@ -582,6 +582,26 @@ package body Vhdl.Ieee.Numeric is       (Type_Signed   => Iir_Predefined_Ieee_Numeric_Std_Find_Rightmost_Sgn,        Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Find_Rightmost_Uns); +   To_01_Patterns : constant Shift_Pattern_Type := +     (Type_Signed   => Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn, +      Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_To_01_Uns); + +   To_X01_Patterns : constant Shift_Pattern_Type := +     (Type_Signed   => Iir_Predefined_Ieee_Numeric_Std_To_X01_Sgn, +      Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_To_X01_Uns); + +   To_X01z_Patterns : constant Shift_Pattern_Type := +     (Type_Signed   => Iir_Predefined_Ieee_Numeric_Std_To_X01Z_Sgn, +      Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_To_X01Z_Uns); + +   To_Ux01_Patterns : constant Shift_Pattern_Type := +     (Type_Signed   => Iir_Predefined_Ieee_Numeric_Std_To_UX01_Sgn, +      Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_To_UX01_Uns); + +   Is_X_Patterns : constant Shift_Pattern_Type := +     (Type_Signed   => Iir_Predefined_Ieee_Numeric_Std_Is_X_Sgn, +      Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Is_X_Uns); +     Error : exception;     procedure Extract_Declarations (Pkg_Decl : Iir_Package_Declaration; @@ -804,18 +824,20 @@ package body Vhdl.Ieee.Numeric is              raise Error;           end if; -         case Arg1_Sign is -            when Type_Unsigned => -               Predefined := Iir_Predefined_Ieee_Numeric_Std_To_01_Uns; -            when Type_Signed => -               Predefined := Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn; -            when others => -               raise Error; -         end case; +         Predefined := To_01_Patterns (Arg1_Sign);           Set_Implicit_Definition (Decl, Predefined);        end Handle_To_01; +      procedure Handle_To_X01 (Pats : Shift_Pattern_Type) is +      begin +         if Arg1_Kind /= Arg_Vect then +            raise Error; +         end if; + +         Set_Implicit_Definition (Decl, Pats (Arg1_Sign)); +      end Handle_To_X01; +        procedure Handle_Shift (Pats : Shift_Pattern_Type; Sh_Sign : Sign_Kind)        is           Res : Iir_Predefined_Functions; @@ -1037,6 +1059,14 @@ package body Vhdl.Ieee.Numeric is                          Handle_Unary (Red_Xor_Patterns);                       when Name_Xnor =>                          Handle_Unary (Red_Xnor_Patterns); +                     when Name_To_X01 => +                        Handle_To_X01 (To_X01_Patterns); +                     when Name_To_X01Z => +                        Handle_To_X01 (To_X01z_Patterns); +                     when Name_To_UX01 => +                        Handle_To_X01 (To_Ux01_Patterns); +                     when Name_Is_X => +                        Handle_To_X01 (Is_X_Patterns);                       when others =>                          null;                    end case; diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index fc36dd35e..f4bc84dd7 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -5956,6 +5956,18 @@ package Vhdl.Nodes is        Iir_Predefined_Ieee_Numeric_Std_To_01_Uns,        Iir_Predefined_Ieee_Numeric_Std_To_01_Sgn, +      Iir_Predefined_Ieee_Numeric_Std_To_X01_Uns, +      Iir_Predefined_Ieee_Numeric_Std_To_X01_Sgn, + +      Iir_Predefined_Ieee_Numeric_Std_To_X01Z_Uns, +      Iir_Predefined_Ieee_Numeric_Std_To_X01Z_Sgn, + +      Iir_Predefined_Ieee_Numeric_Std_To_UX01_Uns, +      Iir_Predefined_Ieee_Numeric_Std_To_UX01_Sgn, + +      Iir_Predefined_Ieee_Numeric_Std_Is_X_Uns, +      Iir_Predefined_Ieee_Numeric_Std_Is_X_Sgn, +        --  numeric_bit        --  To_Integer, To_Unsigned, to_Signed  | 
