当前位置: 首页 > news >正文

FPGA学习篇——Verilog学习2

1. 常见语句:

主要是 if...else 和 case 语句,使用方法同C语言大致一致。

1.1 if语句

1.2 case语句

2 系统函数

Verilog 语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数大多数都是只能在 Testbench 仿真中使用的,使我们更方便的进行验证。

2.1 时间预编译指令及延时

时间精度:决定时间相关量的精度及仿真显示的最小刻度。
例如:`timescale 1ns/10ps   精度0.01,
时间单位不能比时间精度小,下面这种写法就是错误的:
例如:`timescale 100ps/1ns


如:#10.11 表示延时10110ps。

2.2 $display

类似于C语言中的printf函数,可自动换行。

以上例子 “” 内的内容被打印,将a以二进制形式输出,b以二进制形式输出,然后将C以十进制输出。

2.3 $write

用$display差不多,但要手动换行。

实例:

(左图中18行应还有endmodule)

由于write没有自动换行,由代码第10行和第11行可知其两行字应该在一起,EmbedFire加了换行符后换行了。

2.4 $strobe

无论此函数在哪里写,都是在文件的最后才编译。

实例(代码不完整,主要为了展示其最后才编译的特点):

strobe在display前,但还是strobe的最后才来打印。

2.5 $monitor

monitor中的语句只要“”内的任何一个变量发生变化,就会打印一遍该语句。

实例:

如图,可以看到,第11行,a变量被赋值,即发生变化,打印(此时bc未赋值故为x),第13行,b又被赋值,即发生变化,打印(此时c未被赋值为x),第15行,c又被赋值,即发生变化,直接打印,故有三条打印结果。

2.6 $stop和$finish

$stop是暂停仿真,$finish是结束仿真,直接使用即可。

实例:

可以看到,输出“Stop Simulation ”后,黄色划线部分对应于暂停了仿真,然后暂停仿真后继续仿真是从原来暂停的位置继续的,而不是从头来!红色划线则刚好对应结束仿真。

2.7 $time和$random

$time为时间函数,返回64位当前仿真时间(即显示当前仿真时间);

$random用于产生随机数,返回随机数。

实例:

看这个实例,第6行表示每延迟10ns,a赋值一个随机值,然后第八行,用monitor进行打印(只要a变化就打印一次此时的a值),且使用了$time,会打印此时仿真对应的时间。

看结果,代码编写是每延迟10ns,a赋值一个随机值,打印对应的仿真时间也是每行相差10ns。

2.8 $readmemb 和 $readmemh

看最后一个字母,b表示二进制,h表示十进制。故$readmemb为读取二进制文件,$readmemh为读取十进制文件。

存贮器名就是将读取的文件赋值到这里。


注:本节为学习了哔哩哔哩网站上“野火”官方号视频所得个人经验,如有侵权,请联系我,欢迎指正~

http://www.dtcms.com/a/48602.html

相关文章:

  • 02.02、返回倒数第 k 个节点
  • 3-7 WPS JS宏 工作表移动复制实例-2(多工作簿的多工作表合并)学习笔记
  • 二、Redis 安装与基本配置:全平台安装指南 服务器配置详解
  • 软件工程中的各种图
  • 硅基流动nodejs流式输出
  • 文本挖掘+情感分析+主题建模+K-Meas聚类+词频统计+词云(景区游客评论情感分析)
  • 刚安装docker并启动docker服务: systemctl restart docker报错解决
  • 反向代理以及其使用场景
  • Linux12-UDP\
  • MAC 本地搭建部署 dify(含 github访问超时+Docker镜像源拉取超时解决方案)
  • 网络安全有必要学编程吗?
  • MIPI接口:(4)MIPI CSI-2协议详解(上)
  • list的两个实现类
  • 关于android studio设备镜像的设置
  • 《基于Hadoop的青岛市旅游景点游客行为分析系统设计与实现》开题报告
  • 2025国家护网HVV高频面试题总结来了03(题目+回答)
  • Java-实现PDF合同模板填写内容并导出PDF文件
  • 【二.提示词工程与实战应用篇】【1.提示词工程入门:AI对话的艺术】
  • 魔发奇缘,3D发型生成新突破!TANGLED:利用任意样式和视点的图像生成 3D 发束
  • debian/control中的包关系
  • Tomcat-web服务器介绍以及安装部署
  • 【音视频】H265解码Nalu后封装rtp包
  • 项目准备(flask+pyhon+MachineLearning)- 1
  • SpringBoot集成Elasticsearch 7.x spring-boot-starter-data-elasticsearch 方式
  • ZYNQ-PL实践课堂(五)IP核之FIFO
  • unity pico开发 五 UI交互
  • PyTorch GPU显存管理与大规模张量操作
  • 虚拟网络IP设置
  • Focal Loss (聚焦损失) :解决类别不平衡与难易样本的利器,让模型学会“重点学习”
  • LINUX网络基础 - 网络编程套接字,UDP与TCP