From 3c7ad475444f5ad8075df9127a80f83879ae71dd Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 4 Feb 2021 08:14:11 +0100 Subject: vhdl: recognize to_stdlogicvector. For #1628 --- pyGHDL/libghdl/vhdl/nodes.py | 433 ++++++++++++++-------------- src/vhdl/vhdl-ieee-numeric_std_unsigned.adb | 31 +- src/vhdl/vhdl-nodes.ads | 1 + 3 files changed, 243 insertions(+), 222 deletions(-) diff --git a/pyGHDL/libghdl/vhdl/nodes.py b/pyGHDL/libghdl/vhdl/nodes.py index 659813d1e..976cc4457 100644 --- a/pyGHDL/libghdl/vhdl/nodes.py +++ b/pyGHDL/libghdl/vhdl/nodes.py @@ -1515,222 +1515,223 @@ class Iir_Predefined: Ieee_Numeric_Std_To_01_Uns = 435 Ieee_Numeric_Std_To_01_Sgn = 436 Ieee_Numeric_Std_Unsigned_To_Integer_Slv_Nat = 437 - Ieee_Math_Real_Ceil = 438 - Ieee_Math_Real_Floor = 439 - Ieee_Math_Real_Round = 440 - Ieee_Math_Real_Log2 = 441 - Ieee_Math_Real_Sin = 442 - Ieee_Math_Real_Cos = 443 - Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 444 - Ieee_Std_Logic_Unsigned_Add_Slv_Int = 445 - Ieee_Std_Logic_Unsigned_Add_Int_Slv = 446 - Ieee_Std_Logic_Unsigned_Add_Slv_Log = 447 - Ieee_Std_Logic_Unsigned_Add_Log_Slv = 448 - Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 449 - Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 450 - Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 451 - Ieee_Std_Logic_Unsigned_Sub_Slv_Log = 452 - Ieee_Std_Logic_Unsigned_Sub_Log_Slv = 453 - Ieee_Std_Logic_Unsigned_Id_Slv = 454 - Ieee_Std_Logic_Unsigned_Mul_Slv_Slv = 455 - Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 456 - Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 457 - Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 458 - Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 459 - Ieee_Std_Logic_Unsigned_Le_Slv_Int = 460 - Ieee_Std_Logic_Unsigned_Le_Int_Slv = 461 - Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 462 - Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 463 - Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 464 - Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 465 - Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 466 - Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 467 - Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 468 - Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 469 - Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 470 - Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 471 - Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 472 - Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 473 - Ieee_Std_Logic_Unsigned_Conv_Integer = 474 - Ieee_Std_Logic_Unsigned_Shl = 475 - Ieee_Std_Logic_Unsigned_Shr = 476 - Ieee_Std_Logic_Signed_Add_Slv_Slv = 477 - Ieee_Std_Logic_Signed_Add_Slv_Int = 478 - Ieee_Std_Logic_Signed_Add_Int_Slv = 479 - Ieee_Std_Logic_Signed_Add_Slv_Log = 480 - Ieee_Std_Logic_Signed_Add_Log_Slv = 481 - Ieee_Std_Logic_Signed_Sub_Slv_Slv = 482 - Ieee_Std_Logic_Signed_Sub_Slv_Int = 483 - Ieee_Std_Logic_Signed_Sub_Int_Slv = 484 - Ieee_Std_Logic_Signed_Sub_Slv_Log = 485 - Ieee_Std_Logic_Signed_Sub_Log_Slv = 486 - Ieee_Std_Logic_Signed_Id_Slv = 487 - Ieee_Std_Logic_Signed_Neg_Slv = 488 - Ieee_Std_Logic_Signed_Abs_Slv = 489 - Ieee_Std_Logic_Signed_Mul_Slv_Slv = 490 - Ieee_Std_Logic_Signed_Lt_Slv_Slv = 491 - Ieee_Std_Logic_Signed_Lt_Slv_Int = 492 - Ieee_Std_Logic_Signed_Lt_Int_Slv = 493 - Ieee_Std_Logic_Signed_Le_Slv_Slv = 494 - Ieee_Std_Logic_Signed_Le_Slv_Int = 495 - Ieee_Std_Logic_Signed_Le_Int_Slv = 496 - Ieee_Std_Logic_Signed_Gt_Slv_Slv = 497 - Ieee_Std_Logic_Signed_Gt_Slv_Int = 498 - Ieee_Std_Logic_Signed_Gt_Int_Slv = 499 - Ieee_Std_Logic_Signed_Ge_Slv_Slv = 500 - Ieee_Std_Logic_Signed_Ge_Slv_Int = 501 - Ieee_Std_Logic_Signed_Ge_Int_Slv = 502 - Ieee_Std_Logic_Signed_Eq_Slv_Slv = 503 - Ieee_Std_Logic_Signed_Eq_Slv_Int = 504 - Ieee_Std_Logic_Signed_Eq_Int_Slv = 505 - Ieee_Std_Logic_Signed_Ne_Slv_Slv = 506 - Ieee_Std_Logic_Signed_Ne_Slv_Int = 507 - Ieee_Std_Logic_Signed_Ne_Int_Slv = 508 - Ieee_Std_Logic_Signed_Conv_Integer = 509 - Ieee_Std_Logic_Signed_Shl = 510 - Ieee_Std_Logic_Signed_Shr = 511 - Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 512 - Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 513 - Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 514 - Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 515 - Ieee_Std_Logic_Arith_Conv_Integer_Int = 516 - Ieee_Std_Logic_Arith_Conv_Integer_Uns = 517 - Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 518 - Ieee_Std_Logic_Arith_Conv_Integer_Log = 519 - Ieee_Std_Logic_Arith_Conv_Vector_Int = 520 - Ieee_Std_Logic_Arith_Conv_Vector_Uns = 521 - Ieee_Std_Logic_Arith_Conv_Vector_Sgn = 522 - Ieee_Std_Logic_Arith_Conv_Vector_Log = 523 - Ieee_Std_Logic_Arith_Ext = 524 - Ieee_Std_Logic_Arith_Sxt = 525 - Ieee_Std_Logic_Arith_Id_Uns_Uns = 526 - Ieee_Std_Logic_Arith_Id_Sgn_Sgn = 527 - Ieee_Std_Logic_Arith_Neg_Sgn_Sgn = 528 - Ieee_Std_Logic_Arith_Abs_Sgn_Sgn = 529 - Ieee_Std_Logic_Arith_Shl_Uns = 530 - Ieee_Std_Logic_Arith_Shl_Sgn = 531 - Ieee_Std_Logic_Arith_Shr_Uns = 532 - Ieee_Std_Logic_Arith_Shr_Sgn = 533 - Ieee_Std_Logic_Arith_Id_Uns_Slv = 534 - Ieee_Std_Logic_Arith_Id_Sgn_Slv = 535 - Ieee_Std_Logic_Arith_Neg_Sgn_Slv = 536 - Ieee_Std_Logic_Arith_Abs_Sgn_Slv = 537 - Ieee_Std_Logic_Arith_Mul_Uns_Uns_Uns = 538 - Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Sgn = 539 - Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Sgn = 540 - Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Sgn = 541 - Ieee_Std_Logic_Arith_Mul_Uns_Uns_Slv = 542 - Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Slv = 543 - Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Slv = 544 - Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Slv = 545 - Ieee_Std_Logic_Arith_Add_Uns_Uns_Uns = 546 - Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Sgn = 547 - Ieee_Std_Logic_Arith_Add_Uns_Sgn_Sgn = 548 - Ieee_Std_Logic_Arith_Add_Sgn_Uns_Sgn = 549 - Ieee_Std_Logic_Arith_Add_Uns_Int_Uns = 550 - Ieee_Std_Logic_Arith_Add_Int_Uns_Uns = 551 - Ieee_Std_Logic_Arith_Add_Sgn_Int_Sgn = 552 - Ieee_Std_Logic_Arith_Add_Int_Sgn_Sgn = 553 - Ieee_Std_Logic_Arith_Add_Uns_Log_Uns = 554 - Ieee_Std_Logic_Arith_Add_Log_Uns_Uns = 555 - Ieee_Std_Logic_Arith_Add_Sgn_Log_Sgn = 556 - Ieee_Std_Logic_Arith_Add_Log_Sgn_Sgn = 557 - Ieee_Std_Logic_Arith_Add_Uns_Uns_Slv = 558 - Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Slv = 559 - Ieee_Std_Logic_Arith_Add_Uns_Sgn_Slv = 560 - Ieee_Std_Logic_Arith_Add_Sgn_Uns_Slv = 561 - Ieee_Std_Logic_Arith_Add_Uns_Int_Slv = 562 - Ieee_Std_Logic_Arith_Add_Int_Uns_Slv = 563 - Ieee_Std_Logic_Arith_Add_Sgn_Int_Slv = 564 - Ieee_Std_Logic_Arith_Add_Int_Sgn_Slv = 565 - Ieee_Std_Logic_Arith_Add_Uns_Log_Slv = 566 - Ieee_Std_Logic_Arith_Add_Log_Uns_Slv = 567 - Ieee_Std_Logic_Arith_Add_Sgn_Log_Slv = 568 - Ieee_Std_Logic_Arith_Add_Log_Sgn_Slv = 569 - Ieee_Std_Logic_Arith_Sub_Uns_Uns_Uns = 570 - Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Sgn = 571 - Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Sgn = 572 - Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Sgn = 573 - Ieee_Std_Logic_Arith_Sub_Uns_Int_Uns = 574 - Ieee_Std_Logic_Arith_Sub_Int_Uns_Uns = 575 - Ieee_Std_Logic_Arith_Sub_Sgn_Int_Sgn = 576 - Ieee_Std_Logic_Arith_Sub_Int_Sgn_Sgn = 577 - Ieee_Std_Logic_Arith_Sub_Uns_Log_Uns = 578 - Ieee_Std_Logic_Arith_Sub_Log_Uns_Uns = 579 - Ieee_Std_Logic_Arith_Sub_Sgn_Log_Sgn = 580 - Ieee_Std_Logic_Arith_Sub_Log_Sgn_Sgn = 581 - Ieee_Std_Logic_Arith_Sub_Uns_Uns_Slv = 582 - Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Slv = 583 - Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Slv = 584 - Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Slv = 585 - Ieee_Std_Logic_Arith_Sub_Uns_Int_Slv = 586 - Ieee_Std_Logic_Arith_Sub_Int_Uns_Slv = 587 - Ieee_Std_Logic_Arith_Sub_Sgn_Int_Slv = 588 - Ieee_Std_Logic_Arith_Sub_Int_Sgn_Slv = 589 - Ieee_Std_Logic_Arith_Sub_Uns_Log_Slv = 590 - Ieee_Std_Logic_Arith_Sub_Log_Uns_Slv = 591 - Ieee_Std_Logic_Arith_Sub_Sgn_Log_Slv = 592 - Ieee_Std_Logic_Arith_Sub_Log_Sgn_Slv = 593 - Ieee_Std_Logic_Arith_Lt_Uns_Uns = 594 - Ieee_Std_Logic_Arith_Lt_Sgn_Sgn = 595 - Ieee_Std_Logic_Arith_Lt_Uns_Sgn = 596 - Ieee_Std_Logic_Arith_Lt_Sgn_Uns = 597 - Ieee_Std_Logic_Arith_Lt_Uns_Int = 598 - Ieee_Std_Logic_Arith_Lt_Int_Uns = 599 - Ieee_Std_Logic_Arith_Lt_Sgn_Int = 600 - Ieee_Std_Logic_Arith_Lt_Int_Sgn = 601 - Ieee_Std_Logic_Arith_Le_Uns_Uns = 602 - Ieee_Std_Logic_Arith_Le_Sgn_Sgn = 603 - Ieee_Std_Logic_Arith_Le_Uns_Sgn = 604 - Ieee_Std_Logic_Arith_Le_Sgn_Uns = 605 - Ieee_Std_Logic_Arith_Le_Uns_Int = 606 - Ieee_Std_Logic_Arith_Le_Int_Uns = 607 - Ieee_Std_Logic_Arith_Le_Sgn_Int = 608 - Ieee_Std_Logic_Arith_Le_Int_Sgn = 609 - Ieee_Std_Logic_Arith_Gt_Uns_Uns = 610 - Ieee_Std_Logic_Arith_Gt_Sgn_Sgn = 611 - Ieee_Std_Logic_Arith_Gt_Uns_Sgn = 612 - Ieee_Std_Logic_Arith_Gt_Sgn_Uns = 613 - Ieee_Std_Logic_Arith_Gt_Uns_Int = 614 - Ieee_Std_Logic_Arith_Gt_Int_Uns = 615 - Ieee_Std_Logic_Arith_Gt_Sgn_Int = 616 - Ieee_Std_Logic_Arith_Gt_Int_Sgn = 617 - Ieee_Std_Logic_Arith_Ge_Uns_Uns = 618 - Ieee_Std_Logic_Arith_Ge_Sgn_Sgn = 619 - Ieee_Std_Logic_Arith_Ge_Uns_Sgn = 620 - Ieee_Std_Logic_Arith_Ge_Sgn_Uns = 621 - Ieee_Std_Logic_Arith_Ge_Uns_Int = 622 - Ieee_Std_Logic_Arith_Ge_Int_Uns = 623 - Ieee_Std_Logic_Arith_Ge_Sgn_Int = 624 - Ieee_Std_Logic_Arith_Ge_Int_Sgn = 625 - Ieee_Std_Logic_Arith_Eq_Uns_Uns = 626 - Ieee_Std_Logic_Arith_Eq_Sgn_Sgn = 627 - Ieee_Std_Logic_Arith_Eq_Uns_Sgn = 628 - Ieee_Std_Logic_Arith_Eq_Sgn_Uns = 629 - Ieee_Std_Logic_Arith_Eq_Uns_Int = 630 - Ieee_Std_Logic_Arith_Eq_Int_Uns = 631 - Ieee_Std_Logic_Arith_Eq_Sgn_Int = 632 - Ieee_Std_Logic_Arith_Eq_Int_Sgn = 633 - Ieee_Std_Logic_Arith_Ne_Uns_Uns = 634 - Ieee_Std_Logic_Arith_Ne_Sgn_Sgn = 635 - Ieee_Std_Logic_Arith_Ne_Uns_Sgn = 636 - Ieee_Std_Logic_Arith_Ne_Sgn_Uns = 637 - Ieee_Std_Logic_Arith_Ne_Uns_Int = 638 - Ieee_Std_Logic_Arith_Ne_Int_Uns = 639 - Ieee_Std_Logic_Arith_Ne_Sgn_Int = 640 - Ieee_Std_Logic_Arith_Ne_Int_Sgn = 641 - Ieee_Std_Logic_Misc_And_Reduce_Slv = 642 - Ieee_Std_Logic_Misc_And_Reduce_Suv = 643 - Ieee_Std_Logic_Misc_Nand_Reduce_Slv = 644 - Ieee_Std_Logic_Misc_Nand_Reduce_Suv = 645 - Ieee_Std_Logic_Misc_Or_Reduce_Slv = 646 - Ieee_Std_Logic_Misc_Or_Reduce_Suv = 647 - Ieee_Std_Logic_Misc_Nor_Reduce_Slv = 648 - Ieee_Std_Logic_Misc_Nor_Reduce_Suv = 649 - Ieee_Std_Logic_Misc_Xor_Reduce_Slv = 650 - Ieee_Std_Logic_Misc_Xor_Reduce_Suv = 651 - Ieee_Std_Logic_Misc_Xnor_Reduce_Slv = 652 - Ieee_Std_Logic_Misc_Xnor_Reduce_Suv = 653 + Ieee_Numeric_Std_Unsigned_To_Slv_Nat_Nat_Slv = 438 + Ieee_Math_Real_Ceil = 439 + Ieee_Math_Real_Floor = 440 + Ieee_Math_Real_Round = 441 + Ieee_Math_Real_Log2 = 442 + Ieee_Math_Real_Sin = 443 + Ieee_Math_Real_Cos = 444 + Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 445 + Ieee_Std_Logic_Unsigned_Add_Slv_Int = 446 + Ieee_Std_Logic_Unsigned_Add_Int_Slv = 447 + Ieee_Std_Logic_Unsigned_Add_Slv_Log = 448 + Ieee_Std_Logic_Unsigned_Add_Log_Slv = 449 + Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 450 + Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 451 + Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 452 + Ieee_Std_Logic_Unsigned_Sub_Slv_Log = 453 + Ieee_Std_Logic_Unsigned_Sub_Log_Slv = 454 + Ieee_Std_Logic_Unsigned_Id_Slv = 455 + Ieee_Std_Logic_Unsigned_Mul_Slv_Slv = 456 + Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 457 + Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 458 + Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 459 + Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 460 + Ieee_Std_Logic_Unsigned_Le_Slv_Int = 461 + Ieee_Std_Logic_Unsigned_Le_Int_Slv = 462 + Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 463 + Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 464 + Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 465 + Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 466 + Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 467 + Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 468 + Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 469 + Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 470 + Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 471 + Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 472 + Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 473 + Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 474 + Ieee_Std_Logic_Unsigned_Conv_Integer = 475 + Ieee_Std_Logic_Unsigned_Shl = 476 + Ieee_Std_Logic_Unsigned_Shr = 477 + Ieee_Std_Logic_Signed_Add_Slv_Slv = 478 + Ieee_Std_Logic_Signed_Add_Slv_Int = 479 + Ieee_Std_Logic_Signed_Add_Int_Slv = 480 + Ieee_Std_Logic_Signed_Add_Slv_Log = 481 + Ieee_Std_Logic_Signed_Add_Log_Slv = 482 + Ieee_Std_Logic_Signed_Sub_Slv_Slv = 483 + Ieee_Std_Logic_Signed_Sub_Slv_Int = 484 + Ieee_Std_Logic_Signed_Sub_Int_Slv = 485 + Ieee_Std_Logic_Signed_Sub_Slv_Log = 486 + Ieee_Std_Logic_Signed_Sub_Log_Slv = 487 + Ieee_Std_Logic_Signed_Id_Slv = 488 + Ieee_Std_Logic_Signed_Neg_Slv = 489 + Ieee_Std_Logic_Signed_Abs_Slv = 490 + Ieee_Std_Logic_Signed_Mul_Slv_Slv = 491 + Ieee_Std_Logic_Signed_Lt_Slv_Slv = 492 + Ieee_Std_Logic_Signed_Lt_Slv_Int = 493 + Ieee_Std_Logic_Signed_Lt_Int_Slv = 494 + Ieee_Std_Logic_Signed_Le_Slv_Slv = 495 + Ieee_Std_Logic_Signed_Le_Slv_Int = 496 + Ieee_Std_Logic_Signed_Le_Int_Slv = 497 + Ieee_Std_Logic_Signed_Gt_Slv_Slv = 498 + Ieee_Std_Logic_Signed_Gt_Slv_Int = 499 + Ieee_Std_Logic_Signed_Gt_Int_Slv = 500 + Ieee_Std_Logic_Signed_Ge_Slv_Slv = 501 + Ieee_Std_Logic_Signed_Ge_Slv_Int = 502 + Ieee_Std_Logic_Signed_Ge_Int_Slv = 503 + Ieee_Std_Logic_Signed_Eq_Slv_Slv = 504 + Ieee_Std_Logic_Signed_Eq_Slv_Int = 505 + Ieee_Std_Logic_Signed_Eq_Int_Slv = 506 + Ieee_Std_Logic_Signed_Ne_Slv_Slv = 507 + Ieee_Std_Logic_Signed_Ne_Slv_Int = 508 + Ieee_Std_Logic_Signed_Ne_Int_Slv = 509 + Ieee_Std_Logic_Signed_Conv_Integer = 510 + Ieee_Std_Logic_Signed_Shl = 511 + Ieee_Std_Logic_Signed_Shr = 512 + Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 513 + Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 514 + Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 515 + Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 516 + Ieee_Std_Logic_Arith_Conv_Integer_Int = 517 + Ieee_Std_Logic_Arith_Conv_Integer_Uns = 518 + Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 519 + Ieee_Std_Logic_Arith_Conv_Integer_Log = 520 + Ieee_Std_Logic_Arith_Conv_Vector_Int = 521 + Ieee_Std_Logic_Arith_Conv_Vector_Uns = 522 + Ieee_Std_Logic_Arith_Conv_Vector_Sgn = 523 + Ieee_Std_Logic_Arith_Conv_Vector_Log = 524 + Ieee_Std_Logic_Arith_Ext = 525 + Ieee_Std_Logic_Arith_Sxt = 526 + Ieee_Std_Logic_Arith_Id_Uns_Uns = 527 + Ieee_Std_Logic_Arith_Id_Sgn_Sgn = 528 + Ieee_Std_Logic_Arith_Neg_Sgn_Sgn = 529 + Ieee_Std_Logic_Arith_Abs_Sgn_Sgn = 530 + Ieee_Std_Logic_Arith_Shl_Uns = 531 + Ieee_Std_Logic_Arith_Shl_Sgn = 532 + Ieee_Std_Logic_Arith_Shr_Uns = 533 + Ieee_Std_Logic_Arith_Shr_Sgn = 534 + Ieee_Std_Logic_Arith_Id_Uns_Slv = 535 + Ieee_Std_Logic_Arith_Id_Sgn_Slv = 536 + Ieee_Std_Logic_Arith_Neg_Sgn_Slv = 537 + Ieee_Std_Logic_Arith_Abs_Sgn_Slv = 538 + Ieee_Std_Logic_Arith_Mul_Uns_Uns_Uns = 539 + Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Sgn = 540 + Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Sgn = 541 + Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Sgn = 542 + Ieee_Std_Logic_Arith_Mul_Uns_Uns_Slv = 543 + Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Slv = 544 + Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Slv = 545 + Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Slv = 546 + Ieee_Std_Logic_Arith_Add_Uns_Uns_Uns = 547 + Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Sgn = 548 + Ieee_Std_Logic_Arith_Add_Uns_Sgn_Sgn = 549 + Ieee_Std_Logic_Arith_Add_Sgn_Uns_Sgn = 550 + Ieee_Std_Logic_Arith_Add_Uns_Int_Uns = 551 + Ieee_Std_Logic_Arith_Add_Int_Uns_Uns = 552 + Ieee_Std_Logic_Arith_Add_Sgn_Int_Sgn = 553 + Ieee_Std_Logic_Arith_Add_Int_Sgn_Sgn = 554 + Ieee_Std_Logic_Arith_Add_Uns_Log_Uns = 555 + Ieee_Std_Logic_Arith_Add_Log_Uns_Uns = 556 + Ieee_Std_Logic_Arith_Add_Sgn_Log_Sgn = 557 + Ieee_Std_Logic_Arith_Add_Log_Sgn_Sgn = 558 + Ieee_Std_Logic_Arith_Add_Uns_Uns_Slv = 559 + Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Slv = 560 + Ieee_Std_Logic_Arith_Add_Uns_Sgn_Slv = 561 + Ieee_Std_Logic_Arith_Add_Sgn_Uns_Slv = 562 + Ieee_Std_Logic_Arith_Add_Uns_Int_Slv = 563 + Ieee_Std_Logic_Arith_Add_Int_Uns_Slv = 564 + Ieee_Std_Logic_Arith_Add_Sgn_Int_Slv = 565 + Ieee_Std_Logic_Arith_Add_Int_Sgn_Slv = 566 + Ieee_Std_Logic_Arith_Add_Uns_Log_Slv = 567 + Ieee_Std_Logic_Arith_Add_Log_Uns_Slv = 568 + Ieee_Std_Logic_Arith_Add_Sgn_Log_Slv = 569 + Ieee_Std_Logic_Arith_Add_Log_Sgn_Slv = 570 + Ieee_Std_Logic_Arith_Sub_Uns_Uns_Uns = 571 + Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Sgn = 572 + Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Sgn = 573 + Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Sgn = 574 + Ieee_Std_Logic_Arith_Sub_Uns_Int_Uns = 575 + Ieee_Std_Logic_Arith_Sub_Int_Uns_Uns = 576 + Ieee_Std_Logic_Arith_Sub_Sgn_Int_Sgn = 577 + Ieee_Std_Logic_Arith_Sub_Int_Sgn_Sgn = 578 + Ieee_Std_Logic_Arith_Sub_Uns_Log_Uns = 579 + Ieee_Std_Logic_Arith_Sub_Log_Uns_Uns = 580 + Ieee_Std_Logic_Arith_Sub_Sgn_Log_Sgn = 581 + Ieee_Std_Logic_Arith_Sub_Log_Sgn_Sgn = 582 + Ieee_Std_Logic_Arith_Sub_Uns_Uns_Slv = 583 + Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Slv = 584 + Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Slv = 585 + Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Slv = 586 + Ieee_Std_Logic_Arith_Sub_Uns_Int_Slv = 587 + Ieee_Std_Logic_Arith_Sub_Int_Uns_Slv = 588 + Ieee_Std_Logic_Arith_Sub_Sgn_Int_Slv = 589 + Ieee_Std_Logic_Arith_Sub_Int_Sgn_Slv = 590 + Ieee_Std_Logic_Arith_Sub_Uns_Log_Slv = 591 + Ieee_Std_Logic_Arith_Sub_Log_Uns_Slv = 592 + Ieee_Std_Logic_Arith_Sub_Sgn_Log_Slv = 593 + Ieee_Std_Logic_Arith_Sub_Log_Sgn_Slv = 594 + Ieee_Std_Logic_Arith_Lt_Uns_Uns = 595 + Ieee_Std_Logic_Arith_Lt_Sgn_Sgn = 596 + Ieee_Std_Logic_Arith_Lt_Uns_Sgn = 597 + Ieee_Std_Logic_Arith_Lt_Sgn_Uns = 598 + Ieee_Std_Logic_Arith_Lt_Uns_Int = 599 + Ieee_Std_Logic_Arith_Lt_Int_Uns = 600 + Ieee_Std_Logic_Arith_Lt_Sgn_Int = 601 + Ieee_Std_Logic_Arith_Lt_Int_Sgn = 602 + Ieee_Std_Logic_Arith_Le_Uns_Uns = 603 + Ieee_Std_Logic_Arith_Le_Sgn_Sgn = 604 + Ieee_Std_Logic_Arith_Le_Uns_Sgn = 605 + Ieee_Std_Logic_Arith_Le_Sgn_Uns = 606 + Ieee_Std_Logic_Arith_Le_Uns_Int = 607 + Ieee_Std_Logic_Arith_Le_Int_Uns = 608 + Ieee_Std_Logic_Arith_Le_Sgn_Int = 609 + Ieee_Std_Logic_Arith_Le_Int_Sgn = 610 + Ieee_Std_Logic_Arith_Gt_Uns_Uns = 611 + Ieee_Std_Logic_Arith_Gt_Sgn_Sgn = 612 + Ieee_Std_Logic_Arith_Gt_Uns_Sgn = 613 + Ieee_Std_Logic_Arith_Gt_Sgn_Uns = 614 + Ieee_Std_Logic_Arith_Gt_Uns_Int = 615 + Ieee_Std_Logic_Arith_Gt_Int_Uns = 616 + Ieee_Std_Logic_Arith_Gt_Sgn_Int = 617 + Ieee_Std_Logic_Arith_Gt_Int_Sgn = 618 + Ieee_Std_Logic_Arith_Ge_Uns_Uns = 619 + Ieee_Std_Logic_Arith_Ge_Sgn_Sgn = 620 + Ieee_Std_Logic_Arith_Ge_Uns_Sgn = 621 + Ieee_Std_Logic_Arith_Ge_Sgn_Uns = 622 + Ieee_Std_Logic_Arith_Ge_Uns_Int = 623 + Ieee_Std_Logic_Arith_Ge_Int_Uns = 624 + Ieee_Std_Logic_Arith_Ge_Sgn_Int = 625 + Ieee_Std_Logic_Arith_Ge_Int_Sgn = 626 + Ieee_Std_Logic_Arith_Eq_Uns_Uns = 627 + Ieee_Std_Logic_Arith_Eq_Sgn_Sgn = 628 + Ieee_Std_Logic_Arith_Eq_Uns_Sgn = 629 + Ieee_Std_Logic_Arith_Eq_Sgn_Uns = 630 + Ieee_Std_Logic_Arith_Eq_Uns_Int = 631 + Ieee_Std_Logic_Arith_Eq_Int_Uns = 632 + Ieee_Std_Logic_Arith_Eq_Sgn_Int = 633 + Ieee_Std_Logic_Arith_Eq_Int_Sgn = 634 + Ieee_Std_Logic_Arith_Ne_Uns_Uns = 635 + Ieee_Std_Logic_Arith_Ne_Sgn_Sgn = 636 + Ieee_Std_Logic_Arith_Ne_Uns_Sgn = 637 + Ieee_Std_Logic_Arith_Ne_Sgn_Uns = 638 + Ieee_Std_Logic_Arith_Ne_Uns_Int = 639 + Ieee_Std_Logic_Arith_Ne_Int_Uns = 640 + Ieee_Std_Logic_Arith_Ne_Sgn_Int = 641 + Ieee_Std_Logic_Arith_Ne_Int_Sgn = 642 + Ieee_Std_Logic_Misc_And_Reduce_Slv = 643 + Ieee_Std_Logic_Misc_And_Reduce_Suv = 644 + Ieee_Std_Logic_Misc_Nand_Reduce_Slv = 645 + Ieee_Std_Logic_Misc_Nand_Reduce_Suv = 646 + Ieee_Std_Logic_Misc_Or_Reduce_Slv = 647 + Ieee_Std_Logic_Misc_Or_Reduce_Suv = 648 + Ieee_Std_Logic_Misc_Nor_Reduce_Slv = 649 + Ieee_Std_Logic_Misc_Nor_Reduce_Suv = 650 + Ieee_Std_Logic_Misc_Xor_Reduce_Slv = 651 + Ieee_Std_Logic_Misc_Xor_Reduce_Suv = 652 + Ieee_Std_Logic_Misc_Xnor_Reduce_Slv = 653 + Ieee_Std_Logic_Misc_Xnor_Reduce_Suv = 654 Get_Kind = libghdl.vhdl__nodes__get_kind Get_Location = libghdl.vhdl__nodes__get_location diff --git a/src/vhdl/vhdl-ieee-numeric_std_unsigned.adb b/src/vhdl/vhdl-ieee-numeric_std_unsigned.adb index e6fc03cf9..7d8edbb96 100644 --- a/src/vhdl/vhdl-ieee-numeric_std_unsigned.adb +++ b/src/vhdl/vhdl-ieee-numeric_std_unsigned.adb @@ -45,10 +45,31 @@ package body Vhdl.Ieee.Numeric_Std_Unsigned is end if; end Classify_Arg; + function Extract_Dyadic_Declaration (Decl : Iir; Arg1: Iir; Arg2: Iir) + return Iir_Predefined_Functions + is + Arg1_Kind, Arg2_Kind : Arg_Kind; + Res : Iir_Predefined_Functions; + begin + Res := Iir_Predefined_None; + Classify_Arg (Arg1, Arg1_Kind); + Classify_Arg (Arg2, Arg2_Kind); + case Get_Identifier (Decl) is + when Name_To_Stdlogicvector => + if Arg1_Kind = Arg_Int and Arg2_Kind = Arg_Int then + Res := + Iir_Predefined_Ieee_Numeric_Std_Unsigned_To_Slv_Nat_Nat_Slv; + end if; + when others => + null; + end case; + return Res; + end Extract_Dyadic_Declaration; + procedure Extract_Declaration (Decl : Iir) is Arg1, Arg2 : Iir; - Arg1_Kind : Arg_Kind; + Arg1_Kind : Arg_Kind; Res : Iir_Predefined_Functions; begin Arg1 := Get_Interface_Declaration_Chain (Decl); @@ -56,15 +77,13 @@ package body Vhdl.Ieee.Numeric_Std_Unsigned is raise Error; end if; - Res := Iir_Predefined_None; - - Classify_Arg (Arg1, Arg1_Kind); Arg2 := Get_Chain (Arg1); if Is_Valid (Arg2) then - -- Dyadic function. - null; + Res := Extract_Dyadic_Declaration (Decl, Arg1, Arg2); else -- Monadic function. + Res := Iir_Predefined_None; + Classify_Arg (Arg1, Arg1_Kind); case Get_Identifier (Decl) is when Name_To_Integer => pragma Assert (Arg1_Kind = Arg_Slv); diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index 9961127a1..29029f7e6 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -5882,6 +5882,7 @@ package Vhdl.Nodes is -- Numeric_Std_Unsigned (ieee2008) Iir_Predefined_Ieee_Numeric_Std_Unsigned_To_Integer_Slv_Nat, + Iir_Predefined_Ieee_Numeric_Std_Unsigned_To_Slv_Nat_Nat_Slv, -- Math_Real Iir_Predefined_Ieee_Math_Real_Ceil, -- cgit v1.2.3