@@ -1603,14 +1603,19 @@ inline verilog_non_blocking_assignt &to_verilog_non_blocking_assign(exprt &expr)
1603
1603
return static_cast <verilog_non_blocking_assignt &>(expr);
1604
1604
}
1605
1605
1606
- // / Verilog concurrent assertion module item
1607
- class verilog_assert_module_itemt : public verilog_module_itemt
1606
+ // / Verilog assert/assume/cover property module item
1607
+ class verilog_assert_assume_cover_module_itemt : public verilog_module_itemt
1608
1608
{
1609
1609
public:
1610
- verilog_assert_module_itemt ()
1611
- : verilog_module_itemt(ID_verilog_assert_property)
1610
+ verilog_assert_assume_cover_module_itemt (
1611
+ irep_idt __id,
1612
+ exprt __condition,
1613
+ verilog_statementt __action)
1614
+ : verilog_module_itemt(__id)
1612
1615
{
1613
1616
operands ().resize (2 );
1617
+ condition () = std::move (__condition);
1618
+ action () = std::move (__action);
1614
1619
}
1615
1620
1616
1621
inline exprt &condition ()
@@ -1623,51 +1628,14 @@ class verilog_assert_module_itemt : public verilog_module_itemt
1623
1628
return op0 ();
1624
1629
}
1625
1630
1626
- const irep_idt & identifier () const
1631
+ inline exprt & action ()
1627
1632
{
1628
- return get (ID_identifier);
1629
- }
1630
-
1631
- void identifier (irep_idt __identifier)
1632
- {
1633
- set (ID_identifier, __identifier);
1634
- }
1635
- };
1636
-
1637
- inline const verilog_assert_module_itemt &
1638
- to_verilog_assert_module_item (const verilog_module_itemt &module_item)
1639
- {
1640
- PRECONDITION (module_item.id () == ID_verilog_assert_property);
1641
- binary_exprt::check (module_item);
1642
- return static_cast <const verilog_assert_module_itemt &>(module_item);
1643
- }
1644
-
1645
- inline verilog_assert_module_itemt &
1646
- to_verilog_assert_module_item (verilog_module_itemt &module_item)
1647
- {
1648
- PRECONDITION (module_item.id () == ID_verilog_assert_property);
1649
- binary_exprt::check (module_item);
1650
- return static_cast <verilog_assert_module_itemt &>(module_item);
1651
- }
1652
-
1653
- // / Verilog concurrent assumption module item
1654
- class verilog_assume_module_itemt : public verilog_module_itemt
1655
- {
1656
- public:
1657
- verilog_assume_module_itemt ()
1658
- : verilog_module_itemt(ID_verilog_assume_property)
1659
- {
1660
- operands ().resize (2 );
1661
- }
1662
-
1663
- inline exprt &condition ()
1664
- {
1665
- return op0 ();
1633
+ return op1 ();
1666
1634
}
1667
1635
1668
- inline const exprt &condition () const
1636
+ inline const exprt &action () const
1669
1637
{
1670
- return op0 ();
1638
+ return op1 ();
1671
1639
}
1672
1640
1673
1641
const irep_idt &identifier () const
@@ -1681,20 +1649,28 @@ class verilog_assume_module_itemt : public verilog_module_itemt
1681
1649
}
1682
1650
};
1683
1651
1684
- inline const verilog_assume_module_itemt &
1685
- to_verilog_assume_module_item (const verilog_module_itemt &module_item)
1652
+ inline const verilog_assert_assume_cover_module_itemt &
1653
+ to_verilog_assert_assume_cover_module_item (
1654
+ const verilog_module_itemt &module_item)
1686
1655
{
1687
- PRECONDITION (module_item.id () == ID_verilog_assume_property);
1656
+ PRECONDITION (
1657
+ module_item.id () == ID_verilog_assert_property ||
1658
+ module_item.id () == ID_verilog_assume_property ||
1659
+ module_item.id () == ID_verilog_cover_property);
1688
1660
binary_exprt::check (module_item);
1689
- return static_cast <const verilog_assume_module_itemt &>(module_item);
1661
+ return static_cast <const verilog_assert_assume_cover_module_itemt &>(
1662
+ module_item);
1690
1663
}
1691
1664
1692
- inline verilog_assume_module_itemt &
1693
- to_verilog_assume_module_item (verilog_module_itemt &module_item)
1665
+ inline verilog_assert_assume_cover_module_itemt &
1666
+ to_verilog_assert_assume_cover_module_item (verilog_module_itemt &module_item)
1694
1667
{
1695
- PRECONDITION (module_item.id () == ID_verilog_assume_property);
1668
+ PRECONDITION (
1669
+ module_item.id () == ID_verilog_assert_property ||
1670
+ module_item.id () == ID_verilog_assume_property ||
1671
+ module_item.id () == ID_verilog_cover_property);
1696
1672
binary_exprt::check (module_item);
1697
- return static_cast <verilog_assume_module_itemt &>(module_item);
1673
+ return static_cast <verilog_assert_assume_cover_module_itemt &>(module_item);
1698
1674
}
1699
1675
1700
1676
// Can be one of three:
0 commit comments