verilog入门语法学习-第1篇
1. 如何观察被测模块的响应:
在initial 块中,用系统任务$time 和 $monitor
$time 返回当前的仿真时刻
$monitor 只要在其变量列表中有某一个或某几个变 量值发生变化,便在仿真单位时间结束时显示其变 量列表中所有变量的值。
例:
initial begin
$monitor ($time, , “out=%b a=%b sel=%b”, out,a,b,sel);
end
2.如何把被测模块的输出变化记录到数据库文件中?
(文件格式为VCD,大多数的波形显示工具都能读取该格式)
可用以下七个系统任务:
$dumpfile(“file.dump”); //打开记录数据变化的数据文件
$dumpvars(); //选择需要记录的变量
$dumpflush; //把记录在数据文件中的资料转送到硬盘保存
$dumpoff; //停止记录数据变化
$dumpon; //重新开始记录数据变化
$dumplimit(<file_size>); //规定数据文件的大小(字节)
$dumpall; //记录所有指定信号的变化值到数据文件中
3. $<标识符> ‘$’ 符号表示 Verilog 的系统任务和函数
常用的系统任务和函数有下面几种:
$time //找到当前的仿真时间
$display, $monitor //显示和监视信号值的变化
$stop //暂停仿真
$finish //结束仿真
4.特殊符号 “#” 常用来表示延迟: 在过程赋值语句时表示延迟。
例:initial begin # rst=; # rst=; end
5. 编译引导语句用主键盘左上角小写键 “ ` ” 起头 用于指导仿真编译器在编译时采取一些特殊处理
`include “global.v”
`define //宏定义
`include //包含其他文件
`timescale //仿真分辨了
`uselib //使用库
`resetall //编译引导语句把所有设置的编译引导恢复到缺省状态,不明白啊?
6.`timescale 用于说明程序中的时间单位和仿真精度
7.选择数据类型时常犯的错误,其中过程块是always块吗?
在过程块中对变量赋值时,忘了把它定义为寄存器 类型(reg)或已把它定义为连接类型了(wire)
把实例的输出连接出去时,把它定义为寄存器类型了
把模块的输入信号定义为寄存器类型了。
verilog入门语法学习-第1篇的更多相关文章
- verilog 之语法学习
1.使用非基数表示的十进制视为有符号数.使用基数表示的十进制被视为无符号数. 2.线网中的值被解释为无符号数,整型寄存器中的值被解释为有符号的二进制补码数,. 3.如果选择表达式的值为 x.z,或越界 ...
- Linq语法学习_增删篇。
关键词: select from where in into join on equals orderby descending thenby Table<TEntity> Default ...
- RabbitMQ学习总结 第二篇:快速入门HelloWorld
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- Json.Net6.0入门学习试水篇
原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中 ...
- Python学习系列(四)Python 入门语法规则2
Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, ...
- Java工程师学习指南 初级篇
Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Vue学习看这篇就够
Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...
- RabbitMQ学习总结 第一篇:理论篇
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- PHP学习笔记 - 进阶篇(10)
PHP学习笔记 - 进阶篇(10) 异常处理 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被 ...
随机推荐
- 「LG4178 Tree」
题目 我终于来抄点分治的板子了 随便说一点理解吧,点分治就是一种能求某种特定树上路径数量的算法 就是选择一个分治重心,统计一下以这个重心为\(LCA\)的路径的信息 之后对这个重心的子树再次分别选择分 ...
- Visual C++中MFC消息的分类
Visual C++中MFC消息的分为三类:标准(窗口)消息.命令消息.控件消息. 1.标准(窗口)消息:窗口消息一般与窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或 ...
- 【luogu P4017 最大食物链计数】 题解
题目链接:https://www.luogu.org/problemnew/show/P4017 DAG + DP #include <queue> #include <cstdio ...
- Adnroid studio 无法 Build APK(s)
报错 Error:java.nio.file.AccessDeniedException: C:\Program Files\Android\android-sdk-windows\.android\ ...
- 利用DBMS_REDEFINITION包将非分区表转化成分区表
将普通表格转化分区表的方法大致有四种: A. 通过 Export/import 方法B. 通过 Insert with a subquery 方法C. 通过 Partition Exchange 方法 ...
- linuxc - entos 7.3 开放端口并对外开放
1. 查看已打开的端口 # netstat -anp 2. 查看想开的端口是否已开 # firewall-cmd --query-port=666/tcp 若此提示 FirewallD is not ...
- springBoot 官方整合的redis 使用教程:(StringRedisTemplate 方式存储 Object类型value)
前言:最近新项目准备用 redis 简单的缓存 一些查询信息,以便第二次查询效率高一点. 项目框架:springBoot.java.maven 说明:edis存储的数据类型,key一般都是Strin ...
- Head First Java学习笔记
1.基本概念 1.1.工作方式 源代码(.java)---编译器(执行javac程序)---产生字节码(.class与平台无关)---JAVA虚拟机(JVM,读取与执行字节码) 1.2.汇编语言是对基 ...
- IoC和AOP扩展
一.构造注入 二.使用p命名空间注入属性值 三.注入不同数据类型 <?xml version="1.0" encoding="UTF-8"?> &l ...
- 详解HTML5中的进度条progress元素简介及兼容性处理
一.progress元素基本了解 1.基本知识 progress元素属于HTML5家族,指进度条.IE10+以及其他靠谱浏览器都支持. 注释:Internet Explorer 9 以及更早的版本不支 ...