SystemVerilog Assertions应用指南 第一章(1.28章节 内建的系统函数)

news2025/1/31 19:48:54

        SVA提供了几个内建的函数来检查一些最常用的设计条件。
        $onehot(expression)—检验表达式满足“one-hot”,换句话说,就是在任意给定的时钟沿,表达式只有一位为高。
        $onehot0( expression)—检验表达式满足“ zero one-hot”,换句话说,就是在任意给定的时钟沿,表达式只有一位为高或者没有任何位为高。
        $isunknown( expression)—检验表达式的任何位是否是Ⅹ或者Z。
        $countones( expression)—计算向量中为高的位的数量。
        
断言语句a33a检验向量“ state”是“one-hot”。断言语句a33b检验向量“ state”是“ zero one-hot”,断言语句a33c检验向量“bus”是否有任何位为X或Z。断言语句a33d检验向量“bus”中等于1的位的个数大于1。
 

module routines;

logic clk;

logic [3:0] state;
logic [4:0] bus;
integer i;

initial $vcdpluson();

initial
begin
clk = 1'b0; state = 4'd0; 
@(posedge clk);

for(i=0; i<3; i++)
begin
	state = i*2;
	bus = $random();
	@(posedge clk);
end

for(i=0; i<3; i++)
begin
	state = $random() % 16;
	bus = 8'dz;
	@(posedge clk);
end

bus = 4'd10;
repeat(2) @(posedge clk);

$finish();
end

// builtin system functions

a33a: assert property(@(posedge clk) $onehot(state));
a33b: assert property(@(posedge clk) $onehot0(state));
a33c: assert property(@(posedge clk) $isunknown(bus));
a33d: assert property(@(posedge clk) $countones(bus) > 1);


initial forever clk = #25 ~ clk;

endmodule

        图1-35显示了上述断言在模拟中的响应。表1-16总结了每个断言的状态和向量“ state”和“bus”的采样值。注意,断言a33a在时钟周期2失败,因为所有位都为零。“one-hot”要求在任何时钟上升沿都只有一位为高。另一方面,断言a33b成功因为它检查“ zero one-hot”,而对于这种构造,所有位都为零是合法的a33a和a3b都在时钟周期5,6,7,8失败,因为有超过一位为高。断言a33c在任何时候向量“bus”的值不为X或Z时失败。它在时钟周期5,6,7成功,因为向量的值为Z。断言a33d在时钟周期2,3,5,6,7失败,因为值为高的位的个数没超过1。断言a33d在时钟周期4,8成功,因为向量“bus”在这两个时刻都有两位为高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1094051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

特殊电脑数据恢复软件EasyRecovery2024

俗话说&#xff1a;工欲善其事&#xff0c;必先利其器。我们平时应该熟练掌握集中磁盘诊断工具的使用方法&#xff0c;这样当遇到磁盘故障时才不至于晕头转向、手忙脚乱。那么磁盘诊断工具应具备哪些功能呢&#xff1f;它能够轻松搞定数据恢复&#xff0c;恢复丢失和删除的文件…

推荐《终末的女武神》

梅村真也原作&#xff0c;アジチカ作画的漫画作品 终末的女武神 播报编辑讨论2上传视频 《终末的女武神》&#xff08;终末のワルキューレ&#xff09;是梅村真也原作、アジチカ作画、フクイタクミ负责脚本的漫画作品&#xff0c;于德间书店旗下杂志《月刊COMIC ZENON》上发表…

解决Drag and drop is not supported导致无法将物理机上的文件拖入Ubuntu

问题起因 因为需要拷贝一个文件从物理机到虚拟机&#xff0c;但是我又不想用有关ftp的程序或者协议&#xff0c;但是直接拖又报错Drag and drop is not supported&#xff0c;索性上网查询了一下解决方法&#xff0c;自己记录一下。 解决方法 安装下面两个程序 sudo apt in…

【超详细】win10安装docker

win10安装docker 因为要在win10复现一个CVE漏洞&#xff0c;需要用到docker所以特地自己亲自安装了一下&#xff0c;其实在win10上安装docker与在Linux上面的原理一致&#xff0c;都是将docker安装在虚拟机里&#xff0c;不同的是win10是安装在Hyper-V虚拟机上的&#xff0c;需…

Python学习基础笔记六十九——文本2

二进制&#xff08;字节&#xff09;模式&#xff1a; 文本文件&#xff0c;纯文本文件就是保存文本字符串的文件&#xff0c;跟word还不一样&#xff0c;word是富文本文件。 其实就文件存储的底层来说&#xff0c;不管什么类型的文件&#xff08;文本、视频、图片、word、Ex…

Mac安装Kali保姆级教程

Mac安装Kali保姆级教程 其他安装教程&#xff1a;使用VMware安装系统Window、Linux&#xff08;kali&#xff09;、Mac操作系统 1 虚拟机安装VM Fusion 去官网下载VM Fusion 地址&#xff1a;https://customerconnect.vmware.com/en/evalcenter?pfusion-player-personal-13 …

基于springboot实现心灵治愈心理健康平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现心灵心理健康平台系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个心灵治愈交流平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论…

Python爬虫selenium安装谷歌驱动解决办法

驱动下载链接&#xff1a;CNPM Binaries Mirror (npmmirror.com) 谷歌浏览器老版本下载&#xff1a;Google Chrome 64bit Windows版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒 (chromedownloads.net) 驱动下载后解压缩直接放入python相应文件夹&#xff1a; 最后&a…

springboot+java+vue毕业生学习交流平台g1el1

决定开发系统选择B/S模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问&#xff0c;采用的主流的Java语言这种面向对象的语言进行毕业生交流学习平台程序的开发&#xff0c;在数据库的选择上面&#xff0c;选择功能强大的MySQL数据库进行数…

MAKEFLAGS += -rR --include-dir=$(CURDIR)的含义

一、目的 在看uboot顶层Makefile文件时遇到这个代码不甚明白&#xff0c;故查找了一下资料以供大家学习 二、介绍 MAKEFLAGS -rR 表示禁止使用内置的隐含规则和变量定义&#xff1b;这个选项用于启用recursive make&#xff0c;使得Makefile目标可以调用其他Makefile目标&…

记一次排查线上OOM详细过程和解决思路

文章目录 OOM起因排查过程 OOM起因 前言声明&#xff1a;本人菜鸟一枚&#xff0c;如有地方描述不当望谅解&#xff0c;毕竟本人身处某十八线小城市三十六线小公司。 国庆节前头给项目换了套参数加解密方式&#xff0c;换完之后服务时不时就会出现如下报错&#xff0c;服务停…

rk3568 RT-LINUX 测试

G5501 产品详情 主线Linux是软实时系统&#xff0c;加入实时补丁后将其改造为硬实时系统。RT-LINUX 特点如下&#xff1a; 可抢占性 实现实时内核很重要的特点是可抢占性&#xff0c;就绪的高优先级的任务能够抢占低优先级任务。 进程调度策略 Linux内核支持实时进程和非实…

Java-lambda表达式与流处理

文章目录 一、lambda表达式二、方法引用三、Stream流 一、lambda表达式 在Java中&#xff0c;Lambda表达式是一种函数式编程的特性&#xff0c;它允许以简洁的语法编写函数或操作&#xff0c;而无需显式创建匿名类。Lambda表达式在Java 8中引入&#xff0c;是使Java更适应现代编…

RabbitMQ从0到1完整学习笔记一:《基础篇》

目录 启篇 一、初识MQ 1.1 同步调用 1.2异步调用 1.3 技术选型 二、RabbitMQ 架构 2.2 收发消息 2.2.1 交换机 2.2.2 队列 2.2.3 绑定关系 2.2.4 发送消息 2.3 数据隔离 2.3.1 用户管理 2.3.2 virtual host 三、SpringAMQP 3.1 案例入门 3.1.1 导入依赖 3.1.2 消息发送 3.1.2 消…

IIS 部署.NetCore,最细步骤

服务器安装环境 将.net core程序部署到IIS总体需要经过以下3个大步骤&#xff0c;其中在IIS上配置网站有些比较繁琐&#xff0c;我都会逐一给出详细步骤。 <1>安装IIS和.NetCORE运行时程序 <2>以文件的形式发布.NETCORE程序到指定目录 <3>IIS上面建立网站…

【BiLSTM-Adaboost预测】基于双向长短期记忆网络的Adaboost时间序列预测研究(matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【LeetCode: 137. 只出现一次的数字 II | 位运算 | 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

综述:大规模小目标检测

论文地址: Towards Large-Scale Small Object Detection: Survey and Benchmarks​arxiv.org/abs/2207.14096 目录 摘要 1.Introduction 1.1 与之前综述的比较 1.2 总结 2.小目标检测回顾 2.1 问题定义 2.2 主要挑战 2.3 小目标检测算法回顾 3.小目标检测的数据集 …

java网上商城购物网站管理系统69bz5 用户 会员springboot+vue

主要目的是通过网络平台方便商家进行商品订单管理并让客户有更好的购物体验。以商家在后端提供商品供客户在前端商城选购&#xff0c;客户将所需的商品加入购物车&#xff0c;然后通过结算购物车功能填写相应信息生成订单&#xff0c;付款以后再由商家在后端接收到订单进行处理…

自动驾驶中的数据安全和隐私

自动驾驶技术的发展已经改变了我们的出行方式&#xff0c;但伴随着这项技术的普及&#xff0c;数据安全和隐私问题也变得愈发重要。本文将探讨自动驾驶中的数据收集、数据隐私和安全挑战&#xff0c;以及如何保护自动驾驶系统的数据。 自动驾驶中的数据收集 在自动驾驶技术中…