Bootstrap

RTL仿真

Verbi

testbench

时钟激励:

  • always # 10 clk=~clk;
  • initial forever #5 clk=~clk

随机数:

  • a={$random}%30;    //0-30之间的随机数
  • a=$random%30;    //-30-30之间的随机数

同步数据

  • @(posedge/negedge clk)   //时钟沿执行一次

打印

  • $display(“XXX”);   //语法同C的print

延时:

  • 阻塞正规延时:#3 out1 = in;  //T+N时刻将T+N时刻的in赋值给sum,小于延迟时间的输入变化被忽略
  • 非阻塞正规延时:#3 out2 <= in;  //T+N时刻将T+N时刻的in赋值给sum,小于延迟时间的输入变化被忽略
  • 阻塞内定延时:out3 = #3 in;  //T+N时刻将T时刻的in赋值给sum,小于延迟时间的输入变化被忽略
  • 非阻塞内定延时:out4 <= #3 in;  //T+N时刻将T时刻的in赋值给sum
  • 持续赋值延时:assign #3 out5 = in;  //惯性延迟,小于延迟时间的输入变化被忽略

TIM图片20200419003345

timescale设置:

  • 每个module头部设置
  • VCS仿真命令添加-timescale 1ns/1ps
  • 新建一个V文件,只有一行`timescale定义,在f文件首行引用
;