verilog入门语法学习-第1篇

1. 如何观察被测模块的响应:

在initial 块中,用系统任务$time 和 $monitor

$time 返回当前的仿真时刻

$monitor 只要在其变量列表中有某一个或某几个变 量值发生变化,便在仿真单位时间结束时显示其变 量列表中所有变量的值。

1 例:
2 initial begin
3 $monitor ($time, , “out=%b a=%b sel=%b”, out,a,b,sel);
4 end

2.如何把被测模块的输出变化记录到数据库文件中?

(文件格式为VCD,大多数的波形显示工具都能读取该格式)

可用以下七个系统任务:

1 $dumpfile(“file.dump”); //打开记录数据变化的数据文件
2 $dumpvars(); //选择需要记录的变量
3 $dumpflush; //把记录在数据文件中的资料转送到硬盘保存
4 $dumpoff; //停止记录数据变化
5 $dumpon; //重新开始记录数据变化
6 $dumplimit(<file_size>); //规定数据文件的大小(字节)
7 $dumpall; //记录所有指定信号的变化值到数据文件中

3. $<标识符> ‘$’ 符号表示 Verilog 的系统任务和函数

常用的系统任务和函数有下面几种:

1 $time //找到当前的仿真时间
2 $display, $monitor //显示和监视信号值的变化
3 $stop //暂停仿真
4 $finish //结束仿真

4.特殊符号 “#” 常用来表示延迟: 在过程赋值语句时表示延迟。

1 例:initial begin #10 rst=1; #50 rst=0; end

5. 编译引导语句用主键盘左上角小写键 “ ` ” 起头 用于指导仿真编译器在编译时采取一些特殊处理

1 `include “global.v”
2 `define  //宏定义
3 `include  //包含其他文件
4 `timescale  //仿真分辨了
5 `uselib  //使用库
6 `resetall  //编译引导语句把所有设置的编译引导恢复到缺省状态,不明白啊?

6.`timescale 用于说明程序中的时间单位和仿真精度

7.选择数据类型时常犯的错误,其中过程块是always块吗?

1 在过程块中对变量赋值时,忘了把它定义为寄存器 类型(reg)或已把它定义为连接类型了(wire2 把实例的输出连接出去时,把它定义为寄存器类型了
3 把模块的输入信号定义为寄存器类型了。

转载于:https://www.cnblogs.com/429512065qhq/p/8137667.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值