zoukankan      html  css  js  c++  java
  • 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 把模块的输入信号定义为寄存器类型了。
  • 相关阅读:
    POJ-2528 Mayor's posters 线段树 离散化
    POJ 3468 A Simple Problem with Integers 线段树区间修改
    CodeForces
    POJ3208 Apocalypse Someday 数位DP经典绝世好题
    CodeForces114 Double Happiness 数论 二次筛法 bitset的应用
    P3146 [USACO16OPEN]248 G 区间DP 暴力DP
    【Python学习】requests短连接
    【Windows学习】免登录和自动登录
    【Linux学习】expect远程下载和上传样例
    【Linux学习】软件包管理-wget,rpm,yum,apt-get
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8137667.html
Copyright © 2011-2022 走看看