verilogHDL仿真详解

前言

Verilog HDL中提供了丰富的系统任务和系统函数,用于对仿真环境、文件操作、时间控制等进行操作。(后续会进行补充)

正文

一、verilogHDL仿真详解

`timescale 1ns/1ps      
//时间单位为1ns,精度为1ps,
//编译指令将时间单位与实际时间相关联。
//该指令用于定义时延、仿真的单位和精度module tb_test_all_tb();			//仿真模块名(不可至工程顶层)	wire data_in;						//仿真模块输入reg  data_out;					//仿真模块输出tb_test_all tb_test_all_inst(		//被测试模块名 #(.被测试模块全局变量(目标值)) 被测试模块名例化名.bin(	data_in  ),					//被测试模块输入.bcd(	data_out )					//被测试模块输出
);		reg 	data_1;							//测试中间变量(这里用于接收数据)integer data_m;						integer i = 0;initial begin							//执行一次(仿真初始化赋值)data_m = $fopen("data.txt");	//创建并打开文本文件(绝对路径或相对路径)#20000								//延时20000 * 1nsdata_1 = {$random}%256;			//随机产生0~256之间的数字,没有{}时产生-256~256之间的数字$fclose(data_m);					//关闭文件。forever #5 clk = ~clk; 			//每5个时间单位翻转一次时钟信号,生成时钟信号$stop;								//暂停仿真$finish;								//仿真结束endalways@(*) begin							//多次执行(循环结构等)$display("this is verilog");		//打印输出字符$display("%t,%b",$time,data_in);	//打印输出data_in已%b的形式,并且输出打印时间$monitor("%t,%b",$time,data_in);	//持续监控指定变量的值,并在变量值发生变化时显示$fwrite(data_m, "%c", data_in);	//向文件写入数据,将data_in已%c的格式写入到data.txt$fdisplay(data_m, "%c", data_in);//向文件写入数据,将data_in已%c的格式写入到data.txt$readmemb("data.txt",data_1);		//从文件读入数据读入到data_1,readmemb二进制方式,readmemh十六进制$fscanf(data_m, "%h", data_in);	// 使用fscanf读取一个1位无符号整数从文件data.txt读入到data_1endendmodule

参考资料

Verilog中的系统函数和系统任务

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

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

相关文章

Nginx 配置支持 HTTPS 代理

个人博客地址:Nginx 配置支持 HTTPS 代理 | 一张假钞的真实世界 本文描述的是Nginx HTTPS反向代理的情况(即后端服务是HTTP的)。 使用openssl配置ssl证书 生成服务器端的私钥(key 文件): # openssl gen…

协同过滤算法商品推荐系统|Java|SpringBoot|VUE|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SpringBoot、Mybatis-Plus、VUE、jquery,html 5⃣️…

初学stm32 --- DMA直接存储器

目录 DMA介绍 STM32F1 DMA框图 DMA处理过程 DMA通道 DMA优先级 DMA相关寄存器介绍 F1 DMA通道x配置寄存器(DMA_CCRx) DMA中断状态寄存器(DMA_ISR) DMA中断标志清除寄存器(DMA_IFCR) DMA通道x传输…

数据通过canal 同步es,存在延迟问题,解决方案

当使用 Canal 同步数据到 Elasticsearch(ES)时,出现延迟问题通常源于多个因素,如 Canal 配置、网络延迟、ES 的负载和性能瓶颈等。以下是一些解决方案,帮助减少和解决延迟问题: 1. 优化 Canal 配置 Canal…

javafx 将项目打包为 Windows 的可执行文件exe

要将 JavaFX 项目打包为 .exe 文件,你可以使用一些工具将你的应用程序封装为 Windows 可执行文件。以下是两种常用的方法: 方法 1:使用 jpackage(适用于 JDK 14 及更高版本) jpackage 是 JDK 内置的工具,…

SQL进阶实战技巧:即时订单比例问题

目录 0 需求描述 1 数据准备 2 问题分析 3 小结 往期精彩 0 需求描述 订单配送中,如果期望配送日期和下单日期相同,称为即时订单,如果期望配送日期和下单日期不同,称为计划订单。 请从配送信息表(delivery_info)中求出每个用户的首单(用户的第一个订单)中即时订单…

Routine Load 导入问题处理指南

Routine Load 导入问题处理指南 在使用 Apache Doris 的 Routine Load 时,你是否曾经被各种奇奇怪怪的问题卡住?今天就来分享一些最常见的 Routine Load 问题,并提供相应的解决方案,让你快速应对,高效解决!…

【面试题】技术场景 6、Java 生产环境 bug 排查

生产环境 bug 排查思路 分析日志:首先通过分析日志查看是否存在错误信息,利用之前讲过的 elk 及查看日志的命令缩小查找错误范围,方便定位问题。远程 debug 适用环境:一般公司正式生产环境不允许远程 debug,多在测试环…

牛客 《反转链表》 链表 题解

前言 太久没有练习C和Java,基本忘完了…还有数据结构也不太熟悉了。借此机会回顾一下相关的知识点,也为之后做准备吧。 题目内容 思路 要求时间复杂度为O(n),那么只能遍历一次。反转的话,只需要将链表箭头指向换个方向就行。遍…

容器技术全面攻略:Docker的硬核玩法

文章背景 想象一下,一个项目终于要上线了,结果因为环境配置不一致,测试服务器一切正常,生产环境却宕机了。这是开发者噩梦的开始,也是Docker救世主角色的登场!Docker的出现颠覆了传统环境配置的方式&#…

RabbitMQ高级篇

目录 确保发送者的可靠 为什么需要确保发送者的可靠性 RabbitMQ 的发送者重连机制配置 springAMQP实现发送者确认 MQ的可靠性 为什么需要实现MQ的可靠性? 数据持久化 Lazy Queue 核心思想 总结RabbitMQ 如何保证消息的可靠性 持久化 Lazy Queue 消息…

微信小程序用的SSL证书有什么要求吗?

微信小程序主要建立在手机端使用,然而手机又涉及到各种系统及版本,所以对SSL证书也有要求,如果要小程序可以安全有效的访问需要满足以下要求: 1、原厂SSL证书(原厂封)。 2、DV单域名或者DV通配符。 3、兼…

OpenCV计算机视觉 07 图像的模块匹配

在做目标检测、图像识别时,我们经常用到模板匹配,以确定模板在输入图像中的可能位置 API函数 cv2.matchTemplate(image, templ, method, resultNone, maskNone) 参数含义: image:待搜索图像 templ:模板图像 method&…

tcpdump-命令详解

目录 1.格式: 2.参数 3.过滤表达式: 4.示例: tcpdump 是一款在 Unix 和类 Unix 系统上广泛使用的网络分析工具,它能够捕获网络接口上传输的数据包,并提供多种选项来过滤和展现这些数据包的详细信息。这里是 tcpdu…

uniapp开发u-icon图标不显示问题

uniapp开发图标用u-icon不显示,换成uv-icon就可以了 插件市场从这里下载:uv-ui 破釜沉舟之兼容vue32、app、h5、小程序等多端,灵活导入,利剑出击 - DCloud 插件市场 组件库看这个:介绍 | 我的资料管理-uv-ui 是全面兼…

C语言期末回忆

(一)考试题型 十五道判断题,十道选择题,三道函数,四道编程。 (二)函数题回忆: 1.计算一个数字中出现0的次数 错误点在于分类讨论,这个数字是大于0,等于0&…

ELK的搭建

ELK elk:elasticsearch logstatsh kibana统一日志收集系统 elasticsearch:分布式的全文索引引擎点非关系型数据库,存储所有的日志信息,主和从,最少需要2台 logstatsh:动态的从各种指定的数据源,获取数据…

【git】-2 分支管理

目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 ​​​​​​【git】-初始gi…

【项目】修改远程仓库地址、报错jdk

一、修改远程仓库地址 进入你刚刚克隆到本地的仓库目录&#xff0c;执行以下命令来修改远程仓库的 URL&#xff0c;将其指向你自己的新仓库&#xff1a; cd 原仓库名 git remote set-url origin <你自己的新仓库的 Git 地址>补充&#xff1a; 错误分析&#xff1a; wa…

实训云上搭建集群

文章目录 1. 登录实训云1.1 实训云网址1.2 登录实训云 2. 创建网络2.1 网络概述2.2 创建步骤 3. 创建路由器3.1 路由器名称3.1 创建路由器3.3 查看网络拓扑 4. 连接子网5. 创建虚拟网卡5.1 创建原因5.2 查看端口5.3 创建虚拟网卡 6. 管理安全组规则6.1 为什么要管理安全组规则6…