ASIC-WORLD Verilog(14)系统任务
写在前面
在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加点自己的理解)分享给大家。
这是网站原文:Verilog Tutorial
这是系列导航:Verilog教程系列文章导航
介绍
有些系统任务可以用在仿真期间生成输入和输出。这些系统任务以美元符号 ($) 开头。综合工具(在综合时)会解析并忽略系统功能,因此这些系统函数甚至可以包含在可综合模型中。
$display, $strobe, $monitor
这三个命令具有相同的语法,他们都可以在仿真时在后台屏幕上打印文本。
$display 和 $strobe 每次执行时都会打印一次,而 $monitor 则在其任意一个参数更改时就会打印一次。$display 和 $strobe 之间的区别在于 $strobe 显示当前仿真时间单位最末尾的参数,而不是确切执行时的参数。格式字符串与C/C++中的格式字符串类似,并且可以包含格式字符。格式字符包括%d(十进制)、%h(十六进制)、%b(二进制)、%c(字符)、%s(字符串)和%t(时间)、%m(层次结构级别)。%5d、%5b 等将为数字提供正好 5 个空格,而不是所需的空间。
语法
- $display("format_string", par_1, par_2, ... );
- $displayb (如上所述,但默认为二进制..);
- $strobe("format_string", par_1, par_2, ... );
- $strobeh(如上所述,但默认为十六进制..);
- $monitor("format_string", par_1, par_2, ... );
- $monitoro (如上所述,但默认为八进制..);
$time, $stime, $realtime
它们分别以 64 位整数格式、32 位整数格式和实数格式返回当前所处的仿真时间。
$reset, $stop, $finish
$reset 将仿真重置回时间 0;$stop 停止仿真工具并将其置于交互模式,用户可以在其中输入命令;$finish 退出模拟工具回到操作系统。
$scope, $showscope
$scope(hierarchy_name) 将当前分层范围设置到hierarchy_name。$showscopes(n) 列出当前范围内(及以下,如果 n 设置为 1)的所有模块、任务和块名称。
$random
$random 每次被调用时都会生成一个随机整数。如果序列是可重复的,则第一次调用 random 并给它一个数字参数(种子)。否则,种子来自计算机时钟。
$dumpfile、$dumpvar、$dumpon、$dumpoff、$dumpall
这些任务可以将变量变化转储到像Debussy这样的模拟查看器。转储文件(dump files)能够转储仿真中的所有变量。这对于调试来说很方便,但可能会很慢。
语法
- $dumpfile("ilename.vcd")
- $dumpvar 转储设计中的所有变量。
- $dumpvar(1, top) 转储顶部和下面模块中的所有变量,但不转储顶部实例化的模块。
- $dumpvar(2, top) 转储模块顶部和下面 1 层中的所有变量。
- $dumpvar(n, top) 转储模块顶部和下面 n-1 层中的所有变量。
- $dumpvar(0, top) 转储模块顶部和下面所有级别的所有变量。
- $dumpon 启动转储。
- $dumpoff 停止转储。
$fopen、$fdisplay、$fstrobe、$fmonitor 和 $fwrite
这些任务可以更有选择性地写入文件。
$fopen 打开一个输出文件并为打开的文件提供一个句柄以供其他命令使用。
$fclose 关闭文件并允许其他程序访问它。
$fdisplay 和 $fwrite 每当执行时都会将格式化数据写入文件。它们是相同的,只是 $fdisplay 在每次执行后插入一个新行,而 $write 则不会。
$strobe 在执行时也会写入文件,但它会等到时间步中的所有其他操作完成后才写入。因此初始#1 a=1;b = 0; $fstrobe(hand1, a,b); b=1;将为a和b写1 1。
只要 $monitor 的任何参数发生更改,就会写入文件。
语法
- handle1=$fopen("filenam1.suffix")
- handle2=$fopen("filenam2.suffix")
- $fstrobe(handle1, format, variable list) //选通数据到filenam1.suffix
- $fdisplay(handle2, format, variable list) //将数据写入filenam2.suffix
- $fwrite(handle2, format, variable list) //将数据写入 filenam2.suffix 中,全部写在一行中。在需要换行的地方输入格式字符串。
- 📣您有任何问题,都可以在评论区和我交流📃!
- 📣本文由 孤独的单刀 原创,首发于CSDN平台🐵,博客主页:wuzhikai.blog.csdn.net
- 📣您的支持是我持续创作的最大动力!如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!
相关文章:
ASIC-WORLD Verilog(14)系统任务
写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加点自己的理解)分享给大家。 这是网站原文&…...
两台电脑共享文件设置
步骤一:确保网络连接正常,可网线直连。 两台电脑IP设置,例: 步骤二:启用共享功能。 1.在【控制面板】中选择【网络和Internet】; 2.点击【网络和共享中心】,在左侧导航栏中,点击【…...
《C和指针》笔记17:sizeof
sizeof操作符判断它的操作数的类型长度,以字节为单位表示。 操作数既可以是个表达式(常常是单个变量), sizeof x上面的式子返回变量x所占据的字节数。 也可以是两边加上括号的类型名。 sizeof(int)上面的式子返回整型变量的字…...
说说大表关联小表
分析&回答 Hive 大表和小表的关联 优先选择将小表放在内存中。小表不足以放到内存中,可以通过bucket-map-join(不清楚的话看底部文章)来实现,效果很明显。 两个表join的时候,其方法是两个join表在join key上都做hash bucket,…...
Unity 之 方括号[ ] 的用法以及作用
文章目录 在Unity中,方括号 [ ] 通常用于表示属性、特性(Attributes)或者元数据(Metadata)。这些标记提供了附加信息,可以用于修改类、方法、字段等的行为或者在编辑器中进行设置。 以下是一些常见的用法&…...
微服务nacos或者yml配置内容部分加密jasypt
写在最前:因业务需要把nacos配置中的部分密码加密,不能暴露在外,本想用nacos官方的插拔插件nacos-aes-encryption-plugin的,但是比较复杂且官方文档说的不清不楚所以弃用,有兴趣的可以参考。链接:https://n…...
Vue:插槽,与自定义事件
1.插槽slot <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <div id"app"><!-- <p>列表书籍</p>--> <!-- …...
Window11-Ubuntu双系统安装
一、制作Ubuntu系统盘 1.下载Ubuntu镜像源 阿里云开源镜像站:https://mirrors.aliyun.com/ubuntu-releases/ 清华大学开源软件镜像网站:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/ 选择想要的版本下载,我用的是20.04版本。 2…...
【React】React学习:从初级到高级(一)
React学习[一] 1 UI描述1.1 组件的创建与使用1.1.1 创建组件1.1.2 使用组件 1.2 组件的导入与导出1.2.1 根组件文件1.2.2 导出和导入一个组件1.2.3 从同一文件中导出和导入多个组件 1.3 使用JSX书写标签语言1.3.1 JSX:将标签引入JavaScript1.3.2 将HTML转换为JSX1.3.3 高级提示…...
Flutter 安装教程 + 运行教程
1.下载依赖 https://flutter.cn/docs/get-started/install/windows 解压完后根据自己的位置放置,如(D:\flutter) 注意 请勿将 Flutter 有特殊字符或空格的路径下。 请勿将 Flutter 安装在需要高权限的文件夹内,例如 C:\Program …...
正中优配:A股早盘三大股指微涨 华为概念表现活跃
周三(8月30日),到上午收盘,三大股指团体收涨。其间上证指数涨0.06%,报3137.72点;深证成指和创业板指别离涨0.33%、0.12%;沪深两市合计成交额6423.91亿元,总体来看,两市个…...
SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)4- Plant间在库转送 之 在库转送Order(有出荷)
SAP 中在库移动 不仅有入库(GR),出库(GI),也可以是单纯内部的转记或转送。 1,振替转记(转移过账) 2,在库转送(库存转储) 1ÿ…...
suricata规则字段解析
一、Payload关键字 1、content 可以匹配所有字符;从a到z,大写和小写及所有特殊标志。针对一些特殊符号或中文等,需要使用十六进制进行匹配,写法:|3A|表示冒号,以此类推。|0D| -> \r,|0A| -…...
韶音骨传导耳机好不好,韶音骨传导耳机值得入手吗
韶音耳机的质量还是很不错的,其实力相比于百元价位的耳机而言领先了不少,具备多种功能,佩戴起来也是有着舒适性。它自主研发了骨传导音频技术,不过在今年开始,似乎已经将方向开始往运动偏移。 而在韶音的骨传导耳机中&…...
【LeetCode】208.实现Trie(前缀树)
题目 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀…...
多线程笔记: volatile、synchronized、Monitor等
为什么非volatile变量也有线程可见性?不加volatile也可以看到变量变化是为什么?Thread.sleep() 和 System.out.println() 与内存可见性的影响Thread.sleep() 对线程可见性的影响?Java中的Monitor监视器是什么? Slf4j public clas…...
shell语法--数组相关
shell定义一个数组 在 shell 中,可以使用以下语法来定义一个数组: array_name(item1 item2 item3 ...) 其中,array_name 是数组的名称,item1、item2、item3 等是数组中的元素,它们之间用空格分隔。例如,以下…...
AI:05 - 基于深度学习的道路交通信号灯的检测与识别
随着人工智能的快速发展,基于深度学习的视觉算法在道路交通领域中起到了重要作用。本文将探讨如何利用深度学习技术实现道路交通信号灯的检测与识别,通过多处代码实例展示技术深度。 道路交通信号灯是指示交通参与者行驶和停止的重要信号。准确地检测和识别交通信号灯对于智…...
The Sandbox 即将参加韩国区块链周,并带来一系列独家周边活动!
韩国区块链周(Korea Blockchain Week)即将到来,届时将有成千上万的 NFT 项目、建设者、社区成员、企业家、投资者和爱好者齐聚首尔,分享 Web3 的最新更新和未来愿景。 继成功举办韩流崛起 LAND 销售并宣布多个合作伙伴关系之后&a…...
Mysql高阶语句 (一)
一、常用查询 (增、删、改、查) 对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 例如只取 10 条数据、对查询结果进行排序或分组等等 1、按关键字排序 PS:类比于windows 任务管理器 使用 SELECT 语句…...
从协议到实战:深度剖析WiFi Deauth攻击的底层原理与Kali工具链应用
1. WiFi Deauth攻击的本质:从协议层理解管理帧 当你用手机连接咖啡厅的WiFi时,背后其实在进行一场精密的无线协议对话。802.11标准中定义了三种关键帧类型:数据帧负责传输网页内容,控制帧协调信道占用,而管理帧则是连…...
不止于存储:用GD32F407的片内FLASH实现一个简易的“EEPROM”数据管理系统
超越传统存储:基于GD32F407片内FLASH的智能数据管理方案 在嵌入式系统开发中,非易失性数据存储一直是个既基础又关键的环节。传统方案往往直接外挂EEPROM芯片,但这种方式不仅增加硬件成本,还占用宝贵的IO资源。而GD32F407这类高性…...
告别时序警告!手把手教你为Vivado自定义分频器添加正确时钟约束
深度解析Vivado分频器时钟约束:从原理到实战的全链路指南 在FPGA开发中,时钟管理是确保设计稳定性的核心环节。当我们面对低频应用场景时,常常需要将高频系统时钟分频至工作频率,而Vivado工具链对这类自定义分频器的时序约束有着特…...
VideoDownloadHelper:三分钟掌握浏览器视频下载技巧,告别观看限制
VideoDownloadHelper:三分钟掌握浏览器视频下载技巧,告别观看限制 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是…...
高级逆向工程分析:PC微信小程序wxapkg加密算法深度解析与实现
高级逆向工程分析:PC微信小程序wxapkg加密算法深度解析与实现 【免费下载链接】pc_wxapkg_decrypt_python PC微信小程序 wxapkg 解密 项目地址: https://gitcode.com/gh_mirrors/pc/pc_wxapkg_decrypt_python PC微信小程序逆向工程工具提供了精准的wxapkg加密…...
统计显著性骗局
原文:towardsdatascience.com/the-statistical-significance-scam-db904be36714?sourcecollection_archive---------0-----------------------#2024-11-09 深入剖析科学最爱工具的缺陷 https://medium.com/caiparryjones96?sourcepost_page---byline--db904be367…...
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路 仓库已经开源!所有教程,主线内核移植,跑新版本imx-linux/uboot都在这里,或者一起来尝试跑7.0的Linux!欢迎各位大…...
AI从业者的“薪资真相”:不同方向、不同级别AI从业者的薪资水平
在人工智能技术飞速渗透各行业的当下,AI领域已成为软件测试从业者跨界转型的热门方向。相较于测试岗位相对稳定但涨幅平缓的薪资体系,AI行业的薪资结构呈现出极强的分层性与差异性。对于具备技术基础的测试从业者而言,深入了解AI领域的薪资逻…...
一眼看懂、一秒做对
在很多传统工厂里,管理者常会面临这样的困扰:现场物料堆积混乱、设备状态没人说得清、新员工培训周期长、同样的安全事故反复发生……问题往往不是员工“不努力”,而是信息没有直观、及时地传递到位。这正是工厂目视化管理(Visual…...
VMware 17 开机自启实战:从配置到故障排查的完整指南
1. VMware 17开机自启基础配置 很多运维工程师在生产环境中都会遇到这样的需求:让VMware虚拟机像系统服务一样随宿主机自动启动。这个功能对于无人值守的服务器、工控机等场景特别重要。下面我就以VMware Workstation 17为例,手把手教你配置全过程。 首…...
