• 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 把模块的输入信号定义为寄存器类型了。
  • 相关阅读:
    [Spring开发]获取上下文对象
    [Dubbo开发]Dubbo日志插件实现(打包)
    [Dubbo开发]Dubbo日志插件实现(未打包)
    [Java开发]打印当前路径到控制台
    [Dubbo开发]Dubbo拦截器(Filter)初探
    [Dubbo开发]配置简单的生产者和消费者
    [Dubbo开发]Zookeeper配置
    [Dubbo开发]Maven安装与配置
    EL表达式的特性
    oracle中rownum的使用
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8137667.html
Copyright © 2020-2023  润新知