返回介绍

7.5 通配等式与通配不等式

发布于 2020-09-09 22:55:47 字数 944 浏览 1168 评论 0 收藏 0

SystemVerilog 3.1引入了如下所述的通配比较操作符。

表 7-1:通配等式与通配不等式操作符

操作符用法描述
=?=a =?= ba等于b,X和Z的作用像通配符一样
!?=a !?= ba不等于b,X和Z的作用像通配符一样

通配相等操作符(=?=)和通配不等操作符(!?=)将一个指定位置处的X和Z值当作是一个通配符。在进行比较的表达式中,通配符匹配于任意位值(0,1,Z,或X)。

这些操作符一位一位地比较操作数,并返回一个1位的自决结果。如果通配相等/不等操作符的操作数具有不同的位宽,那么操作数就像条件相等/不等操作符中使用的规则一样地扩展操作数。如果关系操作的结果为“真”,那么操作符产生一个1。如果关系操作的结果是“否”,那么它产生一个0。

对于SystemVerilog中三种类型的等式(和不等式),当它们的操作数中包含未知值(X或Z)的时候,它们的行为是不同的。如果操作数中包含X或Z,那么==和!=操作的结果是X。而===和!==明确地检查四态值,因此,X和Z应该或者匹配或者不匹配,结果永远也不会是X。=?=和!?=操作符将X或Z当作是可以匹配任意值得通配符,因此,它们也永远不产生X。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文