verilog测试函数语法大全

这篇博客介绍了Verilog中如何生成测试波形,包括线性、循环、数组和文件导入方式,并讲解了时钟建立、数据显示、信息监控以及文件访问的操作,如$fdisplay、$monitor、$strobe和文件读写。此外,还涉及到向量的读写及仿真中的数据输出。
摘要由CSDN通过智能技术生成

erilog 测试波形的生成

  1. 值序列
    1. 线性产生值序列


eg:  

    1. 循环产生值序列

eg:每隔50时间单位输出一次随机的256以内的数字,同时循环256次,循环结束之后延迟200时间单位结束

     

    1. 数组产生值序列

eg:首先需要实现数组列表数据的初始化,然后将数组列表中存储的数据对外输出

    1. 文件导入产生值序列

  1. 时钟的建立
    1. timescale时间尺度

‘timescale 1ns/10ps (时间单位,时间精度)

    1. forever产生时钟信号

always块产生时钟信号

  1. 数据显示
    1. 显示信息$display

$display(‘‘hello verilog world’’)

>>hello verilog world

$display($time)

>>100(显示当前时间)

$display(‘‘simulation time is %t ,data is %h(hex)’’,$time,data);

>>simulation time is 100,data is 11(hex)  (十六进制与时间)

$display(“data is %b”,data);

>>data is 0011xxxx

$display(“it is %%”);

>>it is %         (显示转义字符,特殊字符)

    1. 监控信息$monitor

>>0 set = x,1.6 set=0 , 3.2 set =1

    1. 选通显示$strobe

同一时刻所有的赋值语句完成之后再执行

  1. 文件访问
    1. $open(“file_name”)

    1. 读取文件
  1. 读取单个字符$fgetc

c=$fgetc(fd);>>从fd对应的文件里读取一个字节(byte),并返给c,若读取错误,则返回EOF(-1)

  1. 读取一行字符串$fgets

integer code =$fgets(str,fd);>>从fd对应的文件中读取一行文字串,存储到向量str中

  1. 格式化读取数据

$fscanf,$sscanf

  1. 二进制数据读取
  2. $fread
    1. 关闭文件

$fclose(fd);

  1. 从文本文件中读取向量

reg[7:0] memory[7:0];//声明8*8的存储单元

integer i

      initial

      begin

      $readmemb(“dat.data”,memory);

      for (i=0;i<8;i=i+1)

            $display(“memory[%d]=%b”,i,memory[i]);

      end

  1. 向文本文件中写入向量

parameter period=20;

reg[7:0] in_vec;//激励向量

wire[7:0] out_vec;//相应向量

integer resultsfile ,stimulusfile;//文件操作句柄

dut u1(out_vec,in_vec);//待测模块实例化

      initial

      begin

            stimulusfile = $fopen(“stimulus.dat”);

            resultsfile =$fopen(“results.dat”)

            fork

                  if (stimulusfile! = 0) forever # (period/2)

                       $fstrobeb(stimulusfile,”%b”,in_vec);//fstrobe的二进制输出

            join

      end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值